40 comments

[ 3.0 ms ] story [ 56.1 ms ] thread
Oh it’s not just Apple…

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.

Which says more about the volume of the market of gaming on Mac. It's small and unfortunate.
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).
(comment deleted)
(comment deleted)
Yes!

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...

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).
Interesting article, but I think the demonstration image isn’t doing its job. Neither side really looks good to me. They both look roughly the same.
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.
How's factorio?
> 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.

How can this be fixed without breaking existing software? Re-ordering the list?
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.

A lot of games don’t even support the notched resolution so you get business as usual. The ones that do let you chose this resolution as well.
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.
In typical Apple fashion, they have ignored the feedback for several years. Nice work, Apple!
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.
The font this website uses is too thin for parts of a number of letters.
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.
> through NSScreen’s safeAreaInsets

How is vague "safety" is better than a simple descriptive rect_below_notch?

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.

> The problem with Apple laptops is they have a notch at the top of the display

Well, yes.

Meta: the name on HN was "Blurry game rendering on Mac" or something. Now we have the same title as in the article - clickbait-sounding. Why?
It's kinda funny that an article complaining about blurry rendering, is written using one of the most illegible fonts I've ever seen.