aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2020-02-07 04:33:19 -0600
committerMarge Bot <[email protected]>2020-03-07 04:51:29 +0000
commitfaea84e2540810feb66ac88359b50cf69f2b3cc6 (patch)
tree25d9d9e794e254df4cfd2cef4b6f496ab12f9b17 /src
parent61ac8cf08381f7df05b477cfc6854b3b4b88f03f (diff)
anv: Add an align_down_u32 helper
Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3777>
Diffstat (limited to 'src')
-rw-r--r--src/intel/vulkan/anv_nir_compute_push_layout.c2
-rw-r--r--src/intel/vulkan/anv_private.h9
2 files changed, 9 insertions, 2 deletions
diff --git a/src/intel/vulkan/anv_nir_compute_push_layout.c b/src/intel/vulkan/anv_nir_compute_push_layout.c
index 1dbfb08a100..e96ce98bde2 100644
--- a/src/intel/vulkan/anv_nir_compute_push_layout.c
+++ b/src/intel/vulkan/anv_nir_compute_push_layout.c
@@ -74,7 +74,7 @@ anv_nir_compute_push_layout(const struct anv_physical_device *pdevice,
* push_end (no push constants is indicated by push_start = UINT_MAX).
*/
push_start = MIN2(push_start, push_end);
- push_start &= ~31u;
+ push_start = align_down_u32(push_start, 32);
if (has_push_intrinsic) {
nir_foreach_function(function, nir) {
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index cdfbcb87535..8138137abf7 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -232,10 +232,17 @@ align_down_npot_u32(uint32_t v, uint32_t a)
}
static inline uint32_t
+align_down_u32(uint32_t v, uint32_t a)
+{
+ assert(a != 0 && a == (a & -a));
+ return v & ~(a - 1);
+}
+
+static inline uint32_t
align_u32(uint32_t v, uint32_t a)
{
assert(a != 0 && a == (a & -a));
- return (v + a - 1) & ~(a - 1);
+ return align_down_u32(v + a - 1, a);
}
static inline uint64_t