summaryrefslogtreecommitdiffstats
path: root/src/gallium/include
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2016-06-09 10:14:51 +1000
committerNicolai Hähnle <nicolai.haehnle@amd.com>2016-09-21 10:23:05 +0200
commit6e1a34d545e3f878f9fc7f33bf23dcc80f8668c3 (patch)
tree029a39729f81ffebd90025a8e5127ecfefb17838 /src/gallium/include
parent9694b23f66f4c41407289fb7d3ff25321042ef49 (diff)
downloadexternal_mesa3d-6e1a34d545e3f878f9fc7f33bf23dcc80f8668c3.zip
external_mesa3d-6e1a34d545e3f878f9fc7f33bf23dcc80f8668c3.tar.gz
external_mesa3d-6e1a34d545e3f878f9fc7f33bf23dcc80f8668c3.tar.bz2
gallium: add opcode and types for 64-bit integers. (v3)
This just adds the basic support for 64-bit opcodes, and the new types. v2: add conversion opcodes. add documentation. v3: - make docs more consistent - change TGSI_OPCODE_I2U64 to TGSI_OPCODE_U2I64 Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v2) Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Diffstat (limited to 'src/gallium/include')
-rw-r--r--src/gallium/include/pipe/p_shader_tokens.h46
1 files changed, 37 insertions, 9 deletions
diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h
index 39ce9ea..a8d323a 100644
--- a/src/gallium/include/pipe/p_shader_tokens.h
+++ b/src/gallium/include/pipe/p_shader_tokens.h
@@ -345,7 +345,8 @@ struct tgsi_property_data {
#define TGSI_OPCODE_FMA 19
#define TGSI_OPCODE_SQRT 20
#define TGSI_OPCODE_DP2A 21
- /* gap */
+#define TGSI_OPCODE_F2U64 22
+#define TGSI_OPCODE_F2I64 23
#define TGSI_OPCODE_FRC 24
#define TGSI_OPCODE_CLAMP 25
#define TGSI_OPCODE_FLR 26
@@ -354,9 +355,9 @@ struct tgsi_property_data {
#define TGSI_OPCODE_LG2 29
#define TGSI_OPCODE_POW 30
#define TGSI_OPCODE_XPD 31
- /* gap */
+#define TGSI_OPCODE_U2I64 32
#define TGSI_OPCODE_ABS 33
- /* gap */
+#define TGSI_OPCODE_I2I64 34
#define TGSI_OPCODE_DPH 35
#define TGSI_OPCODE_COS 36
#define TGSI_OPCODE_DDX 37
@@ -366,14 +367,14 @@ struct tgsi_property_data {
#define TGSI_OPCODE_PK2US 41
#define TGSI_OPCODE_PK4B 42
#define TGSI_OPCODE_PK4UB 43
- /* gap */
+#define TGSI_OPCODE_D2U64 44
#define TGSI_OPCODE_SEQ 45
- /* gap */
+#define TGSI_OPCODE_D2I64 46
#define TGSI_OPCODE_SGT 47
#define TGSI_OPCODE_SIN 48
#define TGSI_OPCODE_SLE 49
#define TGSI_OPCODE_SNE 50
- /* gap */
+#define TGSI_OPCODE_U642D 51
#define TGSI_OPCODE_TEX 52
#define TGSI_OPCODE_TXD 53
#define TGSI_OPCODE_TXP 54
@@ -381,9 +382,10 @@ struct tgsi_property_data {
#define TGSI_OPCODE_UP2US 56
#define TGSI_OPCODE_UP4B 57
#define TGSI_OPCODE_UP4UB 58
- /* gap */
+#define TGSI_OPCODE_U642F 59
+#define TGSI_OPCODE_I642F 60
#define TGSI_OPCODE_ARR 61
- /* gap */
+#define TGSI_OPCODE_I642D 62
#define TGSI_OPCODE_CAL 63
#define TGSI_OPCODE_RET 64
#define TGSI_OPCODE_SSG 65 /* SGN */
@@ -568,7 +570,33 @@ struct tgsi_property_data {
#define TGSI_OPCODE_VOTE_ALL 224
#define TGSI_OPCODE_VOTE_EQ 225
-#define TGSI_OPCODE_LAST 226
+#define TGSI_OPCODE_U64SEQ 226
+#define TGSI_OPCODE_U64SNE 227
+#define TGSI_OPCODE_I64SLT 228
+#define TGSI_OPCODE_U64SLT 229
+#define TGSI_OPCODE_I64SGE 230
+#define TGSI_OPCODE_U64SGE 231
+
+#define TGSI_OPCODE_I64MIN 232
+#define TGSI_OPCODE_U64MIN 233
+#define TGSI_OPCODE_I64MAX 234
+#define TGSI_OPCODE_U64MAX 235
+
+#define TGSI_OPCODE_I64ABS 236
+#define TGSI_OPCODE_I64SSG 237
+#define TGSI_OPCODE_I64NEG 238
+
+#define TGSI_OPCODE_U64ADD 239
+#define TGSI_OPCODE_U64MUL 240
+#define TGSI_OPCODE_U64SHL 241
+#define TGSI_OPCODE_I64SHR 242
+#define TGSI_OPCODE_U64SHR 243
+
+#define TGSI_OPCODE_I64DIV 244
+#define TGSI_OPCODE_U64DIV 245
+#define TGSI_OPCODE_I64MOD 246
+#define TGSI_OPCODE_U64MOD 247
+#define TGSI_OPCODE_LAST 248
/**
* Opcode is the operation code to execute. A given operation defines the