From 4e2e63ee002b5e0ba1a6ca2b54214a8ba2e77248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Thu, 27 Apr 2023 15:24:55 +0200 Subject: [PATCH] radv: add padding to radv_shader_binary_legacy This fixes an alignment mismatch in radv_shader_serialize() Fixes: 577d76f60f788c3a8d43b4b388bb5a04e4e64994 ('radv: add radv_shader_serialize() and radv_shader_deserialize() functions') Part-of: (cherry picked from commit 7fc259e4e7ad5afb131a575674d52937c5566a64) --- .pick_status.json | 2 +- src/amd/vulkan/radv_shader.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 90a26795d38..99a4580b4ab 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -346,7 +346,7 @@ "description": "radv: add padding to radv_shader_binary_legacy", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "577d76f60f788c3a8d43b4b388bb5a04e4e64994" }, diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h index 21554d3dd30..5a8f021d073 100644 --- a/src/amd/vulkan/radv_shader.h +++ b/src/amd/vulkan/radv_shader.h @@ -450,11 +450,15 @@ struct radv_shader_binary_legacy { uint32_t ir_size; uint32_t disasm_size; uint32_t stats_size; + uint32_t padding; /* data has size of stats_size + code_size + ir_size + disasm_size + 2, * where the +2 is for 0 of the ir strings. */ uint8_t data[0]; }; +static_assert(sizeof(struct radv_shader_binary_legacy) == + offsetof(struct radv_shader_binary_legacy, data), + "Unexpected padding"); struct radv_shader_binary_rtld { struct radv_shader_binary base;