First pass on tgsi deco.
authormichal <michal@michal-laptop.(none)>
Wed, 22 Aug 2007 16:21:02 +0000 (17:21 +0100)
committermichal <michal@michal-laptop.(none)>
Wed, 22 Aug 2007 16:21:02 +0000 (17:21 +0100)
src/mesa/pipe/tgsi/deco/deco_caps.c [new file with mode: 0644]
src/mesa/pipe/tgsi/deco/deco_caps.h

diff --git a/src/mesa/pipe/tgsi/deco/deco_caps.c b/src/mesa/pipe/tgsi/deco/deco_caps.c
new file mode 100644 (file)
index 0000000..66df05a
--- /dev/null
@@ -0,0 +1,10 @@
+#include "tgsi_platform.h"
+#include "tgsi_deco.h"
+
+void
+tgsi_deco_caps_init(
+   struct tgsi_deco_caps *caps )
+{
+   memset( caps, 0, sizeof( *caps ) );
+}
+
index b3a40b03d8a138f1758954aa710e4ad896c25a6d..40ca1c96f378cd691bdcda5177c33ae38ec9dd72 100644 (file)
@@ -5,7 +5,104 @@
 extern "C" {
 #endif // defined __cplusplus
 
+struct tgsi_deco_caps
+{
+   /*
+    * Predicates (D3D9-specific).
+    *
+    * Constraints:
+    *    1. Token tgsi_dst_register_ext_predicate must not be used.
+    *    2. Token tgsi_instruction_ext_predicate must not be used.
+    */
+   unsigned Predicates     : 1;
 
+   /*
+    * Destination register post-modulate.
+    *
+    * Constraints:
+    *    1. Field tgsi_dst_register_ext_modulate::Modulate
+    *       must be set to TGSI_MODULATE_1X.
+    */
+   unsigned DstModulate    : 1;
+
+   /*
+    * Condition codes (NVIDIA-specific).
+    *
+    * Constraints:
+    *    1. Token tgsi_dst_register_ext_concode must not be used.
+    *    2. Field tgsi_instruction_ext_nv::CondDstUpdate must be set to FALSE.
+    *    3. Field tgsi_instruction_ext_nv::CondFlowEnable must be set to FALSE.
+    */
+   unsigned ConCodes       : 1;
+
+   /*
+    * Source register invert.
+    *
+    * Constraints:
+    *    1. Field tgsi_src_register_ext_mod::Complement must be set to FALSE.
+    */
+   unsigned SrcInvert      : 1;
+
+   /*
+    * Source register bias.
+    *
+    * Constraints:
+    *    1. Field tgsi_src_register_ext_mod::Bias must be set to FALSE.
+    */
+   unsigned SrcBias        : 1;
+
+   /*
+    * Source register scale by 2.
+    *
+    * Constraints:
+    *    1. Field tgsi_src_register_ext_mod::Scale2X must be set to FALSE.
+    */
+   unsigned SrcScale       : 1;
+
+   /*
+    * Source register absolute.
+    *
+    * Constraints:
+    *    1. Field tgsi_src_register_ext_mod::Absolute must be set to FALSE.
+    */
+   unsigned SrcAbsolute    : 1;
+
+   /*
+    * Source register force sign.
+    *
+    * Constraints:
+    *    1. Fields tgsi_src_register_ext_mod::Absolute and
+    *       tgsi_src_register_ext_mod::Negate must not be both set to TRUE
+    *       at the same time.
+    */
+   unsigned SrcForceSign   : 1;
+
+   /*
+    * Source register divide.
+    *
+    * Constraints:
+    *    1. Field tgsi_src_register_ext_swz::ExtDivide
+    *       must be set to TGSI_EXTSWIZZLE_ONE.
+    */
+   unsigned SrcDivide      : 1;
+
+   /*
+    * Source register extended swizzle.
+    *
+    * Constraints:
+    *    1. Field tgsi_src_register_ext_swz::ExtSwizzleX/Y/Z/W
+    *       must be set to TGSI_EXTSWIZZLE_X/Y/Z/W.
+    *    2. Fields tgsi_src_register_ext_swz::NegateX/Y/Z/W
+    *       must all be set to the same value.
+    */
+   unsigned SrcExtSwizzle  : 1;
+
+   unsigned Padding        : 22;
+};
+
+void
+tgsi_deco_caps_init(
+   struct tgsi_deco_caps *caps );
 
 #if defined __cplusplus
 } // extern "C"