* [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from the kernel
@ 2023-03-07 16:21 Vikas Srivastava
2023-03-07 16:21 ` [igt-dev] [PATCH i-g-t 2/2] include/intel_gpu_commands: Copy intel_gpu_commands " Vikas Srivastava
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Vikas Srivastava @ 2023-03-07 16:21 UTC (permalink / raw)
To: igt-dev
From: Chris Wilson <chris.p.wilson@linux.intel.com>
Cherry picking this patch to fix conflicts while merging
patch to resolve gem_exec_await timeout issue.
The current version of intel_gpu_commands lacks a few definitions and
has a couple of mistakes. This patch should be pushed to the kernel,
along with any other cleanups, and then copied back here.
Signed-off-by: Chris Wilson <chris.p.wilson@linux.intel.com>
Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com>
---
include/intel_gpu_commands.h | 533 +++++++++++++++++++++++++++++++++++
1 file changed, 533 insertions(+)
create mode 100644 include/intel_gpu_commands.h
diff --git a/include/intel_gpu_commands.h b/include/intel_gpu_commands.h
new file mode 100644
index 000000000..b5239132f
--- /dev/null
+++ b/include/intel_gpu_commands.h
@@ -0,0 +1,533 @@
+/* SPDX-License-Identifier: MIT*/
+/*
+ * Copyright © 2003-2018 Intel Corporation
+ */
+
+#ifndef _INTEL_GPU_COMMANDS_H_
+#define _INTEL_GPU_COMMANDS_H_
+
+#ifdef __KERNEL
+#include <linux/bitops.h>
+#else
+#include "linux_scaffold.h"
+#endif
+
+/*
+ * Target address alignments required for GPU access e.g.
+ * MI_STORE_DWORD_IMM.
+ */
+#define alignof_dword 4
+#define alignof_qword 8
+
+/*
+ * Instruction field definitions used by the command parser
+ */
+#define INSTR_CLIENT_SHIFT 29
+#define INSTR_MI_CLIENT 0x0
+#define INSTR_BC_CLIENT 0x2
+#define INSTR_GSC_CLIENT 0x2 /* MTL + */
+#define INSTR_RC_CLIENT 0x3
+#define INSTR_SUBCLIENT_SHIFT 27
+#define INSTR_SUBCLIENT_MASK 0x18000000
+#define INSTR_MEDIA_SUBCLIENT 0x2
+#define INSTR_26_TO_24_MASK 0x7000000
+#define INSTR_26_TO_24_SHIFT 24
+
+#define __INSTR(client) ((client) << INSTR_CLIENT_SHIFT)
+
+/*
+ * Memory interface instructions used by the kernel
+ */
+#define MI_INSTR(opcode, flags) \
+ (__INSTR(INSTR_MI_CLIENT) | (opcode) << 23 | (flags))
+/* Many MI commands use bit 22 of the header dword for GGTT vs PPGTT */
+#define MI_GLOBAL_GTT (1<<22)
+
+#define MI_NOOP MI_INSTR(0, 0)
+#define MI_SET_PREDICATE MI_INSTR(0x01, 0)
+#define MI_SET_PREDICATE_DISABLE (0 << 0)
+#define MI_USER_INTERRUPT MI_INSTR(0x02, 0)
+#define MI_WAIT_FOR_EVENT MI_INSTR(0x03, 0)
+#define MI_WAIT_FOR_OVERLAY_FLIP (1<<16)
+#define MI_WAIT_FOR_PLANE_B_FLIP (1<<6)
+#define MI_WAIT_FOR_PLANE_A_FLIP (1<<2)
+#define MI_WAIT_FOR_PLANE_A_SCANLINES (1<<1)
+#define MI_FLUSH MI_INSTR(0x04, 0)
+#define MI_READ_FLUSH (1 << 0)
+#define MI_EXE_FLUSH (1 << 1)
+#define MI_NO_WRITE_FLUSH (1 << 2)
+#define MI_SCENE_COUNT (1 << 3) /* just increment scene count */
+#define MI_END_SCENE (1 << 4) /* flush binner and incr scene count */
+#define MI_INVALIDATE_ISP (1 << 5) /* invalidate indirect state pointers */
+#define MI_REPORT_HEAD MI_INSTR(0x07, 0)
+#define MI_ARB_ON_OFF MI_INSTR(0x08, 0)
+#define MI_ARB_ENABLE (1<<0)
+#define MI_ARB_DISABLE (0<<0)
+#define MI_MEM_FENCE MI_INSTR(0x09, 0)
+#define MI_ACQUIRE_ENABLE (1 << 0)
+#define MI_WRITE_FENCE (3 << 0)
+#define MI_BATCH_BUFFER_END MI_INSTR(0x0a, 0)
+#define MI_SUSPEND_FLUSH MI_INSTR(0x0b, 0)
+#define MI_SUSPEND_FLUSH_EN (1<<0)
+#define MI_SET_APPID MI_INSTR(0x0e, 0)
+#define MI_SET_APPID_SESSION_ID(x) ((x) << 0)
+#define MI_OVERLAY_FLIP MI_INSTR(0x11, 0)
+#define MI_OVERLAY_CONTINUE (0x0<<21)
+#define MI_OVERLAY_ON (0x1<<21)
+#define MI_OVERLAY_OFF (0x2<<21)
+#define MI_LOAD_SCAN_LINES_INCL MI_INSTR(0x12, 0)
+#define MI_DISPLAY_FLIP MI_INSTR(0x14, 2)
+#define MI_DISPLAY_FLIP_I915 MI_INSTR(0x14, 1)
+#define MI_DISPLAY_FLIP_PLANE(n) ((n) << 20)
+/* IVB has funny definitions for which plane to flip. */
+#define MI_DISPLAY_FLIP_IVB_PLANE_A (0 << 19)
+#define MI_DISPLAY_FLIP_IVB_PLANE_B (1 << 19)
+#define MI_DISPLAY_FLIP_IVB_SPRITE_A (2 << 19)
+#define MI_DISPLAY_FLIP_IVB_SPRITE_B (3 << 19)
+#define MI_DISPLAY_FLIP_IVB_PLANE_C (4 << 19)
+#define MI_DISPLAY_FLIP_IVB_SPRITE_C (5 << 19)
+/* SKL ones */
+#define MI_DISPLAY_FLIP_SKL_PLANE_1_A (0 << 8)
+#define MI_DISPLAY_FLIP_SKL_PLANE_1_B (1 << 8)
+#define MI_DISPLAY_FLIP_SKL_PLANE_1_C (2 << 8)
+#define MI_DISPLAY_FLIP_SKL_PLANE_2_A (4 << 8)
+#define MI_DISPLAY_FLIP_SKL_PLANE_2_B (5 << 8)
+#define MI_DISPLAY_FLIP_SKL_PLANE_2_C (6 << 8)
+#define MI_DISPLAY_FLIP_SKL_PLANE_3_A (7 << 8)
+#define MI_DISPLAY_FLIP_SKL_PLANE_3_B (8 << 8)
+#define MI_DISPLAY_FLIP_SKL_PLANE_3_C (9 << 8)
+#define MI_SEMAPHORE_MBOX MI_INSTR(0x16, 1) /* gen6, gen7 */
+#define MI_SEMAPHORE_GLOBAL_GTT (1<<22)
+#define MI_SEMAPHORE_UPDATE (1<<21)
+#define MI_SEMAPHORE_COMPARE (1<<20)
+#define MI_SEMAPHORE_REGISTER (1<<18)
+#define MI_SEMAPHORE_SYNC_VR (0<<16) /* RCS wait for VCS (RVSYNC) */
+#define MI_SEMAPHORE_SYNC_VER (1<<16) /* RCS wait for VECS (RVESYNC) */
+#define MI_SEMAPHORE_SYNC_BR (2<<16) /* RCS wait for BCS (RBSYNC) */
+#define MI_SEMAPHORE_SYNC_BV (0<<16) /* VCS wait for BCS (VBSYNC) */
+#define MI_SEMAPHORE_SYNC_VEV (1<<16) /* VCS wait for VECS (VVESYNC) */
+#define MI_SEMAPHORE_SYNC_RV (2<<16) /* VCS wait for RCS (VRSYNC) */
+#define MI_SEMAPHORE_SYNC_RB (0<<16) /* BCS wait for RCS (BRSYNC) */
+#define MI_SEMAPHORE_SYNC_VEB (1<<16) /* BCS wait for VECS (BVESYNC) */
+#define MI_SEMAPHORE_SYNC_VB (2<<16) /* BCS wait for VCS (BVSYNC) */
+#define MI_SEMAPHORE_SYNC_BVE (0<<16) /* VECS wait for BCS (VEBSYNC) */
+#define MI_SEMAPHORE_SYNC_VVE (1<<16) /* VECS wait for VCS (VEVSYNC) */
+#define MI_SEMAPHORE_SYNC_RVE (2<<16) /* VECS wait for RCS (VERSYNC) */
+#define MI_SEMAPHORE_SYNC_INVALID (3<<16)
+#define MI_SEMAPHORE_SYNC_MASK (3<<16)
+#define MI_SET_CONTEXT MI_INSTR(0x18, 0)
+#define MI_MM_SPACE_GTT (1<<8)
+#define MI_MM_SPACE_PHYSICAL (0<<8)
+#define MI_SAVE_EXT_STATE_EN (1<<3)
+#define MI_RESTORE_EXT_STATE_EN (1<<2)
+#define MI_FORCE_RESTORE (1<<1)
+#define MI_RESTORE_INHIBIT (1<<0)
+#define HSW_MI_RS_SAVE_STATE_EN (1<<3)
+#define HSW_MI_RS_RESTORE_STATE_EN (1<<2)
+#define MI_SEMAPHORE_SIGNAL MI_INSTR(0x1b, 0) /* GEN8+ */
+#define MI_SEMAPHORE_TARGET(engine) ((engine)<<15)
+#define MI_SEMAPHORE_WAIT MI_INSTR(0x1c, 2) /* GEN8+ */
+#define MI_SEMAPHORE_WAIT_TOKEN MI_INSTR(0x1c, 3) /* GEN12+ */
+#define MI_SEMAPHORE_POLL (1 << 15)
+#define MI_SEMAPHORE_SAD_GT_SDD (0 << 12)
+#define MI_SEMAPHORE_SAD_GTE_SDD (1 << 12)
+#define MI_SEMAPHORE_SAD_LT_SDD (2 << 12)
+#define MI_SEMAPHORE_SAD_LTE_SDD (3 << 12)
+#define MI_SEMAPHORE_SAD_EQ_SDD (4 << 12)
+#define MI_SEMAPHORE_SAD_NEQ_SDD (5 << 12)
+#define MI_SEMAPHORE_27_TOKEN_MASK REG_GENMASK(9, 5)
+#define MI_SEMAPHORE_256_TOKEN_MASK REG_GENMASK(9, 2)
+#define MI_SEMAPHORE_27_TOKEN_SHIFT 5
+#define MI_SEMAPHORE_256_TOKEN_SHIFT 2
+#define MI_STORE_DATA_IMM MI_INSTR(0x20, 0)
+#define MI_STORE_DWORD_IMM MI_INSTR(0x20, 1)
+#define MI_STORE_DWORD_IMM_GEN4 MI_INSTR(0x20, 2)
+#define MI_STORE_QWORD_IMM_GEN8_POSTED (MI_INSTR(0x20, 3) | (1 << 21))
+#define MI_STORE_QWORD_IMM_GEN8 (MI_INSTR(0x20, 3) | (1 << 10) | (1 << 21))
+#define MI_MEM_VIRTUAL (1 << 22) /* 945,g33,965 */
+#define MI_USE_GGTT (1 << 22) /* g4x+ */
+#define MI_STORE_DWORD_INDEX MI_INSTR(0x21, 1)
+#define MI_ATOMIC MI_INSTR(0x2f, 1)
+#define MI_ATOMIC_INLINE (MI_INSTR(0x2f, 9) | MI_ATOMIC_INLINE_DATA)
+#define MI_ATOMIC_GLOBAL_GTT (1 << 22)
+#define MI_ATOMIC_INLINE_DATA (1 << 18)
+#define MI_ATOMIC_CS_STALL (1 << 17)
+#define MI_ATOMIC_MOVE (0x4 << 8)
+#define MI_ATOMIC_INC (0x5 << 8)
+#define MI_ATOMIC_DEC (0x6 << 8)
+#define MI_ATOMIC_ADD (0x7 << 8)
+#define MI_ATOMIC_SUB (0x8 << 8)
+
+/*
+ * Official intel docs are somewhat sloppy concerning MI_LOAD_REGISTER_IMM:
+ * - Always issue a MI_NOOP _before_ the MI_LOAD_REGISTER_IMM - otherwise hw
+ * simply ignores the register load under certain conditions.
+ * - One can actually load arbitrary many arbitrary registers: Simply issue x
+ * address/value pairs. Don't overdue it, though, x <= 2^4 must hold!
+ */
+#define MI_LOAD_REGISTER_IMM(x) MI_INSTR(0x22, 2*(x)-1)
+/* Gen11+. addr = base + (ctx_restore ? offset & GENMASK(12,2) : offset) */
+#define MI_LRI_DEST_CS_MMIO REG_BIT(19)
+#define MI_LRI_LRM_CS_MMIO REG_BIT(19)
+#define MI_LRI_FORCE_POSTED (1<<12)
+#define MI_LOAD_REGISTER_IMM_MAX_REGS (126)
+#define __MI_STORE_REGISTER_MEM MI_INSTR(0x24, 0)
+#define MI_STORE_REGISTER_MEM MI_INSTR(0x24, 1)
+#define MI_STORE_REGISTER_MEM_GEN8 MI_INSTR(0x24, 2)
+#define MI_SRM_LRM_GLOBAL_GTT (1<<22)
+#define MI_FLUSH_DW MI_INSTR(0x26, 1) /* for GEN6 */
+#define MI_FLUSH_DW_PROTECTED_MEM_EN (1 << 22)
+#define MI_FLUSH_DW_STORE_INDEX (1<<21)
+#define MI_INVALIDATE_TLB (1<<18)
+#define MI_FLUSH_CCS (1<<16)
+#define MI_FLUSH_DW_OP_STOREDW (1<<14)
+#define MI_FLUSH_DW_OP_MASK (3<<14)
+#define MI_FLUSH_LLC (1<<9)
+#define MI_FLUSH_DW_NOTIFY (1<<8)
+#define MI_INVALIDATE_BSD (1<<7)
+#define MI_FLUSH_DW_USE_GTT (1<<2)
+#define MI_FLUSH_DW_USE_PPGTT (0<<2)
+#define __MI_LOAD_REGISTER_MEM MI_INSTR(0x29, 0)
+#define MI_LOAD_REGISTER_MEM MI_INSTR(0x29, 1)
+#define MI_LOAD_REGISTER_MEM_GEN8 MI_INSTR(0x29, 2)
+#define MI_LOAD_REGISTER_REG MI_INSTR(0x2A, 1)
+#define MI_LRR_SOURCE_CS_MMIO REG_BIT(18)
+#define MI_LRR_DEST_CS_MMIO REG_BIT(19)
+#define MI_BATCH_BUFFER MI_INSTR(0x30, 1)
+#define MI_BATCH_NON_SECURE (1)
+/* for snb/ivb/vlv this also means "batch in ppgtt" when ppgtt is enabled. */
+#define MI_BATCH_NON_SECURE_I965 (1<<8)
+#define MI_BATCH_PPGTT_HSW (1<<8)
+#define MI_BATCH_NON_SECURE_HSW (1<<13)
+#define MI_BATCH_BUFFER_START MI_INSTR(0x31, 0)
+#define MI_BATCH_GTT (2<<6) /* aliased with (1<<7) on gen4 */
+#define MI_BATCH_BUFFER_START_GEN8 MI_INSTR(0x31, 1)
+#define MI_BATCH_RESOURCE_STREAMER REG_BIT(10)
+#define MI_BATCH_PREDICATE REG_BIT(15) /* HSW+ on RCS only*/
+#define MI_COND_BATCH_BUFFER_END MI_INSTR(0x36, 0)
+#define MI_DO_COMPARE (1 << 21)
+
+/*
+ * 3D instructions used by the kernel
+ */
+#define GFX_INSTR(opcode, flags) ((0x3 << 29) | ((opcode) << 24) | (flags))
+
+#define GEN9_MEDIA_POOL_STATE ((0x3 << 29) | (0x2 << 27) | (0x5 << 16) | 4)
+#define GEN9_MEDIA_POOL_ENABLE (1 << 31)
+#define GFX_OP_RASTER_RULES ((0x3<<29)|(0x7<<24))
+#define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19))
+#define SC_UPDATE_SCISSOR (0x1<<1)
+#define SC_ENABLE_MASK (0x1<<0)
+#define SC_ENABLE (0x1<<0)
+#define GFX_OP_LOAD_INDIRECT ((0x3<<29)|(0x1d<<24)|(0x7<<16))
+#define GFX_OP_SCISSOR_INFO ((0x3<<29)|(0x1d<<24)|(0x81<<16)|(0x1))
+#define SCI_YMIN_MASK (0xffff<<16)
+#define SCI_XMIN_MASK (0xffff<<0)
+#define SCI_YMAX_MASK (0xffff<<16)
+#define SCI_XMAX_MASK (0xffff<<0)
+#define GFX_OP_SCISSOR_ENABLE ((0x3<<29)|(0x1c<<24)|(0x10<<19))
+#define GFX_OP_SCISSOR_RECT ((0x3<<29)|(0x1d<<24)|(0x81<<16)|1)
+#define GFX_OP_COLOR_FACTOR ((0x3<<29)|(0x1d<<24)|(0x1<<16)|0x0)
+#define GFX_OP_STIPPLE ((0x3<<29)|(0x1d<<24)|(0x83<<16))
+#define GFX_OP_MAP_INFO ((0x3<<29)|(0x1d<<24)|0x4)
+#define GFX_OP_DESTBUFFER_VARS ((0x3<<29)|(0x1d<<24)|(0x85<<16)|0x0)
+#define GFX_OP_DESTBUFFER_INFO ((0x3<<29)|(0x1d<<24)|(0x8e<<16)|1)
+#define GFX_OP_DRAWRECT_INFO ((0x3<<29)|(0x1d<<24)|(0x80<<16)|(0x3))
+#define GFX_OP_DRAWRECT_INFO_I965 ((0x7900<<16)|0x2)
+
+#define XY_CTRL_SURF_COPY_BLT (2<<29 | 0x48<<22 | 3)
+#define SRC_ACCESS_TYPE_SHIFT 21
+#define DST_ACCESS_TYPE_SHIFT 20
+#define CCS_SIZE_SHIFT 8
+/* Bspec lists field as [31:25], but index alone is at [31:26] */
+#define XY_CSC_BLT_MOCS_INDEX_MASK_GEN12 GENMASK(31, 26)
+#define XY_CSC_BLT_MOCS_INDEX_MASK_XE2 GENMASK(31, 28)
+#define NUM_CCS_BYTES_PER_BLOCK 256
+#define NUM_CCS_BLKS_PER_XFER 1024
+#define INDIRECT_ACCESS 0
+#define DIRECT_ACCESS 1
+
+#define COLOR_BLT_CMD (2 << 29 | 0x40 << 22 | (5 - 2))
+#define XY_BLOCK_COPY_BLT_CMD (2 << 29 | 0x41 << 22)
+#define DEST_MEM_TYPE_SHIFT (31)
+#define SRC_MEM_TYPE_SHIFT (31)
+#define MEM_TYPE_SYS 1
+#define MEM_TYPE_LOCAL 0
+#define COMPRESSION_ENABLE (1 << 29)
+#define AUX_CCS_E (5 << 18)
+#define FULL_RESOLVE (1 << 12)
+#define TILE_4_FORMAT (2 << 30)
+#define TILE_4_WIDTH (128)
+#define TILE_4_WIDTH_DWORD ((128 >> 2) - 1)
+#define TILE_4_HEIGHT (32)
+#define SURFACE_TYPE_2D (1 << 29)
+#define DEST_SURF_WIDTH_SHIFT (14)
+#define SRC_SURF_WIDTH_SHIFT (14)
+/* Bspec lists this field as 27:21, but the index alone is in 27:22 */
+#define XY_BCB_MOCS_INDEX_MASK_GEN12 GENMASK(27, 22)
+#define XY_BCB_MOCS_INDEX_MASK_XE2 GENMASK(27, 24)
+#define GEN9_XY_FAST_COPY_BLT_CMD (2 << 29 | 0x42 << 22)
+#define XY_FAST_COPY_BLT_D0_SRC_TILING_MASK REG_GENMASK(21, 20)
+#define XY_FAST_COPY_BLT_D0_DST_TILING_MASK REG_GENMASK(14, 13)
+#define XY_FAST_COPY_BLT_D0_SRC_TILE_MODE(mode) \
+ REG_FIELD_PREP(XY_FAST_COPY_BLT_D0_SRC_TILING_MASK, mode)
+#define XY_FAST_COPY_BLT_D0_DST_TILE_MODE(mode) \
+ REG_FIELD_PREP(XY_FAST_COPY_BLT_D0_DST_TILING_MASK, mode)
+#define LINEAR 0
+#define TILE_X 0x1
+#define XMAJOR 0x1
+#define YMAJOR 0x2
+#define TILE_64 0x3
+#define XY_FAST_COPY_BLT_D1_SRC_TILE4 REG_BIT(31)
+#define XY_FAST_COPY_BLT_D1_DST_TILE4 REG_BIT(30)
+#define PVC_ENABLE_COMPRESSED_SURFACE REG_BIT(16)
+#define XY_FCB_MOCS_INDEX_MASK_XE2 GENMASK(23, 20)
+#define BLIT_CCTL_SRC_MOCS_MASK REG_GENMASK(6, 0)
+#define BLIT_CCTL_DST_MOCS_MASK REG_GENMASK(14, 8)
+/* Note: MOCS value = (index << 1) */
+#define BLIT_CCTL_SRC_MOCS(idx) \
+ REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, idx << 1)
+#define BLIT_CCTL_DST_MOCS(idx) \
+ REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, idx << 1)
+#define SRC_COPY_BLT_CMD (2 << 29 | 0x43 << 22)
+#define XY_FAST_COLOR_BLT (2 << 29 | 0x44 << 22)
+#define BLT_COLOR_DEPTH_32 (2 << 19)
+#define BLT_COLOR_DEPTH_64 (3 << 19)
+/* Bspec lists field as [27:21], but index resides in [27:22] */
+#define XY_FCB_MOCS_INDEX_MASK GENMASK(27, 22)
+#define XY_COLOR_BLT_CMD (2 << 29 | 0x50 << 22)
+#define XY_SRC_COPY_BLT_CMD (2 << 29 | 0x53 << 22)
+#define XY_MONO_SRC_COPY_IMM_BLT (2 << 29 | 0x71 << 22 | 5)
+#define BLT_SRCMEM_SYS (1<<29)
+#define BLT_WRITE_A (2<<20)
+#define BLT_WRITE_RGB (1<<20)
+#define BLT_WRITE_RGBA (BLT_WRITE_RGB | BLT_WRITE_A)
+#define BLT_DEPTH_8 (0<<24)
+#define BLT_DEPTH_16_565 (1<<24)
+#define BLT_DEPTH_16_1555 (2<<24)
+#define BLT_DEPTH_32 (3<<24)
+#define BLT_ROP_SRC_COPY (0xcc<<16)
+#define BLT_ROP_COLOR_COPY (0xf0<<16)
+#define PVC_MEM_COPY_CMD (2 << 29 | 0x5a << 22)
+#define PVC_MEM_COPY_SRC_COMPRESSIBLE BIT(16)
+#define PVC_MEM_COPY_DST_COMPRESSIBLE BIT(15)
+#define PVC_MEM_COPY_DST_COMPRESS_EN BIT(13)
+#define MEM_COPY_COMPRESSION_FMT_XEHPC GENMASK(12, 8)
+#define MEM_COPY_COMPRESSION_FMT_XE2 GENMASK(12, 9)
+/*
+ * Bspec lists MOCS fields as [31:25] and [6:0], but the actual indices are
+ * in [31:26] and [6:1].
+ */
+#define MC_SRC_MOCS_INDEX_MASK_GEN12 GENMASK(31, 26)
+#define MC_SRC_MOCS_INDEX_MASK_XE2 GENMASK(31, 28)
+#define MC_DST_MOCS_INDEX_MASK_GEN12 GENMASK(6, 1)
+#define MC_DST_MOCS_INDEX_MASK_XE2 GENMASK(6, 3)
+#define PVC_MEM_SET_CMD (2 << 29 | 0x5b << 22)
+#define PVC_MEM_SET_DST_COMPRESSIBLE BIT(15)
+#define PVC_MEM_SET_DST_COMPRESS_EN BIT(13)
+#define MEM_SET_COMPRESSION_FMT_XEHPC GENMASK(12, 8)
+#define MEM_SET_COMPRESSION_FMT_XE2 GENMASK(12, 9)
+/* Bspec lists field as [6:0], but index alone is from [6:1] */
+#define MS_MOCS_INDEX_MASK_GEN12 GENMASK(6, 1)
+#define MS_MOCS_INDEX_MASK_XE2 GENMASK(6, 3)
+#define XY_SRC_COPY_BLT_SRC_TILED (1<<15) /* 965+ only */
+#define XY_SRC_COPY_BLT_DST_TILED (1<<11) /* 965+ only */
+#define CMD_OP_DISPLAYBUFFER_INFO ((0x0<<29)|(0x14<<23)|2)
+#define ASYNC_FLIP (1<<22)
+#define DISPLAY_PLANE_A (0<<20)
+#define DISPLAY_PLANE_B (1<<20)
+#define GFX_OP_PIPE_CONTROL(len) ((0x3<<29)|(0x3<<27)|(0x2<<24)|((len)-2))
+#define PIPE_CONTROL0_HDC_PIPELINE_FLUSH BIT(9) /* dword0, gen12 */
+#define PIPE_CONTROL0_DATAPORT_FLUSH_XE2 BIT(9) /* dword0, xe2 */
+#define PIPE_CONTROL_COMMAND_CACHE_INVALIDATE (1<<29) /* gen11+ */
+#define PIPE_CONTROL_TILE_CACHE_FLUSH (1<<28) /* gen11+ */
+#define PIPE_CONTROL_FLUSH_L3 (1<<27)
+#define PIPE_CONTROL_AMFS_FLUSH (1<<25) /* gen12+ */
+#define PIPE_CONTROL_GLOBAL_GTT_IVB (1<<24) /* gen7+ */
+#define PIPE_CONTROL_MMIO_WRITE (1<<23)
+#define PIPE_CONTROL_STORE_DATA_INDEX (1<<21)
+#define PIPE_CONTROL_CS_STALL (1<<20)
+#define PIPE_CONTROL_GLOBAL_SNAPSHOT_RESET (1<<19)
+#define PIPE_CONTROL_TLB_INVALIDATE (1<<18)
+#define PIPE_CONTROL_PSD_SYNC (1<<17) /* gen11+ */
+#define PIPE_CONTROL_MEDIA_STATE_CLEAR (1<<16)
+#define PIPE_CONTROL_WRITE_TIMESTAMP (3<<14)
+#define PIPE_CONTROL_QW_WRITE (1<<14)
+#define PIPE_CONTROL_POST_SYNC_OP_MASK (3<<14)
+#define PIPE_CONTROL_DEPTH_STALL (1<<13)
+#define PIPE_CONTROL_WRITE_FLUSH (1<<12)
+#define PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH (1<<12) /* gen6+ */
+#define PIPE_CONTROL_INSTRUCTION_CACHE_INVALIDATE (1<<11) /* MBZ on ILK */
+#define PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE (1<<10) /* GM45+ only */
+#define PIPE_CONTROL_INDIRECT_STATE_DISABLE (1<<9)
+#define PIPE_CONTROL_NOTIFY (1<<8)
+#define PIPE_CONTROL_FLUSH_ENABLE (1<<7) /* gen7+ */
+#define PIPE_CONTROL_DC_FLUSH_ENABLE (1<<5)
+#define PIPE_CONTROL_VF_CACHE_INVALIDATE (1<<4)
+#define PIPE_CONTROL_CONST_CACHE_INVALIDATE (1<<3)
+#define PIPE_CONTROL_STATE_CACHE_INVALIDATE (1<<2)
+#define PIPE_CONTROL_STALL_AT_SCOREBOARD (1<<1)
+#define PIPE_CONTROL_DEPTH_CACHE_FLUSH (1<<0)
+#define PIPE_CONTROL_GLOBAL_GTT (1<<2) /* in addr dword */
+
+/*
+ * 3D-related flags that can't be set on _engines_ that lack access to the 3D
+ * pipeline (i.e., CCS engines).
+ */
+#define PIPE_CONTROL_3D_ENGINE_FLAGS (\
+ PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH | \
+ PIPE_CONTROL_DEPTH_CACHE_FLUSH | \
+ PIPE_CONTROL_TILE_CACHE_FLUSH | \
+ PIPE_CONTROL_DEPTH_STALL | \
+ PIPE_CONTROL_STALL_AT_SCOREBOARD | \
+ PIPE_CONTROL_PSD_SYNC | \
+ PIPE_CONTROL_AMFS_FLUSH | \
+ PIPE_CONTROL_VF_CACHE_INVALIDATE | \
+ PIPE_CONTROL_GLOBAL_SNAPSHOT_RESET)
+
+/* 3D-related flags that can't be set on _platforms_ that lack a 3D pipeline */
+#define PIPE_CONTROL_3D_ARCH_FLAGS ( \
+ PIPE_CONTROL_3D_ENGINE_FLAGS | \
+ PIPE_CONTROL_INDIRECT_STATE_DISABLE | \
+ PIPE_CONTROL_FLUSH_ENABLE | \
+ PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE | \
+ PIPE_CONTROL_DC_FLUSH_ENABLE)
+
+#define MI_MATH(x) MI_INSTR(0x1a, (x) - 1)
+#define MI_MATH_INSTR(opcode, op1, op2) ((opcode) << 20 | (op1) << 10 | (op2))
+/* Opcodes for MI_MATH_INSTR */
+#define MI_MATH_NOOP MI_MATH_INSTR(0x000, 0x0, 0x0)
+#define MI_MATH_LOAD(op1, op2) MI_MATH_INSTR(0x080, op1, op2)
+#define MI_MATH_LOADINV(op1, op2) MI_MATH_INSTR(0x480, op1, op2)
+#define MI_MATH_LOAD0(op1) MI_MATH_INSTR(0x081, op1, 0x0)
+#define MI_MATH_LOAD1(op1) MI_MATH_INSTR(0x481, op1, 0x0)
+#define MI_MATH_ADD MI_MATH_INSTR(0x100, 0x0, 0x0)
+#define MI_MATH_SUB MI_MATH_INSTR(0x101, 0x0, 0x0)
+#define MI_MATH_AND MI_MATH_INSTR(0x102, 0x0, 0x0)
+#define MI_MATH_OR MI_MATH_INSTR(0x103, 0x0, 0x0)
+#define MI_MATH_XOR MI_MATH_INSTR(0x104, 0x0, 0x0)
+#define MI_MATH_STORE(op1, op2) MI_MATH_INSTR(0x180, op1, op2)
+#define MI_MATH_STOREINV(op1, op2) MI_MATH_INSTR(0x580, op1, op2)
+/* DG2+ */
+#define MI_MATH_SHR MI_MATH_INSTR(0x106, 0x0, 0x0)
+
+/* Registers used as operands in MI_MATH_INSTR */
+#define MI_MATH_REG(x) (x)
+#define MI_MATH_REG_SRCA 0x20
+#define MI_MATH_REG_SRCB 0x21
+#define MI_MATH_REG_ACCU 0x31
+#define MI_MATH_REG_ZF 0x32
+#define MI_MATH_REG_CF 0x33
+
+/*
+ * Media instructions used by the kernel
+ */
+#define MEDIA_INSTR(pipe, op, sub_op, flags) \
+ (__INSTR(INSTR_RC_CLIENT) | (pipe) << INSTR_SUBCLIENT_SHIFT | \
+ (op) << INSTR_26_TO_24_SHIFT | (sub_op) << 16 | (flags))
+
+#define MFX_WAIT MEDIA_INSTR(1, 0, 0, 0)
+#define MFX_WAIT_DW0_MFX_SYNC_CONTROL_FLAG REG_BIT(8)
+#define MFX_WAIT_DW0_PXP_SYNC_CONTROL_FLAG REG_BIT(9)
+
+#define CRYPTO_KEY_EXCHANGE MEDIA_INSTR(2, 6, 9, 0)
+
+/*
+ * Commands used only by the command parser
+ */
+#define MI_SET_PREDICATE MI_INSTR(0x01, 0)
+#define MI_ARB_CHECK MI_INSTR(0x05, 0)
+#define MI_RS_CONTROL MI_INSTR(0x06, 0)
+#define MI_URB_ATOMIC_ALLOC MI_INSTR(0x09, 0)
+#define MI_PREDICATE MI_INSTR(0x0C, 0)
+#define MI_RS_CONTEXT MI_INSTR(0x0F, 0)
+#define MI_TOPOLOGY_FILTER MI_INSTR(0x0D, 0)
+#define MI_LOAD_SCAN_LINES_EXCL MI_INSTR(0x13, 0)
+#define MI_URB_CLEAR MI_INSTR(0x19, 0)
+#define MI_UPDATE_GTT MI_INSTR(0x23, 0)
+#define MI_CLFLUSH MI_INSTR(0x27, 0)
+#define MI_REPORT_PERF_COUNT MI_INSTR(0x28, 0)
+#define MI_REPORT_PERF_COUNT_GGTT (1<<0)
+#define MI_RS_STORE_DATA_IMM MI_INSTR(0x2B, 0)
+#define MI_LOAD_URB_MEM MI_INSTR(0x2C, 0)
+#define MI_STORE_URB_MEM MI_INSTR(0x2D, 0)
+#define MI_CONDITIONAL_BATCH_BUFFER_END MI_INSTR(0x36, 0)
+
+#define STATE_SYSTEM_MEM_FENCE_ADDRESS \
+ ((0x3 << 29) | (0x0 << 27) | (0x1 << 24) | (0x9 << 16) | 0x1)
+#define STATE_BASE_ADDRESS \
+ ((0x3 << 29) | (0x0 << 27) | (0x1 << 24) | (0x1 << 16))
+#define BASE_ADDRESS_MODIFY REG_BIT(0)
+#define PIPELINE_SELECT \
+ ((0x3 << 29) | (0x1 << 27) | (0x1 << 24) | (0x4 << 16))
+#define PIPELINE_SELECT_MEDIA REG_BIT(0)
+#define GFX_OP_3DSTATE_VF_STATISTICS \
+ ((0x3 << 29) | (0x1 << 27) | (0x0 << 24) | (0xB << 16))
+#define MEDIA_VFE_STATE \
+ ((0x3 << 29) | (0x2 << 27) | (0x0 << 24) | (0x0 << 16))
+#define MEDIA_VFE_STATE_MMIO_ACCESS_MASK (0x18)
+#define MEDIA_INTERFACE_DESCRIPTOR_LOAD \
+ ((0x3 << 29) | (0x2 << 27) | (0x0 << 24) | (0x2 << 16))
+#define MEDIA_OBJECT \
+ ((0x3 << 29) | (0x2 << 27) | (0x1 << 24) | (0x0 << 16))
+#define GPGPU_OBJECT ((0x3<<29)|(0x2<<27)|(0x1<<24)|(0x4<<16))
+#define GPGPU_WALKER ((0x3<<29)|(0x2<<27)|(0x1<<24)|(0x5<<16))
+#define GFX_OP_3DSTATE_DX9_CONSTANTF_VS \
+ ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x39<<16))
+#define GFX_OP_3DSTATE_DX9_CONSTANTF_PS \
+ ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x3A<<16))
+#define GFX_OP_3DSTATE_SO_DECL_LIST \
+ ((0x3<<29)|(0x3<<27)|(0x1<<24)|(0x17<<16))
+
+#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_VS \
+ ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x43<<16))
+#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_GS \
+ ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x44<<16))
+#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_HS \
+ ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x45<<16))
+#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_DS \
+ ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x46<<16))
+#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_PS \
+ ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x47<<16))
+
+#define COLOR_BLT ((0x2<<29)|(0x40<<22))
+#define SRC_COPY_BLT ((0x2<<29)|(0x43<<22))
+
+/* Bspec 63347*/
+#define GSC_INSTR(opcode, data, flags) \
+ (__INSTR(INSTR_GSC_CLIENT) | (opcode) << 22 | (data) << 9 | (flags))
+
+/* bspec 65346 */
+#define GSC_FW_LOAD GSC_INSTR(1, 0, 2)
+#define HECI1_FW_LIMIT_VALID (1<<31)
+
+#define GSC_HECI_CMD_PKT GSC_INSTR(0, 0, 6)
+
+/*
+ * Used to convert an address to canonical form based on size of
+ * virtual address space.
+ * Starting from gen8, some commands (e.g. STATE_BASE_ADDRESS,
+ * MI_LOAD_REGISTER_MEM and others, see Broadwell PRM Vol2a) require the
+ * addresses to be in a canonical form:
+ * "GraphicsAddress[63:48] are ignored by the HW and assumed to be in correct
+ * canonical form [63:48] == [47]."
+ */
+static inline u64 intel_canonical_addr(u32 ppgtt_msb, u64 address)
+{
+ return sign_extend64(address, ppgtt_msb);
+}
+
+static inline u64 intel_noncanonical_addr(u32 ppgtt_msb, u64 address)
+{
+ return address & GENMASK_ULL(ppgtt_msb, 0);
+}
+
+static inline u32 *__gen6_emit_bb_start(u32 *cs, u32 addr, unsigned int flags)
+{
+ *cs++ = MI_BATCH_BUFFER_START | flags;
+ *cs++ = addr;
+
+ return cs;
+}
+
+#endif /* _INTEL_GPU_COMMANDS_H_ */
--
2.25.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* [igt-dev] [PATCH i-g-t 2/2] include/intel_gpu_commands: Copy intel_gpu_commands from the kernel 2023-03-07 16:21 [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from the kernel Vikas Srivastava @ 2023-03-07 16:21 ` Vikas Srivastava 2023-03-07 16:53 ` [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h " Zbigniew Kempczyński ` (2 subsequent siblings) 3 siblings, 0 replies; 6+ messages in thread From: Vikas Srivastava @ 2023-03-07 16:21 UTC (permalink / raw) To: igt-dev From: Chris Wilson <chris.p.wilson@linux.intel.com> Define the GPU commands at one place and consolidate on a single interface consistent with usage inside the kernel. Signed-off-by: Chris Wilson <chris.p.wilson@linux.intel.com> Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com> --- include/linux_scaffold.h | 51 ++++++++++++++++++++++++++++++++++++++++ lib/ioctl_wrappers.h | 4 ++-- meson.build | 2 +- 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 include/linux_scaffold.h diff --git a/include/linux_scaffold.h b/include/linux_scaffold.h new file mode 100644 index 000000000..57c456180 --- /dev/null +++ b/include/linux_scaffold.h @@ -0,0 +1,51 @@ +/* SPDX-License-Identifier: MIT */ + +#ifndef _INTEL_GPU_COMMANDS_SCAFFOLD_H_ +#define _INTEL_GPU_COMMANDS_SCAFFOLD_H_ + +#include <linux/const.h> + +#include <stdint.h> + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef int64_t s64; + +static s64 sign_extend64(u64 value, int index) +{ + int shift = 63 - index; + + return (s64)(value << shift) >> shift; +} + +/* Make IGT build with Kernels < 4.17 */ +#ifndef _AC +# define _AC(X, Y) __AC(X, Y) +#endif +#ifndef _UL +# define _UL(x) (_AC(x, UL)) +#endif +#ifndef _ULL +# define _ULL(x) (_AC(x, ULL)) +#endif + +#define GENMASK(h, l) \ + (((~_UL(0)) - (_UL(1) << (l)) + 1) & \ + (~_UL(0) >> (BITS_PER_LONG - 1 - (h)))) + +#define GENMASK_ULL(h, l) \ + (((~_ULL(0)) - (_ULL(1) << (l)) + 1) & \ + (~_ULL(0) >> (BITS_PER_LONG_LONG - 1 - (h)))) + +#define BITS_PER_BYTE 8 +#define BITS_PER_TYPE(t) (sizeof(t) * BITS_PER_BYTE) +#define BITS_PER_LONG BITS_PER_TYPE(long) +#define BITS_PER_LONG_LONG BITS_PER_TYPE(long long) + +#endif /* _INTEL_GPU_COMMANDS_SCAFFOLD_H_ */ diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h index cf228c265..aecad2d7d 100644 --- a/lib/ioctl_wrappers.h +++ b/lib/ioctl_wrappers.h @@ -173,9 +173,9 @@ static inline uint64_t to_user_pointer(const void *ptr) * * Casts a 64bit value from an ioctl into a pointer. */ -static inline void *from_user_pointer(uint64_t u64) +static inline void *from_user_pointer(uint64_t x64) { - return (void *)(uintptr_t)u64; + return (void *)(uintptr_t)x64; } /** diff --git a/meson.build b/meson.build index e7a68503d..4dc720bc2 100644 --- a/meson.build +++ b/meson.build @@ -85,7 +85,7 @@ with_libdrm = get_option('libdrm_drivers') build_info = ['Build type: ' + get_option('buildtype')] -inc = include_directories('include/drm-uapi', 'include/linux-uapi', 'lib', 'lib/stubs/syscalls', '.') +inc = include_directories('include', 'include/drm-uapi', 'include/linux-uapi', 'lib', 'lib/stubs/syscalls', '.') inc_for_gtkdoc = include_directories('lib') -- 2.25.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from the kernel 2023-03-07 16:21 [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from the kernel Vikas Srivastava 2023-03-07 16:21 ` [igt-dev] [PATCH i-g-t 2/2] include/intel_gpu_commands: Copy intel_gpu_commands " Vikas Srivastava @ 2023-03-07 16:53 ` Zbigniew Kempczyński 2023-03-07 17:06 ` Srivastava, Vikas 2023-03-07 17:30 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork 2023-03-08 20:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 3 siblings, 1 reply; 6+ messages in thread From: Zbigniew Kempczyński @ 2023-03-07 16:53 UTC (permalink / raw) To: Vikas Srivastava; +Cc: igt-dev On Tue, Mar 07, 2023 at 09:51:45PM +0530, Vikas Srivastava wrote: > From: Chris Wilson <chris.p.wilson@linux.intel.com> > > Cherry picking this patch to fix conflicts while merging > patch to resolve gem_exec_await timeout issue. > > The current version of intel_gpu_commands lacks a few definitions and > has a couple of mistakes. This patch should be pushed to the kernel, > along with any other cleanups, and then copied back here. Looks we worked on same thing: https://patchwork.freedesktop.org/series/114619/ -- Zbigniew > > Signed-off-by: Chris Wilson <chris.p.wilson@linux.intel.com> > Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com> > --- > include/intel_gpu_commands.h | 533 +++++++++++++++++++++++++++++++++++ > 1 file changed, 533 insertions(+) > create mode 100644 include/intel_gpu_commands.h > > diff --git a/include/intel_gpu_commands.h b/include/intel_gpu_commands.h > new file mode 100644 > index 000000000..b5239132f > --- /dev/null > +++ b/include/intel_gpu_commands.h > @@ -0,0 +1,533 @@ > +/* SPDX-License-Identifier: MIT*/ > +/* > + * Copyright © 2003-2018 Intel Corporation > + */ > + > +#ifndef _INTEL_GPU_COMMANDS_H_ > +#define _INTEL_GPU_COMMANDS_H_ > + > +#ifdef __KERNEL > +#include <linux/bitops.h> > +#else > +#include "linux_scaffold.h" > +#endif > + > +/* > + * Target address alignments required for GPU access e.g. > + * MI_STORE_DWORD_IMM. > + */ > +#define alignof_dword 4 > +#define alignof_qword 8 > + > +/* > + * Instruction field definitions used by the command parser > + */ > +#define INSTR_CLIENT_SHIFT 29 > +#define INSTR_MI_CLIENT 0x0 > +#define INSTR_BC_CLIENT 0x2 > +#define INSTR_GSC_CLIENT 0x2 /* MTL + */ > +#define INSTR_RC_CLIENT 0x3 > +#define INSTR_SUBCLIENT_SHIFT 27 > +#define INSTR_SUBCLIENT_MASK 0x18000000 > +#define INSTR_MEDIA_SUBCLIENT 0x2 > +#define INSTR_26_TO_24_MASK 0x7000000 > +#define INSTR_26_TO_24_SHIFT 24 > + > +#define __INSTR(client) ((client) << INSTR_CLIENT_SHIFT) > + > +/* > + * Memory interface instructions used by the kernel > + */ > +#define MI_INSTR(opcode, flags) \ > + (__INSTR(INSTR_MI_CLIENT) | (opcode) << 23 | (flags)) > +/* Many MI commands use bit 22 of the header dword for GGTT vs PPGTT */ > +#define MI_GLOBAL_GTT (1<<22) > + > +#define MI_NOOP MI_INSTR(0, 0) > +#define MI_SET_PREDICATE MI_INSTR(0x01, 0) > +#define MI_SET_PREDICATE_DISABLE (0 << 0) > +#define MI_USER_INTERRUPT MI_INSTR(0x02, 0) > +#define MI_WAIT_FOR_EVENT MI_INSTR(0x03, 0) > +#define MI_WAIT_FOR_OVERLAY_FLIP (1<<16) > +#define MI_WAIT_FOR_PLANE_B_FLIP (1<<6) > +#define MI_WAIT_FOR_PLANE_A_FLIP (1<<2) > +#define MI_WAIT_FOR_PLANE_A_SCANLINES (1<<1) > +#define MI_FLUSH MI_INSTR(0x04, 0) > +#define MI_READ_FLUSH (1 << 0) > +#define MI_EXE_FLUSH (1 << 1) > +#define MI_NO_WRITE_FLUSH (1 << 2) > +#define MI_SCENE_COUNT (1 << 3) /* just increment scene count */ > +#define MI_END_SCENE (1 << 4) /* flush binner and incr scene count */ > +#define MI_INVALIDATE_ISP (1 << 5) /* invalidate indirect state pointers */ > +#define MI_REPORT_HEAD MI_INSTR(0x07, 0) > +#define MI_ARB_ON_OFF MI_INSTR(0x08, 0) > +#define MI_ARB_ENABLE (1<<0) > +#define MI_ARB_DISABLE (0<<0) > +#define MI_MEM_FENCE MI_INSTR(0x09, 0) > +#define MI_ACQUIRE_ENABLE (1 << 0) > +#define MI_WRITE_FENCE (3 << 0) > +#define MI_BATCH_BUFFER_END MI_INSTR(0x0a, 0) > +#define MI_SUSPEND_FLUSH MI_INSTR(0x0b, 0) > +#define MI_SUSPEND_FLUSH_EN (1<<0) > +#define MI_SET_APPID MI_INSTR(0x0e, 0) > +#define MI_SET_APPID_SESSION_ID(x) ((x) << 0) > +#define MI_OVERLAY_FLIP MI_INSTR(0x11, 0) > +#define MI_OVERLAY_CONTINUE (0x0<<21) > +#define MI_OVERLAY_ON (0x1<<21) > +#define MI_OVERLAY_OFF (0x2<<21) > +#define MI_LOAD_SCAN_LINES_INCL MI_INSTR(0x12, 0) > +#define MI_DISPLAY_FLIP MI_INSTR(0x14, 2) > +#define MI_DISPLAY_FLIP_I915 MI_INSTR(0x14, 1) > +#define MI_DISPLAY_FLIP_PLANE(n) ((n) << 20) > +/* IVB has funny definitions for which plane to flip. */ > +#define MI_DISPLAY_FLIP_IVB_PLANE_A (0 << 19) > +#define MI_DISPLAY_FLIP_IVB_PLANE_B (1 << 19) > +#define MI_DISPLAY_FLIP_IVB_SPRITE_A (2 << 19) > +#define MI_DISPLAY_FLIP_IVB_SPRITE_B (3 << 19) > +#define MI_DISPLAY_FLIP_IVB_PLANE_C (4 << 19) > +#define MI_DISPLAY_FLIP_IVB_SPRITE_C (5 << 19) > +/* SKL ones */ > +#define MI_DISPLAY_FLIP_SKL_PLANE_1_A (0 << 8) > +#define MI_DISPLAY_FLIP_SKL_PLANE_1_B (1 << 8) > +#define MI_DISPLAY_FLIP_SKL_PLANE_1_C (2 << 8) > +#define MI_DISPLAY_FLIP_SKL_PLANE_2_A (4 << 8) > +#define MI_DISPLAY_FLIP_SKL_PLANE_2_B (5 << 8) > +#define MI_DISPLAY_FLIP_SKL_PLANE_2_C (6 << 8) > +#define MI_DISPLAY_FLIP_SKL_PLANE_3_A (7 << 8) > +#define MI_DISPLAY_FLIP_SKL_PLANE_3_B (8 << 8) > +#define MI_DISPLAY_FLIP_SKL_PLANE_3_C (9 << 8) > +#define MI_SEMAPHORE_MBOX MI_INSTR(0x16, 1) /* gen6, gen7 */ > +#define MI_SEMAPHORE_GLOBAL_GTT (1<<22) > +#define MI_SEMAPHORE_UPDATE (1<<21) > +#define MI_SEMAPHORE_COMPARE (1<<20) > +#define MI_SEMAPHORE_REGISTER (1<<18) > +#define MI_SEMAPHORE_SYNC_VR (0<<16) /* RCS wait for VCS (RVSYNC) */ > +#define MI_SEMAPHORE_SYNC_VER (1<<16) /* RCS wait for VECS (RVESYNC) */ > +#define MI_SEMAPHORE_SYNC_BR (2<<16) /* RCS wait for BCS (RBSYNC) */ > +#define MI_SEMAPHORE_SYNC_BV (0<<16) /* VCS wait for BCS (VBSYNC) */ > +#define MI_SEMAPHORE_SYNC_VEV (1<<16) /* VCS wait for VECS (VVESYNC) */ > +#define MI_SEMAPHORE_SYNC_RV (2<<16) /* VCS wait for RCS (VRSYNC) */ > +#define MI_SEMAPHORE_SYNC_RB (0<<16) /* BCS wait for RCS (BRSYNC) */ > +#define MI_SEMAPHORE_SYNC_VEB (1<<16) /* BCS wait for VECS (BVESYNC) */ > +#define MI_SEMAPHORE_SYNC_VB (2<<16) /* BCS wait for VCS (BVSYNC) */ > +#define MI_SEMAPHORE_SYNC_BVE (0<<16) /* VECS wait for BCS (VEBSYNC) */ > +#define MI_SEMAPHORE_SYNC_VVE (1<<16) /* VECS wait for VCS (VEVSYNC) */ > +#define MI_SEMAPHORE_SYNC_RVE (2<<16) /* VECS wait for RCS (VERSYNC) */ > +#define MI_SEMAPHORE_SYNC_INVALID (3<<16) > +#define MI_SEMAPHORE_SYNC_MASK (3<<16) > +#define MI_SET_CONTEXT MI_INSTR(0x18, 0) > +#define MI_MM_SPACE_GTT (1<<8) > +#define MI_MM_SPACE_PHYSICAL (0<<8) > +#define MI_SAVE_EXT_STATE_EN (1<<3) > +#define MI_RESTORE_EXT_STATE_EN (1<<2) > +#define MI_FORCE_RESTORE (1<<1) > +#define MI_RESTORE_INHIBIT (1<<0) > +#define HSW_MI_RS_SAVE_STATE_EN (1<<3) > +#define HSW_MI_RS_RESTORE_STATE_EN (1<<2) > +#define MI_SEMAPHORE_SIGNAL MI_INSTR(0x1b, 0) /* GEN8+ */ > +#define MI_SEMAPHORE_TARGET(engine) ((engine)<<15) > +#define MI_SEMAPHORE_WAIT MI_INSTR(0x1c, 2) /* GEN8+ */ > +#define MI_SEMAPHORE_WAIT_TOKEN MI_INSTR(0x1c, 3) /* GEN12+ */ > +#define MI_SEMAPHORE_POLL (1 << 15) > +#define MI_SEMAPHORE_SAD_GT_SDD (0 << 12) > +#define MI_SEMAPHORE_SAD_GTE_SDD (1 << 12) > +#define MI_SEMAPHORE_SAD_LT_SDD (2 << 12) > +#define MI_SEMAPHORE_SAD_LTE_SDD (3 << 12) > +#define MI_SEMAPHORE_SAD_EQ_SDD (4 << 12) > +#define MI_SEMAPHORE_SAD_NEQ_SDD (5 << 12) > +#define MI_SEMAPHORE_27_TOKEN_MASK REG_GENMASK(9, 5) > +#define MI_SEMAPHORE_256_TOKEN_MASK REG_GENMASK(9, 2) > +#define MI_SEMAPHORE_27_TOKEN_SHIFT 5 > +#define MI_SEMAPHORE_256_TOKEN_SHIFT 2 > +#define MI_STORE_DATA_IMM MI_INSTR(0x20, 0) > +#define MI_STORE_DWORD_IMM MI_INSTR(0x20, 1) > +#define MI_STORE_DWORD_IMM_GEN4 MI_INSTR(0x20, 2) > +#define MI_STORE_QWORD_IMM_GEN8_POSTED (MI_INSTR(0x20, 3) | (1 << 21)) > +#define MI_STORE_QWORD_IMM_GEN8 (MI_INSTR(0x20, 3) | (1 << 10) | (1 << 21)) > +#define MI_MEM_VIRTUAL (1 << 22) /* 945,g33,965 */ > +#define MI_USE_GGTT (1 << 22) /* g4x+ */ > +#define MI_STORE_DWORD_INDEX MI_INSTR(0x21, 1) > +#define MI_ATOMIC MI_INSTR(0x2f, 1) > +#define MI_ATOMIC_INLINE (MI_INSTR(0x2f, 9) | MI_ATOMIC_INLINE_DATA) > +#define MI_ATOMIC_GLOBAL_GTT (1 << 22) > +#define MI_ATOMIC_INLINE_DATA (1 << 18) > +#define MI_ATOMIC_CS_STALL (1 << 17) > +#define MI_ATOMIC_MOVE (0x4 << 8) > +#define MI_ATOMIC_INC (0x5 << 8) > +#define MI_ATOMIC_DEC (0x6 << 8) > +#define MI_ATOMIC_ADD (0x7 << 8) > +#define MI_ATOMIC_SUB (0x8 << 8) > + > +/* > + * Official intel docs are somewhat sloppy concerning MI_LOAD_REGISTER_IMM: > + * - Always issue a MI_NOOP _before_ the MI_LOAD_REGISTER_IMM - otherwise hw > + * simply ignores the register load under certain conditions. > + * - One can actually load arbitrary many arbitrary registers: Simply issue x > + * address/value pairs. Don't overdue it, though, x <= 2^4 must hold! > + */ > +#define MI_LOAD_REGISTER_IMM(x) MI_INSTR(0x22, 2*(x)-1) > +/* Gen11+. addr = base + (ctx_restore ? offset & GENMASK(12,2) : offset) */ > +#define MI_LRI_DEST_CS_MMIO REG_BIT(19) > +#define MI_LRI_LRM_CS_MMIO REG_BIT(19) > +#define MI_LRI_FORCE_POSTED (1<<12) > +#define MI_LOAD_REGISTER_IMM_MAX_REGS (126) > +#define __MI_STORE_REGISTER_MEM MI_INSTR(0x24, 0) > +#define MI_STORE_REGISTER_MEM MI_INSTR(0x24, 1) > +#define MI_STORE_REGISTER_MEM_GEN8 MI_INSTR(0x24, 2) > +#define MI_SRM_LRM_GLOBAL_GTT (1<<22) > +#define MI_FLUSH_DW MI_INSTR(0x26, 1) /* for GEN6 */ > +#define MI_FLUSH_DW_PROTECTED_MEM_EN (1 << 22) > +#define MI_FLUSH_DW_STORE_INDEX (1<<21) > +#define MI_INVALIDATE_TLB (1<<18) > +#define MI_FLUSH_CCS (1<<16) > +#define MI_FLUSH_DW_OP_STOREDW (1<<14) > +#define MI_FLUSH_DW_OP_MASK (3<<14) > +#define MI_FLUSH_LLC (1<<9) > +#define MI_FLUSH_DW_NOTIFY (1<<8) > +#define MI_INVALIDATE_BSD (1<<7) > +#define MI_FLUSH_DW_USE_GTT (1<<2) > +#define MI_FLUSH_DW_USE_PPGTT (0<<2) > +#define __MI_LOAD_REGISTER_MEM MI_INSTR(0x29, 0) > +#define MI_LOAD_REGISTER_MEM MI_INSTR(0x29, 1) > +#define MI_LOAD_REGISTER_MEM_GEN8 MI_INSTR(0x29, 2) > +#define MI_LOAD_REGISTER_REG MI_INSTR(0x2A, 1) > +#define MI_LRR_SOURCE_CS_MMIO REG_BIT(18) > +#define MI_LRR_DEST_CS_MMIO REG_BIT(19) > +#define MI_BATCH_BUFFER MI_INSTR(0x30, 1) > +#define MI_BATCH_NON_SECURE (1) > +/* for snb/ivb/vlv this also means "batch in ppgtt" when ppgtt is enabled. */ > +#define MI_BATCH_NON_SECURE_I965 (1<<8) > +#define MI_BATCH_PPGTT_HSW (1<<8) > +#define MI_BATCH_NON_SECURE_HSW (1<<13) > +#define MI_BATCH_BUFFER_START MI_INSTR(0x31, 0) > +#define MI_BATCH_GTT (2<<6) /* aliased with (1<<7) on gen4 */ > +#define MI_BATCH_BUFFER_START_GEN8 MI_INSTR(0x31, 1) > +#define MI_BATCH_RESOURCE_STREAMER REG_BIT(10) > +#define MI_BATCH_PREDICATE REG_BIT(15) /* HSW+ on RCS only*/ > +#define MI_COND_BATCH_BUFFER_END MI_INSTR(0x36, 0) > +#define MI_DO_COMPARE (1 << 21) > + > +/* > + * 3D instructions used by the kernel > + */ > +#define GFX_INSTR(opcode, flags) ((0x3 << 29) | ((opcode) << 24) | (flags)) > + > +#define GEN9_MEDIA_POOL_STATE ((0x3 << 29) | (0x2 << 27) | (0x5 << 16) | 4) > +#define GEN9_MEDIA_POOL_ENABLE (1 << 31) > +#define GFX_OP_RASTER_RULES ((0x3<<29)|(0x7<<24)) > +#define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19)) > +#define SC_UPDATE_SCISSOR (0x1<<1) > +#define SC_ENABLE_MASK (0x1<<0) > +#define SC_ENABLE (0x1<<0) > +#define GFX_OP_LOAD_INDIRECT ((0x3<<29)|(0x1d<<24)|(0x7<<16)) > +#define GFX_OP_SCISSOR_INFO ((0x3<<29)|(0x1d<<24)|(0x81<<16)|(0x1)) > +#define SCI_YMIN_MASK (0xffff<<16) > +#define SCI_XMIN_MASK (0xffff<<0) > +#define SCI_YMAX_MASK (0xffff<<16) > +#define SCI_XMAX_MASK (0xffff<<0) > +#define GFX_OP_SCISSOR_ENABLE ((0x3<<29)|(0x1c<<24)|(0x10<<19)) > +#define GFX_OP_SCISSOR_RECT ((0x3<<29)|(0x1d<<24)|(0x81<<16)|1) > +#define GFX_OP_COLOR_FACTOR ((0x3<<29)|(0x1d<<24)|(0x1<<16)|0x0) > +#define GFX_OP_STIPPLE ((0x3<<29)|(0x1d<<24)|(0x83<<16)) > +#define GFX_OP_MAP_INFO ((0x3<<29)|(0x1d<<24)|0x4) > +#define GFX_OP_DESTBUFFER_VARS ((0x3<<29)|(0x1d<<24)|(0x85<<16)|0x0) > +#define GFX_OP_DESTBUFFER_INFO ((0x3<<29)|(0x1d<<24)|(0x8e<<16)|1) > +#define GFX_OP_DRAWRECT_INFO ((0x3<<29)|(0x1d<<24)|(0x80<<16)|(0x3)) > +#define GFX_OP_DRAWRECT_INFO_I965 ((0x7900<<16)|0x2) > + > +#define XY_CTRL_SURF_COPY_BLT (2<<29 | 0x48<<22 | 3) > +#define SRC_ACCESS_TYPE_SHIFT 21 > +#define DST_ACCESS_TYPE_SHIFT 20 > +#define CCS_SIZE_SHIFT 8 > +/* Bspec lists field as [31:25], but index alone is at [31:26] */ > +#define XY_CSC_BLT_MOCS_INDEX_MASK_GEN12 GENMASK(31, 26) > +#define XY_CSC_BLT_MOCS_INDEX_MASK_XE2 GENMASK(31, 28) > +#define NUM_CCS_BYTES_PER_BLOCK 256 > +#define NUM_CCS_BLKS_PER_XFER 1024 > +#define INDIRECT_ACCESS 0 > +#define DIRECT_ACCESS 1 > + > +#define COLOR_BLT_CMD (2 << 29 | 0x40 << 22 | (5 - 2)) > +#define XY_BLOCK_COPY_BLT_CMD (2 << 29 | 0x41 << 22) > +#define DEST_MEM_TYPE_SHIFT (31) > +#define SRC_MEM_TYPE_SHIFT (31) > +#define MEM_TYPE_SYS 1 > +#define MEM_TYPE_LOCAL 0 > +#define COMPRESSION_ENABLE (1 << 29) > +#define AUX_CCS_E (5 << 18) > +#define FULL_RESOLVE (1 << 12) > +#define TILE_4_FORMAT (2 << 30) > +#define TILE_4_WIDTH (128) > +#define TILE_4_WIDTH_DWORD ((128 >> 2) - 1) > +#define TILE_4_HEIGHT (32) > +#define SURFACE_TYPE_2D (1 << 29) > +#define DEST_SURF_WIDTH_SHIFT (14) > +#define SRC_SURF_WIDTH_SHIFT (14) > +/* Bspec lists this field as 27:21, but the index alone is in 27:22 */ > +#define XY_BCB_MOCS_INDEX_MASK_GEN12 GENMASK(27, 22) > +#define XY_BCB_MOCS_INDEX_MASK_XE2 GENMASK(27, 24) > +#define GEN9_XY_FAST_COPY_BLT_CMD (2 << 29 | 0x42 << 22) > +#define XY_FAST_COPY_BLT_D0_SRC_TILING_MASK REG_GENMASK(21, 20) > +#define XY_FAST_COPY_BLT_D0_DST_TILING_MASK REG_GENMASK(14, 13) > +#define XY_FAST_COPY_BLT_D0_SRC_TILE_MODE(mode) \ > + REG_FIELD_PREP(XY_FAST_COPY_BLT_D0_SRC_TILING_MASK, mode) > +#define XY_FAST_COPY_BLT_D0_DST_TILE_MODE(mode) \ > + REG_FIELD_PREP(XY_FAST_COPY_BLT_D0_DST_TILING_MASK, mode) > +#define LINEAR 0 > +#define TILE_X 0x1 > +#define XMAJOR 0x1 > +#define YMAJOR 0x2 > +#define TILE_64 0x3 > +#define XY_FAST_COPY_BLT_D1_SRC_TILE4 REG_BIT(31) > +#define XY_FAST_COPY_BLT_D1_DST_TILE4 REG_BIT(30) > +#define PVC_ENABLE_COMPRESSED_SURFACE REG_BIT(16) > +#define XY_FCB_MOCS_INDEX_MASK_XE2 GENMASK(23, 20) > +#define BLIT_CCTL_SRC_MOCS_MASK REG_GENMASK(6, 0) > +#define BLIT_CCTL_DST_MOCS_MASK REG_GENMASK(14, 8) > +/* Note: MOCS value = (index << 1) */ > +#define BLIT_CCTL_SRC_MOCS(idx) \ > + REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, idx << 1) > +#define BLIT_CCTL_DST_MOCS(idx) \ > + REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, idx << 1) > +#define SRC_COPY_BLT_CMD (2 << 29 | 0x43 << 22) > +#define XY_FAST_COLOR_BLT (2 << 29 | 0x44 << 22) > +#define BLT_COLOR_DEPTH_32 (2 << 19) > +#define BLT_COLOR_DEPTH_64 (3 << 19) > +/* Bspec lists field as [27:21], but index resides in [27:22] */ > +#define XY_FCB_MOCS_INDEX_MASK GENMASK(27, 22) > +#define XY_COLOR_BLT_CMD (2 << 29 | 0x50 << 22) > +#define XY_SRC_COPY_BLT_CMD (2 << 29 | 0x53 << 22) > +#define XY_MONO_SRC_COPY_IMM_BLT (2 << 29 | 0x71 << 22 | 5) > +#define BLT_SRCMEM_SYS (1<<29) > +#define BLT_WRITE_A (2<<20) > +#define BLT_WRITE_RGB (1<<20) > +#define BLT_WRITE_RGBA (BLT_WRITE_RGB | BLT_WRITE_A) > +#define BLT_DEPTH_8 (0<<24) > +#define BLT_DEPTH_16_565 (1<<24) > +#define BLT_DEPTH_16_1555 (2<<24) > +#define BLT_DEPTH_32 (3<<24) > +#define BLT_ROP_SRC_COPY (0xcc<<16) > +#define BLT_ROP_COLOR_COPY (0xf0<<16) > +#define PVC_MEM_COPY_CMD (2 << 29 | 0x5a << 22) > +#define PVC_MEM_COPY_SRC_COMPRESSIBLE BIT(16) > +#define PVC_MEM_COPY_DST_COMPRESSIBLE BIT(15) > +#define PVC_MEM_COPY_DST_COMPRESS_EN BIT(13) > +#define MEM_COPY_COMPRESSION_FMT_XEHPC GENMASK(12, 8) > +#define MEM_COPY_COMPRESSION_FMT_XE2 GENMASK(12, 9) > +/* > + * Bspec lists MOCS fields as [31:25] and [6:0], but the actual indices are > + * in [31:26] and [6:1]. > + */ > +#define MC_SRC_MOCS_INDEX_MASK_GEN12 GENMASK(31, 26) > +#define MC_SRC_MOCS_INDEX_MASK_XE2 GENMASK(31, 28) > +#define MC_DST_MOCS_INDEX_MASK_GEN12 GENMASK(6, 1) > +#define MC_DST_MOCS_INDEX_MASK_XE2 GENMASK(6, 3) > +#define PVC_MEM_SET_CMD (2 << 29 | 0x5b << 22) > +#define PVC_MEM_SET_DST_COMPRESSIBLE BIT(15) > +#define PVC_MEM_SET_DST_COMPRESS_EN BIT(13) > +#define MEM_SET_COMPRESSION_FMT_XEHPC GENMASK(12, 8) > +#define MEM_SET_COMPRESSION_FMT_XE2 GENMASK(12, 9) > +/* Bspec lists field as [6:0], but index alone is from [6:1] */ > +#define MS_MOCS_INDEX_MASK_GEN12 GENMASK(6, 1) > +#define MS_MOCS_INDEX_MASK_XE2 GENMASK(6, 3) > +#define XY_SRC_COPY_BLT_SRC_TILED (1<<15) /* 965+ only */ > +#define XY_SRC_COPY_BLT_DST_TILED (1<<11) /* 965+ only */ > +#define CMD_OP_DISPLAYBUFFER_INFO ((0x0<<29)|(0x14<<23)|2) > +#define ASYNC_FLIP (1<<22) > +#define DISPLAY_PLANE_A (0<<20) > +#define DISPLAY_PLANE_B (1<<20) > +#define GFX_OP_PIPE_CONTROL(len) ((0x3<<29)|(0x3<<27)|(0x2<<24)|((len)-2)) > +#define PIPE_CONTROL0_HDC_PIPELINE_FLUSH BIT(9) /* dword0, gen12 */ > +#define PIPE_CONTROL0_DATAPORT_FLUSH_XE2 BIT(9) /* dword0, xe2 */ > +#define PIPE_CONTROL_COMMAND_CACHE_INVALIDATE (1<<29) /* gen11+ */ > +#define PIPE_CONTROL_TILE_CACHE_FLUSH (1<<28) /* gen11+ */ > +#define PIPE_CONTROL_FLUSH_L3 (1<<27) > +#define PIPE_CONTROL_AMFS_FLUSH (1<<25) /* gen12+ */ > +#define PIPE_CONTROL_GLOBAL_GTT_IVB (1<<24) /* gen7+ */ > +#define PIPE_CONTROL_MMIO_WRITE (1<<23) > +#define PIPE_CONTROL_STORE_DATA_INDEX (1<<21) > +#define PIPE_CONTROL_CS_STALL (1<<20) > +#define PIPE_CONTROL_GLOBAL_SNAPSHOT_RESET (1<<19) > +#define PIPE_CONTROL_TLB_INVALIDATE (1<<18) > +#define PIPE_CONTROL_PSD_SYNC (1<<17) /* gen11+ */ > +#define PIPE_CONTROL_MEDIA_STATE_CLEAR (1<<16) > +#define PIPE_CONTROL_WRITE_TIMESTAMP (3<<14) > +#define PIPE_CONTROL_QW_WRITE (1<<14) > +#define PIPE_CONTROL_POST_SYNC_OP_MASK (3<<14) > +#define PIPE_CONTROL_DEPTH_STALL (1<<13) > +#define PIPE_CONTROL_WRITE_FLUSH (1<<12) > +#define PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH (1<<12) /* gen6+ */ > +#define PIPE_CONTROL_INSTRUCTION_CACHE_INVALIDATE (1<<11) /* MBZ on ILK */ > +#define PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE (1<<10) /* GM45+ only */ > +#define PIPE_CONTROL_INDIRECT_STATE_DISABLE (1<<9) > +#define PIPE_CONTROL_NOTIFY (1<<8) > +#define PIPE_CONTROL_FLUSH_ENABLE (1<<7) /* gen7+ */ > +#define PIPE_CONTROL_DC_FLUSH_ENABLE (1<<5) > +#define PIPE_CONTROL_VF_CACHE_INVALIDATE (1<<4) > +#define PIPE_CONTROL_CONST_CACHE_INVALIDATE (1<<3) > +#define PIPE_CONTROL_STATE_CACHE_INVALIDATE (1<<2) > +#define PIPE_CONTROL_STALL_AT_SCOREBOARD (1<<1) > +#define PIPE_CONTROL_DEPTH_CACHE_FLUSH (1<<0) > +#define PIPE_CONTROL_GLOBAL_GTT (1<<2) /* in addr dword */ > + > +/* > + * 3D-related flags that can't be set on _engines_ that lack access to the 3D > + * pipeline (i.e., CCS engines). > + */ > +#define PIPE_CONTROL_3D_ENGINE_FLAGS (\ > + PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH | \ > + PIPE_CONTROL_DEPTH_CACHE_FLUSH | \ > + PIPE_CONTROL_TILE_CACHE_FLUSH | \ > + PIPE_CONTROL_DEPTH_STALL | \ > + PIPE_CONTROL_STALL_AT_SCOREBOARD | \ > + PIPE_CONTROL_PSD_SYNC | \ > + PIPE_CONTROL_AMFS_FLUSH | \ > + PIPE_CONTROL_VF_CACHE_INVALIDATE | \ > + PIPE_CONTROL_GLOBAL_SNAPSHOT_RESET) > + > +/* 3D-related flags that can't be set on _platforms_ that lack a 3D pipeline */ > +#define PIPE_CONTROL_3D_ARCH_FLAGS ( \ > + PIPE_CONTROL_3D_ENGINE_FLAGS | \ > + PIPE_CONTROL_INDIRECT_STATE_DISABLE | \ > + PIPE_CONTROL_FLUSH_ENABLE | \ > + PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE | \ > + PIPE_CONTROL_DC_FLUSH_ENABLE) > + > +#define MI_MATH(x) MI_INSTR(0x1a, (x) - 1) > +#define MI_MATH_INSTR(opcode, op1, op2) ((opcode) << 20 | (op1) << 10 | (op2)) > +/* Opcodes for MI_MATH_INSTR */ > +#define MI_MATH_NOOP MI_MATH_INSTR(0x000, 0x0, 0x0) > +#define MI_MATH_LOAD(op1, op2) MI_MATH_INSTR(0x080, op1, op2) > +#define MI_MATH_LOADINV(op1, op2) MI_MATH_INSTR(0x480, op1, op2) > +#define MI_MATH_LOAD0(op1) MI_MATH_INSTR(0x081, op1, 0x0) > +#define MI_MATH_LOAD1(op1) MI_MATH_INSTR(0x481, op1, 0x0) > +#define MI_MATH_ADD MI_MATH_INSTR(0x100, 0x0, 0x0) > +#define MI_MATH_SUB MI_MATH_INSTR(0x101, 0x0, 0x0) > +#define MI_MATH_AND MI_MATH_INSTR(0x102, 0x0, 0x0) > +#define MI_MATH_OR MI_MATH_INSTR(0x103, 0x0, 0x0) > +#define MI_MATH_XOR MI_MATH_INSTR(0x104, 0x0, 0x0) > +#define MI_MATH_STORE(op1, op2) MI_MATH_INSTR(0x180, op1, op2) > +#define MI_MATH_STOREINV(op1, op2) MI_MATH_INSTR(0x580, op1, op2) > +/* DG2+ */ > +#define MI_MATH_SHR MI_MATH_INSTR(0x106, 0x0, 0x0) > + > +/* Registers used as operands in MI_MATH_INSTR */ > +#define MI_MATH_REG(x) (x) > +#define MI_MATH_REG_SRCA 0x20 > +#define MI_MATH_REG_SRCB 0x21 > +#define MI_MATH_REG_ACCU 0x31 > +#define MI_MATH_REG_ZF 0x32 > +#define MI_MATH_REG_CF 0x33 > + > +/* > + * Media instructions used by the kernel > + */ > +#define MEDIA_INSTR(pipe, op, sub_op, flags) \ > + (__INSTR(INSTR_RC_CLIENT) | (pipe) << INSTR_SUBCLIENT_SHIFT | \ > + (op) << INSTR_26_TO_24_SHIFT | (sub_op) << 16 | (flags)) > + > +#define MFX_WAIT MEDIA_INSTR(1, 0, 0, 0) > +#define MFX_WAIT_DW0_MFX_SYNC_CONTROL_FLAG REG_BIT(8) > +#define MFX_WAIT_DW0_PXP_SYNC_CONTROL_FLAG REG_BIT(9) > + > +#define CRYPTO_KEY_EXCHANGE MEDIA_INSTR(2, 6, 9, 0) > + > +/* > + * Commands used only by the command parser > + */ > +#define MI_SET_PREDICATE MI_INSTR(0x01, 0) > +#define MI_ARB_CHECK MI_INSTR(0x05, 0) > +#define MI_RS_CONTROL MI_INSTR(0x06, 0) > +#define MI_URB_ATOMIC_ALLOC MI_INSTR(0x09, 0) > +#define MI_PREDICATE MI_INSTR(0x0C, 0) > +#define MI_RS_CONTEXT MI_INSTR(0x0F, 0) > +#define MI_TOPOLOGY_FILTER MI_INSTR(0x0D, 0) > +#define MI_LOAD_SCAN_LINES_EXCL MI_INSTR(0x13, 0) > +#define MI_URB_CLEAR MI_INSTR(0x19, 0) > +#define MI_UPDATE_GTT MI_INSTR(0x23, 0) > +#define MI_CLFLUSH MI_INSTR(0x27, 0) > +#define MI_REPORT_PERF_COUNT MI_INSTR(0x28, 0) > +#define MI_REPORT_PERF_COUNT_GGTT (1<<0) > +#define MI_RS_STORE_DATA_IMM MI_INSTR(0x2B, 0) > +#define MI_LOAD_URB_MEM MI_INSTR(0x2C, 0) > +#define MI_STORE_URB_MEM MI_INSTR(0x2D, 0) > +#define MI_CONDITIONAL_BATCH_BUFFER_END MI_INSTR(0x36, 0) > + > +#define STATE_SYSTEM_MEM_FENCE_ADDRESS \ > + ((0x3 << 29) | (0x0 << 27) | (0x1 << 24) | (0x9 << 16) | 0x1) > +#define STATE_BASE_ADDRESS \ > + ((0x3 << 29) | (0x0 << 27) | (0x1 << 24) | (0x1 << 16)) > +#define BASE_ADDRESS_MODIFY REG_BIT(0) > +#define PIPELINE_SELECT \ > + ((0x3 << 29) | (0x1 << 27) | (0x1 << 24) | (0x4 << 16)) > +#define PIPELINE_SELECT_MEDIA REG_BIT(0) > +#define GFX_OP_3DSTATE_VF_STATISTICS \ > + ((0x3 << 29) | (0x1 << 27) | (0x0 << 24) | (0xB << 16)) > +#define MEDIA_VFE_STATE \ > + ((0x3 << 29) | (0x2 << 27) | (0x0 << 24) | (0x0 << 16)) > +#define MEDIA_VFE_STATE_MMIO_ACCESS_MASK (0x18) > +#define MEDIA_INTERFACE_DESCRIPTOR_LOAD \ > + ((0x3 << 29) | (0x2 << 27) | (0x0 << 24) | (0x2 << 16)) > +#define MEDIA_OBJECT \ > + ((0x3 << 29) | (0x2 << 27) | (0x1 << 24) | (0x0 << 16)) > +#define GPGPU_OBJECT ((0x3<<29)|(0x2<<27)|(0x1<<24)|(0x4<<16)) > +#define GPGPU_WALKER ((0x3<<29)|(0x2<<27)|(0x1<<24)|(0x5<<16)) > +#define GFX_OP_3DSTATE_DX9_CONSTANTF_VS \ > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x39<<16)) > +#define GFX_OP_3DSTATE_DX9_CONSTANTF_PS \ > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x3A<<16)) > +#define GFX_OP_3DSTATE_SO_DECL_LIST \ > + ((0x3<<29)|(0x3<<27)|(0x1<<24)|(0x17<<16)) > + > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_VS \ > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x43<<16)) > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_GS \ > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x44<<16)) > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_HS \ > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x45<<16)) > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_DS \ > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x46<<16)) > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_PS \ > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x47<<16)) > + > +#define COLOR_BLT ((0x2<<29)|(0x40<<22)) > +#define SRC_COPY_BLT ((0x2<<29)|(0x43<<22)) > + > +/* Bspec 63347*/ > +#define GSC_INSTR(opcode, data, flags) \ > + (__INSTR(INSTR_GSC_CLIENT) | (opcode) << 22 | (data) << 9 | (flags)) > + > +/* bspec 65346 */ > +#define GSC_FW_LOAD GSC_INSTR(1, 0, 2) > +#define HECI1_FW_LIMIT_VALID (1<<31) > + > +#define GSC_HECI_CMD_PKT GSC_INSTR(0, 0, 6) > + > +/* > + * Used to convert an address to canonical form based on size of > + * virtual address space. > + * Starting from gen8, some commands (e.g. STATE_BASE_ADDRESS, > + * MI_LOAD_REGISTER_MEM and others, see Broadwell PRM Vol2a) require the > + * addresses to be in a canonical form: > + * "GraphicsAddress[63:48] are ignored by the HW and assumed to be in correct > + * canonical form [63:48] == [47]." > + */ > +static inline u64 intel_canonical_addr(u32 ppgtt_msb, u64 address) > +{ > + return sign_extend64(address, ppgtt_msb); > +} > + > +static inline u64 intel_noncanonical_addr(u32 ppgtt_msb, u64 address) > +{ > + return address & GENMASK_ULL(ppgtt_msb, 0); > +} > + > +static inline u32 *__gen6_emit_bb_start(u32 *cs, u32 addr, unsigned int flags) > +{ > + *cs++ = MI_BATCH_BUFFER_START | flags; > + *cs++ = addr; > + > + return cs; > +} > + > +#endif /* _INTEL_GPU_COMMANDS_H_ */ > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from the kernel 2023-03-07 16:53 ` [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h " Zbigniew Kempczyński @ 2023-03-07 17:06 ` Srivastava, Vikas 0 siblings, 0 replies; 6+ messages in thread From: Srivastava, Vikas @ 2023-03-07 17:06 UTC (permalink / raw) To: Kempczynski, Zbigniew; +Cc: igt-dev@lists.freedesktop.org Hi @Kempczynski, Zbigniew, Yeah I missed that , thanks for checking . Regards, Vikas > -----Original Message----- > From: Kempczynski, Zbigniew <zbigniew.kempczynski@intel.com> > Sent: Tuesday, March 7, 2023 10:24 PM > To: Srivastava, Vikas <vikas.srivastava@intel.com> > Cc: igt-dev@lists.freedesktop.org > Subject: Re: [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from > the kernel > > On Tue, Mar 07, 2023 at 09:51:45PM +0530, Vikas Srivastava wrote: > > From: Chris Wilson <chris.p.wilson@linux.intel.com> > > > > Cherry picking this patch to fix conflicts while merging patch to > > resolve gem_exec_await timeout issue. > > > > The current version of intel_gpu_commands lacks a few definitions and > > has a couple of mistakes. This patch should be pushed to the kernel, > > along with any other cleanups, and then copied back here. > > Looks we worked on same thing: > > https://patchwork.freedesktop.org/series/114619/ > > -- > Zbigniew > > > > > Signed-off-by: Chris Wilson <chris.p.wilson@linux.intel.com> > > Signed-off-by: Vikas Srivastava <vikas.srivastava@intel.com> > > --- > > include/intel_gpu_commands.h | 533 > > +++++++++++++++++++++++++++++++++++ > > 1 file changed, 533 insertions(+) > > create mode 100644 include/intel_gpu_commands.h > > > > diff --git a/include/intel_gpu_commands.h > > b/include/intel_gpu_commands.h new file mode 100644 index > > 000000000..b5239132f > > --- /dev/null > > +++ b/include/intel_gpu_commands.h > > @@ -0,0 +1,533 @@ > > +/* SPDX-License-Identifier: MIT*/ > > +/* > > + * Copyright (c) 2003-2018 Intel Corporation */ > > + > > +#ifndef _INTEL_GPU_COMMANDS_H_ > > +#define _INTEL_GPU_COMMANDS_H_ > > + > > +#ifdef __KERNEL > > +#include <linux/bitops.h> > > +#else > > +#include "linux_scaffold.h" > > +#endif > > + > > +/* > > + * Target address alignments required for GPU access e.g. > > + * MI_STORE_DWORD_IMM. > > + */ > > +#define alignof_dword 4 > > +#define alignof_qword 8 > > + > > +/* > > + * Instruction field definitions used by the command parser */ > > +#define INSTR_CLIENT_SHIFT 29 > > +#define INSTR_MI_CLIENT 0x0 > > +#define INSTR_BC_CLIENT 0x2 > > +#define INSTR_GSC_CLIENT 0x2 /* MTL + */ > > +#define INSTR_RC_CLIENT 0x3 > > +#define INSTR_SUBCLIENT_SHIFT 27 > > +#define INSTR_SUBCLIENT_MASK 0x18000000 > > +#define INSTR_MEDIA_SUBCLIENT 0x2 > > +#define INSTR_26_TO_24_MASK 0x7000000 > > +#define INSTR_26_TO_24_SHIFT 24 > > + > > +#define __INSTR(client) ((client) << INSTR_CLIENT_SHIFT) > > + > > +/* > > + * Memory interface instructions used by the kernel */ #define > > +MI_INSTR(opcode, flags) \ > > + (__INSTR(INSTR_MI_CLIENT) | (opcode) << 23 | (flags)) > > +/* Many MI commands use bit 22 of the header dword for GGTT vs PPGTT */ > > +#define MI_GLOBAL_GTT (1<<22) > > + > > +#define MI_NOOP MI_INSTR(0, 0) > > +#define MI_SET_PREDICATE MI_INSTR(0x01, 0) > > +#define MI_SET_PREDICATE_DISABLE (0 << 0) > > +#define MI_USER_INTERRUPT MI_INSTR(0x02, 0) > > +#define MI_WAIT_FOR_EVENT MI_INSTR(0x03, 0) > > +#define MI_WAIT_FOR_OVERLAY_FLIP (1<<16) > > +#define MI_WAIT_FOR_PLANE_B_FLIP (1<<6) > > +#define MI_WAIT_FOR_PLANE_A_FLIP (1<<2) > > +#define MI_WAIT_FOR_PLANE_A_SCANLINES (1<<1) > > +#define MI_FLUSH MI_INSTR(0x04, 0) > > +#define MI_READ_FLUSH (1 << 0) > > +#define MI_EXE_FLUSH (1 << 1) > > +#define MI_NO_WRITE_FLUSH (1 << 2) > > +#define MI_SCENE_COUNT (1 << 3) /* just increment scene count */ > > +#define MI_END_SCENE (1 << 4) /* flush binner and incr scene > count */ > > +#define MI_INVALIDATE_ISP (1 << 5) /* invalidate indirect state pointers */ > > +#define MI_REPORT_HEAD MI_INSTR(0x07, 0) > > +#define MI_ARB_ON_OFF MI_INSTR(0x08, 0) > > +#define MI_ARB_ENABLE (1<<0) > > +#define MI_ARB_DISABLE (0<<0) > > +#define MI_MEM_FENCE MI_INSTR(0x09, 0) > > +#define MI_ACQUIRE_ENABLE (1 << 0) > > +#define MI_WRITE_FENCE (3 << 0) > > +#define MI_BATCH_BUFFER_END MI_INSTR(0x0a, 0) > > +#define MI_SUSPEND_FLUSH MI_INSTR(0x0b, 0) > > +#define MI_SUSPEND_FLUSH_EN (1<<0) > > +#define MI_SET_APPID MI_INSTR(0x0e, 0) > > +#define MI_SET_APPID_SESSION_ID(x) ((x) << 0) > > +#define MI_OVERLAY_FLIP MI_INSTR(0x11, 0) > > +#define MI_OVERLAY_CONTINUE (0x0<<21) > > +#define MI_OVERLAY_ON (0x1<<21) > > +#define MI_OVERLAY_OFF (0x2<<21) > > +#define MI_LOAD_SCAN_LINES_INCL MI_INSTR(0x12, 0) > > +#define MI_DISPLAY_FLIP MI_INSTR(0x14, 2) > > +#define MI_DISPLAY_FLIP_I915 MI_INSTR(0x14, 1) > > +#define MI_DISPLAY_FLIP_PLANE(n) ((n) << 20) > > +/* IVB has funny definitions for which plane to flip. */ > > +#define MI_DISPLAY_FLIP_IVB_PLANE_A (0 << 19) > > +#define MI_DISPLAY_FLIP_IVB_PLANE_B (1 << 19) > > +#define MI_DISPLAY_FLIP_IVB_SPRITE_A (2 << 19) > > +#define MI_DISPLAY_FLIP_IVB_SPRITE_B (3 << 19) > > +#define MI_DISPLAY_FLIP_IVB_PLANE_C (4 << 19) > > +#define MI_DISPLAY_FLIP_IVB_SPRITE_C (5 << 19) > > +/* SKL ones */ > > +#define MI_DISPLAY_FLIP_SKL_PLANE_1_A (0 << 8) > > +#define MI_DISPLAY_FLIP_SKL_PLANE_1_B (1 << 8) > > +#define MI_DISPLAY_FLIP_SKL_PLANE_1_C (2 << 8) > > +#define MI_DISPLAY_FLIP_SKL_PLANE_2_A (4 << 8) > > +#define MI_DISPLAY_FLIP_SKL_PLANE_2_B (5 << 8) > > +#define MI_DISPLAY_FLIP_SKL_PLANE_2_C (6 << 8) > > +#define MI_DISPLAY_FLIP_SKL_PLANE_3_A (7 << 8) > > +#define MI_DISPLAY_FLIP_SKL_PLANE_3_B (8 << 8) > > +#define MI_DISPLAY_FLIP_SKL_PLANE_3_C (9 << 8) > > +#define MI_SEMAPHORE_MBOX MI_INSTR(0x16, 1) /* gen6, gen7 */ > > +#define MI_SEMAPHORE_GLOBAL_GTT (1<<22) > > +#define MI_SEMAPHORE_UPDATE (1<<21) > > +#define MI_SEMAPHORE_COMPARE (1<<20) > > +#define MI_SEMAPHORE_REGISTER (1<<18) > > +#define MI_SEMAPHORE_SYNC_VR (0<<16) /* RCS wait for VCS > (RVSYNC) */ > > +#define MI_SEMAPHORE_SYNC_VER (1<<16) /* RCS wait for VECS > (RVESYNC) */ > > +#define MI_SEMAPHORE_SYNC_BR (2<<16) /* RCS wait for BCS > (RBSYNC) */ > > +#define MI_SEMAPHORE_SYNC_BV (0<<16) /* VCS wait for BCS > (VBSYNC) */ > > +#define MI_SEMAPHORE_SYNC_VEV (1<<16) /* VCS wait for VECS > (VVESYNC) */ > > +#define MI_SEMAPHORE_SYNC_RV (2<<16) /* VCS wait for RCS > (VRSYNC) */ > > +#define MI_SEMAPHORE_SYNC_RB (0<<16) /* BCS wait for RCS > (BRSYNC) */ > > +#define MI_SEMAPHORE_SYNC_VEB (1<<16) /* BCS wait for VECS > (BVESYNC) */ > > +#define MI_SEMAPHORE_SYNC_VB (2<<16) /* BCS wait for VCS > (BVSYNC) */ > > +#define MI_SEMAPHORE_SYNC_BVE (0<<16) /* VECS wait for BCS > (VEBSYNC) */ > > +#define MI_SEMAPHORE_SYNC_VVE (1<<16) /* VECS wait for VCS > (VEVSYNC) */ > > +#define MI_SEMAPHORE_SYNC_RVE (2<<16) /* VECS wait for RCS > (VERSYNC) */ > > +#define MI_SEMAPHORE_SYNC_INVALID (3<<16) > > +#define MI_SEMAPHORE_SYNC_MASK (3<<16) > > +#define MI_SET_CONTEXT MI_INSTR(0x18, 0) > > +#define MI_MM_SPACE_GTT (1<<8) > > +#define MI_MM_SPACE_PHYSICAL (0<<8) > > +#define MI_SAVE_EXT_STATE_EN (1<<3) > > +#define MI_RESTORE_EXT_STATE_EN (1<<2) > > +#define MI_FORCE_RESTORE (1<<1) > > +#define MI_RESTORE_INHIBIT (1<<0) > > +#define HSW_MI_RS_SAVE_STATE_EN (1<<3) > > +#define HSW_MI_RS_RESTORE_STATE_EN (1<<2) > > +#define MI_SEMAPHORE_SIGNAL MI_INSTR(0x1b, 0) /* GEN8+ */ > > +#define MI_SEMAPHORE_TARGET(engine) ((engine)<<15) > > +#define MI_SEMAPHORE_WAIT MI_INSTR(0x1c, 2) /* GEN8+ */ > > +#define MI_SEMAPHORE_WAIT_TOKEN MI_INSTR(0x1c, 3) /* GEN12+ > */ > > +#define MI_SEMAPHORE_POLL (1 << 15) > > +#define MI_SEMAPHORE_SAD_GT_SDD (0 << 12) > > +#define MI_SEMAPHORE_SAD_GTE_SDD (1 << 12) > > +#define MI_SEMAPHORE_SAD_LT_SDD (2 << 12) > > +#define MI_SEMAPHORE_SAD_LTE_SDD (3 << 12) > > +#define MI_SEMAPHORE_SAD_EQ_SDD (4 << 12) > > +#define MI_SEMAPHORE_SAD_NEQ_SDD (5 << 12) > > +#define MI_SEMAPHORE_27_TOKEN_MASK REG_GENMASK(9, 5) > > +#define MI_SEMAPHORE_256_TOKEN_MASK REG_GENMASK(9, 2) > > +#define MI_SEMAPHORE_27_TOKEN_SHIFT 5 > > +#define MI_SEMAPHORE_256_TOKEN_SHIFT 2 > > +#define MI_STORE_DATA_IMM MI_INSTR(0x20, 0) > > +#define MI_STORE_DWORD_IMM MI_INSTR(0x20, 1) > > +#define MI_STORE_DWORD_IMM_GEN4 MI_INSTR(0x20, 2) > > +#define MI_STORE_QWORD_IMM_GEN8_POSTED (MI_INSTR(0x20, 3) | (1 << > > +21)) #define MI_STORE_QWORD_IMM_GEN8 (MI_INSTR(0x20, 3) | (1 << 10) > | (1 << 21)) > > +#define MI_MEM_VIRTUAL (1 << 22) /* 945,g33,965 */ > > +#define MI_USE_GGTT (1 << 22) /* g4x+ */ > > +#define MI_STORE_DWORD_INDEX MI_INSTR(0x21, 1) > > +#define MI_ATOMIC MI_INSTR(0x2f, 1) > > +#define MI_ATOMIC_INLINE (MI_INSTR(0x2f, 9) | > MI_ATOMIC_INLINE_DATA) > > +#define MI_ATOMIC_GLOBAL_GTT (1 << 22) > > +#define MI_ATOMIC_INLINE_DATA (1 << 18) > > +#define MI_ATOMIC_CS_STALL (1 << 17) > > +#define MI_ATOMIC_MOVE (0x4 << 8) > > +#define MI_ATOMIC_INC (0x5 << 8) > > +#define MI_ATOMIC_DEC (0x6 << 8) > > +#define MI_ATOMIC_ADD (0x7 << 8) > > +#define MI_ATOMIC_SUB (0x8 << 8) > > + > > +/* > > + * Official intel docs are somewhat sloppy concerning > MI_LOAD_REGISTER_IMM: > > + * - Always issue a MI_NOOP _before_ the MI_LOAD_REGISTER_IMM - > otherwise hw > > + * simply ignores the register load under certain conditions. > > + * - One can actually load arbitrary many arbitrary registers: Simply issue x > > + * address/value pairs. Don't overdue it, though, x <= 2^4 must hold! > > + */ > > +#define MI_LOAD_REGISTER_IMM(x) MI_INSTR(0x22, 2*(x)-1) > > +/* Gen11+. addr = base + (ctx_restore ? offset & GENMASK(12,2) : offset) */ > > +#define MI_LRI_DEST_CS_MMIO REG_BIT(19) > > +#define MI_LRI_LRM_CS_MMIO REG_BIT(19) > > +#define MI_LRI_FORCE_POSTED (1<<12) > > +#define MI_LOAD_REGISTER_IMM_MAX_REGS (126) > > +#define __MI_STORE_REGISTER_MEM MI_INSTR(0x24, 0) > > +#define MI_STORE_REGISTER_MEM MI_INSTR(0x24, 1) > > +#define MI_STORE_REGISTER_MEM_GEN8 MI_INSTR(0x24, 2) > > +#define MI_SRM_LRM_GLOBAL_GTT (1<<22) > > +#define MI_FLUSH_DW MI_INSTR(0x26, 1) /* for GEN6 */ > > +#define MI_FLUSH_DW_PROTECTED_MEM_EN (1 << 22) > > +#define MI_FLUSH_DW_STORE_INDEX (1<<21) > > +#define MI_INVALIDATE_TLB (1<<18) > > +#define MI_FLUSH_CCS (1<<16) > > +#define MI_FLUSH_DW_OP_STOREDW (1<<14) > > +#define MI_FLUSH_DW_OP_MASK (3<<14) > > +#define MI_FLUSH_LLC (1<<9) > > +#define MI_FLUSH_DW_NOTIFY (1<<8) > > +#define MI_INVALIDATE_BSD (1<<7) > > +#define MI_FLUSH_DW_USE_GTT (1<<2) > > +#define MI_FLUSH_DW_USE_PPGTT (0<<2) > > +#define __MI_LOAD_REGISTER_MEM MI_INSTR(0x29, 0) > > +#define MI_LOAD_REGISTER_MEM MI_INSTR(0x29, 1) > > +#define MI_LOAD_REGISTER_MEM_GEN8 MI_INSTR(0x29, 2) > > +#define MI_LOAD_REGISTER_REG MI_INSTR(0x2A, 1) > > +#define MI_LRR_SOURCE_CS_MMIO REG_BIT(18) > > +#define MI_LRR_DEST_CS_MMIO REG_BIT(19) > > +#define MI_BATCH_BUFFER MI_INSTR(0x30, 1) > > +#define MI_BATCH_NON_SECURE (1) > > +/* for snb/ivb/vlv this also means "batch in ppgtt" when ppgtt is enabled. */ > > +#define MI_BATCH_NON_SECURE_I965 (1<<8) > > +#define MI_BATCH_PPGTT_HSW (1<<8) > > +#define MI_BATCH_NON_SECURE_HSW (1<<13) > > +#define MI_BATCH_BUFFER_START MI_INSTR(0x31, 0) > > +#define MI_BATCH_GTT (2<<6) /* aliased with (1<<7) on gen4 > */ > > +#define MI_BATCH_BUFFER_START_GEN8 MI_INSTR(0x31, 1) > > +#define MI_BATCH_RESOURCE_STREAMER REG_BIT(10) > > +#define MI_BATCH_PREDICATE REG_BIT(15) /* HSW+ on RCS only*/ > > +#define MI_COND_BATCH_BUFFER_END MI_INSTR(0x36, 0) > > +#define MI_DO_COMPARE (1 << 21) > > + > > +/* > > + * 3D instructions used by the kernel */ #define GFX_INSTR(opcode, > > +flags) ((0x3 << 29) | ((opcode) << 24) | (flags)) > > + > > +#define GEN9_MEDIA_POOL_STATE ((0x3 << 29) | (0x2 << 27) | (0x5 << 16) > | 4) > > +#define GEN9_MEDIA_POOL_ENABLE (1 << 31) > > +#define GFX_OP_RASTER_RULES ((0x3<<29)|(0x7<<24)) > > +#define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19)) > > +#define SC_UPDATE_SCISSOR (0x1<<1) > > +#define SC_ENABLE_MASK (0x1<<0) > > +#define SC_ENABLE (0x1<<0) > > +#define GFX_OP_LOAD_INDIRECT ((0x3<<29)|(0x1d<<24)|(0x7<<16)) > > +#define GFX_OP_SCISSOR_INFO ((0x3<<29)|(0x1d<<24)|(0x81<<16)|(0x1)) > > +#define SCI_YMIN_MASK (0xffff<<16) > > +#define SCI_XMIN_MASK (0xffff<<0) > > +#define SCI_YMAX_MASK (0xffff<<16) > > +#define SCI_XMAX_MASK (0xffff<<0) > > +#define GFX_OP_SCISSOR_ENABLE ((0x3<<29)|(0x1c<<24)|(0x10<<19)) > > +#define GFX_OP_SCISSOR_RECT ((0x3<<29)|(0x1d<<24)|(0x81<<16)|1) > > +#define GFX_OP_COLOR_FACTOR ((0x3<<29)|(0x1d<<24)|(0x1<<16)|0x0) > > +#define GFX_OP_STIPPLE ((0x3<<29)|(0x1d<<24)|(0x83<<16)) > > +#define GFX_OP_MAP_INFO ((0x3<<29)|(0x1d<<24)|0x4) > > +#define GFX_OP_DESTBUFFER_VARS > ((0x3<<29)|(0x1d<<24)|(0x85<<16)|0x0) > > +#define GFX_OP_DESTBUFFER_INFO ((0x3<<29)|(0x1d<<24)|(0x8e<<16)|1) > > +#define GFX_OP_DRAWRECT_INFO > ((0x3<<29)|(0x1d<<24)|(0x80<<16)|(0x3)) > > +#define GFX_OP_DRAWRECT_INFO_I965 ((0x7900<<16)|0x2) > > + > > +#define XY_CTRL_SURF_COPY_BLT (2<<29 | 0x48<<22 | 3) > > +#define SRC_ACCESS_TYPE_SHIFT 21 > > +#define DST_ACCESS_TYPE_SHIFT 20 > > +#define CCS_SIZE_SHIFT 8 > > +/* Bspec lists field as [31:25], but index alone is at [31:26] */ > > +#define XY_CSC_BLT_MOCS_INDEX_MASK_GEN12 GENMASK(31, 26) > > +#define XY_CSC_BLT_MOCS_INDEX_MASK_XE2 GENMASK(31, 28) > > +#define NUM_CCS_BYTES_PER_BLOCK 256 > > +#define NUM_CCS_BLKS_PER_XFER 1024 > > +#define INDIRECT_ACCESS 0 > > +#define DIRECT_ACCESS 1 > > + > > +#define COLOR_BLT_CMD (2 << 29 | 0x40 << 22 | (5 - 2)) > > +#define XY_BLOCK_COPY_BLT_CMD (2 << 29 | 0x41 << 22) > > +#define DEST_MEM_TYPE_SHIFT (31) > > +#define SRC_MEM_TYPE_SHIFT (31) > > +#define MEM_TYPE_SYS 1 > > +#define MEM_TYPE_LOCAL 0 > > +#define COMPRESSION_ENABLE (1 << 29) > > +#define AUX_CCS_E (5 << 18) > > +#define FULL_RESOLVE (1 << 12) > > +#define TILE_4_FORMAT (2 << 30) > > +#define TILE_4_WIDTH (128) > > +#define TILE_4_WIDTH_DWORD ((128 >> 2) - 1) > > +#define TILE_4_HEIGHT (32) > > +#define SURFACE_TYPE_2D (1 << 29) > > +#define DEST_SURF_WIDTH_SHIFT (14) > > +#define SRC_SURF_WIDTH_SHIFT (14) > > +/* Bspec lists this field as 27:21, but the index alone is in 27:22 */ > > +#define XY_BCB_MOCS_INDEX_MASK_GEN12 GENMASK(27, 22) > > +#define XY_BCB_MOCS_INDEX_MASK_XE2 GENMASK(27, 24) > > +#define GEN9_XY_FAST_COPY_BLT_CMD (2 << 29 | 0x42 << 22) > > +#define XY_FAST_COPY_BLT_D0_SRC_TILING_MASK REG_GENMASK(21, > 20) > > +#define XY_FAST_COPY_BLT_D0_DST_TILING_MASK REG_GENMASK(14, > 13) > > +#define XY_FAST_COPY_BLT_D0_SRC_TILE_MODE(mode) \ > > + REG_FIELD_PREP(XY_FAST_COPY_BLT_D0_SRC_TILING_MASK, mode) > > +#define XY_FAST_COPY_BLT_D0_DST_TILE_MODE(mode) \ > > + REG_FIELD_PREP(XY_FAST_COPY_BLT_D0_DST_TILING_MASK, mode) > > +#define LINEAR 0 > > +#define TILE_X 0x1 > > +#define XMAJOR 0x1 > > +#define YMAJOR 0x2 > > +#define TILE_64 0x3 > > +#define XY_FAST_COPY_BLT_D1_SRC_TILE4 REG_BIT(31) > > +#define XY_FAST_COPY_BLT_D1_DST_TILE4 REG_BIT(30) > > +#define PVC_ENABLE_COMPRESSED_SURFACE REG_BIT(16) > > +#define XY_FCB_MOCS_INDEX_MASK_XE2 GENMASK(23, 20) > > +#define BLIT_CCTL_SRC_MOCS_MASK REG_GENMASK(6, 0) #define > > +BLIT_CCTL_DST_MOCS_MASK REG_GENMASK(14, 8) > > +/* Note: MOCS value = (index << 1) */ #define > > +BLIT_CCTL_SRC_MOCS(idx) \ > > + REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, idx << 1) #define > > +BLIT_CCTL_DST_MOCS(idx) \ > > + REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, idx << 1) > > +#define SRC_COPY_BLT_CMD (2 << 29 | 0x43 << 22) > > +#define XY_FAST_COLOR_BLT (2 << 29 | 0x44 << 22) > > +#define BLT_COLOR_DEPTH_32 (2 << 19) > > +#define BLT_COLOR_DEPTH_64 (3 << 19) > > +/* Bspec lists field as [27:21], but index resides in [27:22] */ > > +#define XY_FCB_MOCS_INDEX_MASK GENMASK(27, 22) > > +#define XY_COLOR_BLT_CMD (2 << 29 | 0x50 << 22) > > +#define XY_SRC_COPY_BLT_CMD (2 << 29 | 0x53 << 22) > > +#define XY_MONO_SRC_COPY_IMM_BLT (2 << 29 | 0x71 << 22 | 5) > > +#define BLT_SRCMEM_SYS (1<<29) > > +#define BLT_WRITE_A (2<<20) > > +#define BLT_WRITE_RGB (1<<20) > > +#define BLT_WRITE_RGBA (BLT_WRITE_RGB | BLT_WRITE_A) > > +#define BLT_DEPTH_8 (0<<24) > > +#define BLT_DEPTH_16_565 (1<<24) > > +#define BLT_DEPTH_16_1555 (2<<24) > > +#define BLT_DEPTH_32 (3<<24) > > +#define BLT_ROP_SRC_COPY (0xcc<<16) > > +#define BLT_ROP_COLOR_COPY (0xf0<<16) > > +#define PVC_MEM_COPY_CMD (2 << 29 | 0x5a << 22) > > +#define PVC_MEM_COPY_SRC_COMPRESSIBLE BIT(16) > > +#define PVC_MEM_COPY_DST_COMPRESSIBLE BIT(15) > > +#define PVC_MEM_COPY_DST_COMPRESS_EN BIT(13) > > +#define MEM_COPY_COMPRESSION_FMT_XEHPC GENMASK(12, 8) > > +#define MEM_COPY_COMPRESSION_FMT_XE2 GENMASK(12, 9) > > +/* > > + * Bspec lists MOCS fields as [31:25] and [6:0], but the actual > > +indices are > > + * in [31:26] and [6:1]. > > + */ > > +#define MC_SRC_MOCS_INDEX_MASK_GEN12 GENMASK(31, 26) > > +#define MC_SRC_MOCS_INDEX_MASK_XE2 GENMASK(31, 28) > > +#define MC_DST_MOCS_INDEX_MASK_GEN12 GENMASK(6, 1) > > +#define MC_DST_MOCS_INDEX_MASK_XE2 GENMASK(6, 3) > > +#define PVC_MEM_SET_CMD (2 << 29 | 0x5b << 22) > > +#define PVC_MEM_SET_DST_COMPRESSIBLE BIT(15) > > +#define PVC_MEM_SET_DST_COMPRESS_EN BIT(13) > > +#define MEM_SET_COMPRESSION_FMT_XEHPC GENMASK(12, 8) > > +#define MEM_SET_COMPRESSION_FMT_XE2 GENMASK(12, 9) > > +/* Bspec lists field as [6:0], but index alone is from [6:1] */ > > +#define MS_MOCS_INDEX_MASK_GEN12 GENMASK(6, 1) > > +#define MS_MOCS_INDEX_MASK_XE2 GENMASK(6, 3) > > +#define XY_SRC_COPY_BLT_SRC_TILED (1<<15) /* 965+ only */ > > +#define XY_SRC_COPY_BLT_DST_TILED (1<<11) /* 965+ only */ > > +#define CMD_OP_DISPLAYBUFFER_INFO ((0x0<<29)|(0x14<<23)|2) > > +#define ASYNC_FLIP (1<<22) > > +#define DISPLAY_PLANE_A (0<<20) > > +#define DISPLAY_PLANE_B (1<<20) > > +#define GFX_OP_PIPE_CONTROL(len) ((0x3<<29)|(0x3<<27)|(0x2<<24)|((len)- > 2)) > > +#define PIPE_CONTROL0_HDC_PIPELINE_FLUSH BIT(9) /* > dword0, gen12 */ > > +#define PIPE_CONTROL0_DATAPORT_FLUSH_XE2 BIT(9) /* > dword0, xe2 */ > > +#define PIPE_CONTROL_COMMAND_CACHE_INVALIDATE > (1<<29) /* gen11+ */ > > +#define PIPE_CONTROL_TILE_CACHE_FLUSH (1<<28) /* > gen11+ */ > > +#define PIPE_CONTROL_FLUSH_L3 (1<<27) > > +#define PIPE_CONTROL_AMFS_FLUSH (1<<25) /* > gen12+ */ > > +#define PIPE_CONTROL_GLOBAL_GTT_IVB (1<<24) /* > gen7+ */ > > +#define PIPE_CONTROL_MMIO_WRITE (1<<23) > > +#define PIPE_CONTROL_STORE_DATA_INDEX > (1<<21) > > +#define PIPE_CONTROL_CS_STALL (1<<20) > > +#define PIPE_CONTROL_GLOBAL_SNAPSHOT_RESET (1<<19) > > +#define PIPE_CONTROL_TLB_INVALIDATE (1<<18) > > +#define PIPE_CONTROL_PSD_SYNC (1<<17) /* > gen11+ */ > > +#define PIPE_CONTROL_MEDIA_STATE_CLEAR (1<<16) > > +#define PIPE_CONTROL_WRITE_TIMESTAMP > (3<<14) > > +#define PIPE_CONTROL_QW_WRITE (1<<14) > > +#define PIPE_CONTROL_POST_SYNC_OP_MASK (3<<14) > > +#define PIPE_CONTROL_DEPTH_STALL (1<<13) > > +#define PIPE_CONTROL_WRITE_FLUSH (1<<12) > > +#define PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH (1<<12) /* > gen6+ */ > > +#define PIPE_CONTROL_INSTRUCTION_CACHE_INVALIDATE (1<<11) /* > MBZ on ILK */ > > +#define PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE > (1<<10) /* GM45+ only */ > > +#define PIPE_CONTROL_INDIRECT_STATE_DISABLE (1<<9) > > +#define PIPE_CONTROL_NOTIFY (1<<8) > > +#define PIPE_CONTROL_FLUSH_ENABLE (1<<7) /* > gen7+ */ > > +#define PIPE_CONTROL_DC_FLUSH_ENABLE (1<<5) > > +#define PIPE_CONTROL_VF_CACHE_INVALIDATE (1<<4) > > +#define PIPE_CONTROL_CONST_CACHE_INVALIDATE (1<<3) > > +#define PIPE_CONTROL_STATE_CACHE_INVALIDATE (1<<2) > > +#define PIPE_CONTROL_STALL_AT_SCOREBOARD (1<<1) > > +#define PIPE_CONTROL_DEPTH_CACHE_FLUSH (1<<0) > > +#define PIPE_CONTROL_GLOBAL_GTT (1<<2) /* in addr dword */ > > + > > +/* > > + * 3D-related flags that can't be set on _engines_ that lack access > > +to the 3D > > + * pipeline (i.e., CCS engines). > > + */ > > +#define PIPE_CONTROL_3D_ENGINE_FLAGS (\ > > + PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH | \ > > + PIPE_CONTROL_DEPTH_CACHE_FLUSH | \ > > + PIPE_CONTROL_TILE_CACHE_FLUSH | \ > > + PIPE_CONTROL_DEPTH_STALL | \ > > + PIPE_CONTROL_STALL_AT_SCOREBOARD | \ > > + PIPE_CONTROL_PSD_SYNC | \ > > + PIPE_CONTROL_AMFS_FLUSH | \ > > + PIPE_CONTROL_VF_CACHE_INVALIDATE | \ > > + PIPE_CONTROL_GLOBAL_SNAPSHOT_RESET) > > + > > +/* 3D-related flags that can't be set on _platforms_ that lack a 3D > > +pipeline */ #define PIPE_CONTROL_3D_ARCH_FLAGS ( \ > > + PIPE_CONTROL_3D_ENGINE_FLAGS | \ > > + PIPE_CONTROL_INDIRECT_STATE_DISABLE | \ > > + PIPE_CONTROL_FLUSH_ENABLE | \ > > + PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE | \ > > + PIPE_CONTROL_DC_FLUSH_ENABLE) > > + > > +#define MI_MATH(x) MI_INSTR(0x1a, (x) - 1) > > +#define MI_MATH_INSTR(opcode, op1, op2) ((opcode) << 20 | (op1) << 10 > > +| (op2)) > > +/* Opcodes for MI_MATH_INSTR */ > > +#define MI_MATH_NOOP MI_MATH_INSTR(0x000, 0x0, > 0x0) > > +#define MI_MATH_LOAD(op1, op2) MI_MATH_INSTR(0x080, op1, op2) > > +#define MI_MATH_LOADINV(op1, op2) MI_MATH_INSTR(0x480, op1, > op2) > > +#define MI_MATH_LOAD0(op1) MI_MATH_INSTR(0x081, op1, > 0x0) > > +#define MI_MATH_LOAD1(op1) MI_MATH_INSTR(0x481, op1, > 0x0) > > +#define MI_MATH_ADD MI_MATH_INSTR(0x100, 0x0, > 0x0) > > +#define MI_MATH_SUB MI_MATH_INSTR(0x101, 0x0, > 0x0) > > +#define MI_MATH_AND MI_MATH_INSTR(0x102, 0x0, > 0x0) > > +#define MI_MATH_OR MI_MATH_INSTR(0x103, 0x0, > 0x0) > > +#define MI_MATH_XOR MI_MATH_INSTR(0x104, 0x0, > 0x0) > > +#define MI_MATH_STORE(op1, op2) MI_MATH_INSTR(0x180, op1, op2) > > +#define MI_MATH_STOREINV(op1, op2) MI_MATH_INSTR(0x580, op1, > op2) > > +/* DG2+ */ > > +#define MI_MATH_SHR MI_MATH_INSTR(0x106, 0x0, > 0x0) > > + > > +/* Registers used as operands in MI_MATH_INSTR */ > > +#define MI_MATH_REG(x) (x) > > +#define MI_MATH_REG_SRCA 0x20 > > +#define MI_MATH_REG_SRCB 0x21 > > +#define MI_MATH_REG_ACCU 0x31 > > +#define MI_MATH_REG_ZF 0x32 > > +#define MI_MATH_REG_CF 0x33 > > + > > +/* > > + * Media instructions used by the kernel */ #define > > +MEDIA_INSTR(pipe, op, sub_op, flags) \ > > + (__INSTR(INSTR_RC_CLIENT) | (pipe) << INSTR_SUBCLIENT_SHIFT | \ > > + (op) << INSTR_26_TO_24_SHIFT | (sub_op) << 16 | (flags)) > > + > > +#define MFX_WAIT MEDIA_INSTR(1, 0, 0, 0) > > +#define MFX_WAIT_DW0_MFX_SYNC_CONTROL_FLAG REG_BIT(8) > > +#define MFX_WAIT_DW0_PXP_SYNC_CONTROL_FLAG REG_BIT(9) > > + > > +#define CRYPTO_KEY_EXCHANGE MEDIA_INSTR(2, 6, 9, > 0) > > + > > +/* > > + * Commands used only by the command parser */ > > +#define MI_SET_PREDICATE MI_INSTR(0x01, 0) > > +#define MI_ARB_CHECK MI_INSTR(0x05, 0) > > +#define MI_RS_CONTROL MI_INSTR(0x06, 0) > > +#define MI_URB_ATOMIC_ALLOC MI_INSTR(0x09, 0) > > +#define MI_PREDICATE MI_INSTR(0x0C, 0) > > +#define MI_RS_CONTEXT MI_INSTR(0x0F, 0) > > +#define MI_TOPOLOGY_FILTER MI_INSTR(0x0D, 0) > > +#define MI_LOAD_SCAN_LINES_EXCL MI_INSTR(0x13, 0) > > +#define MI_URB_CLEAR MI_INSTR(0x19, 0) > > +#define MI_UPDATE_GTT MI_INSTR(0x23, 0) > > +#define MI_CLFLUSH MI_INSTR(0x27, 0) > > +#define MI_REPORT_PERF_COUNT MI_INSTR(0x28, 0) > > +#define MI_REPORT_PERF_COUNT_GGTT (1<<0) > > +#define MI_RS_STORE_DATA_IMM MI_INSTR(0x2B, 0) > > +#define MI_LOAD_URB_MEM MI_INSTR(0x2C, 0) > > +#define MI_STORE_URB_MEM MI_INSTR(0x2D, 0) > > +#define MI_CONDITIONAL_BATCH_BUFFER_END MI_INSTR(0x36, 0) > > + > > +#define STATE_SYSTEM_MEM_FENCE_ADDRESS \ > > + ((0x3 << 29) | (0x0 << 27) | (0x1 << 24) | (0x9 << 16) | 0x1) > > +#define STATE_BASE_ADDRESS \ > > + ((0x3 << 29) | (0x0 << 27) | (0x1 << 24) | (0x1 << 16)) > > +#define BASE_ADDRESS_MODIFY REG_BIT(0) > > +#define PIPELINE_SELECT \ > > + ((0x3 << 29) | (0x1 << 27) | (0x1 << 24) | (0x4 << 16)) > > +#define PIPELINE_SELECT_MEDIA REG_BIT(0) > > +#define GFX_OP_3DSTATE_VF_STATISTICS \ > > + ((0x3 << 29) | (0x1 << 27) | (0x0 << 24) | (0xB << 16)) #define > > +MEDIA_VFE_STATE \ > > + ((0x3 << 29) | (0x2 << 27) | (0x0 << 24) | (0x0 << 16)) #define > > +MEDIA_VFE_STATE_MMIO_ACCESS_MASK (0x18) #define > > +MEDIA_INTERFACE_DESCRIPTOR_LOAD \ > > + ((0x3 << 29) | (0x2 << 27) | (0x0 << 24) | (0x2 << 16)) #define > > +MEDIA_OBJECT \ > > + ((0x3 << 29) | (0x2 << 27) | (0x1 << 24) | (0x0 << 16)) > > +#define GPGPU_OBJECT > ((0x3<<29)|(0x2<<27)|(0x1<<24)|(0x4<<16)) > > +#define GPGPU_WALKER > ((0x3<<29)|(0x2<<27)|(0x1<<24)|(0x5<<16)) > > +#define GFX_OP_3DSTATE_DX9_CONSTANTF_VS \ > > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x39<<16)) > > +#define GFX_OP_3DSTATE_DX9_CONSTANTF_PS \ > > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x3A<<16)) > > +#define GFX_OP_3DSTATE_SO_DECL_LIST \ > > + ((0x3<<29)|(0x3<<27)|(0x1<<24)|(0x17<<16)) > > + > > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_VS \ > > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x43<<16)) > > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_GS \ > > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x44<<16)) > > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_HS \ > > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x45<<16)) > > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_DS \ > > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x46<<16)) > > +#define GFX_OP_3DSTATE_BINDING_TABLE_EDIT_PS \ > > + ((0x3<<29)|(0x3<<27)|(0x0<<24)|(0x47<<16)) > > + > > +#define COLOR_BLT ((0x2<<29)|(0x40<<22)) > > +#define SRC_COPY_BLT ((0x2<<29)|(0x43<<22)) > > + > > +/* Bspec 63347*/ > > +#define GSC_INSTR(opcode, data, flags) \ > > + (__INSTR(INSTR_GSC_CLIENT) | (opcode) << 22 | (data) << 9 | (flags)) > > + > > +/* bspec 65346 */ > > +#define GSC_FW_LOAD GSC_INSTR(1, 0, 2) > > +#define HECI1_FW_LIMIT_VALID (1<<31) > > + > > +#define GSC_HECI_CMD_PKT GSC_INSTR(0, 0, 6) > > + > > +/* > > + * Used to convert an address to canonical form based on size of > > + * virtual address space. > > + * Starting from gen8, some commands (e.g. STATE_BASE_ADDRESS, > > + * MI_LOAD_REGISTER_MEM and others, see Broadwell PRM Vol2a) require > > +the > > + * addresses to be in a canonical form: > > + * "GraphicsAddress[63:48] are ignored by the HW and assumed to be in > > +correct > > + * canonical form [63:48] == [47]." > > + */ > > +static inline u64 intel_canonical_addr(u32 ppgtt_msb, u64 address) { > > + return sign_extend64(address, ppgtt_msb); } > > + > > +static inline u64 intel_noncanonical_addr(u32 ppgtt_msb, u64 address) > > +{ > > + return address & GENMASK_ULL(ppgtt_msb, 0); } > > + > > +static inline u32 *__gen6_emit_bb_start(u32 *cs, u32 addr, unsigned > > +int flags) { > > + *cs++ = MI_BATCH_BUFFER_START | flags; > > + *cs++ = addr; > > + > > + return cs; > > +} > > + > > +#endif /* _INTEL_GPU_COMMANDS_H_ */ > > -- > > 2.25.1 > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] lib: Copy intel_gpu_commands.h from the kernel 2023-03-07 16:21 [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from the kernel Vikas Srivastava 2023-03-07 16:21 ` [igt-dev] [PATCH i-g-t 2/2] include/intel_gpu_commands: Copy intel_gpu_commands " Vikas Srivastava 2023-03-07 16:53 ` [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h " Zbigniew Kempczyński @ 2023-03-07 17:30 ` Patchwork 2023-03-08 20:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2023-03-07 17:30 UTC (permalink / raw) To: Srivastava, Vikas; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 4874 bytes --] == Series Details == Series: series starting with [i-g-t,1/2] lib: Copy intel_gpu_commands.h from the kernel URL : https://patchwork.freedesktop.org/series/114783/ State : success == Summary == CI Bug Log - changes from IGT_7183 -> IGTPW_8569 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/index.html Participating hosts (36 -> 34) ------------------------------ Missing (2): bat-dg1-6 fi-snb-2520m Known issues ------------ Here are the changes found in IGTPW_8569 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live@migrate: - bat-dg2-11: [PASS][1] -> [DMESG-WARN][2] ([i915#7699]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/bat-dg2-11/igt@i915_selftest@live@migrate.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/bat-dg2-11/igt@i915_selftest@live@migrate.html * igt@i915_selftest@live@requests: - bat-rpls-2: [PASS][3] -> [ABORT][4] ([i915#4983] / [i915#7694] / [i915#7913] / [i915#7981]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/bat-rpls-2/igt@i915_selftest@live@requests.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/bat-rpls-2/igt@i915_selftest@live@requests.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - fi-bsw-nick: NOTRUN -> [SKIP][5] ([fdo#109271]) +1 similar issue [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/fi-bsw-nick/igt@kms_chamelium_hpd@common-hpd-after-suspend.html - bat-rplp-1: NOTRUN -> [SKIP][6] ([i915#7828]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/bat-rplp-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html - bat-rpls-1: NOTRUN -> [SKIP][7] ([i915#7828]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/bat-rpls-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_pipe_crc_basic@suspend-read-crc: - bat-rpls-1: NOTRUN -> [SKIP][8] ([i915#1845]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/bat-rpls-1/igt@kms_pipe_crc_basic@suspend-read-crc.html #### Possible fixes #### * igt@gem_exec_suspend@basic-s3@smem: - bat-rpls-1: [ABORT][9] ([i915#6687] / [i915#7978]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html * igt@i915_selftest@live@execlists: - fi-bsw-nick: [INCOMPLETE][11] ([i915#7913]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/fi-bsw-nick/igt@i915_selftest@live@execlists.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/fi-bsw-nick/igt@i915_selftest@live@execlists.html * igt@i915_selftest@live@requests: - bat-rplp-1: [ABORT][13] ([i915#7913]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/bat-rplp-1/igt@i915_selftest@live@requests.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/bat-rplp-1/igt@i915_selftest@live@requests.html * igt@i915_selftest@live@slpc: - bat-rpls-1: [DMESG-FAIL][15] ([i915#6367] / [i915#7996]) -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/bat-rpls-1/igt@i915_selftest@live@slpc.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/bat-rpls-1/igt@i915_selftest@live@slpc.html [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687 [i915#7694]: https://gitlab.freedesktop.org/drm/intel/issues/7694 [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978 [i915#7981]: https://gitlab.freedesktop.org/drm/intel/issues/7981 [i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7183 -> IGTPW_8569 CI-20190529: 20190529 CI_DRM_12821: 24f94240c4bca70cadfd00528ffd56c3049e5f58 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8569: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/index.html IGT_7183: 3434cef8be4e487644a740039ad15123cd094526 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/index.html [-- Attachment #2: Type: text/html, Size: 5885 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] lib: Copy intel_gpu_commands.h from the kernel 2023-03-07 16:21 [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from the kernel Vikas Srivastava ` (2 preceding siblings ...) 2023-03-07 17:30 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork @ 2023-03-08 20:32 ` Patchwork 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2023-03-08 20:32 UTC (permalink / raw) To: Srivastava, Vikas; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 43529 bytes --] == Series Details == Series: series starting with [i-g-t,1/2] lib: Copy intel_gpu_commands.h from the kernel URL : https://patchwork.freedesktop.org/series/114783/ State : success == Summary == CI Bug Log - changes from IGT_7183_full -> IGTPW_8569_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/index.html Participating hosts (8 -> 10) ------------------------------ Additional (2): shard-tglu-9 shard-tglu0 Known issues ------------ Here are the changes found in IGTPW_8569_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@debugfs_test@basic-hwmon: - shard-tglu-10: NOTRUN -> [SKIP][1] ([i915#7456]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@debugfs_test@basic-hwmon.html * igt@drm_buddy@all-tests: - shard-tglu-10: NOTRUN -> [SKIP][2] ([i915#6433]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@drm_buddy@all-tests.html * igt@fbdev@pan: - shard-tglu-9: NOTRUN -> [SKIP][3] ([i915#2582]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@fbdev@pan.html * igt@feature_discovery@display-2x: - shard-tglu-9: NOTRUN -> [SKIP][4] ([i915#1839]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@feature_discovery@display-2x.html * igt@feature_discovery@display-3x: - shard-tglu-10: NOTRUN -> [SKIP][5] ([i915#1839]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@feature_discovery@display-3x.html * igt@gem_ccs@block-copy-compressed: - shard-tglu-9: NOTRUN -> [SKIP][6] ([i915#3555] / [i915#5325]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_ccs@block-copy-compressed.html * igt@gem_create@create-ext-cpu-access-big: - shard-tglu-9: NOTRUN -> [SKIP][7] ([i915#6335]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_create@create-ext-cpu-access-big.html * igt@gem_exec_fair@basic-none-rrul@rcs0: - shard-glk: NOTRUN -> [FAIL][8] ([i915#2842]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-glk6/igt@gem_exec_fair@basic-none-rrul@rcs0.html * igt@gem_exec_fair@basic-none-share@rcs0: - shard-glk: [PASS][9] -> [FAIL][10] ([i915#2842]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-glk4/igt@gem_exec_fair@basic-none-share@rcs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-glk4/igt@gem_exec_fair@basic-none-share@rcs0.html * igt@gem_exec_fair@basic-none-solo@rcs0: - shard-tglu-9: NOTRUN -> [FAIL][11] ([i915#2842]) +2 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_exec_fair@basic-none-solo@rcs0.html * igt@gem_exec_fair@basic-pace@bcs0: - shard-tglu-10: NOTRUN -> [FAIL][12] ([i915#2842]) +4 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@gem_exec_fair@basic-pace@bcs0.html * igt@gem_exec_params@secure-non-root: - shard-tglu-9: NOTRUN -> [SKIP][13] ([fdo#112283]) +1 similar issue [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_exec_params@secure-non-root.html * igt@gem_huc_copy@huc-copy: - shard-tglu-9: NOTRUN -> [SKIP][14] ([i915#2190]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@parallel-random: - shard-tglu-10: NOTRUN -> [SKIP][15] ([i915#4613]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@gem_lmem_swapping@parallel-random.html * igt@gem_lmem_swapping@parallel-random-verify: - shard-tglu-9: NOTRUN -> [SKIP][16] ([i915#4613]) +1 similar issue [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_lmem_swapping@parallel-random-verify.html * igt@gem_lmem_swapping@parallel-random-verify-ccs: - shard-apl: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#4613]) +1 similar issue [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl4/igt@gem_lmem_swapping@parallel-random-verify-ccs.html * igt@gem_pwrite@basic-exhaustion: - shard-tglu-9: NOTRUN -> [WARN][18] ([i915#2658]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@reject-modify-context-protection-on: - shard-tglu-9: NOTRUN -> [SKIP][19] ([i915#4270]) +1 similar issue [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_pxp@reject-modify-context-protection-on.html * igt@gem_pxp@verify-pxp-stale-ctx-execution: - shard-tglu-10: NOTRUN -> [SKIP][20] ([i915#4270]) +2 similar issues [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@gem_pxp@verify-pxp-stale-ctx-execution.html * igt@gem_softpin@evict-snoop: - shard-tglu-10: NOTRUN -> [SKIP][21] ([fdo#109312]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@gem_softpin@evict-snoop.html * igt@gem_userptr_blits@unsync-unmap-cycles: - shard-tglu-9: NOTRUN -> [SKIP][22] ([i915#3297]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gem_userptr_blits@unsync-unmap-cycles.html * igt@gen3_render_tiledy_blits: - shard-tglu-9: NOTRUN -> [SKIP][23] ([fdo#109289]) +1 similar issue [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gen3_render_tiledy_blits.html * igt@gen9_exec_parse@allowed-single: - shard-apl: [PASS][24] -> [ABORT][25] ([i915#5566]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-apl4/igt@gen9_exec_parse@allowed-single.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl2/igt@gen9_exec_parse@allowed-single.html * igt@gen9_exec_parse@bb-oversize: - shard-tglu-9: NOTRUN -> [SKIP][26] ([i915#2527] / [i915#2856]) +3 similar issues [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@gen9_exec_parse@bb-oversize.html * igt@gen9_exec_parse@unaligned-jump: - shard-tglu-10: NOTRUN -> [SKIP][27] ([i915#2527] / [i915#2856]) +1 similar issue [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@gen9_exec_parse@unaligned-jump.html * igt@i915_module_load@resize-bar: - shard-tglu-10: NOTRUN -> [SKIP][28] ([i915#6412]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@i915_module_load@resize-bar.html * igt@i915_pm_backlight@bad-brightness: - shard-tglu-10: NOTRUN -> [SKIP][29] ([i915#7561]) +1 similar issue [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@i915_pm_backlight@bad-brightness.html * igt@i915_pm_dc@dc3co-vpb-simulation: - shard-tglu-9: NOTRUN -> [SKIP][30] ([i915#658]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@i915_pm_dc@dc3co-vpb-simulation.html * igt@i915_pm_freq_mult@media-freq@gt0: - shard-tglu-9: NOTRUN -> [SKIP][31] ([i915#6590]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@i915_pm_freq_mult@media-freq@gt0.html * igt@i915_pm_rpm@dpms-mode-unset-lpsp: - shard-tglu-9: NOTRUN -> [SKIP][32] ([i915#1397]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html * igt@i915_pm_rpm@pm-tiling: - shard-tglu-9: NOTRUN -> [SKIP][33] ([i915#3547]) +1 similar issue [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@i915_pm_rpm@pm-tiling.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip: - shard-tglu-10: NOTRUN -> [SKIP][34] ([i915#5286]) +3 similar issues [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html * igt@kms_big_fb@linear-8bpp-rotate-270: - shard-tglu-10: NOTRUN -> [SKIP][35] ([fdo#111614]) +1 similar issue [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_big_fb@linear-8bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0: - shard-tglu-10: NOTRUN -> [SKIP][36] ([fdo#111615]) +2 similar issues [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html * igt@kms_ccs@pipe-a-crc-primary-basic-yf_tiled_ccs: - shard-tglu-10: NOTRUN -> [SKIP][37] ([fdo#111615] / [i915#3689]) +1 similar issue [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_ccs@pipe-a-crc-primary-basic-yf_tiled_ccs.html * igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs: - shard-tglu-10: NOTRUN -> [SKIP][38] ([i915#3689] / [i915#6095]) +5 similar issues [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs.html * igt@kms_ccs@pipe-b-bad-aux-stride-yf_tiled_ccs: - shard-tglu-9: NOTRUN -> [SKIP][39] ([fdo#111615] / [i915#1845] / [i915#7651]) +7 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_ccs@pipe-b-bad-aux-stride-yf_tiled_ccs.html * igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs: - shard-apl: NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#3886]) +2 similar issues [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl6/igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs: - shard-glk: NOTRUN -> [SKIP][41] ([fdo#109271] / [i915#3886]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-glk5/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc: - shard-tglu-9: NOTRUN -> [SKIP][42] ([i915#1845] / [i915#7651]) +72 similar issues [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs: - shard-tglu-10: NOTRUN -> [SKIP][43] ([i915#3689] / [i915#3886]) +3 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs: - shard-tglu-10: NOTRUN -> [SKIP][44] ([i915#3689]) +5 similar issues [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs: - shard-tglu-10: NOTRUN -> [SKIP][45] ([i915#6095]) +2 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs.html * igt@kms_cdclk@mode-transition-all-outputs: - shard-tglu-10: NOTRUN -> [SKIP][46] ([i915#3742]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_cdclk@mode-transition-all-outputs.html * igt@kms_chamelium_color@ctm-negative: - shard-tglu-9: NOTRUN -> [SKIP][47] ([fdo#111827]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_chamelium_color@ctm-negative.html * igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats: - shard-tglu-10: NOTRUN -> [SKIP][48] ([i915#7828]) +5 similar issues [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html * igt@kms_chamelium_hpd@vga-hpd-fast: - shard-tglu-9: NOTRUN -> [SKIP][49] ([i915#7828]) +5 similar issues [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_chamelium_hpd@vga-hpd-fast.html * igt@kms_color@degamma: - shard-tglu-9: NOTRUN -> [SKIP][50] ([i915#3546]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_color@degamma.html * igt@kms_cursor_crc@cursor-rapid-movement-512x170: - shard-tglu-10: NOTRUN -> [SKIP][51] ([i915#3359]) +1 similar issue [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html * igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy: - shard-tglu-10: NOTRUN -> [SKIP][52] ([fdo#109274]) +1 similar issue [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - shard-tglu-10: NOTRUN -> [SKIP][53] ([i915#4103]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-apl: [PASS][54] -> [FAIL][55] ([i915#2346]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-apl6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size: - shard-tglu-9: NOTRUN -> [SKIP][56] ([i915#1845]) +21 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_cursor_legacy@short-flip-after-cursor-atomic-transitions-varying-size.html * igt@kms_dsc@dsc-with-bpc: - shard-tglu-10: NOTRUN -> [SKIP][57] ([i915#3840]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_dsc@dsc-with-bpc.html * igt@kms_flip@2x-flip-vs-modeset-vs-hang: - shard-tglu-10: NOTRUN -> [SKIP][58] ([fdo#109274] / [i915#3637]) +2 similar issues [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_flip@2x-flip-vs-modeset-vs-hang.html * igt@kms_flip@2x-nonexisting-fb-interruptible: - shard-tglu-9: NOTRUN -> [SKIP][59] ([fdo#109274] / [i915#3637]) +5 similar issues [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_flip@2x-nonexisting-fb-interruptible.html * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1: - shard-apl: [PASS][60] -> [ABORT][61] ([i915#180]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-apl3/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html * igt@kms_flip@nonexisting-fb: - shard-tglu-9: NOTRUN -> [SKIP][62] ([i915#3637]) +6 similar issues [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_flip@nonexisting-fb.html * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode: - shard-tglu-10: NOTRUN -> [SKIP][63] ([i915#2587] / [i915#2672]) +2 similar issues [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling: - shard-tglu-9: NOTRUN -> [SKIP][64] ([i915#3555]) +13 similar issues [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff: - shard-apl: NOTRUN -> [SKIP][65] ([fdo#109271]) +94 similar issues [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite: - shard-tglu-10: NOTRUN -> [SKIP][66] ([fdo#110189]) +17 similar issues [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc: - shard-tglu-10: NOTRUN -> [SKIP][67] ([fdo#109280]) +21 similar issues [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-slowdraw: - shard-glk: NOTRUN -> [SKIP][68] ([fdo#109271]) +17 similar issues [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-glk5/igt@kms_frontbuffer_tracking@fbcpsr-slowdraw.html * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4: - shard-tglu-10: NOTRUN -> [SKIP][69] ([i915#5439]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu: - shard-tglu-9: NOTRUN -> [SKIP][70] ([i915#1849]) +50 similar issues [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html * igt@kms_hdr@bpc-switch: - shard-tglu-10: NOTRUN -> [SKIP][71] ([i915#3555]) +7 similar issues [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_hdr@bpc-switch.html * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes: - shard-tglu-9: NOTRUN -> [SKIP][72] ([i915#1849] / [i915#3558]) +1 similar issue [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html * igt@kms_plane_alpha_blend@alpha-basic: - shard-tglu-9: NOTRUN -> [SKIP][73] ([i915#7128] / [i915#7294]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_plane_alpha_blend@alpha-basic.html * igt@kms_plane_lowres@tiling-yf: - shard-tglu-10: NOTRUN -> [SKIP][74] ([fdo#112054] / [i915#5288]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_plane_lowres@tiling-yf.html * igt@kms_prime@d3hot: - shard-tglu-10: NOTRUN -> [SKIP][75] ([i915#6524]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_prime@d3hot.html * igt@kms_psr2_sf@cursor-plane-update-sf: - shard-tglu-9: NOTRUN -> [SKIP][76] ([fdo#111068] / [i915#658]) [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_psr2_sf@cursor-plane-update-sf.html * igt@kms_psr2_sf@overlay-plane-update-continuous-sf: - shard-tglu-10: NOTRUN -> [SKIP][77] ([fdo#111068] / [i915#658]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html * igt@kms_psr2_su@frontbuffer-xrgb8888: - shard-tglu-10: NOTRUN -> [SKIP][78] ([fdo#109642] / [fdo#111068] / [i915#658]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_psr2_su@frontbuffer-xrgb8888.html * igt@kms_psr2_su@page_flip-p010: - shard-glk: NOTRUN -> [SKIP][79] ([fdo#109271] / [i915#658]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-glk7/igt@kms_psr2_su@page_flip-p010.html * igt@kms_psr@primary_page_flip: - shard-tglu-9: NOTRUN -> [SKIP][80] ([fdo#110189]) +5 similar issues [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_psr@primary_page_flip.html * igt@kms_rotation_crc@primary-4-tiled-reflect-x-0: - shard-tglu-10: NOTRUN -> [SKIP][81] ([i915#5289]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@kms_rotation_crc@primary-4-tiled-reflect-x-0.html * igt@kms_tv_load_detect@load-detect: - shard-tglu-9: NOTRUN -> [SKIP][82] ([fdo#109309]) [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_tv_load_detect@load-detect.html * igt@kms_universal_plane@disable-primary-vs-flip-pipe-b: - shard-tglu-9: NOTRUN -> [SKIP][83] ([fdo#109274]) +1 similar issue [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html * igt@perf_pmu@event-wait@rcs0: - shard-tglu-10: NOTRUN -> [SKIP][84] ([fdo#112283]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@perf_pmu@event-wait@rcs0.html * igt@prime_vgem@fence-write-hang: - shard-tglu-9: NOTRUN -> [SKIP][85] ([fdo#109295]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@prime_vgem@fence-write-hang.html * igt@v3d/v3d_create_bo@create-bo-zeroed: - shard-tglu-10: NOTRUN -> [SKIP][86] ([fdo#109315] / [i915#2575]) +1 similar issue [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@v3d/v3d_create_bo@create-bo-zeroed.html * igt@v3d/v3d_perfmon@destroy-valid-perfmon: - shard-tglu-9: NOTRUN -> [SKIP][87] ([fdo#109315] / [i915#2575]) +1 similar issue [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@v3d/v3d_perfmon@destroy-valid-perfmon.html * igt@vc4/vc4_dmabuf_poll@poll-write-waits-until-write-done: - shard-tglu-9: NOTRUN -> [SKIP][88] ([i915#2575]) +6 similar issues [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-9/igt@vc4/vc4_dmabuf_poll@poll-write-waits-until-write-done.html * igt@vc4/vc4_mmap@mmap-bad-handle: - shard-tglu-10: NOTRUN -> [SKIP][89] ([i915#2575]) +4 similar issues [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-tglu-10/igt@vc4/vc4_mmap@mmap-bad-handle.html #### Possible fixes #### * {igt@gem_barrier_race@remote-request@rcs0}: - shard-apl: [ABORT][90] ([i915#8211] / [i915#8234]) -> [PASS][91] [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-apl1/igt@gem_barrier_race@remote-request@rcs0.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl1/igt@gem_barrier_race@remote-request@rcs0.html * igt@gem_ctx_persistence@hang: - {shard-rkl}: [SKIP][92] ([i915#6252]) -> [PASS][93] [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-5/igt@gem_ctx_persistence@hang.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-6/igt@gem_ctx_persistence@hang.html * igt@gem_eio@suspend: - {shard-rkl}: [FAIL][94] ([i915#5115] / [i915#7052]) -> [PASS][95] [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-4/igt@gem_eio@suspend.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-6/igt@gem_eio@suspend.html * igt@gem_exec_fair@basic-none-solo@rcs0: - {shard-rkl}: [FAIL][96] ([i915#2842]) -> [PASS][97] [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-5/igt@gem_exec_fair@basic-none-solo@rcs0.html [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-4/igt@gem_exec_fair@basic-none-solo@rcs0.html * igt@gem_exec_fair@basic-pace@vcs0: - shard-glk: [FAIL][98] ([i915#2842]) -> [PASS][99] +1 similar issue [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-glk5/igt@gem_exec_fair@basic-pace@vcs0.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-glk6/igt@gem_exec_fair@basic-pace@vcs0.html * igt@gem_exec_reloc@basic-write-read-noreloc: - {shard-rkl}: [SKIP][100] ([i915#3281]) -> [PASS][101] +10 similar issues [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-1/igt@gem_exec_reloc@basic-write-read-noreloc.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-5/igt@gem_exec_reloc@basic-write-read-noreloc.html * igt@gem_mmap_gtt@coherency: - {shard-rkl}: [SKIP][102] ([fdo#111656]) -> [PASS][103] [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-2/igt@gem_mmap_gtt@coherency.html [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-5/igt@gem_mmap_gtt@coherency.html * igt@gem_pread@bench: - {shard-rkl}: [SKIP][104] ([i915#3282]) -> [PASS][105] [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-1/igt@gem_pread@bench.html [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-5/igt@gem_pread@bench.html * igt@gen9_exec_parse@allowed-all: - shard-apl: [ABORT][106] ([i915#5566]) -> [PASS][107] [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-apl7/igt@gen9_exec_parse@allowed-all.html [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl1/igt@gen9_exec_parse@allowed-all.html * igt@gen9_exec_parse@bb-chained: - {shard-rkl}: [SKIP][108] ([i915#2527]) -> [PASS][109] [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-4/igt@gen9_exec_parse@bb-chained.html [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-5/igt@gen9_exec_parse@bb-chained.html * igt@i915_hangman@engine-engine-error@bcs0: - {shard-rkl}: [SKIP][110] ([i915#6258]) -> [PASS][111] [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-5/igt@i915_hangman@engine-engine-error@bcs0.html [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-2/igt@i915_hangman@engine-engine-error@bcs0.html * igt@i915_pm_rc6_residency@rc6-idle@vcs0: - {shard-rkl}: [WARN][112] ([i915#2681]) -> [PASS][113] [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-5/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-4/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html - {shard-dg1}: [FAIL][114] ([i915#3591]) -> [PASS][115] +1 similar issue [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html * igt@i915_pm_rpm@modeset-non-lpsp-stress: - {shard-dg1}: [SKIP][116] ([i915#1397]) -> [PASS][117] +1 similar issue [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-dg1-14/igt@i915_pm_rpm@modeset-non-lpsp-stress.html [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-dg1-17/igt@i915_pm_rpm@modeset-non-lpsp-stress.html * igt@i915_selftest@live@gem_contexts: - {shard-rkl}: [ABORT][118] ([i915#7913]) -> [PASS][119] [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-3/igt@i915_selftest@live@gem_contexts.html [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-4/igt@i915_selftest@live@gem_contexts.html * igt@i915_suspend@fence-restore-tiled2untiled: - {shard-rkl}: [FAIL][120] ([fdo#103375]) -> [PASS][121] [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-4/igt@i915_suspend@fence-restore-tiled2untiled.html [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-5/igt@i915_suspend@fence-restore-tiled2untiled.html * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1: - shard-apl: [ABORT][122] ([i915#180]) -> [PASS][123] [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-apl2/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl2/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-glk: [FAIL][124] ([i915#2346]) -> [PASS][125] [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt: - {shard-rkl}: [SKIP][126] ([i915#1849] / [i915#4098]) -> [PASS][127] +15 similar issues [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_properties@crtc-properties-atomic: - {shard-rkl}: [SKIP][128] ([i915#1849]) -> [PASS][129] +1 similar issue [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-2/igt@kms_properties@crtc-properties-atomic.html [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-6/igt@kms_properties@crtc-properties-atomic.html * igt@kms_psr@primary_mmap_cpu: - {shard-rkl}: [SKIP][130] ([i915#1072]) -> [PASS][131] +1 similar issue [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-2/igt@kms_psr@primary_mmap_cpu.html [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-6/igt@kms_psr@primary_mmap_cpu.html * igt@kms_vblank@pipe-a-query-busy-hang: - shard-apl: [SKIP][132] ([fdo#109271]) -> [PASS][133] +2 similar issues [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-apl1/igt@kms_vblank@pipe-a-query-busy-hang.html [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-apl1/igt@kms_vblank@pipe-a-query-busy-hang.html * igt@kms_vblank@pipe-b-query-forked-hang: - shard-glk: [SKIP][134] ([fdo#109271]) -> [PASS][135] +1 similar issue [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-glk6/igt@kms_vblank@pipe-b-query-forked-hang.html [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-glk8/igt@kms_vblank@pipe-b-query-forked-hang.html * igt@kms_vblank@pipe-b-query-idle: - {shard-rkl}: [SKIP][136] ([i915#1845] / [i915#4098]) -> [PASS][137] +17 similar issues [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-4/igt@kms_vblank@pipe-b-query-idle.html [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-6/igt@kms_vblank@pipe-b-query-idle.html * igt@perf@gen12-mi-rpc: - {shard-rkl}: [SKIP][138] ([fdo#109289]) -> [PASS][139] [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-5/igt@perf@gen12-mi-rpc.html [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-1/igt@perf@gen12-mi-rpc.html * igt@perf@polling-small-buf: - {shard-rkl}: [FAIL][140] ([i915#1722]) -> [PASS][141] [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-4/igt@perf@polling-small-buf.html [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-6/igt@perf@polling-small-buf.html * igt@perf_pmu@idle@rcs0: - {shard-rkl}: [FAIL][142] ([i915#4349]) -> [PASS][143] [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7183/shard-rkl-4/igt@perf_pmu@idle@rcs0.html [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/shard-rkl-4/igt@perf_pmu@idle@rcs0.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308 [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309 [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054 [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722 [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2232]: https://gitlab.freedesktop.org/drm/intel/issues/2232 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433 [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2532]: https://gitlab.freedesktop.org/drm/intel/issues/2532 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469 [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734 [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742 [i915#3825]: https://gitlab.freedesktop.org/drm/intel/issues/3825 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771 [i915#4778]: https://gitlab.freedesktop.org/drm/intel/issues/4778 [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812 [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833 [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879 [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885 [i915#5115]: https://gitlab.freedesktop.org/drm/intel/issues/5115 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5234]: https://gitlab.freedesktop.org/drm/intel/issues/5234 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439 [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461 [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [i915#5775]: https://gitlab.freedesktop.org/drm/intel/issues/5775 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117 [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227 [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230 [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248 [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252 [i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258 [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268 [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301 [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335 [i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344 [i915#6403]: https://gitlab.freedesktop.org/drm/intel/issues/6403 [i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412 [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433 [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497 [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768 [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944 [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946 [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953 [i915#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037 [i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052 [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128 [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294 [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651 [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697 [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701 [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949 [i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957 [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975 [i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984 [i915#8152]: https://gitlab.freedesktop.org/drm/intel/issues/8152 [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211 [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228 [i915#8234]: https://gitlab.freedesktop.org/drm/intel/issues/8234 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7183 -> IGTPW_8569 CI-20190529: 20190529 CI_DRM_12821: 24f94240c4bca70cadfd00528ffd56c3049e5f58 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8569: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/index.html IGT_7183: 3434cef8be4e487644a740039ad15123cd094526 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8569/index.html [-- Attachment #2: Type: text/html, Size: 45096 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-03-08 20:32 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-03-07 16:21 [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h from the kernel Vikas Srivastava 2023-03-07 16:21 ` [igt-dev] [PATCH i-g-t 2/2] include/intel_gpu_commands: Copy intel_gpu_commands " Vikas Srivastava 2023-03-07 16:53 ` [igt-dev] [PATCH i-g-t 1/2] lib: Copy intel_gpu_commands.h " Zbigniew Kempczyński 2023-03-07 17:06 ` Srivastava, Vikas 2023-03-07 17:30 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork 2023-03-08 20:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox