radv/gfx9: fix set predication packet.
The predication packet changed format on GFX9, update the driver. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Cc: "17.2" <mesa-stable@lists.freedesktop.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -1133,15 +1133,18 @@ si_emit_cache_flush(struct radv_cmd_buffer *cmd_buffer)
|
|||||||
void
|
void
|
||||||
si_emit_set_predication_state(struct radv_cmd_buffer *cmd_buffer, uint64_t va)
|
si_emit_set_predication_state(struct radv_cmd_buffer *cmd_buffer, uint64_t va)
|
||||||
{
|
{
|
||||||
uint32_t val = 0;
|
uint32_t op = PRED_OP(PREDICATION_OP_BOOL64) | PREDICATION_DRAW_VISIBLE;
|
||||||
|
|
||||||
if (va)
|
if (cmd_buffer->device->physical_device->rad_info.chip_class >= GFX9) {
|
||||||
val = (((va >> 32) & 0xff) |
|
radeon_emit(cmd_buffer->cs, PKT3(PKT3_SET_PREDICATION, 2, 0));
|
||||||
PRED_OP(PREDICATION_OP_BOOL64)|
|
radeon_emit(cmd_buffer->cs, op);
|
||||||
PREDICATION_DRAW_VISIBLE);
|
radeon_emit(cmd_buffer->cs, va);
|
||||||
radeon_emit(cmd_buffer->cs, PKT3(PKT3_SET_PREDICATION, 1, 0));
|
radeon_emit(cmd_buffer->cs, va >> 32);
|
||||||
radeon_emit(cmd_buffer->cs, va);
|
} else {
|
||||||
radeon_emit(cmd_buffer->cs, val);
|
radeon_emit(cmd_buffer->cs, PKT3(PKT3_SET_PREDICATION, 1, 0));
|
||||||
|
radeon_emit(cmd_buffer->cs, va);
|
||||||
|
radeon_emit(cmd_buffer->cs, op | ((va >> 32) & 0xFF));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set this if you want the 3D engine to wait until CP DMA is done.
|
/* Set this if you want the 3D engine to wait until CP DMA is done.
|
||||||
|
Reference in New Issue
Block a user