From: Jason Ekstrand Date: Thu, 22 Oct 2015 04:45:12 +0000 (-0700) Subject: nir/spirv: Add defaults for GS input/output primitive types X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;ds=sidebyside;h=0329a252bd7418d778027c361e6a2bee7d69caab;p=mesa.git nir/spirv: Add defaults for GS input/output primitive types These are supposed to be specified in the SPIR-V source as SpvExecutionMode enums but glslang isn't giving them to us. A bug has been filed: https://github.com/KhronosGroup/glslang/issues/84 --- diff --git a/src/glsl/nir/spirv_to_nir.c b/src/glsl/nir/spirv_to_nir.c index ce191514763..3d23f7ca1fd 100644 --- a/src/glsl/nir/spirv_to_nir.c +++ b/src/glsl/nir/spirv_to_nir.c @@ -3160,6 +3160,12 @@ spirv_to_nir(const uint32_t *words, size_t word_count, b->values = rzalloc_array(b, struct vtn_value, value_id_bound); exec_list_make_empty(&b->functions); + /* XXX: We shouldn't need these defaults */ + if (b->shader->stage == MESA_SHADER_GEOMETRY) { + b->shader->info.gs.vertices_in = 3; + b->shader->info.gs.output_primitive = 4; /* GL_TRIANGLES */ + } + /* Handle all the preamble instructions */ words = vtn_foreach_instruction(b, words, word_end, vtn_handle_preamble_instruction);