[WINED3D 7/7] Fix lookup for LOOP register

Jason Green jave27 at gmail.com
Fri Jun 16 15:13:01 CDT 2006


forgot the file.  :-)

On 6/16/06, Jason Green <jave27 at gmail.com> wrote:
> - The LOOP register is an extended register and wasn't being checked
> for in the current code.  This moves the check up a level and checks
> against the instruction code which is more efficient anyway.
>
-------------- next part --------------
From nobody Mon Sep 17 00:00:00 2001
From: Jason <jason at jave02.(none)>
Date: Fri, 16 Jun 2006 16:00:50 -0400
Subject: [PATCH 7/7] Fix lookup for LOOP register

- The LOOP register is an extended register and wasn't being checked for in the current code.  This moves the check up a level and checks against the instruction code which is more efficient anyway.

---

 dlls/wined3d/baseshader.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

7f25c248f7aee0af810d232b471dd8c6bf8fddf0
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index e50eb35..004a0ef 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -363,6 +363,11 @@ void shader_get_registers_used(
         } else if (D3DSIO_DEF == curOpcode->opcode) {
             pToken += curOpcode->num_params;
 
+        /* If there's a loop in the shader */
+        } else if (D3DSIO_LOOP == curOpcode->opcode) {
+            reg_maps->loop = 1;
+            pToken += curOpcode->num_params;
+        
         /* Set texture, address, temporary registers */
         } else {
             int i, limit;
@@ -411,9 +416,6 @@ void shader_get_registers_used(
 
                 else if (D3DSPR_INPUT == regtype && !pshader)
                     reg_maps->attributes[reg] = 1;
-
-                else if (D3DSPR_LOOP == regtype)
-                    reg_maps->loop = 1;
              }
         }
     }
-- 
1.3.3


More information about the wine-patches mailing list