mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-30 00:40:25 +01:00
turnip: fall back to sysmem when attachments don't fit into gmem
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979>
This commit is contained in:
parent
de3230e0a5
commit
d195eef05d
2 changed files with 10 additions and 1 deletions
|
|
@ -219,6 +219,12 @@ tu_tiling_config_update_tile_layout(struct tu_tiling_config *tiling,
|
|||
align(DIV_ROUND_UP(ra_width, tiling->tile_count.width), tile_align_w);
|
||||
}
|
||||
|
||||
/* will force to sysmem, don't bother trying to have a valid tile config
|
||||
* TODO: just skip all GMEM stuff when sysmem is forced?
|
||||
*/
|
||||
if (!pixels)
|
||||
return;
|
||||
|
||||
/* do not exceed gmem size */
|
||||
while (tiling->tile0.extent.width * tiling->tile0.extent.height > pixels) {
|
||||
if (tiling->tile0.extent.width > MAX2(tile_align_w, tiling->tile0.extent.height)) {
|
||||
|
|
@ -767,6 +773,10 @@ use_sysmem_rendering(struct tu_cmd_buffer *cmd)
|
|||
if (unlikely(cmd->device->physical_device->instance->debug_flags & TU_DEBUG_SYSMEM))
|
||||
return true;
|
||||
|
||||
/* can't fit attachments into gmem */
|
||||
if (!cmd->state.pass->gmem_pixels)
|
||||
return true;
|
||||
|
||||
return cmd->state.tiling_config.force_sysmem;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,6 @@ compute_gmem_offsets(struct tu_render_pass *pass, uint32_t gmem_size)
|
|||
}
|
||||
|
||||
pass->gmem_pixels = pixels;
|
||||
assert(pixels);
|
||||
}
|
||||
|
||||
VkResult
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue