[Mesa-dev] [PATCH] i965: Use a ZERO() macro to initialize GENX_* structs.

Rafael Antognolli rafael.antognolli at intel.com
Fri Jul 14 18:15:46 UTC 2017


gen4 have commands which start with KernelStartPointer, which is a
struct, so if we initialize it struct = { 0 }, we get warnings on some
compilers.

This macro works around that and will silent such warnings.

Signed-off-by: Rafael Antognolli <rafael.antognolli at intel.com>
Cc: Jason Ekstrand <jason at jlekstrand.net>
---
 src/mesa/drivers/dri/i965/genX_state_upload.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c
index 54a547c..7340ed2 100644
--- a/src/mesa/drivers/dri/i965/genX_state_upload.c
+++ b/src/mesa/drivers/dri/i965/genX_state_upload.c
@@ -205,8 +205,10 @@ KSP(struct brw_context *brw, uint32_t offset)
       _dw + 1; /* Array starts at dw[1] */             \
    })
 
+#define ZERO(T) ({ T tmp; memset(&tmp, 0, sizeof(tmp)); tmp; })
+
 #define brw_state_emit(brw, cmd, align, offset, name)              \
-   for (struct cmd name = { 0, },                                  \
+   for (struct cmd name = ZERO(struct cmd),                        \
         *_dst = brw_state_batch(brw, _brw_cmd_length(cmd) * 4,     \
                                 align, offset);                    \
         __builtin_expect(_dst != NULL, 1);                         \
-- 
2.9.4



More information about the mesa-dev mailing list