Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    Battery Drain and 6 Other Signs Your Phone Is Being Tapped

    Lymow One Plus Robotic Lawn Mower Preorders Open With $500 Early Discount

    A Social Media App Is Now Requiring Facial ID, but It’s Not the One You Think

    Facebook X (Twitter) Instagram
    • Artificial Intelligence
    • Business Technology
    • Cryptocurrency
    • Gadgets
    • Gaming
    • Health
    • Software and Apps
    • Technology
    Facebook X (Twitter) Instagram Pinterest Vimeo
    Tech AI Verse
    • Home
    • Artificial Intelligence

      Read the extended transcript: President Donald Trump interviewed by ‘NBC Nightly News’ anchor Tom Llamas

      February 6, 2026

      Stocks and bitcoin sink as investors dump software company shares

      February 4, 2026

      AI, crypto and Trump super PACs stash millions to spend on the midterms

      February 2, 2026

      To avoid accusations of AI cheating, college students are turning to AI

      January 29, 2026

      ChatGPT can embrace authoritarian ideas after just one prompt, researchers say

      January 24, 2026
    • Business

      The HDD brand that brought you the 1.8-inch, 2.5-inch, and 3.5-inch hard drives is now back with a $19 pocket-sized personal cloud for your smartphones

      February 12, 2026

      New VoidLink malware framework targets Linux cloud servers

      January 14, 2026

      Nvidia Rubin’s rack-scale encryption signals a turning point for enterprise AI security

      January 13, 2026

      How KPMG is redefining the future of SAP consulting on a global scale

      January 10, 2026

      Top 10 cloud computing stories of 2025

      December 22, 2025
    • Crypto

      Pi Network Tops Daily Charts with a 25% Rally, Here’s Why

      February 15, 2026

      Solana New Holders Drop by 2.3 Million, Will It Impact Price Recovery?

      February 15, 2026

      CLARITY Act’s Stablecoin Yield Restrictions Could Benefit Foreign Currencies, Not USD

      February 15, 2026

      Bitcoin Shorts Reach Most Extreme Level Since 2024 Bottom

      February 15, 2026

      Coinbase Urges Fed to Modernize US Payments to Match European Standards

      February 15, 2026
    • Technology

      Battery Drain and 6 Other Signs Your Phone Is Being Tapped

      February 16, 2026

      Lymow One Plus Robotic Lawn Mower Preorders Open With $500 Early Discount

      February 16, 2026

      A Social Media App Is Now Requiring Facial ID, but It’s Not the One You Think

      February 16, 2026

      Should You Buy an Apple TV for Your Streaming Setup?

      February 16, 2026

      Apple TV on Chromecast Works—If You Use the Right Method

      February 16, 2026
    • Others
      • Gadgets
      • Gaming
      • Health
      • Software and Apps
    Check BMI
    Tech AI Verse
    You are at:Home»Technology»Blurry rendering of games on Mac
    Technology

    Blurry rendering of games on Mac

    TechAiVerseBy TechAiVerseAugust 15, 2025No Comments7 Mins Read2 Views
    Facebook Twitter Pinterest Telegram LinkedIn Tumblr Email Reddit
    Blurry rendering of games on Mac
    Share
    Facebook Twitter LinkedIn Pinterest WhatsApp Email

    Blurry rendering of games on Mac

    1. Problem
    2. Solution
    3. Affected Games
    4. What Apple could do

    Problem

    I’ve submitted the issue described in this post to Apple as FB13375033. This issue has been open since September of 2023.

    If you game on a MacBook display – your game is probably rendering wrong unless you’ve adjusted your settings. If you’re a developer building a full screen game in AppKit (or Catalyst) – Apple’s APIs have some issues you need to be aware of.

    When most games start – they ask the system what resolutions are available for the current display and pick the best one. A Mac app can get a list of suggested output resolutions through the CGDisplayCopyAllDisplayModes function. This worked well for decades on Macs with regular displays.

    The problem with Apple laptops is they have a notch at the top of the display. The full screen area your game runs in is not the same resolution as the screen. Most games do not account for this problem. They output frames sized for the entire screen instead of the region they can draw to. This output is height compressed and blurry.

    Lets start with how layout on a notched display works. Notched Mac displays have three different regions to be aware of.

    • The full bounds of the display. This isn’t explicitly marked on the diagram above. But it’s the entire display area including the menu and areas around the notch.
    • The safe area of the display. This includes the area of the display directly below the notch. AppKit exposes this property through NSScreen’s safeAreaInsets property.
    • The full screen area available for AppKit. This is distinct from the safe area. The full screen area extends from under the menu bar, while the safe area extends from below the notch.

    If you’re an iOS developer – you’re probably already familiar with the idea of the safe area. But the Mac adds a third concept – the full screen app area. The safe area is the area below the notch. But the full screen area for a window is the area below the menu bar.

    Which region does CGDisplayCopyAllDisplayModes return resolutions for? It actually returns resolutions for two regions:

    • Resolutions for the full area of the display (which are inaccessible for modern full screen AppKit apps.)
    • Resolutions for the area under the menu bar – which are relevant for full screen AppKit apps. On my MacBook Pro these resolutions are all 16:10.

    The problem is that these resolutions are mixed in a single list with no built in way to filter.

    Worse yet – most games default to the first resolution on the list. That happens to be the resolution of the entire display instead of the area under the notch. Out of the box most games draw using this squashed down output that mismatched.

    Here’s a screenshot from Shadow of the Tomb Raider. The top slice is from the resolution it defaults to on my MacBook Pro – 3456 x 2234. That resolution includes the notch. But Shadows of the Tomb Raider can only draw below the notch – in a 3456 x 2160 area. This 74 pixel difference in view height creates a squashed image. The bottom slice is from the game running at the proper res of 3456 x 2160. The circle looks like much cleaner while the stretched circle at the top is blurry and crushed.

    NSScreen exposes a safeAreaInsets property – which feels like it should be helpful here. But – as we saw in the diagram – the safe area is still not the same as the available full screen area. So we can’t use the safe area as is.

    Solution

    If you’re playing a game full screen on a notched display – make sure you’re picking a 16:10 resolution. Games you play probably will not default to the correct resolution.

    If you’re a developer – the safe area can still be used to filter the resolution list. But we have to be a little clever about it. We need to look for resolutions that fit inside the safe area instead of ones that perfectly match it.

    extension NSScreen
    {
        func safeAreaResolutions() -> Array {
            let screenResolution = frame
            let safeAreaInset = safeAreaInsets
            let safeScreenResolution = CGSize(
                width: screenResolution.size.width - (safeAreaInset.left + safeAreaInset.right),
                height: screenResolution.size.height - (safeAreaInset.top + safeAreaInset.bottom)
            )
            let safeAreaAspectRadio = safeScreenResolution.width / safeScreenResolution.height
            
            let screenNumber = deviceDescription[NSDeviceDescriptionKey.init("NSScreenNumber")] as! CGDirectDisplayID
            
            guard let resolutions = CGDisplayCopyAllDisplayModes(screenNumber, nil) as? Array else
            {
                // We should never get here, the display should be valid
                fatalError()
            }
            
            return resolutions.filter { resolution in
                (CGFloat(resolution.width)/CGFloat(resolution.height)) > safeAreaAspectRadio
            }
        }
    }
    

    This approach does have the side effect of being aggressive in its filtering. It loses some resolutions like the 4:3 ones.

    I’d love to see someone come up with a better approach or algorithm. But ultimately I think this is up to Apple to address.

    Affected Games

    I’ve already mentioned Shadow of the Tomb Raider, but here’s some other recent releases.

    On my MacBook Pro – 3456 x 2234 is the resolution of my display. But 3456 x 2160 is the resolution under the menu bar available to a full screen game. That means we’re looking for 16:10 resolutions like 3456 x 2160.

    Control Ultimate Edition

    Control gets around the issue by just making up its own resolutions. There are a few 16:10 resolutions on the list – but none are the actual native resolution of my MacBook Pro.

    No Man’s Sky

    No Man’s Sky defaults to a squashed, non 16:10 resolution. The resolution picker lists both safe area and non safe area resolutions.

    Riven

    Riven defaults to a squashed resolution.

    Stray

    Stray defaults to 1728 x 1117 – which is not 16:10 and is squashed.

    Correct Games

    Cyberpunk 2077

    Cyberpunk defaults to 1728×1080 – which is 16:10! It’s not clear how they’re filtering the resolution list. But the max resolution is 3456 x 2160 – which is the correct max resolution for a full screen app.

    Honorable Mention: World of Warcraft

    World of Warcraft at first looks wrong. 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. So in this case the 3456×2234 resolution is correct.

    What Apple could do

    Update the HIG

    Apple maintains a HIG for games the includes a section on building full screen games. But this issue isn’t mentioned anywhere. The HIG should be updated to describe the issues around the notch and how to fetch a resolution list.

    Update the Game Porting Toolkit samples

    The samples Apple provides on how to port a game don’t include any examples of picking output resolutions. Best practices for doing so should be included in the samples.

    Update CGDisplayMode

    Cocoa applications should have the ability to filter the list down. I’d like to have an option to only see resolutions that are relevant to a full screen Cocoa app.

    Build a new gaming centric API

    It might be time for Apple to build a gaming centric API that can handle boilerplate like fetching a resolution list.

    Advise game developers to not query display modes

    I don’t like the way Control handles resolutions. The developer seems to have hardcoded a list that is the same for any Mac. And I really want to have a list of resolutions that are relevant for my display.

    But they might be on to something. There’s no requirement to render a game at any specific resolution. Applications can make up their own resolution list. You could calculate a list of resolutions on your view’s bounds. This would scale to any display or even windowed or full screen modes. Some games have implemented similar “render scale” settings that don’t even have a resolution list – just a scale.

    If this is a good path forward – Apple should update their HIG and sample code.

    Share. Facebook Twitter Pinterest LinkedIn Reddit WhatsApp Telegram Email
    Previous ArticleWe rewrote the Ghostty GTK application
    Next Article More girls take A-level computing despite overall dip in numbers
    TechAiVerse
    • Website

    Jonathan is a tech enthusiast and the mind behind Tech AI Verse. With a passion for artificial intelligence, consumer tech, and emerging innovations, he deliver clear, insightful content to keep readers informed. From cutting-edge gadgets to AI advancements and cryptocurrency trends, Jonathan breaks down complex topics to make technology accessible to all.

    Related Posts

    Battery Drain and 6 Other Signs Your Phone Is Being Tapped

    February 16, 2026

    Lymow One Plus Robotic Lawn Mower Preorders Open With $500 Early Discount

    February 16, 2026

    A Social Media App Is Now Requiring Facial ID, but It’s Not the One You Think

    February 16, 2026
    Leave A Reply Cancel Reply

    Top Posts

    Ping, You’ve Got Whale: AI detection system alerts ships of whales in their path

    April 22, 2025677 Views

    Lumo vs. Duck AI: Which AI is Better for Your Privacy?

    July 31, 2025260 Views

    6.7 Cummins Lifter Failure: What Years Are Affected (And Possible Fixes)

    April 14, 2025153 Views

    6 Best MagSafe Phone Grips (2025), Tested and Reviewed

    April 6, 2025112 Views
    Don't Miss
    Technology February 16, 2026

    Battery Drain and 6 Other Signs Your Phone Is Being Tapped

    Battery Drain and 6 Other Signs Your Phone Is Being Tapped If you are a…

    Lymow One Plus Robotic Lawn Mower Preorders Open With $500 Early Discount

    A Social Media App Is Now Requiring Facial ID, but It’s Not the One You Think

    Should You Buy an Apple TV for Your Streaming Setup?

    Stay In Touch
    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • Vimeo

    Subscribe to Updates

    Get the latest creative news from SmartMag about art & design.

    About Us
    About Us

    Welcome to Tech AI Verse, your go-to destination for everything technology! We bring you the latest news, trends, and insights from the ever-evolving world of tech. Our coverage spans across global technology industry updates, artificial intelligence advancements, machine learning ethics, and automation innovations. Stay connected with us as we explore the limitless possibilities of technology!

    Facebook X (Twitter) Pinterest YouTube WhatsApp
    Our Picks

    Battery Drain and 6 Other Signs Your Phone Is Being Tapped

    February 16, 20263 Views

    Lymow One Plus Robotic Lawn Mower Preorders Open With $500 Early Discount

    February 16, 20263 Views

    A Social Media App Is Now Requiring Facial ID, but It’s Not the One You Think

    February 16, 20263 Views
    Most Popular

    7 Best Kids Bikes (2025): Mountain, Balance, Pedal, Coaster

    March 13, 20250 Views

    VTOMAN FlashSpeed 1500: Plenty Of Power For All Your Gear

    March 13, 20250 Views

    This new Roomba finally solves the big problem I have with robot vacuums

    March 13, 20250 Views
    © 2026 TechAiVerse. Designed by Divya Tech.
    • Home
    • About Us
    • Contact Us
    • Privacy Policy
    • Terms & Conditions

    Type above and press Enter to search. Press Esc to cancel.