On 18-07-2025 00:51, Matthew Schwartz wrote: [...] > > Sure, going to use my Legion Go S w/ Z2 Go for this (DCN 3.1.2). All > of these are from amd-staging-drm-next with AMD_PRIVATE_COLOR=y. > > DTN log from Hades II with MangoHud enabled: > https://gist.github.com/matte-schwartz/0c290ffe99bdb4f0d7369ee8817d1145 > > DTN log from Hades II with MangoHud disabled: > https://gist.github.com/matte-schwartz/3e2867e192ec9742ec545d2c5dd3096a > > drm_info from Hades II with MangoHud enabled: > https://gist.github.com/matte-schwartz/456684fc60f7e84173ee2f42de4b774b > > drm_info from Hades II with MangoHud disabled: > https://gist.github.com/matte-schwartz/6b635fa584d033234b435667f5d2c153 >
Hey Matthew, Thanks for the logs. There is actually a difference between your hw and Steam Deck in terms of pipe split. With your hw, there is no pipe split in both scenarios. However, on Steam Deck with MangoHud disabled, we can see the split (2 planes): HUBP: format addr_hi width height rot mir sw_mode dcc_en blank_en clock_en ttu_dis underflow min_ttu_vblank qos_low_wm qos_high_wm [ 0]: 8h f4h 1280 400 3h 0h 1bh 1 0 1 0 0h 36.562 0.000 33.854 [ 1]: 8h f4h 1280 400 3h 0h 1bh 1 0 1 0 0h 36.562 0.000 33.854 [ 2]: 8h f4h 1280 400 3h 0h 1bh 1 0 1 0 0h 36.562 0.000 33.854 [ 3]: 8h f4h 1280 400 3h 0h 1bh 1 0 1 0 0h 36.562 0.000 33.854 For completion, this is the DTN log of Steam Deck with MangoHud enabled (3 planes, no pipe split): HUBP: format addr_hi width height rot mir sw_mode dcc_en blank_en clock_en ttu_dis underflow min_ttu_vblank qos_low_wm qos_high_wm [ 0]: 8h f4h 1280 800 3h 0h 1bh 1 0 1 0 0h 44.708 0.000 33.854 [ 1]: 0h 0h 0 0 0h 0h 0h 0 0 0 0 0h 0.000 0.000 0.000 [ 2]: 8h f4h 1280 800 3h 0h 1bh 1 0 1 0 0h 44.708 0.000 33.854 [ 3]: 8h f4h 1280 800 3h 0h 1bh 1 0 1 0 0h 44.708 0.000 33.854 I couldn't find a pipe-split policy specific for 3.1.2, but I guess it follows the 3.1 Dynamic policy, that is the same of the Steam Deck: drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c:863: .pipe_split_policy = MPC_SPLIT_DYNAMIC, drivers/gpu/drm/amd/display/dc/resource/dcn314/dcn314_resource.c:883: .pipe_split_policy = MPC_SPLIT_DYNAMIC, drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c:863: .pipe_split_policy = MPC_SPLIT_DYNAMIC, drivers/gpu/drm/amd/display/dc/resource/dcn316/dcn316_resource.c:858: .pipe_split_policy = MPC_SPLIT_DYNAMIC, I remember that we have discussed about the possibility of workaround those glitches by avoiding pipe split (and then we would avoid the "split" transition), right? In short, there is a chance that you are not seeing those glitches because there are no changes in the pipe split when transitioning between 1-2 overlay planes in your hw, but the split happens on steam deck for some reasons. I don't know how the driver decides whether or not to split pipes. That said, if AMD prefers to go with an exception for steam deck, better if this situation is documented. Steam Deck still needs the clear_update_flags() because it uses plane color caps and therefore sets multiple update flags, and some glitches appear when transitioning from 2 planes (with pipe split) to 3 planes (no pipe split). It might be related to minimal transition machinery. Thank you for all inputs. Melissa