Re: [Mesa-dev] [PATCH] st/nine: Fix support for ps 1.4 dw and dz modifiers

2017-03-28 Thread Axel Davy

This probably should be CC Mesa 17 stable. I'll add it before push.

On 26/03/2017 23:00, Axel Davy wrote:

RCP was used incorrectly to support NINED3DSPSM_DW and
NINED3DSPSM_DZ. src.x as used as input instead of src.w
or src.z.

Fixes: https://github.com/iXit/Mesa-3D/issues/271

Signed-off-by: Axel Davy 
---
  src/gallium/state_trackers/nine/nine_shader.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/nine/nine_shader.c 
b/src/gallium/state_trackers/nine/nine_shader.c
index 818d136ec0..8d6583fc44 100644
--- a/src/gallium/state_trackers/nine/nine_shader.c
+++ b/src/gallium/state_trackers/nine/nine_shader.c
@@ -1127,14 +1127,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;



___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] st/nine: Fix support for ps 1.4 dw and dz modifiers

2017-03-26 Thread Axel Davy
RCP was used incorrectly to support NINED3DSPSM_DW and
NINED3DSPSM_DZ. src.x as used as input instead of src.w
or src.z.

Fixes: https://github.com/iXit/Mesa-3D/issues/271

Signed-off-by: Axel Davy 
---
 src/gallium/state_trackers/nine/nine_shader.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/nine/nine_shader.c 
b/src/gallium/state_trackers/nine/nine_shader.c
index 818d136ec0..8d6583fc44 100644
--- a/src/gallium/state_trackers/nine/nine_shader.c
+++ b/src/gallium/state_trackers/nine/nine_shader.c
@@ -1127,14 +1127,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;
-- 
2.12.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev