Skip to content

kmsro: Fix renderonly_scanout BO aliasing

Asahi Lina requested to merge asahilina/mesa:fixes/kmsro_bo_aliasing into main

BOs can only have one handle. If renderonly_create_gpu_import_for_resource ends up importing a BO that was already mapped for scanout, it will get the same handle. This leaves us with two renderonly_scanout objects for one handle, and the first one to be destroyed will free it.

Import the BO map tracking logic from asahi, to avoid aliasing renderonly_scanout objects. Each actual BO now is only represented by a single object instance, which is reference counted.

Fixes KWin full-screen PipeWire capture breaking scanout entirely.

cc @alyssa

Signed-off-by: Asahi Lina lina@asahilina.net

Merge request reports