radv/rt: fix capture/replay support

When replaying a RT pipeline, RADEON_FLAG_REPLAYABLE should be set.

The idea is that for capture, RADEON_FLAG_REPLAYABLE should be passed
when allocating a BO (ie. replay_va would be 0), and then for replay
the VA would be non-zero but the flag is also required.

Fixes
dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.*.

Fixes: 744357477e ("radv: Add utilities to serialize and deserialize shader allocation info")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24543>
This commit is contained in:
Samuel Pitoiset 2023-08-07 17:11:39 +02:00 committed by Marge Bot
parent 12be0829ea
commit 1b66ebf09a

View file

@ -1296,8 +1296,7 @@ radv_replay_shader_arena_block(struct radv_device *device, const struct radv_ser
void *data = _mesa_hash_table_u64_search(device->capture_replay_arena_vas, va);
if (!data) {
struct radv_shader_arena *arena =
radv_create_shader_arena(device, NULL, 0, src->arena_size, false, src->arena_va);
struct radv_shader_arena *arena = radv_create_shader_arena(device, NULL, 0, src->arena_size, true, src->arena_va);
if (!arena) {
mtx_unlock(&device->shader_arena_mutex);
return NULL;