radv: set fmask state to all 0s when no fmask. (v2)
authorDave Airlie <airlied@redhat.com>
Fri, 9 Jun 2017 01:11:29 +0000 (02:11 +0100)
committerDave Airlie <airlied@redhat.com>
Fri, 9 Jun 2017 19:41:55 +0000 (20:41 +0100)
The shader reads the descriptor to decide if it should take the
fmask value, however we weren't initing it always, which meant
random crap, esp with MSAA depth textures.

Fixes random hangs with:
dEQP-VK.glsl.builtin_var.fragdepth.*

v2: check fmask_state is not NULL

Fixes: f4e499ec791 "radv: add initial non-conformant radv vulkan driver"
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_image.c

index 9a2f32bec7676a38182c08ef8e1683be7e67d845..91c7e5ff79fe73c469dc3fa847bfa0af22a4363d 100644 (file)
@@ -499,7 +499,8 @@ si_make_texture_descriptor(struct radv_device *device,
                                S_008F20_PITCH_GFX6(image->fmask.pitch_in_pixels - 1);
                        fmask_state[5] |= S_008F24_LAST_ARRAY(last_layer);
                }
-       }
+       } else if (fmask_state)
+               memset(fmask_state, 0, 8 * 4);
 }
 
 static void