diff options
author | Konstantin Seurer <konstantin.seurer@gmail.com> | 2024-04-28 15:58:38 +0200 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2024-05-12 21:57:50 +0200 |
commit | c6f11391abb465d8d5ca3df03eef728cc6ce65ba (patch) | |
tree | e6c08da6496135e9c4ad4fcd8a0369d6b88d530a | |
parent | 5ba1b92a502141262db5385b4df468860206c784 (diff) |
radv: Zero initialize capture replay group handlesstaging/24.1
radv_serialized_shader_arena_block is not tightly packed and using an
initializer list leaves the gaps uninitialized.
cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28961>
(cherry picked from commit 406dda70e7c9baa59c975eb64025e7c3b210c3bc)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/amd/ci/radv-navi21-aco-flakes.txt | 3 | ||||
-rw-r--r-- | src/amd/ci/radv-navi31-aco-flakes.txt | 6 | ||||
-rw-r--r-- | src/amd/ci/radv-vangogh-aco-flakes.txt | 33 | ||||
-rw-r--r-- | src/amd/vulkan/radv_pipeline_rt.c | 8 | ||||
-rw-r--r-- | src/amd/vulkan/radv_shader.c | 12 | ||||
-rw-r--r-- | src/amd/vulkan/radv_shader.h | 2 |
7 files changed, 7 insertions, 59 deletions
diff --git a/.pick_status.json b/.pick_status.json index 79036e2c1f6..203ea14c01e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4,7 +4,7 @@ "description": "radv: Zero initialize capture replay group handles", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/ci/radv-navi21-aco-flakes.txt b/src/amd/ci/radv-navi21-aco-flakes.txt index b695bb1851c..af2d0db3e16 100644 --- a/src/amd/ci/radv-navi21-aco-flakes.txt +++ b/src/amd/ci/radv-navi21-aco-flakes.txt @@ -1,8 +1,5 @@ dEQP-VK.query_pool.statistics_query.host_query_reset.geometry_shader_(invocations|primitives).secondary.(32|64)bits_.* -# New CTS flakes in 1.3.6.3 -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.(single|multi)threaded_compilation.*_check_(all|capture_replay)_handles - dEQP-VK.shader_object.binding.mesh_swap_task dEQP-VK.binding_model.shader_access.secondary_cmd_buf.with_template.storage_image.vertex.multiple_descriptor_sets.multiple_contiguous_descriptors.cube_array diff --git a/src/amd/ci/radv-navi31-aco-flakes.txt b/src/amd/ci/radv-navi31-aco-flakes.txt index cf3933664c6..a84bc7b192d 100644 --- a/src/amd/ci/radv-navi31-aco-flakes.txt +++ b/src/amd/ci/radv-navi31-aco-flakes.txt @@ -1,11 +1,5 @@ -# New CTS flakes in 1.3.6.3 -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.*_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.*_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.*_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.*_check_capture_replay_handles dEQP-VK.memory.mapping.suballocation.sub.1048577.offset_0.size_1048575.subinvalidate_overlapping -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.misc.maintenance5 # Nightly run expectations update dEQP-VK.memory.mapping.suballocation.sub.1048577.offset_0.size_1048575.subinvalidate_overlapping diff --git a/src/amd/ci/radv-vangogh-aco-flakes.txt b/src/amd/ci/radv-vangogh-aco-flakes.txt index ba20ba10dfb..670565c5d85 100644 --- a/src/amd/ci/radv-vangogh-aco-flakes.txt +++ b/src/amd/ci/radv-vangogh-aco-flakes.txt @@ -3,39 +3,6 @@ dEQP-VK.fragment_shading_barycentric.fast_linked_library.data.provoking_last.dyn # Nightly run expectations update dEQP-VK.pipeline.monolithic.image.suballocation.sampling_type.combined.view_type.1d_array.format.r8_uint.count_1.size.3x1_array_of_6 dEQP-VK.pipeline.shader_object_unlinked_spirv.render_to_image.core.1d_array.mipmap.a2b10g10r10_unorm_pack32_d32_sfloat_s8_uint -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s0_l11_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s0_l11_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s0_l1_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s0_l2_l3_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s1_l1_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s1_l1_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s1_l1_l1_aabbs_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l232_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l2_l3_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1_aabbs_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l1_l1_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l2_l3_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s0_l23_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s1_l1_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s2_l23_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s2_l23_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l22_l22_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation_dho.s3_l2_l3_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s0_l11_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s0_l1_l1_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s0_l23_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s0_l23_aabbs_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s0_l2_l3_aabbs_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s0_l2_l3_check_capture_replay_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s1_l1_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s1_l1_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s1_l1_l1_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.multithreaded_compilation.s3_l2_l3_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s2_l23_aabbs_check_all_handles -dEQP-VK.ray_tracing_pipeline.pipeline_library.configurations.singlethreaded_compilation.s3_l232_check_capture_replay_handles # New CTS flakes in 1.3.8.0. dEQP-VK.api.copy_and_blit.sparse.image_to_image.simple_tests.partial_image diff --git a/src/amd/vulkan/radv_pipeline_rt.c b/src/amd/vulkan/radv_pipeline_rt.c index e8c8437bbf3..b8f1853772b 100644 --- a/src/amd/vulkan/radv_pipeline_rt.c +++ b/src/amd/vulkan/radv_pipeline_rt.c @@ -1070,8 +1070,12 @@ radv_GetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device, VkPipeline uint32_t recursive_shader = rt_pipeline->groups[firstGroup + i].recursive_shader; if (recursive_shader != VK_SHADER_UNUSED_KHR) { struct radv_shader *shader = rt_pipeline->stages[recursive_shader].shader; - if (shader) - data[i].recursive_shader_alloc = radv_serialize_shader_arena_block(shader->alloc); + if (shader) { + data[i].recursive_shader_alloc.offset = shader->alloc->offset; + data[i].recursive_shader_alloc.size = shader->alloc->size; + data[i].recursive_shader_alloc.arena_va = shader->alloc->arena->bo->va; + data[i].recursive_shader_alloc.arena_size = shader->alloc->arena->size; + } } data[i].non_recursive_idx = rt_pipeline->groups[firstGroup + i].handle.any_hit_index; } diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index fbc819c6313..47e43e7f12f 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -1240,18 +1240,6 @@ radv_free_shader_memory(struct radv_device *device, union radv_shader_arena_bloc mtx_unlock(&device->shader_arena_mutex); } -struct radv_serialized_shader_arena_block -radv_serialize_shader_arena_block(union radv_shader_arena_block *block) -{ - struct radv_serialized_shader_arena_block serialized_block = { - .offset = block->offset, - .size = block->size, - .arena_va = block->arena->bo->va, - .arena_size = block->arena->size, - }; - return serialized_block; -} - union radv_shader_arena_block * radv_replay_shader_arena_block(struct radv_device *device, const struct radv_serialized_shader_arena_block *src, void *ptr) diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h index ddda3af0f6f..4887010e25e 100644 --- a/src/amd/vulkan/radv_shader.h +++ b/src/amd/vulkan/radv_shader.h @@ -547,8 +547,6 @@ union radv_shader_arena_block *radv_replay_shader_arena_block(struct radv_device const struct radv_serialized_shader_arena_block *src, void *ptr); -struct radv_serialized_shader_arena_block radv_serialize_shader_arena_block(union radv_shader_arena_block *block); - void radv_free_shader_memory(struct radv_device *device, union radv_shader_arena_block *alloc); struct radv_shader *radv_create_trap_handler_shader(struct radv_device *device); |