radv: set correct INDEX_TYPE for indexed indirect draws on GFX9
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 13 Oct 2017 16:01:56 +0000 (18:01 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Sat, 14 Oct 2017 10:05:19 +0000 (12:05 +0200)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_cmd_buffer.c

index 47495160aef24c8e547867e055eb34135df2a971..39dfffc3762479abcada72da13e7a6b3c5d893bc 100644 (file)
@@ -3058,8 +3058,14 @@ radv_cmd_draw_indexed_indirect_count(
 
        MAYBE_UNUSED unsigned cdw_max = radeon_check_space(cmd_buffer->device->ws, cmd_buffer->cs, 31 * MAX_VIEWS);
 
-       radeon_emit(cmd_buffer->cs, PKT3(PKT3_INDEX_TYPE, 0, 0));
-       radeon_emit(cmd_buffer->cs, cmd_buffer->state.index_type);
+       if (cmd_buffer->device->physical_device->rad_info.chip_class >= GFX9) {
+               radeon_set_uconfig_reg_idx(cmd_buffer->cs,
+                                          R_03090C_VGT_INDEX_TYPE,
+                                          2, cmd_buffer->state.index_type);
+       } else {
+               radeon_emit(cmd_buffer->cs, PKT3(PKT3_INDEX_TYPE, 0, 0));
+               radeon_emit(cmd_buffer->cs, cmd_buffer->state.index_type);
+       }
 
        radeon_emit(cmd_buffer->cs, PKT3(PKT3_INDEX_BASE, 1, 0));
        radeon_emit(cmd_buffer->cs, index_va);