diff options
| -rw-r--r-- | src/mesa/state_tracker/st_mesa_to_tgsi.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c index bacd091853..686ccb9734 100644 --- a/src/mesa/state_tracker/st_mesa_to_tgsi.c +++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c @@ -738,9 +738,12 @@ emit_adjusted_wpos( struct st_translate *t,     struct ureg_dst wpos_temp = ureg_DECL_temporary(ureg);     struct ureg_src wpos_input = t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]]; +   /* Note that we bias X and Y and pass Z and W through unchanged. +    * The shader might also use gl_FragCoord.w and .z. +    */     ureg_ADD(ureg, -            ureg_writemask(wpos_temp, TGSI_WRITEMASK_X | TGSI_WRITEMASK_Y), -            wpos_input, ureg_imm1f(ureg, value)); +            ureg_writemask(wpos_temp, TGSI_WRITEMASK_XYZW), +            wpos_input, ureg_imm4f(ureg, value, value, 0.0f, 0.0f));     t->inputs[t->inputMapping[FRAG_ATTRIB_WPOS]] = ureg_src(wpos_temp);  } | 
