mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-28 02:10:37 +02:00
vk/emit: Use valgrind to validate every packed field
This commit is contained in:
parent
9cae3d18ac
commit
047ed02723
2 changed files with 8 additions and 1 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include <valgrind.h>
|
||||
#include <memcheck.h>
|
||||
#define VG(x) x
|
||||
#define __gen_validate_value(x) VALGRIND_CHECK_MEM_IS_DEFINED(&(x), sizeof(x))
|
||||
#else
|
||||
#define VG(x)
|
||||
#endif
|
||||
|
|
@ -488,7 +489,6 @@ __gen_combine_address(struct anv_batch *batch, void *location,
|
|||
}; \
|
||||
void *__dst = anv_batch_emit_dwords(batch, cmd ## _length); \
|
||||
cmd ## _pack(batch, __dst, &__template); \
|
||||
VG(VALGRIND_CHECK_MEM_IS_DEFINED(__dst, (cmd ## _length) * 4)); \
|
||||
} while (0)
|
||||
|
||||
#define anv_batch_emitn(batch, n, cmd, ...) ({ \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue