summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <[email protected]>2019-06-10 16:17:46 +0200
committerJuan A. Suarez Romero <[email protected]>2019-06-11 08:11:24 +0000
commit49c17e845a37ba58387e0fc4284841c8ddad8639 (patch)
tree43f079d64265f4341f477d9089660b21c3cf30a3
parentd058124201bf2de38f629c24770de16762d8c914 (diff)
radv: Prevent out of bound shift on 32-bit builds.
uintptr_t is 32-bits then and shifting it by 32 bits results in undefined behavior IIRC. Fixes: b3c8de1c55c "radv: save all descriptor pointers into the trace BO" Reviewed-by: Samuel Pitoiset <[email protected]> (cherry picked from commit 39c71e002561052d0596200b2d0ebdb8cc39d862)
-rw-r--r--src/amd/vulkan/radv_cmd_buffer.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 73f027df15d..3b87146ebd0 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -566,8 +566,8 @@ radv_save_descriptors(struct radv_cmd_buffer *cmd_buffer,
for_each_bit(i, descriptors_state->valid) {
struct radv_descriptor_set *set = descriptors_state->sets[i];
- data[i * 2] = (uintptr_t)set;
- data[i * 2 + 1] = (uintptr_t)set >> 32;
+ data[i * 2] = (uint64_t)(uintptr_t)set;
+ data[i * 2 + 1] = (uint64_t)(uintptr_t)set >> 32;
}
radv_emit_write_data_packet(cmd_buffer, va, MAX_SETS * 2, data);