ac/radv: move load base vertex abi setup to vertex shader.
authorDave Airlie <airlied@redhat.com>
Tue, 27 Feb 2018 23:53:51 +0000 (09:53 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 27 Feb 2018 23:58:12 +0000 (09:58 +1000)
This was segfaulting:
dEQP-VK.memory.pipeline_barrier.host_write_index_buffer.1024

Fixes: 8de6f797070 (ac/radeonsi: add load_base_vertex() to the abi)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/common/ac_nir_to_llvm.c

index 44d96d27d7f34b3f6ccf30587083091fe892bfc5..8b662f884f87ffc9c92f7871dc29aaabc92f597b 100644 (file)
@@ -6920,7 +6920,6 @@ LLVMModuleRef ac_translate_nir_to_llvm(LLVMTargetMachineRef tm,
                        ctx.gs_max_out_vertices = shaders[i]->info.gs.vertices_out;
                        ctx.abi.load_inputs = load_gs_input;
                        ctx.abi.emit_primitive = visit_end_primitive;
-                       ctx.abi.load_base_vertex = radv_load_base_vertex;
                } else if (shaders[i]->info.stage == MESA_SHADER_TESS_CTRL) {
                        ctx.tcs_outputs_read = shaders[i]->info.outputs_read;
                        ctx.tcs_patch_outputs_read = shaders[i]->info.patch_outputs_read;
@@ -6944,6 +6943,7 @@ LLVMModuleRef ac_translate_nir_to_llvm(LLVMTargetMachineRef tm,
                                                MAX2(1, ctx.shader_info->vs.vgpr_comp_cnt);
                                }
                        }
+                       ctx.abi.load_base_vertex = radv_load_base_vertex;
                } else if (shaders[i]->info.stage == MESA_SHADER_FRAGMENT) {
                        shader_info->fs.can_discard = shaders[i]->info.fs.uses_discard;
                        ctx.abi.lookup_interp_param = lookup_interp_param;