summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/i915/i915_state_derived.c7
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 {