Open Plagman opened 3 years ago
Here's a dump of that plane in drm_info when that happens - very reproducible these days:
├───Plane 4
│ ├───Object ID: 62
│ ├───CRTCs: {0, 1, 2, 3, 4, 5, 6, 7}
│ ├───FB ID: 115
│ │ ├───Object ID: 115
│ │ ├───Size: 650x200
│ │ ├───Format: ARGB8888 (0x34325241)
│ │ ├───Modifier: AMD(TILE_VERSION = GFX10_RBPLUS, TILE = GFX9_64K_R_X, DCC, DCC_RETILE, DCC_INDEPENDENT_64B, DCC_INDEPENDENT_128B, DCC_MAX_COMPRESSED_BLOCK = 64B, DCC_CONSTANT_ENCODE, PIPE_XOR_BITS = 2, PACKERS = 1) (0x200000008537b03)
│ │ └───Planes:
│ │ │ Plane 0: offset = 0, pitch = 3072
│ │ │ Plane 1: offset = 786432, pitch = 1024
│ │ └───Plane 2: offset = 794624, pitch = 1024
│ ├───Formats:
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───RGBA8888 (0x34324152)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ └───RGB565 (0x36314752)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay
│ ├───"FB_ID" (atomic): object framebuffer = 115
│ │ ├───Object ID: 115
│ │ ├───Size: 650x200
│ │ ├───Format: ARGB8888 (0x34325241)
│ │ ├───Modifier: AMD(TILE_VERSION = GFX10_RBPLUS, TILE = GFX9_64K_R_X, DCC, DCC_RETILE, DCC_INDEPENDENT_64B, DCC_INDEPENDENT_128B, DCC_MAX_COMPRESSED_BLOCK = 64B, DCC_CONSTANT_ENCODE, PIPE_XOR_BITS = 2, PACKERS = 1) (0x200000008537b03)
│ │ └───Planes:
│ │ │ Plane 0: offset = 0, pitch = 3072
│ │ │ Plane 1: offset = 786432, pitch = 1024
│ │ └───Plane 2: offset = 794624, pitch = 1024
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 70
│ ├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 667
│ ├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 847
│ ├───"CRTC_W" (atomic): range [0, INT32_MAX] = 133
│ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 433
│ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 650
│ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 200
│ ├───"IN_FORMATS" (immutable): blob = 63
│ │ ├───AMD(TILE_VERSION = GFX10_RBPLUS, TILE = GFX9_64K_R_X, DCC, DCC_INDEPENDENT_64B, DCC_INDEPENDENT_128B, DCC_MAX_COMPRESSED_BLOCK = 64B, DCC_CONSTANT_ENCODE, PIPE_XOR_BITS = 2, PACKERS = 1) (0x200000008533b03)
│ │ │ ├───XRGB8888 (0x34325258)
│ │ │ ├───ARGB8888 (0x34325241)
│ │ │ ├───RGBA8888 (0x34324152)
│ │ │ ├───XBGR8888 (0x34324258)
│ │ │ └───ABGR8888 (0x34324241)
│ │ ├───AMD(TILE_VERSION = GFX10_RBPLUS, TILE = GFX9_64K_R_X, DCC, DCC_RETILE, DCC_INDEPENDENT_64B, DCC_INDEPENDENT_128B, DCC_MAX_COMPRESSED_BLOCK = 64B, DCC_CONSTANT_ENCODE, PIPE_XOR_BITS = 2, PACKERS = 1) (0x200000008537b03)
│ │ │ ├───XRGB8888 (0x34325258)
│ │ │ ├───ARGB8888 (0x34325241)
│ │ │ ├───RGBA8888 (0x34324152)
│ │ │ ├───XBGR8888 (0x34324258)
│ │ │ └───ABGR8888 (0x34324241)
│ │ ├───AMD(TILE_VERSION = GFX10_RBPLUS, TILE = GFX9_64K_R_X, PIPE_XOR_BITS = 2, PACKERS = 1) (0x200000008401b03)
│ │ │ ├───XRGB8888 (0x34325258)
│ │ │ ├───ARGB8888 (0x34325241)
│ │ │ ├───RGBA8888 (0x34324152)
│ │ │ ├───XBGR8888 (0x34324258)
│ │ │ ├───ABGR8888 (0x34324241)
│ │ │ └───RGB565 (0x36314752)
│ │ ├───AMD(TILE_VERSION = GFX10_RBPLUS, TILE = GFX9_64K_S_X, PIPE_XOR_BITS = 2, PACKERS = 1) (0x200000008401903)
│ │ │ ├───XRGB8888 (0x34325258)
│ │ │ ├───ARGB8888 (0x34325241)
│ │ │ ├───RGBA8888 (0x34324152)
│ │ │ ├───XBGR8888 (0x34324258)
│ │ │ ├───ABGR8888 (0x34324241)
│ │ │ └───RGB565 (0x36314752)
│ │ ├───AMD(TILE_VERSION = GFX9, TILE = GFX9_64K_D) (0x200000000000a01)
│ │ ├───AMD(TILE_VERSION = GFX9, TILE = GFX9_64K_S) (0x200000000000901)
│ │ │ ├───XRGB8888 (0x34325258)
│ │ │ ├───ARGB8888 (0x34325241)
│ │ │ ├───RGBA8888 (0x34324152)
│ │ │ ├───XBGR8888 (0x34324258)
│ │ │ ├───ABGR8888 (0x34324241)
│ │ │ └───RGB565 (0x36314752)
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───RGBA8888 (0x34324152)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ └───RGB565 (0x36314752)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ ├───"pixel blend mode": enum {None, Pre-multiplied} = Pre-multiplied
│ └───"rotation": bitmask {rotate-0, rotate-90, rotate-180, rotate-270} = (rotate-270)
CRTC_X and CRTC_Y look correct, so the notification shouldn't happen in the top-right, which seems to confirm a kernel bug?
Indeed, the CRTC_* coords are relative to the CRTC and aren't rotated.
Not clear when, seems maybe random. I've seen this both for main plane, where a game could appear aligned to the top of the screen instead of centered, and with notifications, when they appear in the top-right instead of bottom-right. Maybe kernel bug?