13 ms·
Blurry rendering of games on Mac
- zamadatix 1y agoAlso consider setting NSPrefersDisplaySafeAreaCompatibilityMode and just leave self letterboxing control to a toggle in the settings (with whatever default you prefer).
- reactordev 1y agoOh 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 1y agoIf 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).
- rustystump 1y agoRead up on g buffer and deferred rendering. Usually one doesnt do everything at full resolution until the final output and even then it is often better these days to have fancy upscaling. Many games do let users set the things you mention but it is not always so simple. For example, handling rounded edges and notches is a huge pain.
- reactordev 1y agoNo, Your TV says it’s 1080 but it’s not, it’s 1074… This is a solved issue now but it wasn’t when HDMI was first introduced. The Xbox 360 suffered from red rings of death. Microsoft hated Linux. And C# was cool. Basically, if you rendered an avatar image in the top left of the screen, perfectly placed on your monitor, on the TV its head would be cut off. So you change to safe area resolution and it’s perfect again (but on your monitor safe area and screen resolution are the same, except Apple apparently). Make sense? You can see how if your screen says it’s 4k, but really it’s short 40 pixels, you render at 4k - the screen will shrink it by 40 pixels and introduce nasty pixel artifacts. TV overscan goes the other way. Interesting find by the author about the notch.
- AndriyKunitsyn 1y agoWhich says more about the volume of the market of gaming on Mac. It's small and unfortunate.
- diath 1y agoIt'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.
- zamadatix 1y agoBetween the deprecation and stagnation of OpenGL on the platform, the removal of 32 bit support completely, the refusal to natively support Vulkan in favor of Metal, and the switch to ARM based systems... I can't believe it's still that "high".
- benoau 1y agoDon't worry, they plan to gut Rosetta 2 so it will only support Mac games from the Intel era, that should help shrink that number! > Rosetta was designed to make the transition to Apple silicon easier, and we plan to make it available for the next two major macOS releases – through macOS 27 – as a general-purpose tool for Intel apps to help developers complete the migration of their apps. Beyond this timeframe, we will keep a subset of Rosetta functionality aimed at supporting older unmaintained gaming titles, that rely on Intel-based frameworks. https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment/ https://developer.apple.com/documentation/apple-silicon/abou...
- hn-acct 1y agoIf amateurs can use game porting and achieve decent results then I think the actual devs can achieve excellent results. My guess is that Mac users simply don’t buy games for their macs
- cosmic_cheese 1y ago
- mushufasa 1y agointeresting -- 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 1y agoBaldur'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.
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- andrewmcwatters 1y agoYes! 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/engine/client/gui/optionsmenu/videooptionspanel.lua#L393 https://github.com/Planimeter/game-engine-2d/blob/v9.0.1/eng...
- ziml77 1y agoNot 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 1y agoWoW 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.
- dontlaugh 1y agoPerhaps one or two people on that team have always had personal macs.
- odo1242 1y agoThis has been my experience with software dev teams and Macs lol (the software’s quality on MacOS is directly proportional to the number of team members who have Macs)
- cosmic_cheese 1y agoBack in the day they even implemented near-zero-performance-impact video recording that leveraged AVKit/Quicktime as a Mac-exclusive feature, which was pretty neat. It let me get silky recordings where Windows user guildmates’ videos skipped and stuttered from having to run both WoW and much heavier third party recording software.
- rarepostinlurkr 1y agoIf anything it's an example that games can be amazing on macOS, if developers take the time to learn and use the system. WoW on macOS is a far superior experience to WoW on Windows.
- 1y ago
- behnamoh 1y agoThis 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."
- iwontberude 1y agoto be fair there is only so much you can do inside the power envelope of 100W or so
- gchamonlive 1y agoNot really. If you compare it to gaming rigs, they bear radically different architectures, so you can't really compare them by TDP or power requirements. They don't emit the same hear or require the same amount of power per TFLOP. And I wouldn't be surprised if tflops also wouldn't translate to actual compute room for shaders. Even if they did, 100w should be room enough to play relatively recent titles, specially indie ones. Nothing really excuses Apple from this contempt it has for the gaming market.
- theandrewbailey 1y ago> Even if they did, 100w should be room enough to play relatively recent titles Steamdeck runs on 45W, and that's plenty enough power to have fun.
- Rohansi 1y agoThe included charger is 45W but the chip consumes less.
- rafram 1y agoI briefly owned a Steam Deck (before returning it), and it seems like most users tone down their expectations a lot compared to PC gaming. 30fps at the Deck’s low resolution seems to be the norm for recent games. Enough power to have fun, sure, but I think people would rightfully pan it if it weren’t Valve.
- MBCook 1y agoInteresting 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 1y agoRight? 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 1y agoThe 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.
- Tepix 1y agoYeah but the difference isn't as stark as one would expect really.
- TheJoeMan 1y agoI’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.
- thadk 1y agoHow's factorio?
- debugnik 1y 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 1y 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.
- debugnik 1y agoThanks for explaining! I see this is common then. If I'm understanding correctly the docs of NSPrefersDisplaySafeAreaCompatibilityMode[1], this is supposed to be a compatibility mode that apps can opt-out of to behave like I expected, and can be force-disabled from Finder. So I guess rendering around the notch is the intended experience, but devs don't seem to know or care enough to opt-out, and the bug here is that enumerating display resolutions doesn't take this compatibility mode into account. [1]: https://developer.apple.com/documentation/bundleresources/information-property-list/nsprefersdisplaysafeareacompatibilitymode?language=objc https://developer.apple.com/documentation/bundleresources/in...
- freehorse 1y agoHah I was not aware that a user can actually select that in finder. Really useful to know. Thanks for sharing!
- apothekestadt 1y ago[dead]
- diebeforei485 1y agoHow can this be fixed without breaking existing software? Re-ordering the list?
- shermantanktop 1y agoThey 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.
- cesarb 1y 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. Or, even simpler (and AFAIK modern Windows does that too): if the running application doesn't say in its application manifest "I'm a modern application which understands the new things from operating system versions A, B, C and features X, Y, Z", you know it's a legacy application and you can activate the relevant compatibility shims.
- account42 1y agoThey already do that, linked from another comment here: https://developer.apple.com/documentation/bundleresources/information-property-list/nsprefersdisplaysafeareacompatibilitymode?language=objc https://developer.apple.com/documentation/bundleresources/in... They just need to adapt the API to also filter the list of resolutions when the compatibility mode is on.
- nixpulvis 1y agoThe 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.
- wahnfrieden 1y agoNo it's not
- emmelaich 1y agoWhat's the alternative? A camera on top of the screen? Fragile, unless you could fold it away. Which would be another point of failure.
- bigstrat2003 1y agoA bezel would be far preferable to a notch.
- msh 1y agoWhy? Unless I am running a full screen app the notch gives me more screen space. Remember that the mac have the menu bar on top of the screen at all times so the space is not available for normal windowed apps.
- nixpulvis 1y agoI hide my menubar by default. I like using my space for stuff I'm actively looking at. I was watching someone code in vim on a new mac the other day and the notch covered part of the first like of their editor! Like how does this not completely break you as a human. Maybe I'm a little OCD idk. Isn't there just like an option to change the resolution and fix this? Apple should really have a "disable notch" mode.
- wahnfrieden 1y agoNo it wouldn’t be
- pezezin 1y agoAm 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 1y agoDon'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?).
- ratmeadow 1y agoIs bevel size really so important when it's already measured in mm? Personally I like a bit of bevel because I don't want the screen going to the edge of the device. The edge of the device is for holding, not interaction.
- deleted 1y ago[deleted]
- crazygringo 1y agoNo, screen size is important. For the same size laptop, less bevel means more screen. And I don't about you but I don't hold the screen half of my laptop. Not unless the laptop is closed. So I don't see how that's a concern.
- 1y ago
- chris_wot 1y agoIn typical Apple fashion, they have ignored the feedback for several years. Nice work, Apple!
- blackguardx 1y agoI'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.
- int0x29 1y agoThe font this website uses is too thin for parts of a number of letters.
- rendaw 1y agoYeah, 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)
- sira04 1y agoLeague 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.
- eviks 1y ago> through NSScreen’s safeAreaInsets How is vague "safety" is better than a simple descriptive rect_below_notch?
- interpol_p 1y agoSafe 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
- eviks 1y agoEven then, you can still have something descriptive like unobstructed_area for more general cases. "Safety" is too generic But also you don't need to degrade Mac dev experience for games to tackle ipads the games will not be developed on, aliases exist
- dkiebd 1y agoHow is unobstructed area, a term you just made up, better than safe area, a term that has been standard for decades?
- eviks 1y agoThat's obvious: the descriptive term is obvious in what it represents on your screen, so has a low cognitive overload for all the new generations of people learning these APIs. Encoding bad practices for decades, on the other hand, just reflects the pains of the old generations.
- zerocrates 1y ago
- musicale 1y ago> The problem with Apple laptops is they have a notch at the top of the display Well, yes.
- carstenhag 1y agoMeta: 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?
- JelteF 1y agoIt's kinda funny that an article complaining about blurry rendering, is written using one of the most illegible fonts I've ever seen.
- Rob_Polding 1y agoIt’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!
- liminal-dev 1y agoThe Steam Deck runs games on a compatibility layer (Wine) and it’s an excellent console.
- Toutouxc 1y agoI’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.
- extraisland 1y agoA lot of games are ported to Mac / Linux by a third party. The quality of that port is dependant on the company and the budget for porting it. If I was a game developers I would never do a Mac port.
- esperent 1y 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).
- extraisland 1y agoIt depends on the game, the distro, the version of the game, the kernel and the windowing system as to how well it performs. I am using Debian and while a lot of games work well, some games are an absolute PITA to setup properly. It is easier for me to reboot into Windows.
- nottorp 1y agoHmm 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 1y agoNotches 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.
- losthobbies 1y agoPart 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.
- neuroelectron 1y ago[flagged]
- bluedino 1y agoWhen 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 1y agoMost 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.
- mrscrypto 1y ago[dead]
- V99 1y agoThe 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.