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"