radv: fix predication on gfx9
authorDave Airlie <airlied@redhat.com>
Thu, 24 Aug 2017 01:12:12 +0000 (02:12 +0100)
committerDave Airlie <airlied@redhat.com>
Thu, 24 Aug 2017 23:52:32 +0000 (00:52 +0100)
When I added gfx9 I did it wrong, this fixes it.

Fixes: 5247b311e9 "radv/gfx9: fix set predication packet."
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/si_cmd_buffer.c

index 913ec0e7d2ab8974abb809812ed69ea03a8ec954..ef4f9264f9d95017438a556713a7b907a66499a8 100644 (file)
@@ -1133,8 +1133,10 @@ si_emit_cache_flush(struct radv_cmd_buffer *cmd_buffer)
 void
 si_emit_set_predication_state(struct radv_cmd_buffer *cmd_buffer, uint64_t va)
 {
-       uint32_t op = PRED_OP(PREDICATION_OP_BOOL64) | PREDICATION_DRAW_VISIBLE;
+       uint32_t op = 0;
 
+       if (va)
+               op = PRED_OP(PREDICATION_OP_BOOL64) | PREDICATION_DRAW_VISIBLE;
        if (cmd_buffer->device->physical_device->rad_info.chip_class >= GFX9) {
                radeon_emit(cmd_buffer->cs, PKT3(PKT3_SET_PREDICATION, 2, 0));
                radeon_emit(cmd_buffer->cs, op);