[Bug 52354] winemac.drv not functional on non metal GPUs

WineHQ Bugzilla wine-bugs at winehq.org
Thu Apr 28 13:27:21 CDT 2022


https://bugs.winehq.org/show_bug.cgi?id=52354

--- Comment #15 from Tim Clem <tclem at codeweavers.com> ---
It seems like making WineContentView layer-hosting (rather than layer-backed)
fixes the retina issue. That makes a certain amount of sense - the docs say
that AppKit takes a "hands off" approach to hosted layers, so whatever is
basically ignoring contentsScale doesn't happen in that case. A small downside
of being "hands off" is that (AFAICT) layer-hosting views aren't eligible for
-updateLayer. Though I suppose that's not a big deal since that wasn't working
as intended High Sierra anyway.

Attached are two patches that get this going for me on High Sierra with
effectively no changes on OS versions after that. On High Sierra and earlier, I
manually make a CALayer for the view and set its delegate to the view itself.
-setNeedsDisplayInRect on the view forwards to the layer, which eventually
triggers the -displayLayer: delegate call. That just calls -updateLayer, since
that's the functionality we want. On Mojave and later, we let the view make its
own layer, skip the unnecessary forwarding in setNeedsDisplay, and -updateLayer
is called directly.

Chip, what are you thoughts on this approach? And Dean, would you mind kicking
the tires a bit? The oldest OS I have available is High Sierra, so I'm curious
how this fares before that.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list