Skip to content

dri3: Make dri3_get_supported_modifiers report no modifiers when using secondary GPU outputs

Since commit 9b899941 ("glamor: Enable modifier support for xfree86 too") dri3_get_supported_modifiers will report the modifiers available on buffer-objects on the primary GPU.

When using an output on a secondary GPU in combination with present flipping this leads to Xorg.log filling up with these errors:

[ 28843.414] (WW) modeset(0): Page flip failed: Invalid argument [ 28843.414] (EE) modeset(0): present flip failed [ 28843.595] (WW) modeset(0): Page flip failed: Invalid argument [ 28843.595] (EE) modeset(0): present flip failed

This is caused by drmmode_bo_import() failing on the secondary GPU because the bo has modifiers which the secondary GPU does not support.

This commit fixes this by making dri3_get_supported_modifiers report modifiers not being supported (as was done before commit 9b899941) when a secondary GPU with outputs is attached through e.g. xrandr --setprovideroutputsource

Related: #828 (closed)

Signed-off-by: Hans de Goede

Merge request reports