From f74a81fa4400c2b556cdc56ad34511faf8a89628 Mon Sep 17 00:00:00 2001
From: Michal Krol <[email protected]>
Date: Fri, 20 Nov 2009 13:59:49 +0100
Subject: [PATCH] gallium: Refactor the instruction predicate TGSI token.

Rename it to tgsi_instruction_predicate -- it's no longer an extended
token. Its presence is indicated by a new flag in tgsi_instruction that
indicates whether an instruction is predicated.

Also, change predicate index representation to match the other
tokens that specify register indices.
---
 src/gallium/include/pipe/p_shader_tokens.h |   17 +++++++----------
 1 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/src/gallium/include/pipe/p_shader_tokens.h 
b/src/gallium/include/pipe/p_shader_tokens.h
index d4c8aad..54c173b 100644
--- a/src/gallium/include/pipe/p_shader_tokens.h
+++ b/src/gallium/include/pipe/p_shader_tokens.h
@@ -293,6 +293,8 @@ union tgsi_immediate_data
  * respectively. For a given operation code, those numbers are fixed 
and are
  * present here only for convenience.
  *
+ * If Predicate is TRUE, tgsi_instruction_predicate token immediately 
follows.
+ *
  * If Extended is TRUE, it is now executed.
  *
  * Saturate controls how are final results in destination registers 
modified.
@@ -306,7 +308,8 @@ struct tgsi_instruction
    unsigned Saturate   : 2;  /* TGSI_SAT_ */
    unsigned NumDstRegs : 2;  /* UINT */
    unsigned NumSrcRegs : 4;  /* UINT */
-   unsigned Padding    : 3;
+   unsigned Predicate  : 1;  /* BOOL */
+   unsigned Padding    : 2;
    unsigned Extended   : 1;  /* BOOL */
 };
 
@@ -323,7 +326,6 @@ struct tgsi_instruction
 
 #define TGSI_INSTRUCTION_EXT_TYPE_LABEL     1
 #define TGSI_INSTRUCTION_EXT_TYPE_TEXTURE   2
-#define TGSI_INSTRUCTION_EXT_TYPE_PREDICATE 3
 
 struct tgsi_instruction_ext
 {
@@ -339,9 +341,6 @@ struct tgsi_instruction_ext
  * If tgsi_instruction_ext::Type is TGSI_INSTRUCTION_EXT_TYPE_TEXTURE, it
  * should be cast to tgsi_instruction_ext_texture.
  *
- * If tgsi_instruction_ext::Type is TGSI_INSTRUCTION_EXT_TYPE_PREDICATE, it
- * should be cast to tgsi_instruction_ext_predicate.
- *
  * If tgsi_instruction_ext::Extended is TRUE, another tgsi_instruction_ext
  * follows.
  */
@@ -382,17 +381,15 @@ struct tgsi_instruction_ext_texture
  * For SM3, the following constraint applies.
  *   - Swizzle is either set to identity or replicate.
  */
-struct tgsi_instruction_ext_predicate
+struct tgsi_instruction_predicate
 {
-   unsigned Type     : 4;  /* TGSI_INSTRUCTION_EXT_TYPE_PREDICATE */
+   int      Index    : 16; /* SINT */
    unsigned SwizzleX : 2;  /* TGSI_SWIZZLE_x */
    unsigned SwizzleY : 2;  /* TGSI_SWIZZLE_x */
    unsigned SwizzleZ : 2;  /* TGSI_SWIZZLE_x */
    unsigned SwizzleW : 2;  /* TGSI_SWIZZLE_x */
    unsigned Negate   : 1;  /* BOOL */
-   unsigned SrcIndex : 8;  /* UINT */
-   unsigned Padding  : 10;
-   unsigned Extended : 1;  /* BOOL */
+   unsigned Padding  : 7;
 };
 
 /**
-- 
1.6.4.msysgit.0


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to