Display pixel art or a low-resolution game with crisp enlarged pixels
Enlarge a sharp pixel-art source without smoothing its edges. You will first test a known 2× enlargement, then compare a fractional size. BetterDisplay’s Integer Scaling uses nearest-neighbor sampling to preserve hard edges. Choose source and output sizes with a whole-number ratio so each source pixel becomes an equal-sized block.
Before you begin
- Keep BetterDisplay running. This example needs an actually supported 1920 × 1080 LoDPI virtual source, a separate connected 3840 × 2160 physical receiver operating at its native output size, and a visible physical recovery desktop. Use extended desktops, not a mirror relationship. A connected open MacBook display can be the recovery desktop.
- Use a small pixel-art image with sharp, known single-pixel edges and no baked-in blur. Choose harmless content that fits inside the source desktop at its original size. Keep the entire source desktop and the receiver’s underlying desktop free of private windows and notifications.
- Use a receiver that is not already showing another stream. Starting a stream can stop a competing or reverse stream and move the main display from receiver to source. Pause any mode or layout rule that interferes with this setup.
- Leave Settings > Displays > Overview > Advanced Display Settings… > Switch to native mode for full screen stream target off for this test. It is off by default. Choose and check the receiver’s mode yourself. Keep the built-in display connected if you use it as your recovery desktop.
- On Apple silicon, Restore display layout after connecting a virtual screen is on by default under Advanced Virtual Screen Settings…. Check existing displays after connecting the source. If Reconnect all remaining connected virtual screens after disconnecting one is on, turn it off while testing so removing this source does not restart unrelated virtual screens.
- Follow BetterDisplay’s actual macOS screen-capture request and any requested relaunch. Review access in System Settings > Privacy & Security > Screen & System Audio Recording if needed. Audio-only access cannot capture the desktop. See Apple’s screen-access instructions.
Check the feature requirements below before starting. This setup adds a virtual screen and a stream. It does not change a game’s renderer or enable a graphics-driver feature.
Choose the source and output sizes
- Open Settings > Displays > Overview > Create New Virtual Screen…. Choose Pre-configured settings (recommended) and 16:9 - HD/4K/5K/6K, then Create Virtual Screen. This creates a disconnected definition. Leave Match aspect ratio of and associate to a display unused and all Associated Displays selections off.
- Identify the new definition in the display list. If available, set a distinctive Virtual screen name while it is disconnected. Turn on Connect this virtual screen and wait for a real connected source. Check that the existing displays, main display and arrangement remain usable before continuing.
- Open App Menu > [new virtual source] > Virtual Screen Mode. Select an actually offered 1920 × 1080 LoDPI mode. Do not select its HiDPI counterpart: a 1920 × 1080 logical HiDPI source can contain 3840 × 2160 backing pixels.
- Open Settings > Displays > [new virtual source] > Display Information…. Under Current Display Mode, verify Logical width/Logical height and Pixel width/Pixel height are both 1920 × 1080. Check the receiver’s information too: its pixel dimensions must be 3840 × 2160, with the physical panel actually using that native output without an additional scaling stage. Select only a supported receiver mode through App Menu > [receiver] > Display Mode if a change is needed.
The steps use a 1920 × 1080 source and a 3840 × 2160 receiver. The screenshots use 2560 × 1440 and 5120 × 2880 instead. Both combinations give a 2× enlargement in each direction.
![]()
Check the source’s pixel dimensions as well as its logical size before calculating the enlargement.
The receiver’s logical desktop may be 1920 × 1080 HiDPI or 3840 × 2160 LoDPI. The important comparison is the captured source pixels against the final panel pixels, with no later resampling. The example gives 3840 ÷ 1920 = 2 horizontally and 2160 ÷ 1080 = 2 vertically: each source pixel can occupy a 2 × 2 panel block. A logical-size label alone does not establish that result.
Prepare a sharp source image
- Open the test image in Preview. Use the toolbar’s Info button to check its pixel dimensions in the Inspector. See Apple’s image-information instructions. Do not resize or edit the image for this test.
- Note Preview’s current image-scale preference so you can restore it later. Open Preview > Settings > Images. For Define 100% scale as, choose 1 image pixel equals 1 screen point. Then choose View > Actual Size in the image window. These are Preview’s scale definition and viewing-size commands. Use the actual choices offered on your macOS version.
- Move that original window onto the new LoDPI source using the real display arrangement. Keep the whole image visible without changing its scale. On this verified LoDPI source, one screen point corresponds to one captured pixel. Confirm the test image has crisp single-pixel edges before enlargement. On a HiDPI source, Preview’s screen-point definition would not mean one captured or panel pixel.
Enlarge with nearest-neighbor sampling
- Open the attached App Menu > [new virtual source] > Stream Virtual Screen. Find that source’s original/default entry. Only it offers Add Stream Configuration. Add one fresh configuration, wait for the entry to appear and record its actual numbered label. Preserve any default or existing additional configurations.
- While this new entry is stopped, leave Full Screen Window Mode, Resume Stream on Connect and Show on Lock Screen off. Leave Prevent Cursor Entering off if shown. Option or Shift exposes advanced rows. Keep recovery visible.
- Turn on Integer Scaling. It is off by default. Keep 1:1 Pixel Mapping and Free Aspect Ratio off. Keep Video Filters off with no enabled custom filters, Enable Cropping off, and no flip or rotation. Leave alignment centered and Zoom, Underscan and Alpha at 100%.
- Keep the initial Target FPS of Unlimited. Select the actual connected physical receiver in this new stream’s target list. Choose a different display from the source and one that is not a mirror target. Wait for an actual image and for pending display/menu changes to settle.
![]()
Integer Scaling selects nearest-neighbor sampling. Source and output dimensions determine whether the enlargement is a whole number.
The ordinary borderless overlay fills the receiver. Operate the original source window, keeping the independent physical desktop available. A stream can transfer the main display when its receiver was main. Check which display is main after starting. 1:1 Pixel Mapping uses logical dimensions, so it is not a shortcut to one physical panel pixel per captured pixel.
Check the result
- Look at the actual receiver. On the unchanged test image, single-pixel lines should become equally wide two-pixel blocks in both directions under the verified 2× conditions. Confirm the complete source fits without cropping, stretching or an unexpected border. A screenshot or an enabled setting alone does not prove the panel’s final sampling.
- In the same new stream entry, temporarily set Zoom to 75%, keeping Integer Scaling on and every other choice fixed. With the verified full-fit 2× setup, the centered image becomes 2880 × 1620 panel pixels: 1.5× in each direction. Nearest-neighbor sampling can keep edges hard while distributing unequal one- and two-pixel blocks. The surrounding receiver background is expected.
- Restore Zoom to 100%, let the geometry settle, and check the equal blocks again. If the actual dimensions or later scaling differ, the numerical comparison does not apply. Check them before comparing pixel blocks.
![]()
The whole XDR output shows the source at a 2× enlargement with Integer Scaling enabled. This still does not measure panel sampling or performance.
For a movable PIP instead, Integer Scaling uses the same sampling choice, but window dimensions and later backing scale still determine the ratio. Snap to 25% Steps only helps a nearby resize snap to a percentage. It does not lock a whole-number panel enlargement. See the PIP reference before changing that separate workflow.
Try a compatible game after the image test
Stop the stream and let pending changes finish before replacing the test image with a game. Note the game’s current resolution, display, window/full-screen and graphics settings. Select the actual virtual source and a supported low-resolution mode that gives a whole-number ratio to the receiver. Begin windowed if possible. Restart this stream and inspect the actual game output.
A game can blur its own scene before capture, refuse a virtual display or exclusive full-screen capture, or produce protected content that cannot be captured. Nearest-neighbor sampling cannot recover detail already smoothed by the game. Test movement and input responsiveness. A virtual refresh-rate selection or Target FPS request does not establish delivered game frames, latency or stability.
Troubleshooting
- Integer Scaling seems to do nothing: verify the source’s pixel dimensions, not just its logical resolution. A 1920 × 1080 HiDPI source may already have as many backing pixels as the 4K receiver. Use the distinct source-to-receiver stream, with Video Filters off and no custom filters. Self-stream/filter-window workflows are different. See the integer-scaling FAQ.
- Edges remain blurred: inspect the original image or game rendering first. Then check crop, transforms, Zoom, Underscan, custom filters and any scaled receiver or panel mode. Nearest-neighbor sampling does not undo upstream blur, and subsequent filtered resampling can smooth edges again.
- Blocks are hard but uneven: the final ratio is probably fractional in one or both directions. Free Aspect Ratio can also distort the two axes. Restore the full-fit settings and verify the actual source/output geometry.
- The stream is black, missing or unstable: stop it and keep physical recovery visible. Verify screen access, the connected source and receiver, and capture compatibility with the test image before trying the game again. A saved target or mode is not proof of an available capture source. If instability continues, stop the stream and use a working configuration.
- The view returns during private work: turn off this stream’s Resume Stream on Connect, let pending restart/menu/capture work settle, then stop again and verify the overlay is gone. Hide and Pause are not reliable ways to prevent capture. Other settings or wake can restart capture. A Target FPS-only restart preserves pause, but stop the stream before private source work.
Stop and remove the setup
- Turn Resume Stream on Connect off. Let pending capture and display changes finish, then choose Stop Streaming and check that the stream is inactive.
- While the virtual source remains connected, restore any changed game settings and move the original image/game windows back to a visible physical desktop. Restore Preview’s original scale definition and document viewing scale. Keep the file itself unchanged.
- After pending menu work has finished and the stream is stopped, choose Remove Stream Configuration only in the new additional entry. Removal finishes after the menu closes. Wait until that entry is actually gone. Preserve every original default/additional stream and PIP.
- Open Settings > Displays > [new virtual source] > Discard…, then Discard Virtual Screen. Discard only the new definition. You do not need Discard & Remove Color Profile. Turning off Connect this virtual screen instead disconnects it while retaining the definition.
- Choose your preferred physical-display mode, main display and arrangement. Re-enable any rules you paused if you still use them. Restore the virtual-screen reconnect option if you want that behavior for other sources.
Related pages
- Can I use integer scaling for games or pixel art?
- Integer scaling and whole-number geometry
- Stream Display / Stream Virtual Screen
- Picture in Picture
- Two independent virtual desktops and their views
Additional information
This section explains feature availability and platform requirements.
Features requiring Pro license
Streaming and the Integer Scaling, mapping, geometry, filter and capture preferences used here require Pro or an active app trial. Basic virtual-screen creation and connection are available without Pro. Custom virtual configuration and naming require Pro. PIP and its sizing/sampling preferences require Pro if you choose that separate alternative. Stopping and removing an additional stream remain available for cleanup.
Platform compatibility
The documented app requires macOS 26.3 or later. The source mode, capture permissions, compatible app and actual receiver output must all be available on your Mac. The ordinary SDR virtual-screen, streaming and Integer Scaling features described here are available on both Apple silicon and Intel Macs, subject to actual supported modes, capture and receiver output. The first-connection layout-restoration behavior described above differs on Apple silicon. Game compatibility, final physical-pixel mapping and performance remain dependent on the actual setup.