#define TGSI_PROCESSOR_FRAGMENT 0
#define TGSI_PROCESSOR_VERTEX 1
#define TGSI_PROCESSOR_GEOMETRY 2
-#define TGSI_PROCESSOR_COMPUTE 3
+#define TGSI_PROCESSOR_TESS_CTRL 3
+#define TGSI_PROCESSOR_TESS_EVAL 4
+#define TGSI_PROCESSOR_COMPUTE 5
struct tgsi_processor
{
#define TGSI_SEMANTIC_SAMPLEPOS 25
#define TGSI_SEMANTIC_SAMPLEMASK 26
#define TGSI_SEMANTIC_INVOCATIONID 27
-#define TGSI_SEMANTIC_COUNT 28 /**< number of semantic values */
+#define TGSI_SEMANTIC_VERTEXID_NOBASE 28
+#define TGSI_SEMANTIC_BASEVERTEX 29
+#define TGSI_SEMANTIC_PATCH 30 /**< generic per-patch semantic */
+#define TGSI_SEMANTIC_TESSCOORD 31 /**< coordinate being processed by tess */
+#define TGSI_SEMANTIC_TESSOUTER 32 /**< outer tessellation levels */
+#define TGSI_SEMANTIC_TESSINNER 33 /**< inner tessellation levels */
+#define TGSI_SEMANTIC_VERTICESIN 34 /**< number of input vertices */
+#define TGSI_SEMANTIC_COUNT 35 /**< number of semantic values */
struct tgsi_declaration_semantic
{
unsigned Padding : 22;
};
+enum tgsi_return_type {
+ TGSI_RETURN_TYPE_UNORM = 0,
+ TGSI_RETURN_TYPE_SNORM,
+ TGSI_RETURN_TYPE_SINT,
+ TGSI_RETURN_TYPE_UINT,
+ TGSI_RETURN_TYPE_FLOAT,
+ TGSI_RETURN_TYPE_COUNT
+};
+
struct tgsi_declaration_sampler_view {
unsigned Resource : 8; /**< one of TGSI_TEXTURE_ */
- unsigned ReturnTypeX : 6; /**< one of enum pipe_type */
- unsigned ReturnTypeY : 6; /**< one of enum pipe_type */
- unsigned ReturnTypeZ : 6; /**< one of enum pipe_type */
- unsigned ReturnTypeW : 6; /**< one of enum pipe_type */
+ unsigned ReturnTypeX : 6; /**< one of enum tgsi_return_type */
+ unsigned ReturnTypeY : 6; /**< one of enum tgsi_return_type */
+ unsigned ReturnTypeZ : 6; /**< one of enum tgsi_return_type */
+ unsigned ReturnTypeW : 6; /**< one of enum tgsi_return_type */
};
struct tgsi_declaration_array {
#define TGSI_IMM_FLOAT32 0
#define TGSI_IMM_UINT32 1
#define TGSI_IMM_INT32 2
+#define TGSI_IMM_FLOAT64 3
struct tgsi_immediate
{
#define TGSI_PROPERTY_VS_PROHIBIT_UCPS 7
#define TGSI_PROPERTY_GS_INVOCATIONS 8
#define TGSI_PROPERTY_VS_WINDOW_SPACE_POSITION 9
-#define TGSI_PROPERTY_COUNT 10
+#define TGSI_PROPERTY_TCS_VERTICES_OUT 10
+#define TGSI_PROPERTY_TES_PRIM_MODE 11
+#define TGSI_PROPERTY_TES_SPACING 12
+#define TGSI_PROPERTY_TES_VERTEX_ORDER_CW 13
+#define TGSI_PROPERTY_TES_POINT_MODE 14
+#define TGSI_PROPERTY_COUNT 15
struct tgsi_property {
unsigned Type : 4; /**< TGSI_TOKEN_TYPE_PROPERTY */
#define TGSI_OPCODE_MAD 16
#define TGSI_OPCODE_SUB 17
#define TGSI_OPCODE_LRP 18
-#define TGSI_OPCODE_CND 19
+#define TGSI_OPCODE_FMA 19
#define TGSI_OPCODE_SQRT 20
#define TGSI_OPCODE_DP2A 21
/* gap */
#define TGSI_OPCODE_XPD 31
/* gap */
#define TGSI_OPCODE_ABS 33
-#define TGSI_OPCODE_RCC 34
+ /* gap */
#define TGSI_OPCODE_DPH 35
#define TGSI_OPCODE_COS 36
#define TGSI_OPCODE_DDX 37
#define TGSI_OPCODE_PK2US 41
#define TGSI_OPCODE_PK4B 42
#define TGSI_OPCODE_PK4UB 43
-#define TGSI_OPCODE_RFL 44
+ /* gap */
#define TGSI_OPCODE_SEQ 45
-#define TGSI_OPCODE_SFL 46
+ /* gap */
#define TGSI_OPCODE_SGT 47
#define TGSI_OPCODE_SIN 48
#define TGSI_OPCODE_SLE 49
#define TGSI_OPCODE_SNE 50
-#define TGSI_OPCODE_STR 51
+ /* gap */
#define TGSI_OPCODE_TEX 52
#define TGSI_OPCODE_TXD 53
#define TGSI_OPCODE_TXP 54
#define TGSI_OPCODE_UP2US 56
#define TGSI_OPCODE_UP4B 57
#define TGSI_OPCODE_UP4UB 58
-#define TGSI_OPCODE_X2D 59
-#define TGSI_OPCODE_ARA 60
+ /* gap */
#define TGSI_OPCODE_ARR 61
-#define TGSI_OPCODE_BRA 62
+ /* gap */
#define TGSI_OPCODE_CAL 63
#define TGSI_OPCODE_RET 64
#define TGSI_OPCODE_SSG 65 /* SGN */
#define TGSI_OPCODE_CMP 66
#define TGSI_OPCODE_SCS 67
#define TGSI_OPCODE_TXB 68
-#define TGSI_OPCODE_NRM 69
+ /* gap */
#define TGSI_OPCODE_DIV 70
#define TGSI_OPCODE_DP2 71
#define TGSI_OPCODE_TXL 72
#define TGSI_OPCODE_UIF 75
#define TGSI_OPCODE_ELSE 77
#define TGSI_OPCODE_ENDIF 78
- /* gap */
+
+#define TGSI_OPCODE_DDX_FINE 79
+#define TGSI_OPCODE_DDY_FINE 80
+
#define TGSI_OPCODE_PUSHA 81
#define TGSI_OPCODE_POPA 82
#define TGSI_OPCODE_CEIL 83
#define TGSI_OPCODE_FSLT 110
#define TGSI_OPCODE_FSNE 111
-#define TGSI_OPCODE_NRM4 112
+ /* gap */
#define TGSI_OPCODE_CALLNZ 113
/* gap */
#define TGSI_OPCODE_BREAKC 115
#define TGSI_OPCODE_KILL_IF 116 /* conditional kill */
#define TGSI_OPCODE_END 117 /* aka HALT */
- /* gap */
+#define TGSI_OPCODE_DFMA 118
#define TGSI_OPCODE_F2I 119
#define TGSI_OPCODE_IDIV 120
#define TGSI_OPCODE_IMAX 121
#define TGSI_OPCODE_INTERP_SAMPLE 193
#define TGSI_OPCODE_INTERP_OFFSET 194
-#define TGSI_OPCODE_LAST 195
-
-#define TGSI_SAT_NONE 0 /* do not saturate */
-#define TGSI_SAT_ZERO_ONE 1 /* clamp to [0,1] */
-#define TGSI_SAT_MINUS_PLUS_ONE 2 /* clamp to [-1,1] */
+/* sm5 marked opcodes are supported in D3D11 optionally - also DMOV, DMOVC */
+#define TGSI_OPCODE_F2D 195 /* SM5 */
+#define TGSI_OPCODE_D2F 196
+#define TGSI_OPCODE_DABS 197
+#define TGSI_OPCODE_DNEG 198 /* SM5 */
+#define TGSI_OPCODE_DADD 199 /* SM5 */
+#define TGSI_OPCODE_DMUL 200 /* SM5 */
+#define TGSI_OPCODE_DMAX 201 /* SM5 */
+#define TGSI_OPCODE_DMIN 202 /* SM5 */
+#define TGSI_OPCODE_DSLT 203 /* SM5 */
+#define TGSI_OPCODE_DSGE 204 /* SM5 */
+#define TGSI_OPCODE_DSEQ 205 /* SM5 */
+#define TGSI_OPCODE_DSNE 206 /* SM5 */
+#define TGSI_OPCODE_DRCP 207 /* eg, cayman */
+#define TGSI_OPCODE_DSQRT 208 /* eg, cayman also has DRSQ */
+#define TGSI_OPCODE_DMAD 209
+#define TGSI_OPCODE_DFRAC 210 /* eg, cayman */
+#define TGSI_OPCODE_DLDEXP 211 /* eg, cayman */
+#define TGSI_OPCODE_DFRACEXP 212 /* eg, cayman */
+#define TGSI_OPCODE_D2I 213
+#define TGSI_OPCODE_I2D 214
+#define TGSI_OPCODE_D2U 215
+#define TGSI_OPCODE_U2D 216
+#define TGSI_OPCODE_DRSQ 217 /* eg, cayman also has DRSQ */
+#define TGSI_OPCODE_DTRUNC 218 /* nvc0 */
+#define TGSI_OPCODE_DCEIL 219 /* nvc0 */
+#define TGSI_OPCODE_DFLR 220 /* nvc0 */
+#define TGSI_OPCODE_DROUND 221 /* nvc0 */
+#define TGSI_OPCODE_DSSG 222
+#define TGSI_OPCODE_LAST 223
/**
* Opcode is the operation code to execute. A given operation defines the
unsigned Type : 4; /* TGSI_TOKEN_TYPE_INSTRUCTION */
unsigned NrTokens : 8; /* UINT */
unsigned Opcode : 8; /* TGSI_OPCODE_ */
- unsigned Saturate : 2; /* TGSI_SAT_ */
+ unsigned Saturate : 1; /* BOOL */
unsigned NumDstRegs : 2; /* UINT */
unsigned NumSrcRegs : 4; /* UINT */
unsigned Predicate : 1; /* BOOL */
unsigned Label : 1;
unsigned Texture : 1;
- unsigned Padding : 1;
+ unsigned Padding : 2;
};
/*
*
* File, Index and Swizzle are handled the same as in tgsi_src_register.
*
- * If ArrayID is zero the whole register file might be is indirectly addressed,
+ * If ArrayID is zero the whole register file might be indirectly addressed,
* if not only the Declaration with this ArrayID is accessed by this operand.
*
*/