radv: Don't explicitly reference vertex shader for draw_id.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 21 Oct 2017 16:23:47 +0000 (18:23 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 21 Oct 2017 18:00:22 +0000 (20:00 +0200)
With merged shaders the vertex shader may not exist. This got in
because the offending patch was written before merged shaders were
upstream, but committed after.

Fixes: 75dfab24a2c 'radv: refactor indirect draws with radv_draw_info'
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/amd/vulkan/radv_cmd_buffer.c

index 7ba0ea00f7ef9a0968e75a328886aaef86737f55..ba382c8691bdad93f0d61b37edf8fd985117227a 100644 (file)
@@ -2954,7 +2954,7 @@ radv_cs_emit_indirect_draw_packet(struct radv_cmd_buffer *cmd_buffer,
        struct radeon_winsys_cs *cs = cmd_buffer->cs;
        unsigned di_src_sel = indexed ? V_0287F0_DI_SRC_SEL_DMA
                                      : V_0287F0_DI_SRC_SEL_AUTO_INDEX;
-       bool draw_id_enable = cmd_buffer->state.pipeline->shaders[MESA_SHADER_VERTEX]->info.info.vs.needs_draw_id;
+       bool draw_id_enable = radv_get_vertex_shader(cmd_buffer->state.pipeline)->info.info.vs.needs_draw_id;
        uint32_t base_reg = cmd_buffer->state.pipeline->graphics.vtx_base_sgpr;
        assert(base_reg);