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

Reply via email to