diff options
Diffstat (limited to 'src/gallium/drivers/i915/i915_state_derived.c')
-rw-r--r-- | src/gallium/drivers/i915/i915_state_derived.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/i915/i915_state_derived.c b/src/gallium/drivers/i915/i915_state_derived.c index 177b8545985..dbfbc84c9eb 100644 --- a/src/gallium/drivers/i915/i915_state_derived.c +++ b/src/gallium/drivers/i915/i915_state_derived.c @@ -145,7 +145,12 @@ static void calculate_vertex_layout(struct i915_context *i915) uint hwtc; if (texCoords[i]) { hwtc = TEXCOORDFMT_4D; - src = draw_find_shader_output(i915->draw, TGSI_SEMANTIC_GENERIC, fs->generic_mapping[i]); + if (fs->generic_mapping[i] == I915_SEMANTIC_POS) { + src = draw_find_shader_output(i915->draw, TGSI_SEMANTIC_POSITION, 0); + } + else { + src = draw_find_shader_output(i915->draw, TGSI_SEMANTIC_GENERIC, fs->generic_mapping[i]); + } draw_emit_vertex_attr(&vinfo, EMIT_4F, src); } else { |