[Mesa-dev] [PATCH] svga: remove special-case code for texkil w component

Brian Paul brianp at vmware.com
Wed Nov 20 16:09:01 PST 2013


Not actually needed.  Fixes piglit ARB_fragment_program/kil-swizzle test.
---
 src/gallium/drivers/svga/svga_tgsi_insn.c |   24 ++----------------------
 1 file changed, 2 insertions(+), 22 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_tgsi_insn.c b/src/gallium/drivers/svga/svga_tgsi_insn.c
index 0fc385a..7ddeb2d 100644
--- a/src/gallium/drivers/svga/svga_tgsi_insn.c
+++ b/src/gallium/drivers/svga/svga_tgsi_insn.c
@@ -1391,10 +1391,6 @@ emit_kill_if(struct svga_shader_emitter *emit,
 {
    const struct tgsi_full_src_register *reg = &insn->Src[0];
    struct src_register src0, srcIn;
-   /* is the W component tested in another position? */
-   const boolean w_tested = (reg->Register.SwizzleW == reg->Register.SwizzleX ||
-                             reg->Register.SwizzleW == reg->Register.SwizzleY ||
-                             reg->Register.SwizzleW == reg->Register.SwizzleZ);
    const boolean special = (reg->Register.Absolute ||
                             reg->Register.Negate ||
                             reg->Register.Indirect ||
@@ -1406,16 +1402,14 @@ emit_kill_if(struct svga_shader_emitter *emit,
 
    src0 = srcIn = translate_src_register( emit, reg );
 
-   if (special || !w_tested) {
+   if (special) {
       /* need a temp reg */
       temp = get_temp( emit );
    }
 
    if (special) {
       /* move the source into a temp register */
-      submit_op1( emit, inst_token( SVGA3DOP_MOV ),
-                  writemask( temp, TGSI_WRITEMASK_XYZ ),
-                  src0 );
+      submit_op1(emit, inst_token(SVGA3DOP_MOV), temp, src0);
 
       src0 = src( temp );
    }
@@ -1424,20 +1418,6 @@ emit_kill_if(struct svga_shader_emitter *emit,
    if (!submit_op0( emit, inst_token( SVGA3DOP_TEXKILL ), dst(src0) ))
       return FALSE;
 
-   if (!w_tested) {
-      /* need to emit a second texkill to test the W component */
-      /* put src.wwww into temp register */
-      if (!submit_op1(emit,
-                      inst_token( SVGA3DOP_MOV ),
-                      writemask( temp, TGSI_WRITEMASK_XYZ ),
-                      scalar(srcIn, TGSI_SWIZZLE_W)))
-         return FALSE;
-
-      /* second texkill */
-      if (!submit_op0( emit, inst_token( SVGA3DOP_TEXKILL ), temp ))
-         return FALSE;
-   }
-
    return TRUE;
 }
 
-- 
1.7.10.4



More information about the mesa-dev mailing list