This was an issue I also discovered on Xbox 360 in 2008. TV’s have overscan and depending on that setting, your resolutions will be off.
However, at the time, we couldn’t create render targets that matched the overscan safe area. XNA added a Screen SafeArea rect to help guide people but it was still an issue that you had to consciously develop for.
Now, we can create any back buffer size we want. It’s best to create one 1:1 or use DLSS with a target of 1:1 to the safe area for best results. I’m glad the author went and reported it but ultimately it’s up to developers to know Screen Resolution != Render Resolution.
Anyone using wgpu/vulkan/AppKit/SDL/glfw/etc need to know this.
interesting -- I ran into this recently playing baldur gate 3 and was curious the technical details why. my fix was that I had an external monitor and I just reset the resolution to the external monitor. (by default, though, the monitor was showing up blurry though; with the wrong aspect ratio.)
Also consider setting NSPrefersDisplaySafeAreaCompatibilityMode and just leave self letterboxing control to a toggle in the settings (with whatever default you prefer).
I remember first implementing this in Planimeter Game Engine 2D, we got a massive resolution list from SDL (through LÖVE, which is what we're built on).
If I remember correctly, we filtered the list ourselves by allowing users to explicitly select supported display ratios first, then showing the narrowed list from there. Not great. Technically there's a 683:384 ratio in there.[1]
But it did enough of the job that users who knew what resolution they wanted to pick in the first place didn't have to scroll a gargantuan list!
Not mentioned about WoW in here is that they considered the notch enough to also have an option to have the UI avoid the notch. It calls a function in C_UI to get the safe region, and then resizes UIParent to fit within that region while still rendering the game up to the true top of the display.
This just shows how little Apple cares about gaming on Mac. It's so sad that I spent thousands on multiple Mac devices (MBP, M Studio, etc.) only to be bottlenecked not by hardware, but by Apple's shitty approach to gaming software.
I know why they do it though. Apple can't take their undeserved 30% cut of Mac games the same way they take their iOS cuts.
We had a teacher years ago who said something that remains true until today: "everything is about money, especially the ones that appear to have non-monetary reasons."
Apple is institutionally incapable of understanding games. It started with Jobs who didn't like and didn't understand video games. and continues with the top brass [1]
Games with app purchases are just a lucky turn of events for Apple because they still don't understand what games are. Hence the "oh, we now have desktop-level graphics on iPhone" or some other drivel they pronounce from time to time at WWDC.
From time to time someone in the company manages to push something forward (see Game Porting Toolkit), but those remain very few and far in between.
[1] To be honest, I doubt any of the top brass even uses computers these days looking at the decisions they make wrt Mac OS.
I've always thought that the reason they don't care about gaming is because gaming has always been a race-to-the-bottom in margins business. Gamers care a lot about hardware in ways that make selling gaming PCs always very low margin (compared to enterprise or creative) (very few other customers know about RAM or SSD prices, famously Apple's bread-and-butter margin increaser).
I’m disappointed none of the proposed fixes are for CGDisplayCopyAllDisplayModes to have the “first” option on the list be the BEST option, taking into account the notch. The author hinted that many games pick the first option, so rather than demanding all those publishers add new code, Apple could make the easy path the happy path.
> But World of Warcraft is an older game using the legacy CoreGraphics display services full screen API. That API actually allows World of Warcraft to draw into the notch.
Not knowing much about Macs, I would have thought games were supposed to render full screen around the notch for immersion but respect the safe area for UI and gameplay. Are they supposed to leave a menu bar on macOS?
> Control gets around the issue by just making up its own resolutions.
That's hilarious, I wonder if they had trouble enumerating resolutions and gave up or if they simply couldn't bother.
The notch is such a wildly stupid idea I can't even begin with it. I actually kinda liked the direction they were going with the keyboard Touch Bar... but they killed that.
Am I the only one who finds screens with rounded corners and notches really stupid? We had to struggle for decades with CRTs and their funky geometry, and when we finally get displays with perfect geometry, we botch them again to make them look... cooler?
Nope. I’m right there with you. I can’t even use my laptop undocked because half my applications use the toolbar to store their icon. So I have to plug my laptop into my monitor just to see what is in my screen space.
I have no idea why people praise these laptops, for a cpu I guess. Their design is a joke and feels like a Playskool laptop toy.
At least when the old Apple forced “phablets” as the standard phone size they included a software work around for reaching the top of the screen.
Not adding a dropdown menu for the toolbar is brain dead.
Suppose it comes down to psychology. I recall reading long time ago that rounded corners signal safety since they can't cut you so easily so we gravitate towards those shapes.
I'm surprised this article focused solely on blurry rendering when mouse pointer location in "fullscreen" Mac games is also commonly affected by this bug or whatever we are calling it. You have to dive into an OS menu for each game to tell it to render fullscreen below the notch to fix it. It should be a global accessibility setting but isn't for some reason.
League of Legends in borderless mode renders at the resolution that's set in BetterDisplay instead of the real one which makes it very blurry. In fullscreen it does it correctly so I'm forced to use fullscreen.
Safe area is an industry wide term for the “safe area to display in”. It means that it’s a high probability of being safe to have important content there, not that it is a safe guarantee.
Your suggestion here and in the responses would be bucking industry standard terminology for content creation.
Your suggestion for unobstructed area is also incorrect because you cannot guarantee it’s unobstructed depending on the display it’s on. Different displays and configurations might have differing levels of overscan causing content to be clipped.
40 comments
[ 3.0 ms ] story [ 56.1 ms ] threadThis was an issue I also discovered on Xbox 360 in 2008. TV’s have overscan and depending on that setting, your resolutions will be off.
However, at the time, we couldn’t create render targets that matched the overscan safe area. XNA added a Screen SafeArea rect to help guide people but it was still an issue that you had to consciously develop for.
Now, we can create any back buffer size we want. It’s best to create one 1:1 or use DLSS with a target of 1:1 to the safe area for best results. I’m glad the author went and reported it but ultimately it’s up to developers to know Screen Resolution != Render Resolution.
Anyone using wgpu/vulkan/AppKit/SDL/glfw/etc need to know this.
I remember first implementing this in Planimeter Game Engine 2D, we got a massive resolution list from SDL (through LÖVE, which is what we're built on).
If I remember correctly, we filtered the list ourselves by allowing users to explicitly select supported display ratios first, then showing the narrowed list from there. Not great. Technically there's a 683:384 ratio in there.[1]
But it did enough of the job that users who knew what resolution they wanted to pick in the first place didn't have to scroll a gargantuan list!
[1]: https://github.com/Planimeter/game-engine-2d/blob/v9.0.1/eng...
I know why they do it though. Apple can't take their undeserved 30% cut of Mac games the same way they take their iOS cuts.
We had a teacher years ago who said something that remains true until today: "everything is about money, especially the ones that appear to have non-monetary reasons."
Games with app purchases are just a lucky turn of events for Apple because they still don't understand what games are. Hence the "oh, we now have desktop-level graphics on iPhone" or some other drivel they pronounce from time to time at WWDC.
From time to time someone in the company manages to push something forward (see Game Porting Toolkit), but those remain very few and far in between.
[1] To be honest, I doubt any of the top brass even uses computers these days looking at the decisions they make wrt Mac OS.
Not knowing much about Macs, I would have thought games were supposed to render full screen around the notch for immersion but respect the safe area for UI and gameplay. Are they supposed to leave a menu bar on macOS?
> Control gets around the issue by just making up its own resolutions.
That's hilarious, I wonder if they had trouble enumerating resolutions and gave up or if they simply couldn't bother.
I have no idea why people praise these laptops, for a cpu I guess. Their design is a joke and feels like a Playskool laptop toy.
At least when the old Apple forced “phablets” as the standard phone size they included a software work around for reaching the top of the screen.
Not adding a dropdown menu for the toolbar is brain dead.
How is vague "safety" is better than a simple descriptive rect_below_notch?
Your suggestion here and in the responses would be bucking industry standard terminology for content creation.
Your suggestion for unobstructed area is also incorrect because you cannot guarantee it’s unobstructed depending on the display it’s on. Different displays and configurations might have differing levels of overscan causing content to be clipped.
Well, yes.