1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023 Intel Corporation 4 */ 5 6 #ifndef _XE_GPU_COMMANDS_H_ 7 #define _XE_GPU_COMMANDS_H_ 8 9 #include "regs/xe_reg_defs.h" 10 11 #define XY_CTRL_SURF_COPY_BLT ((2 << 29) | (0x48 << 22) | 3) 12 #define SRC_ACCESS_TYPE_SHIFT 21 13 #define DST_ACCESS_TYPE_SHIFT 20 14 #define CCS_SIZE_MASK GENMASK(17, 8) 15 #define XE2_CCS_SIZE_MASK GENMASK(18, 9) 16 #define XY_CTRL_SURF_MOCS_MASK GENMASK(31, 26) 17 #define XE2_XY_CTRL_SURF_MOCS_INDEX_MASK GENMASK(31, 28) 18 #define NUM_CCS_BYTES_PER_BLOCK 256 19 #define NUM_BYTES_PER_CCS_BYTE(_xe) (GRAPHICS_VER(_xe) >= 20 ? 512 : 256) 20 21 #define XY_FAST_COLOR_BLT_CMD (2 << 29 | 0x44 << 22) 22 #define XY_FAST_COLOR_BLT_DEPTH_32 (2 << 19) 23 #define XY_FAST_COLOR_BLT_DW 16 24 #define XY_FAST_COLOR_BLT_MOCS_MASK GENMASK(27, 22) 25 #define XE2_XY_FAST_COLOR_BLT_MOCS_INDEX_MASK GENMASK(27, 24) 26 #define XY_FAST_COLOR_BLT_MEM_TYPE_SHIFT 31 27 28 #define XY_FAST_COPY_BLT_CMD (2 << 29 | 0x42 << 22) 29 #define XY_FAST_COPY_BLT_DEPTH_32 (3<<24) 30 #define XY_FAST_COPY_BLT_D1_SRC_TILE4 REG_BIT(31) 31 #define XY_FAST_COPY_BLT_D1_DST_TILE4 REG_BIT(30) 32 #define XE2_XY_FAST_COPY_BLT_MOCS_INDEX_MASK GENMASK(23, 20) 33 34 #define PVC_MEM_SET_CMD (2 << 29 | 0x5b << 22) 35 #define PVC_MEM_SET_CMD_LEN_DW 7 36 #define PVC_MEM_SET_MATRIX REG_BIT(17) 37 #define PVC_MEM_SET_DATA_FIELD GENMASK(31, 24) 38 /* Bspec lists field as [6:0], but index alone is from [6:1] */ 39 #define PVC_MEM_SET_MOCS_INDEX_MASK GENMASK(6, 1) 40 #define XE2_MEM_SET_MOCS_INDEX_MASK GENMASK(6, 3) 41 42 #define GFX_OP_PIPE_CONTROL(len) ((0x3<<29)|(0x3<<27)|(0x2<<24)|((len)-2)) 43 44 #define PIPE_CONTROL0_HDC_PIPELINE_FLUSH BIT(9) /* gen12 */ 45 46 #define PIPE_CONTROL_COMMAND_CACHE_INVALIDATE (1<<29) 47 #define PIPE_CONTROL_TILE_CACHE_FLUSH (1<<28) 48 #define PIPE_CONTROL_AMFS_FLUSH (1<<25) 49 #define PIPE_CONTROL_GLOBAL_GTT_IVB (1<<24) 50 #define PIPE_CONTROL_LRI_POST_SYNC BIT(23) 51 #define PIPE_CONTROL_STORE_DATA_INDEX (1<<21) 52 #define PIPE_CONTROL_CS_STALL (1<<20) 53 #define PIPE_CONTROL_GLOBAL_SNAPSHOT_RESET (1<<19) 54 #define PIPE_CONTROL_TLB_INVALIDATE BIT(18) 55 #define PIPE_CONTROL_PSD_SYNC (1<<17) 56 #define PIPE_CONTROL_QW_WRITE (1<<14) 57 #define PIPE_CONTROL_DEPTH_STALL (1<<13) 58 #define PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH (1<<12) 59 #define PIPE_CONTROL_INSTRUCTION_CACHE_INVALIDATE (1<<11) 60 #define PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE (1<<10) 61 #define PIPE_CONTROL_INDIRECT_STATE_DISABLE (1<<9) 62 #define PIPE_CONTROL_FLUSH_ENABLE (1<<7) 63 #define PIPE_CONTROL_DC_FLUSH_ENABLE (1<<5) 64 #define PIPE_CONTROL_VF_CACHE_INVALIDATE (1<<4) 65 #define PIPE_CONTROL_CONST_CACHE_INVALIDATE (1<<3) 66 #define PIPE_CONTROL_STATE_CACHE_INVALIDATE (1<<2) 67 #define PIPE_CONTROL_STALL_AT_SCOREBOARD (1<<1) 68 #define PIPE_CONTROL_DEPTH_CACHE_FLUSH (1<<0) 69 70 #endif 71