[Mesa-dev] [PATCH] st/pbo: select the right swizzle for instance IDs

Nicolai Hähnle nhaehnle at gmail.com
Thu Apr 6 14:50:12 UTC 2017


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

The system value only has an X component, and radeonsi started
checking that in debug builds.

Reported-by: Michel Dänzer <michel.daenzer at amd.com>
Fixes: 4cf29427770f ("radeonsi: support 64-bit system values")
---
 src/mesa/state_tracker/st_pbo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_pbo.c b/src/mesa/state_tracker/st_pbo.c
index 2c63c09..1ded583 100644
--- a/src/mesa/state_tracker/st_pbo.c
+++ b/src/mesa/state_tracker/st_pbo.c
@@ -326,21 +326,22 @@ st_pbo_create_vs(struct st_context *st)
    /* out_pos = in_pos */
    ureg_MOV(ureg, out_pos, in_pos);
 
    if (st->pbo.layers) {
       if (st->pbo.use_gs) {
          /* out_pos.z = i2f(gl_InstanceID) */
          ureg_I2F(ureg, ureg_writemask(out_pos, TGSI_WRITEMASK_Z),
                         ureg_scalar(in_instanceid, TGSI_SWIZZLE_X));
       } else {
          /* out_layer = gl_InstanceID */
-         ureg_MOV(ureg, out_layer, in_instanceid);
+         ureg_MOV(ureg, ureg_writemask(out_layer, TGSI_WRITEMASK_X),
+                        ureg_scalar(in_instanceid, TGSI_SWIZZLE_X));
       }
    }
 
    ureg_END(ureg);
 
    return ureg_create_shader_and_destroy(ureg, st->pipe);
 }
 
 void *
 st_pbo_create_gs(struct st_context *st)
-- 
2.9.3



More information about the mesa-dev mailing list