skyline/app
Robin Kertels 0a3cf25823 Implement the Fermi 2D blitting engine
The Fermi 2D engine implements both image blit and resolve operations, supporting subpixel sampling with both linear and point filtering.

Resolve operations are performed by sampling from the center of each pixel in order to resolve the final image from the MSAA samples
MSAA images are stored in memory like regular images but each pixels dimensions are scaled: e.g for 2x2 MSAA
```
112233
112233
445566
445566
```
These would be sampled with both duDx and duDy as 2 (integer part), resolving to the following:
```
123
456
```
Blit operations are performed by sampling from the corner of each pixel, scaling the image as one would expect.

This implementation isn't fully complete as Vulkan blit doesn't support some combinations which Fermi does, most notably between colour and depth stencil. These will be implemented properly at a later date, likely after the texture manager rework.
Out of Bounds Blit, used by some OpenGL games is also missing since supporting it requires texture aliasing, this will also be supported after the texture manager rework.

Co-authored-by: Billy Laws <blaws05@gmail.com>
2022-05-13 22:37:37 +01:00
..
libraries Update hades 2022-05-08 19:37:10 +01:00
src/main Implement the Fermi 2D blitting engine 2022-05-13 22:37:37 +01:00
.gitignore libNX FS Initalization (v0.3) 2019-10-18 16:22:38 +05:30
build.gradle Update Build Tools to 33.0.0-rc4 2022-05-12 02:53:01 +05:30
CMakeLists.txt Implement the Fermi 2D blitting engine 2022-05-13 22:37:37 +01:00
proguard-rules.pro Keep member names in pro guard 2020-11-12 22:19:55 +05:30