radv: upload shader binaries of a pipeline contiguously in memory
RGP expects shaders to be contiguous in memory, otherwise it explodes because we have to generate huge captures with lot of holes. This reduces capture sizes of Cyberpunk 2077 from ~3.5GiB to ~180MiB. This should also help for future pipeline libraries. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13690>
This commit is contained in:

committed by
Marge Bot

parent
a7f0463612
commit
3fa2220838
@@ -832,10 +832,6 @@ radv_trap_handler_init(struct radv_device *device)
|
||||
return false;
|
||||
}
|
||||
|
||||
result = ws->buffer_make_resident(ws, device->trap_handler_shader->bo, true);
|
||||
if (result != VK_SUCCESS)
|
||||
return false;
|
||||
|
||||
result = ws->buffer_create(ws, TMA_BO_SIZE, 256, RADEON_DOMAIN_VRAM,
|
||||
RADEON_FLAG_CPU_ACCESS | RADEON_FLAG_NO_INTERPROCESS_SHARING |
|
||||
RADEON_FLAG_ZERO_VRAM | RADEON_FLAG_32BIT,
|
||||
@@ -873,7 +869,6 @@ radv_trap_handler_finish(struct radv_device *device)
|
||||
struct radeon_winsys *ws = device->ws;
|
||||
|
||||
if (unlikely(device->trap_handler_shader)) {
|
||||
ws->buffer_make_resident(ws, device->trap_handler_shader->bo, false);
|
||||
radv_shader_destroy(device, device->trap_handler_shader);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user