From ceeaf93c8e0ac502410da82e07aa25b15b065b9c Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Wed, 14 Aug 2019 15:13:55 -0700 Subject: [PATCH] anv: Properly initialize device->slice_hash. When subslices_delta == 0 and we take the early return, device->slice_hash is not initialized on GEN11. It then causes a segfault when going through anv_DestroyDevice, if compiled with valgrind. Fixes: 7bc022b4bbc ("anv/gen11: Emit SLICE_HASH_TABLE when pipes are unbalanced.) Reviewed-by: Jason Ekstrand --- src/intel/vulkan/genX_state.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c index de8b753dd34..3bf4890b4a4 100644 --- a/src/intel/vulkan/genX_state.c +++ b/src/intel/vulkan/genX_state.c @@ -92,6 +92,8 @@ static void genX(emit_slice_hashing_state)(struct anv_device *device, struct anv_batch *batch) { + device->slice_hash = (struct anv_state) { 0 }; + #if GEN_GEN == 11 const unsigned *ppipe_subslices = device->info.ppipe_subslices; int subslices_delta = ppipe_subslices[0] - ppipe_subslices[1]; @@ -156,8 +158,6 @@ genX(emit_slice_hashing_state)(struct anv_device *device, anv_batch_emit(batch, GENX(3DSTATE_3D_MODE), mode) { mode.SliceHashingTableEnable = true; } -#else - device->slice_hash = (struct anv_state) { 0 }; #endif } -- 2.30.2