mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 22:20:09 +01:00
st/nine: Fix support for ps 1.4 dw and dz modifiers
RCP was used incorrectly to support NINED3DSPSM_DW and NINED3DSPSM_DZ. src.x was used as input instead of src.w or src.z. Fixes: https://github.com/iXit/Mesa-3D/issues/271 Signed-off-by: Axel Davy <axel.davy@ens.fr> Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
This commit is contained in:
parent
d8ffe4d0ce
commit
442780ea37
1 changed files with 2 additions and 2 deletions
|
|
@ -1116,14 +1116,14 @@ tx_src_param(struct shader_translator *tx, const struct sm1_src_param *param)
|
|||
case NINED3DSPSM_DW:
|
||||
tmp = tx_scratch(tx);
|
||||
/* NOTE: app is not allowed to read w with this modifier */
|
||||
ureg_RCP(ureg, ureg_writemask(tmp, NINED3DSP_WRITEMASK_3), src);
|
||||
ureg_RCP(ureg, ureg_writemask(tmp, NINED3DSP_WRITEMASK_3), ureg_scalar(src, TGSI_SWIZZLE_W));
|
||||
ureg_MUL(ureg, tmp, src, ureg_swizzle(ureg_src(tmp), NINE_SWIZZLE4(W,W,W,W)));
|
||||
src = ureg_src(tmp);
|
||||
break;
|
||||
case NINED3DSPSM_DZ:
|
||||
tmp = tx_scratch(tx);
|
||||
/* NOTE: app is not allowed to read z with this modifier */
|
||||
ureg_RCP(ureg, ureg_writemask(tmp, NINED3DSP_WRITEMASK_2), src);
|
||||
ureg_RCP(ureg, ureg_writemask(tmp, NINED3DSP_WRITEMASK_2), ureg_scalar(src, TGSI_SWIZZLE_Z));
|
||||
ureg_MUL(ureg, tmp, src, ureg_swizzle(ureg_src(tmp), NINE_SWIZZLE4(Z,Z,Z,Z)));
|
||||
src = ureg_src(tmp);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue