From aa15d64949b1d3d553b46a2756e46fb9ef8b59c8 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 10 Mar 2023 15:44:13 +0100 Subject: [PATCH] radv: store the total radv_shader_part_binary size Similar to radv_shader. This will be used for the shaders cache. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_shader.c | 1 + src/amd/vulkan/radv_shader.h | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index f8a67e5a9bb..ec7be4419d3 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -2786,6 +2786,7 @@ static void radv_aco_build_shader_part(void **bin, part_binary->num_sgprs = num_sgprs; part_binary->num_vgprs = num_vgprs; + part_binary->total_size = size; part_binary->code_size = code_size * sizeof(uint32_t); memcpy(part_binary->data, code, part_binary->code_size); if (disasm_size) { diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h index 4ae59c0a09e..8d526599e4f 100644 --- a/src/amd/vulkan/radv_shader.h +++ b/src/amd/vulkan/radv_shader.h @@ -466,6 +466,10 @@ struct radv_shader_part_binary { uint8_t num_vgprs; unsigned code_size; unsigned disasm_size; + + /* Self-referential size so we avoid consistency issues. */ + uint32_t total_size; + uint8_t data[0]; };