Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance, and optimization
20628 Discussions

Checkerboard Extrapolation Super Sampling (CxSS)

Sapioit
Novice
1,237 Views

Hi!

Checkerboard Rendering is an upscaling method used to reduce the computation requirements for a given resolution, which can offer slightly less visual fidelity than FSR or DLSS, but which can be a lot more efficient at upscaling, and can also have a lower latency (delay between getting the lower resolution frame and outputting the higher resolution frame). Between each frame, the position of the generated pixel in the 2x2 cells gets moved to the position which was generated for the longest time (more about this below, when talking about each preset).

 

This means that, using Checkerboard Upscaling you can generate half the amount of pixels (which takes 50% of the processing power for a given resolution), and generate the other half of the pixels (which takes significantly less than 50% of the processing power for a given resolution), resulting in massive savings in processing power for a given resolution.

 

For example, 1920x1080 (2K) would generate the same amount of pixels as 1440x810 (slightly more than 1280x720 whichis 1K) and calculate the rest, 2560x1440 (3K) would generate the same amount of pixels as 1920x1080 (2K) and calculate the rest, and 3840x2160 (4K) would generate the same amount of pixels as 2880x1620 (slightly more than 2560x1440 which is 3K) and calculate the rest. Even if calculating the extra pixels takes half of hte processing power needed to generate them in the first place, that is still a 25% improvement in FPS.

 

Checkerboard Extrapolation Super Sampling (CxSS) is a name I think would be on-brand for the implementation of checkerboard upscaling on Intel GPUs, including integrated GPUs, and I think you could use 3 presets for the upscaling, although only the Balanced preset would be genuinely checkerboard upscaling:

 

Balanced level of upscaling = Balanced quality = for every 2x2 of pixels, only 2 pixels are generated, in opposing corners, the other 2 pixels being skipped = 50% upscaling = 50% quality = steps {([1,0],[0,1]),([0,1],[1,0])}, with {step}, (cell), [line], 1 = generated, 0 = calculated for the upscaling.
Low level of upscaling = High quality = for each 2x2 of pixels, 1 pixel is generated, the other 3 pixels are skipped = 25% upscaling = 75% quality = steps: {([0,1],[1,1]),([1,0],[1,1]),([1,1],[1,0]),([1,1],[0,1])}.
High level of upscalling = Low Quality = for each 2x2 pixels, 3 pixels are generated, the other 1 pixel being skipped = 75% upscaling = 25% quality = steps: {([1,0],[0,0]),([0,1],[0,0]),([0,0],[0,1]),([0,0],[1,0])}.

 

A crude way to implement it is to render those pixels and copy the missing pixels from the previous frame, a more refined way is to have a pixel-movement-vector map which to show the direction in which the pixels are moving from frame to frame, to reduce artifacts, and that is even without using machine learning to improve the process even more (similarly to how DLSS and FSR were imrpoved, after their crude first versions).

 

Another option you could add would be letting the user choose if the post-processing is done before or after the upscaling, so they can choose to lose some efficiency/processing/FPS but get a nicer image, while still gaining more FPS than without using Checkerboard Extrapolation Super Sampling (CxSS).

 

The link below is to a video which explains in more details the advantages and calculation methods for Checkerboard Rendering, and the image I will send after that explains visually the Balanced preset of my suggestion.

 

https://www.youtube.com/watch?v=dnd7l092tx8
maxresdefault.jpg

 

Sapioit_0-1686092145555.jpeg

Labels (2)
0 Kudos
1 Solution
Jean_Intel
Employee
1,200 Views

Hello Sapioit,

 

Thank you for sharing your valuable insights with us. Your feedback is crucial in helping us improve our products and enhance the user experience. Please know that we have forwarded your input to the relevant team for consideration. We always welcome feedback and appreciate your contribution toward our goal of providing exceptional products.

 

We are thinking about closing this thread now that the information has been shared. However, we would like to know if there is any other question you may have that we can help you with.

 

Best regards,

Jean O. 

Intel Customer Support Technician


View solution in original post

0 Kudos
5 Replies
Jean_Intel
Employee
1,224 Views

Hello Sapioit,

 

Thank you for posting on the Intel️® communities. We would be more than glad to help you with your issue.

 

We appreciate your feedback. We will send your comments to the proper department for them to be aware of your remarks and to keep improving the customer's experience while using Intel products. Let us know if you have any other questions.

 

Best regards,

Jean O. 

Intel Customer Support Technician


0 Kudos
Sapioit
Novice
1,214 Views

Thanks! I appreciate it! 

This could not only make entry-level integrated GPUs even more capable of gaming, but also make the gaming GPUs even more capable of gaming, and compete with AMD's FSR and NVIDIA's DLSS. It could also be used to make console-replacement PCs more popular, especially with Steam's Big Picture mod, and similar functionality form competing launchers.

Ideally, this would become open-source and usable on any GPU, so developers can apply it inside their game, (before the UI elements are added) and separately the GPU settings could enable it for any app (after the UI elements are added), so Intel users could apply the upscaling 2 times for the same application. Sure, this would increase the latency even more, and reduce efficiency even more, but I think that it should at least be possible, even if artifacts appear. 

There are the two main reasons why CxSS should be applicable both in-game by the game/app devs, and to the whole app by the control panel, in my opinion:

 

1. Having it as a separate DLL which could replace the FSR's DLL (ffx_fsr2_api_x64.dll) or DLSS's DLL (nvngx_dlss.dll) would allow it to be applied to games which were developed with DLSS or FSR support through the DLL, which would make it possible to use CxSS with a lot more games, including games which are no longer developed.

 

2. Being able to forcefully apply the CxSS upscaling to any app would negate the biggest downside of DLSS and FSR, namely the need of developer support or the need of an external application (i.e. Magpie on Github) to upscale a game, because the external application also reduces the overall efficiency, lowering the maximum obtainable results. It also means that video players and image viewers will be able to be forcefully upscaled, which would mean that users can see the results of upscaling and request more application developers to copy the video-upscaling feature of Chrome and VLC Media Player, as well as possibly fix the broken way in which the font scaling is done in Windows.

 

And making the same thing available for Linux users will make Intel iGPUs and dGPUs be more preferable than those of the competition.

As a side note, Framework motherboards in Framework non-laptop cases and with tablet screens and two halves of a controller adapted to be mounted to the cases, would allow people to make their own handheld PCs, so adding this functionality for existing CPUs and GPUs, through driver updates, would allow Intel to become more competitive in the handheld market, where AMD's lower power consumption currently has an advantage over Intel.

0 Kudos
Jean_Intel
Employee
1,201 Views

Hello Sapioit,

 

Thank you for sharing your valuable insights with us. Your feedback is crucial in helping us improve our products and enhance the user experience. Please know that we have forwarded your input to the relevant team for consideration. We always welcome feedback and appreciate your contribution toward our goal of providing exceptional products.

 

We are thinking about closing this thread now that the information has been shared. However, we would like to know if there is any other question you may have that we can help you with.

 

Best regards,

Jean O. 

Intel Customer Support Technician


0 Kudos
Sapioit
Novice
1,193 Views

Hello, Jean!

That is all, for this topic, for now. Thanks!

 

Best regards!

 - Sapioit

0 Kudos
Jean_Intel
Employee
1,170 Views

Hello Sapioit,

 

Thanks for the information provided.

 

As we mentioned before, we have already passed the information to the appropriate team. Since there is no other question on your end, we will close this thread. Please, keep in mind that this thread will no longer be monitored by Intel.

 

Best regards,

Jean O.

Intel Customer Support Technician


0 Kudos
Reply