Module: Mesa
Branch: staging/22.2
Commit: b5917e15f74e582467ef86facd5a4bcf51e9930f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5917e15f74e582467ef86facd5a4bcf51e9930f

Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Jun 14 12:12:31 2022 -0400

zink: explicitly use unsigned types for bit shifts

fixes some ubsan errors

cc: mesa-stable

Reviewed-by: Dave Airlie <[email protected]>
Reviewed-by: Emma Anholt <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18358>
(cherry picked from commit d9b8f8d46c96c126ab453376370bb593bc8efbca)

---

 .pick_status.json                        | 2 +-
 src/gallium/drivers/zink/zink_resource.h | 6 +++---
 src/gallium/drivers/zink/zink_screen.c   | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 6b4e8f7d8b0..cc68b724875 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -6178,7 +6178,7 @@
         "description": "zink: explicitly use unsigned types for bit shifts",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
diff --git a/src/gallium/drivers/zink/zink_resource.h 
b/src/gallium/drivers/zink/zink_resource.h
index bccf4b8d508..06eb083825c 100644
--- a/src/gallium/drivers/zink/zink_resource.h
+++ b/src/gallium/drivers/zink/zink_resource.h
@@ -43,9 +43,9 @@ struct zink_bo;
 #include <vulkan/vulkan.h>
 
 #define ZINK_MAP_TEMPORARY (PIPE_MAP_DRV_PRV << 0)
-#define ZINK_BIND_DMABUF (1 << 29)
-#define ZINK_BIND_TRANSIENT (1 << 30) //transient fb attachment
-#define ZINK_BIND_VIDEO (1 << 31)
+#define ZINK_BIND_DMABUF (1u << 29)
+#define ZINK_BIND_TRANSIENT (1u << 30) //transient fb attachment
+#define ZINK_BIND_VIDEO (1u << 31)
 
 struct mem_key {
    unsigned seen_count;
diff --git a/src/gallium/drivers/zink/zink_screen.c 
b/src/gallium/drivers/zink/zink_screen.c
index 6fab6da0e47..bba0aec8f8e 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -977,7 +977,7 @@ zink_get_shader_param(struct pipe_screen *pscreen,
       assert(screen->info.props.limits.maxUniformBufferRange >= 16384);
       /* but Gallium can't handle values that are too big */
       return MIN3(get_smallest_buffer_heap(screen),
-                  screen->info.props.limits.maxUniformBufferRange, 1 << 31);
+                  screen->info.props.limits.maxUniformBufferRange, 
BITFIELD_BIT(31));
 
    case PIPE_SHADER_CAP_MAX_CONST_BUFFERS:
       return  
MIN2(screen->info.props.limits.maxPerStageDescriptorUniformBuffers,

Reply via email to