diff options
| author | Michal Krol <michal@vmware.com> | 2009-11-24 08:55:40 +0100 | 
|---|---|---|
| committer | Michal Krol <michal@vmware.com> | 2009-11-24 09:05:26 +0100 | 
| commit | 57221c54387a43e268a80ee6b578d57e03efcc5e (patch) | |
| tree | e32bc4bb87a66b8a27de05a28a1fbc44edf6c3a6 | |
| parent | 2176b3ed9ab832122e56aed3242dfda102a5fec6 (diff) | |
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.
| -rw-r--r-- | 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 d4c8aadaf9..c4c28522c8 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;  };  /** | 
