top | item 44906305

Blurry rendering of games on Mac

453 points| bangonkeyboard | 6 months ago |colincornaby.me

314 comments

order

debugnik|6 months ago

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

freehorse|6 months ago

> Are they supposed to leave a menu bar on macOS?

Depends also how the specific game is implemented, but often that area is just black and inaccessible, as in you cannot even move the cursor there. It is as if the screen does not include the area above the notch anymore, ie how the screen would be if there was no notch, like the m1 air.

pezezin|6 months ago

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?

crazygringo|6 months ago

Don't think of notches as something stupid that takes away from screen area.

Think of them as something that allows the overall screen area to increase, as bevels shrink.

And then when the corners of the screen are so close to the corner of the laptop, and the corner of the laptop is rounded, it looks weird if the corner of the screen isn't rounded. Like a square peg in a round hole.

Fortunately, it's all context-dependent. So when you watch a video that is inherently rectangular on a Mac, that takes precedence. It's only shown below the notch, and the rounded corners on the bottom disappear.

So it's kind of the best of all worlds. Bigger screen with round corners for actual work (the notch is not particularly objectionable in the menu bar), slightly smaller screen with rectangular corners for video (and games too I assume?).

dlivingston|6 months ago

I've got a MacBook with a notch and I literally never notice it. That's a common sentiment among MacBook users, btw -- I very rarely seeing people complain about the notch. I'm sure there are some, but seems to be a minority.

gwd|6 months ago

Look, given current technology there are exactly three options:

1. Don't have a front-facing camera on your laptop. Your actual laptop screen can be as close to the edge of the laptop case as technology will allow, with no bevel.

2. Have a front-facing camera on your laptop, with no bevel. Your actual laptop screen is now square, but has to be 5mm shorter now. There's a 5mm strip at the top of your laptop that can't be used for anything.

3. Have a front-facing camera on your laptop, with a bevel. Now the actual laptop screen has a "dead space" in middle at the top, but can again be as close to the edge of the laptop case as technology will allow. There's a narrow strip at the top that can't be used for anything, but the area to the left and right of the bevel can.

(A number 4 would be to somehow have a front-facing camera that operates without needing to displace screen area. Not clear how this would work without some complicated mechanism to extend the camera out the top of the screen, which would come with its own problems.)

Now, the vast majority of the time, you're going to be using your Mac in a windowed environment, with menus on the left, indicators on the right, and absolutely nothing in the middle.

In the case of #2, this menu bar has to take real estate from the top of your shorter screen, meaning that your windows are all 5mm shorter. #3 allows the menu bar and indicators to take up that space which on #2 is completely dead, freeing up extra space for your actual applications.

And the key thing is this: For modern full-screen games, in #3, you (apparently) can't use the areas to the side of the bezel; but this is the same situation you're in in #2.

IOW, as another commenter has said: The bevel design doesn't take away screen in the middle; it adds screen space on the side of the bevel.

That said, the API here seems obviously mad: What's the point of giving you a resolution if it's going to silently resize it behind your back? It should either give you the resolution which it won't resize, or throw an error when you try to make one higher.

simondotau|6 months ago

For what it's worth, Macintosh had rounded corners since its inception in 1984. They were just bitmaps in the screen corners and still addressable by software (and even by the mouse cursor in any context) but this demonstrates an aesthetic heritage.

These software rounded corners disappeared in software when CRTs gave way to flat panels, but they are indisputably part of the Apple design aesthetic.

bee_rider|6 months ago

Are the screens OLED? The phones are...

IMO the notch is pointless, but they need space for the front camera. With OLED they can just turn the pixels off when it suits the application and it becomes like a big bevel, which was the alternative anyway.

userbinator|6 months ago

I've always preferred the look of non-antialiased fonts on an LCD for this reason - you can finally actually see the sharp square corners of a pixel, yet somehow many like the blurry smoothness of antialiasing to make the screen more like a CRT.

kjkjadksj|6 months ago

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.

floppyd|6 months ago

I don't have a notched laptop screen, but I do like rounded corners, makes screens feel just a little bit more natural. My MacBook is older and doesn't have rounded corners, but I got used to them so much that I ended up simulating them in software.

jeffhuys|6 months ago

Menu bar is on top on mac. I see it as the top bevel becoming a screen, not taking away from any screen real estate, actually FREEING up space for apps. I never see the notch anyway because my wallpaper is black.

tomkarho|6 months ago

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.

righthand|6 months ago

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.

julik|6 months ago

No, you are not the only one

bigstrat2003|6 months ago

Nope. I think they're incredibly stupid as well.

reactordev|6 months ago

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.

DaiPlusPlus|6 months ago

If I understood you correctly... you wanted to be able to render to a slightly smaller surface to avoid wasting graphics compute time, but that's still going to be upscaled to 1080 for the HDMI scanout, and then mangled again by TVs' overscan - which to me feels like introducing more problems more severe than whatever problem you were trying to solve in the first place.

(Besides, TV overscan is a solved problem: instead of specifically rendering a smaller frame games should let users set a custom FoV and custom HUD/GUI size - thus solving 3 problems at once without having to compromise anything).

blackguardx|6 months ago

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.

andrewmcwatters|6 months ago

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

AndriyKunitsyn|6 months ago

Which says more about the volume of the market of gaming on Mac. It's small and unfortunate.

diath|6 months ago

It's actually really small, according to Steam Hardware Survey, Macs are only 1.88% of Steam users, which is less than that of Linux, which is probably why most developers don't care.

behnamoh|6 months ago

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

wlesieutre|6 months ago

I think their bigger problem is there's shit for documentation. You get a big list of function signatures and if you actually want to know how you're supposed to use anything you find the WWDC session from 4 years ago and hope it's still accurate.

makeitdouble|6 months ago

They sure don't care about games on Mac, but I think this specific issue is more due to trying to do "magic" for better or worse.

Introducing the notch creates this "here but not really usable" area that is specific to some displays, and Apple touts it as something that will just work thanks to their software layer.

Yet every app has to deal with it one way or another and most apps that care about screen estate or resolution will need hacks.

It will be the same for every feature that pushes the boundaries and offers an abstraction layer as an answer to how the issues will be solved.

TechSquidTV|6 months ago

Im on an M3 Ultra Mac Studio. A $4K computer. And I'm not sure why but if I try to stream anything on StreamLabs (even with no game open), the recording is laggy and choppy. I just don't understand how that's possible.

latexr|6 months ago

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

Why would Apple be deliberately sabotaging the experience? They would gain nothing from it. That argument makes even less sense when you consider most of the games mentioned in the article are on the Mac App Store, Apple can take their cut.

https://apps.apple.com/us/app/control-ultimate-edition/id650...

https://apps.apple.com/us/app/shadow-of-the-tomb-raider/id14...

https://apps.apple.com/us/app/riven/id1437437535

https://apps.apple.com/us/app/cyberpunk-2077-ultimate/id6633...

https://apps.apple.com/us/app/stray/id6451498949

This is an obvious case of Hanlon’s Razor. Anyone who develops for Apple platforms and has had to file Feedbacks is aware of Apple’s incompetence and lack of care.

whateveracct|6 months ago

It's a shame because a Mac Mini is a solid gaming computer.

troupo|6 months ago

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.

singhrac|6 months ago

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

Shorel|6 months ago

Macs were bad for gaming long before the software Apple Store existed.

Steve Jobs was dismissive about gaming, even when PC gaming was on the rise, that's the reason.

mvdtnz|6 months ago

> I spent thousands on multiple Mac devices

I mean... yeah why would they change?

nativeit|6 months ago

I don’t try to game on my laptop, and I have always thought “gaming laptops” are somewhat akin to “racing-spec BarcaLoungers”. That’s why I’ve never understood why so many people bitch about not being able to game on Macs. If you want to play video games, you should probably buy a console or a desktop PC.

White-hot take: you’re allowed to own a PC and a Mac. They aren’t like matter and antimatter, you won’t collapse the galaxy or anything.

Razengan|6 months ago

What? This seems like just games not defaulting to the correct resolution for the display they're on. The first thing I do in every game I play (on any platform) is go through the settings, and make sure the resolution matches the screen's physical resolution. If the game is dumb about it, I choose a smaller multiple or run in windowed mode or on an external display.

eru|6 months ago

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

That's more of an aspiration than a statement of fact.

Eg I'd happily have organised a crowdfunding to give Vladimir Putin a few dozen billion dollars to bribe him away from starting a war. And if you look at Russia's finances that's effectively what happened: he (and even more his oligarchs) predictably lost untold billions in revenue and profit for this war.

Also, migration from poor to rich countries increases workers' pay so much, that you could charge them a hefty sum for the privilege and they would still benefit from coming. However voters by and large don't like it, even if you were to distribute the proceeds amongst them (as a "citizen's dividend" or whatever).

They have non-monetary reasons.

See https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d... for an interesting collection of historical cases drawn from such diverse sources as Apartheid and Post-Apartheid South Africa, Malaysia, Nazi Germany.

jama211|6 months ago

[deleted]

iwontberude|6 months ago

to be fair there is only so much you can do inside the power envelope of 100W or so

monkeyelite|6 months ago

> "everything is about money, especially the ones that appear to have non-monetary reasons."

There are countless other incentives as tangible as money including meaning, status, security, fame, etc.

If you spend time around people with money you will find they will happily trade it to achieve these.

What this belief signals most strongly to me is your class.

ziml77|6 months ago

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.

pdpi|6 months ago

WoW has always been exceptionally good at treating macOS like a first-class citizen. It's a shame Blizzard has stopped supporting macOS for their newer games.

diebeforei485|6 months ago

How can this be fixed without breaking existing software? Re-ordering the list?

shermantanktop|6 months ago

They could do what Windows has done, and build OS code that checks if the running application is a known-legacy game, and lie to the game about various capabilities so that the game runs well and looks good.

Not sure how much of that is still around but it was rampant for many years and likely a key to Windows success in gaming.

int0x29|6 months ago

The font this website uses is too thin for parts of a number of letters.

rendaw|6 months ago

Yeah, IMO the tops on all the letters are too thin. Reading it I felt like I was reading something printed when the ink was running out...

(Upholding HN tradition here)

V99|6 months ago

The suggested filtering is just creating a new problem of assuming a 16:10 safe area exists (and external displays or other shapes don't).

Group all resolutions returned that are the same +-5% together and choose the lowest one in the desired bucket.

sira04|6 months ago

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.

thadk|6 months ago

How's factorio?

chainwax|6 months ago

I played all the way through Space Age on a M1 Macbook Air no problem.

TylerE|6 months ago

Factorial had an excellent native arm port. It’s a model citizen

zamadatix|6 months ago

Also consider setting NSPrefersDisplaySafeAreaCompatibilityMode and just leave self letterboxing control to a toggle in the settings (with whatever default you prefer).

carstenhag|6 months ago

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?

MBCook|6 months ago

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.

bschwindHN|6 months ago

Right? If it's vertically squashed, then at least draw the dividing line vertically so we can see a better difference! But yeah, both images seem like a janky rendering of an antialiased circle.

munificent|6 months ago

The bottom left side is showing the circle with the artist-created rough texture that it's supposed to have. The top right shows that that edgy-but-sharp texture has been softened by anti-aliased.

losthobbies|6 months ago

Part of my decided to get the M3 MacBook Pro because I wouldn't be able to game on it so much - I needed something reliable for a Cybersecurity Masters and I knew if I got a powerful windows laptop I would be tempted to play games .

My is a lovely machine for the most part but overheats a lot when gaming, so much so that it worries me. So I don't bother.

mushufasa|6 months ago

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

freehorse|6 months ago

Baldur's gate 3 groups the resolutions by aspect ratio. I assume it probably queries the resolutions, computes the aspect ratios and then displays them grouped them by it. This results in some weirdness with some weird ratios with huge coprime numerators/denominators but, as long as the right resolution is detected somewhere, you only basically need to do is select the right aspect ration for your screen.

eviks|6 months ago

> through NSScreen’s safeAreaInsets

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

zerocrates|6 months ago

"Safe area" is terminology that has a history of being used with displays: defining the portion of a TV screen where viewers could be reliably expected to be able to see content and on-screen graphics without them getting clipped off by the overscan.

I assume they also wanted to choose something that would still be named appropriately if they had other kinds of notches or things in the future (and that even now it already accounts for, say, the curved corners where things also can't display).

interpol_p|6 months ago

Safe area can account for things that are not just a notch. It's used across Apple platforms to indicate anything that might need to occupy a dedicated region on the screen: notch on iPhones, home indicator, iPadOS traffic light buttons, menu bar, curved edges of displays, and so on

Your container views can extend the safe areas for their children as well. In our apps, which allow users to run their own custom projects, we increase the safe area for our UI so that users can avoid it in their own rendering

Safe area is a fairly neat and functional API. The unfortunate thing is the older `CGDisplayCopyAllDisplayModes` API is just lumping all resolutions together

dagmx|6 months ago

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.

TheJoeMan|6 months ago

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.

chris_wot|6 months ago

In typical Apple fashion, they have ignored the feedback for several years. Nice work, Apple!

musicale|6 months ago

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

Well, yes.

bluedino|6 months ago

When I was into pixel art games and 8 bit emulation, this caused me to stick with the MacBook Air instead of the Pro, because it had the traditional 1440x900 screen without funky scaling.

Razengan|6 months ago

Most of the complains in TFA and the bandwagon here just seem to be lazy/stubborn developers not bothering to understand the platform they're porting to.

There's a kind of entitlement among developers coming from PC/Windows expecting Apple to give them everything on a silver plate, yet they gladly bend over when porting to consoles without a peep.

I mean yeah Apple documentation sucks ass sometimes but sheesh you know the notch is fucking there, you have to account for it. You gotta do some specific shit for PS/XBox/Switch too, can't always just expect a one-click port (yet). Hell, there isn't even any public/3rd-party documentation or articles or YouTube tutorials for consoles but you don't see anyone bitching about that.

Rob_Polding|6 months ago

It’s a good thing that most people don’t buy Macs for gaming, as they suck compared to any other platform. Anyone who expects a good experience is fooling themselves as they won’t get it! If you want to experience games as the developer intends, don’t play ports that use compatibility layers, just buy a console and play natively!

esperent|6 months ago

> If you want to experience games as the developer intends, don’t play ports that use compatibility layers

A few months ago I would have assumed you're correct.

But recently I've played some games on my laptop with Lutris on Ubuntu which uses Wine or Proton under the hood.

The performance and stability is excellent. Although I haven't done any testing, subjectively it feels superior or at least equal to Windows. I've played several intense titles which are pushing my laptop's GPU (Nvidia 3070m) to it's limit, most recently the new Indiana Jones game (which is excellent FYI).

liminal-dev|6 months ago

The Steam Deck runs games on a compatibility layer (Wine) and it’s an excellent console.

Toutouxc|6 months ago

I’m pretty sure that if a developer releases their game on macOS, it plays, by definition, as the developer intended.

I have both a powerful gaming PC with Windows and all that, and a PS5, but some games I just like on my MacBook.

nottorp|6 months ago

Hmm I just realized something. The article author seems to be unaware that Apple makes desktops too, and laptops can be connected to external monitors, and thus not every game will be played on something with a notch.

everyone|6 months ago

Notches are dumb as shit. Eg. when making a cross platform mobile app, you just have to leave a portion of the screen at the top completely empty. Cus various different phones could have a notch or a front facing camera in any position up there. On mobile where screen real estate is tight we just have to give up a really important fraction of the screen because of this madness of non rectalinear screens.

JelteF|6 months ago

It's kinda funny that an article complaining about blurry rendering, is written using one of the most illegible fonts I've ever seen.

nixpulvis|6 months ago

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.

emmelaich|6 months ago

What's the alternative? A camera on top of the screen? Fragile, unless you could fold it away. Which would be another point of failure.

frumplestlatz|6 months ago

The notch grants more usable vertical physical pixels than you'd have otherwise, with the only "downside" being a small unusable area in the center where the camera/mic/other sensors are placed.

I put "downside" in quotes because the alternative is just not having those vertical pixels at all, and having the screen end below the sensors.