[PATCH] modesetting: Update fb_id from shadow allocate and destroy if not set

Keith Packard keithp at keithp.com
Sat Feb 3 20:33:19 UTC 2018

Tony Lindgren <tony at atomide.com> writes:

> Looks like drmModeDirtyFB() stopped working at some point and we now
> call it with fb_id of zero for rotated displays. This will stop displays
> relying on DRM_IOCTL_MODE_DIRTYFB ioctl to display anything.

This bug just breaks rotated displays, right?

> This regression probably with commit 3dcd591fa9b7 ("modesetting: Add
> support for using RandR shadow buffers") that inroduced rotate_fb_id.
> Let's fix this issue by copying rotate_fb_id to fb_id if zero and then
> reset it back to zero after we're done with the rotation.

I think this fix assumes that there is only one CRTC running; if you've
got two, one scanning from the regular fb_id and the other from a
rotated fb_id, then you want to dirty each separately.

I think the right place to fix this is in dispatch_dirty_regions, which
should be walking the set of active CTRCs and damaging the appropriate
fb_id for each one?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <https://lists.x.org/archives/xorg-devel/attachments/20180203/67c20cd3/attachment.sig>

More information about the xorg-devel mailing list