summaryrefslogtreecommitdiffstats
path: root/src/vulkan/gen8_pack.h
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-06-10 12:43:02 -0700
committerJason Ekstrand <[email protected]>2015-06-10 12:43:02 -0700
commit047ed02723071d7eccbed3210b5be6ae73603a53 (patch)
tree3047c27496baf81ab11a113a59e74d4ad368aad6 /src/vulkan/gen8_pack.h
parent9cae3d18ac44677fb1c1a4d9c01a1630e62fcb7a (diff)
vk/emit: Use valgrind to validate every packed field
Diffstat (limited to 'src/vulkan/gen8_pack.h')
-rw-r--r--src/vulkan/gen8_pack.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/vulkan/gen8_pack.h b/src/vulkan/gen8_pack.h
index aeb5dadd020..54ad55ab490 100644
--- a/src/vulkan/gen8_pack.h
+++ b/src/vulkan/gen8_pack.h
@@ -32,6 +32,10 @@
#include <stdio.h>
#include <assert.h>
+#ifndef __gen_validate_value
+#define __gen_validate_value(x)
+#endif
+
#ifndef __gen_field_functions
#define __gen_field_functions
@@ -43,6 +47,7 @@ union __gen_value {
static inline uint64_t
__gen_field(uint64_t v, uint32_t start, uint32_t end)
{
+ __gen_validate_value(v);
#if DEBUG
if (end - start + 1 < 64)
assert(v < 1ul << (end - start + 1));
@@ -54,6 +59,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
static inline uint64_t
__gen_offset(uint64_t v, uint32_t start, uint32_t end)
{
+ __gen_validate_value(v);
#if DEBUG
uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start;
@@ -66,6 +72,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
static inline uint32_t
__gen_float(float v)
{
+ __gen_validate_value(v);
return ((union __gen_value) { .f = (v) }).dw;
}