What is pure integer scaling (IS)?
Integer scaling (IS) is a nearest-neighbor upscaling technique that simply scales up the existing pixels by an integer (i.e., whole number) multiplier. Nearest-neighbor (NN) interpolation works by filling in the missing color values in the upscaled image with that of the coordinate-mapped nearest source pixel value. Both IS and NN preserve the clarity of the original image. In contrast, traditional upscaling algorithms, such as bilinear or bicubic interpolation, result in blurry upscaled images because they employ interpolation techniques that smooth out the transition from one pixel to another. Therefore, integer scaling is particularly useful for pixel art games that rely on sharp, blocky images to deliver their distinctive look.
What is being implemented on the Intel® Processor Graphics Gen11 in the late August 2019 driver release?
Intel will provide options to enable both IS and NN-based scaling in the Intel® Graphics Command Center. We provide both options because some users might prefer NN to IS (depending on the OS and display panel resolution, the former can yield greater overall display utilization). This is described in more detail later in the document.
In what scenarios can I get full-screen pure integer scaling?
When the dimensions of the scaled image are the same integer multiple of the original image. For example, scaling a game with a resolution of 1280 x 720 on a panel with a resolution of 3840 x 2160 should yield pure integer scaling since the dimensions of the panel represent those of the source image multiplied by three.
In what scenarios will I not get full-screen pure integer scaling?
When the resolution of the display panel has a different aspect ratio from that of the original image, or when the aspect ratios of the source image and the panel are the same but the dimensions of the display do not represent integer multiples of the source image. In these situations, users can expect a black border around the image.
- Example 1: Scaling a game running at a resolution of 640 x 480 (4:3 aspect ratio) on a 3840 x 2160 (16:9 aspect ratio) panel. In this case, IS will not occur by default because the full height of the display panel would not be used. In this case, the user would need to force IS to yield an image with a resolution of 2560 x 1920, and black borders would fill the remaining space. Without forcing IS, the driver scales the image to 2880 x 2160 and puts borders on only the sides.
- Example 2: Scaling a game running at a resolution of 800 x 600 on a 1920 x 1080 display. In this case, IS is not possible because scaling the height of the image by any integer greater than 1 would yield an image with a height greater than the display. As a result, the game would be rendered at the original resolution and be centered on the panel surrounded by black borders.
What are the OS challenges with integer scaling?
Integer scaling introduces several challenges related to the OS composition model of multi-plane overlay1, cursor coordinate mapping, and touch interaction because the OS is unaware of such a scaling option2. Therefore, Intel kept the design of this implementation simple to solve issues other than touch, and we believe that touch will not be an issue for gamers who want to play the types of games that benefit from NN scaling and IS. Moreover, most external monitors – which some gamers connect to their systems to enjoy the benefits of larger screens – don’t support touch input.
Will Intel implement pure integer scaling with borders?
Yes, the driver being released in late August will provide users with the option to force integer scaling. The IS option will restrict scaling of game images to the greatest possible integer multiplier. The remaining screen area will be occupied by a black border, as mentioned earlier.
Why does Intel want to provide the nearest-neighbor option in addition to integer scaling?
Nearest-neighbor scaling can provide the same scaled image without employing an interpolation algorithm during the scaling process. This retains image sharpness while allowing users to enjoy optimal utilization of their display area. Integer scaling – depending on the resolution of the panel and the OS scaling options – might result in a smaller viewable area than would be possible with nearest-neighbor scaling.
For instance, integer scaling of a 1024 x 768 image on a 3840 x 2160 panel will yield a scaled resolution of 2048 x 1536, but nearest-neighbor scaling would enable a scaled resolution of 2880 x 2160 and, ultimately, 98 percent more usable screen space than with integer scaling.
How can I enable this scaling feature once it’s available?
Enable the new scaling option that supports integer scaling or nearest-neighbor in the Intel® Graphics Command Center. The “Maintain Aspect Scaling” option will yield the best experience when NN-mode is enabled.
Intel will provide users with options to enable either integer scaling or nearest-neighbor scaling in the Intel® Graphics Command Center.
Note To ensure that these features are accessible to as many users as possible, we are working to finalize the naming for the integer scaling and nearest-neighbor scaling features in the Intel® Graphics Command Center – feel free to post your name suggestions!
Also run the game in exclusive full screen mode so that the game does a “mode set” to the resolution in which it is being rendered.
Will the system power or game’s performance be impacted?
No, because the feature uses our fixed function display engine.
What is the minimum resolution supported?
The minimum supported OS resolution is 640 x 480. Enumerating resolutions lower than this generally results in longer system boot times because the OS enumeration time increases with each additional resolution. However, you should be able to add low resolutions such as 320x200 using Custom Option in Intel® Graphics Command Center Display Page.
Algorithms Used for Typical Low Resolutions
Table 1. 1920 x 1080 Panel
OS Resolution | Nearest- Neighbor | Integer Scaling | Final Resolution |
---|---|---|---|
640 x 480 | x | x | IS: Image scaled to 1280 x 960 NN: Scaled to 1440 x 1080 |
800 x 600 | x | IS not possible NN: Image scaled to 1440 x 1080 |
|
1024 x 768 | x | IS not possible NN: Image scaled to 1440 x 1080 |
|
1280 x 720 | x | IS not possible NN: Image scaled to 1920 x 1080 |
|
1280 x 1024 | x | IS not possible NN: Image scaled to 1350 x 1080 |
Table 2. 2560 x 1440 Panel
OS Resolution | Nearest- Neighbor | Integer Scaling | Final Resolution |
---|---|---|---|
640 x 480 | x | x | IS: Image scaled to 1920 x 1440 NN: Scaled to 1920 x 1440 |
800 x 600 | x | x | IS: Image scaled to 1600 x 1200 NN: Scaled to 1920 x 1440 |
1024 x 768 | x | IS not possible NN: Scaled to 1920 x 1440 |
|
1280 x 720 | x | x | IS and NN: Image scaled to 2560 x 1440 |
1280 x 1024 | x | IS not possible NN: Image scaled to 1800 x 1440 |
Table 3. 3840 x 2160 Panel
OS Resolution | Nearest- Neighbor | Integer Scaling | Final Resolution |
---|---|---|---|
640 x 480 | x | x | IS: Image scaled to 2560 x 1920 NN: Scaled to 2880 x 2160 |
800 x 600 | x | x | IS: Image scaled to 2400 x 1800 NN: Scaled to 2880 x 2160 |
1024 x 768 | x | x | IS: Image scaled to 2048 x 1536 NN: Scaled to 2880 x 2160 |
1280 x 720 | x | x | IS and NN: Image scaled to 3840 x 2160 |
1280 x 1024 | x | x | IS: Image scaled to 2560 x 2048 NN: Scaled to 2700 x 2160 |
2048 x 1152 | x | IS not possible NN: Image scaled to 3840 x 2160 |
The examples below illustrate NN Scaling (IS and non-IS) on a 4K (3840 x 2160) monitor.
Download Source Files
NN – IS scaling:
1024 x 768 Image scaled to 2048 x 1536
NN – non-IS scaling:
1024x 768 Image scaled to 2880 x 2160
NN – IS scaling:
1280 x 1024 Image scaled to 2560 x 2048
NN – non-IS scaling:
1280 x 1024 Scaled to 2700 x 2160
NN – IS scaling:
2048 x 1152 image no IS scaling
NN – non-IS scaling:
Notes:
• Please note that McPixel* does not render the game full screen and has black borders. As a result, black borders are seen at the top and bottom even with NN scaling and “Maintain Aspect Ratio option.
• Some games such as McPixel* may not do custom resolution mode set on its own.
Emulated Gaming Scenarios
Users sometimes try to play games with various emulators. Most often in these scenarios, the emulator handles scaling on its own, and this cannot be resolved using Intel’s scaling implementation.
Windowed Gaming Scenarios
A game sometimes launches in windowed mode instead of the desktop. In this scenario, if scaling is required, it will be done by either the game or OS composition manager. We cannot guarantee whether or not Intel’s scaling will get used from an independent hardware vendor (IHV) perspective. We advise users to use full-screen options for the best possible scalar option. For most games, the Alt + Enter key combination toggles between windowed and full-screen option.
Game image used for example
1. Multi-plane overlay: A feature supported by Microsoft Windows* WDDM 1.3 and beyond for optimizing desktop composition activities. Refer to Multiplane Overlay Support.
2. Microsoft Windows desktop scaling: Scaling the Desktop Image.