aboutsummaryrefslogtreecommitdiff
path: root/src/intel/compiler/brw_eu_defines.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/intel/compiler/brw_eu_defines.h')
-rw-r--r--src/intel/compiler/brw_eu_defines.h234
1 files changed, 29 insertions, 205 deletions
diff --git a/src/intel/compiler/brw_eu_defines.h b/src/intel/compiler/brw_eu_defines.h
index 8469c9804eb..36ef004c6b9 100644
--- a/src/intel/compiler/brw_eu_defines.h
+++ b/src/intel/compiler/brw_eu_defines.h
@@ -180,53 +180,45 @@ enum opcode {
BRW_OPCODE_SYNC,
BRW_OPCODE_MOV,
BRW_OPCODE_SEL,
- BRW_OPCODE_MOVI, /**< G45+ */
+ BRW_OPCODE_MOVI,
BRW_OPCODE_NOT,
BRW_OPCODE_AND,
BRW_OPCODE_OR,
BRW_OPCODE_XOR,
BRW_OPCODE_SHR,
BRW_OPCODE_SHL,
- BRW_OPCODE_DIM, /**< Gfx7.5 only */
- BRW_OPCODE_SMOV, /**< Gfx8+ */
+ BRW_OPCODE_SMOV,
BRW_OPCODE_ASR,
BRW_OPCODE_ROR, /**< Gfx11+ */
BRW_OPCODE_ROL, /**< Gfx11+ */
BRW_OPCODE_CMP,
BRW_OPCODE_CMPN,
- BRW_OPCODE_CSEL, /**< Gfx8+ */
- BRW_OPCODE_BFREV, /**< Gfx7+ */
- BRW_OPCODE_BFE, /**< Gfx7+ */
- BRW_OPCODE_BFI1, /**< Gfx7+ */
- BRW_OPCODE_BFI2, /**< Gfx7+ */
+ BRW_OPCODE_CSEL,
+ BRW_OPCODE_BFREV,
+ BRW_OPCODE_BFE,
+ BRW_OPCODE_BFI1,
+ BRW_OPCODE_BFI2,
BRW_OPCODE_JMPI,
- BRW_OPCODE_BRD, /**< Gfx7+ */
+ BRW_OPCODE_BRD,
BRW_OPCODE_IF,
- BRW_OPCODE_IFF, /**< Pre-Gfx6 */
- BRW_OPCODE_BRC, /**< Gfx7+ */
+ BRW_OPCODE_BRC,
BRW_OPCODE_ELSE,
BRW_OPCODE_ENDIF,
- BRW_OPCODE_DO, /**< Pre-Gfx6 */
- BRW_OPCODE_CASE, /**< Gfx6 only */
+ BRW_OPCODE_DO, /**< Used as pseudo opcode, will be moved later. */
BRW_OPCODE_WHILE,
BRW_OPCODE_BREAK,
BRW_OPCODE_CONTINUE,
BRW_OPCODE_HALT,
- BRW_OPCODE_CALLA, /**< Gfx7.5+ */
- BRW_OPCODE_MSAVE, /**< Pre-Gfx6 */
- BRW_OPCODE_CALL, /**< Gfx6+ */
- BRW_OPCODE_MREST, /**< Pre-Gfx6 */
- BRW_OPCODE_RET, /**< Gfx6+ */
- BRW_OPCODE_PUSH, /**< Pre-Gfx6 */
- BRW_OPCODE_FORK, /**< Gfx6 only */
- BRW_OPCODE_GOTO, /**< Gfx8+ */
- BRW_OPCODE_POP, /**< Pre-Gfx6 */
+ BRW_OPCODE_CALLA,
+ BRW_OPCODE_CALL,
+ BRW_OPCODE_RET,
+ BRW_OPCODE_GOTO,
BRW_OPCODE_WAIT,
BRW_OPCODE_SEND,
BRW_OPCODE_SENDC,
- BRW_OPCODE_SENDS, /**< Gfx9+ */
- BRW_OPCODE_SENDSC, /**< Gfx9+ */
- BRW_OPCODE_MATH, /**< Gfx6+ */
+ BRW_OPCODE_SENDS,
+ BRW_OPCODE_SENDSC,
+ BRW_OPCODE_MATH,
BRW_OPCODE_ADD,
BRW_OPCODE_MUL,
BRW_OPCODE_AVG,
@@ -238,11 +230,11 @@ enum opcode {
BRW_OPCODE_MAC,
BRW_OPCODE_MACH,
BRW_OPCODE_LZD,
- BRW_OPCODE_FBH, /**< Gfx7+ */
- BRW_OPCODE_FBL, /**< Gfx7+ */
- BRW_OPCODE_CBIT, /**< Gfx7+ */
- BRW_OPCODE_ADDC, /**< Gfx7+ */
- BRW_OPCODE_SUBB, /**< Gfx7+ */
+ BRW_OPCODE_FBH,
+ BRW_OPCODE_FBL,
+ BRW_OPCODE_CBIT,
+ BRW_OPCODE_ADDC,
+ BRW_OPCODE_SUBB,
BRW_OPCODE_SAD2,
BRW_OPCODE_SADA2,
BRW_OPCODE_ADD3, /* Gen12+ only */
@@ -253,29 +245,19 @@ enum opcode {
BRW_OPCODE_DP4A, /**< Gfx12+ */
BRW_OPCODE_LINE,
BRW_OPCODE_DPAS, /**< Gfx12.5+ */
- BRW_OPCODE_PLN, /**< G45+ */
- BRW_OPCODE_MAD, /**< Gfx6+ */
- BRW_OPCODE_LRP, /**< Gfx6+ */
- BRW_OPCODE_MADM, /**< Gfx8+ */
- BRW_OPCODE_NENOP, /**< G45 only */
+ BRW_OPCODE_PLN, /**< Up until Gfx9 */
+ BRW_OPCODE_MAD,
+ BRW_OPCODE_LRP,
+ BRW_OPCODE_MADM,
BRW_OPCODE_NOP,
NUM_BRW_OPCODES,
- /* These are compiler backend opcodes that get translated into other
- * instructions.
- */
- FS_OPCODE_FB_WRITE = NUM_BRW_OPCODES,
-
/**
- * Same as FS_OPCODE_FB_WRITE but expects its arguments separately as
- * individual sources instead of as a single payload blob. The
- * position/ordering of the arguments are defined by the enum
- * fb_write_logical_srcs.
+ * The position/ordering of the arguments are defined
+ * by the enum fb_write_logical_srcs.
*/
- FS_OPCODE_FB_WRITE_LOGICAL,
-
- FS_OPCODE_REP_FB_WRITE,
+ FS_OPCODE_FB_WRITE_LOGICAL = NUM_BRW_OPCODES,
FS_OPCODE_FB_READ,
FS_OPCODE_FB_READ_LOGICAL,
@@ -459,10 +441,6 @@ enum opcode {
*/
FS_OPCODE_SCHEDULING_FENCE,
- SHADER_OPCODE_GFX4_SCRATCH_READ,
- SHADER_OPCODE_GFX4_SCRATCH_WRITE,
- SHADER_OPCODE_GFX7_SCRATCH_READ,
-
SHADER_OPCODE_SCRATCH_HEADER,
/**
@@ -559,155 +537,12 @@ enum opcode {
FS_OPCODE_PIXEL_X,
FS_OPCODE_PIXEL_Y,
FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD,
- FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GFX4,
FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_LOGICAL,
- FS_OPCODE_SET_SAMPLE_ID,
FS_OPCODE_PACK_HALF_2x16_SPLIT,
FS_OPCODE_INTERPOLATE_AT_SAMPLE,
FS_OPCODE_INTERPOLATE_AT_SHARED_OFFSET,
FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET,
- VS_OPCODE_PULL_CONSTANT_LOAD,
- VS_OPCODE_PULL_CONSTANT_LOAD_GFX7,
-
- VS_OPCODE_UNPACK_FLAGS_SIMD4X2,
-
- /**
- * Terminate the geometry shader thread by doing an empty URB write.
- *
- * This opcode doesn't do an implied move from R0 to the first MRF. This
- * allows the geometry shader to override the "GS Number of Output Vertices
- * for Slot {0,1}" fields in the message header.
- */
- GS_OPCODE_THREAD_END,
-
- /**
- * Set the "Slot {0,1} Offset" fields of a URB_WRITE message header.
- *
- * - dst is the MRF containing the message header.
- *
- * - src0.x indicates which portion of the URB should be written to (e.g. a
- * vertex number)
- *
- * - src1 is an immediate multiplier which will be applied to src0
- * (e.g. the size of a single vertex in the URB).
- *
- * Note: the hardware will apply this offset *in addition to* the offset in
- * vec4_instruction::offset.
- */
- GS_OPCODE_SET_WRITE_OFFSET,
-
- /**
- * Set the "GS Number of Output Vertices for Slot {0,1}" fields of a
- * URB_WRITE message header.
- *
- * - dst is the MRF containing the message header.
- *
- * - src0.x is the vertex count. The upper 16 bits will be ignored.
- */
- GS_OPCODE_SET_VERTEX_COUNT,
-
- /**
- * Set DWORD 2 of dst to the value in src.
- */
- GS_OPCODE_SET_DWORD_2,
-
- /**
- * Prepare the dst register for storage in the "Channel Mask" fields of a
- * URB_WRITE message header.
- *
- * DWORD 4 of dst is shifted left by 4 bits, so that later,
- * GS_OPCODE_SET_CHANNEL_MASKS can OR DWORDs 0 and 4 together to form the
- * final channel mask.
- *
- * Note: since GS_OPCODE_SET_CHANNEL_MASKS ORs DWORDs 0 and 4 together to
- * form the final channel mask, DWORDs 0 and 4 of the dst register must not
- * have any extraneous bits set prior to execution of this opcode (that is,
- * they should be in the range 0x0 to 0xf).
- */
- GS_OPCODE_PREPARE_CHANNEL_MASKS,
-
- /**
- * Set the "Channel Mask" fields of a URB_WRITE message header.
- *
- * - dst is the MRF containing the message header.
- *
- * - src.x is the channel mask, as prepared by
- * GS_OPCODE_PREPARE_CHANNEL_MASKS. DWORDs 0 and 4 are OR'ed together to
- * form the final channel mask.
- */
- GS_OPCODE_SET_CHANNEL_MASKS,
-
- /**
- * Get the "Instance ID" fields from the payload.
- *
- * - dst is the GRF for gl_InvocationID.
- */
- GS_OPCODE_GET_INSTANCE_ID,
-
- /**
- * Send a FF_SYNC message to allocate initial URB handles (gfx6).
- *
- * - dst will be used as the writeback register for the FF_SYNC operation.
- *
- * - src0 is the number of primitives written.
- *
- * - src1 is the value to hold in M0.0: number of SO vertices to write
- * and number of SO primitives needed. Its value will be overwritten
- * with the SVBI values if transform feedback is enabled.
- *
- * Note: This opcode uses an implicit MRF register for the ff_sync message
- * header, so the caller is expected to set inst->base_mrf and initialize
- * that MRF register to r0. This opcode will also write to this MRF register
- * to include the allocated URB handle so it can then be reused directly as
- * the header in the URB write operation we are allocating the handle for.
- */
- GS_OPCODE_FF_SYNC,
-
- /**
- * Move r0.1 (which holds PrimitiveID information in gfx6) to a separate
- * register.
- *
- * - dst is the GRF where PrimitiveID information will be moved.
- */
- GS_OPCODE_SET_PRIMITIVE_ID,
-
- /**
- * Write transform feedback data to the SVB by sending a SVB WRITE message.
- * Used in gfx6.
- *
- * - dst is the MRF register containing the message header.
- *
- * - src0 is the register where the vertex data is going to be copied from.
- *
- * - src1 is the destination register when write commit occurs.
- */
- GS_OPCODE_SVB_WRITE,
-
- /**
- * Set destination index in the SVB write message payload (M0.5). Used
- * in gfx6 for transform feedback.
- *
- * - dst is the header to save the destination indices for SVB WRITE.
- * - src is the register that holds the destination indices value.
- */
- GS_OPCODE_SVB_SET_DST_INDEX,
-
- /**
- * Prepare Mx.0 subregister for being used in the FF_SYNC message header.
- * Used in gfx6 for transform feedback.
- *
- * - dst will hold the register with the final Mx.0 value.
- *
- * - src0 has the number of vertices emitted in SO (NumSOVertsToWrite)
- *
- * - src1 has the number of needed primitives for SO (NumSOPrimsNeeded)
- *
- * - src2 is the value to hold in M0: number of SO vertices to write
- * and number of SO primitives needed.
- */
- GS_OPCODE_FF_SYNC_SET_PRIMITIVES,
-
/**
* Terminate the compute shader.
*/
@@ -742,17 +577,6 @@ enum opcode {
/** Fills out a relocatable immediate */
SHADER_OPCODE_MOV_RELOC_IMM,
- TCS_OPCODE_GET_INSTANCE_ID,
- TCS_OPCODE_GET_PRIMITIVE_ID,
- TCS_OPCODE_CREATE_BARRIER_HEADER,
- TCS_OPCODE_SRC0_010_IS_ZERO,
- TCS_OPCODE_RELEASE_INPUT,
- TCS_OPCODE_THREAD_END,
-
- TES_OPCODE_GET_PRIMITIVE_ID,
- TES_OPCODE_CREATE_INPUT_READ_HEADER,
- TES_OPCODE_ADD_INDIRECT_URB_OFFSET,
-
SHADER_OPCODE_BTD_SPAWN_LOGICAL,
SHADER_OPCODE_BTD_RETIRE_LOGICAL,