suyu/src/video_core
lui 1a0d98f984 renderer: add area sampling scaling method (#57)
Adds Area Sampling to the list of scaling options. Works well to achieve a high-quality, smooth super-sampling effect. Dolphin has had this for a while, and now Ryujinx has recently added it too, so I decided to port it.

Not sure if adding the extra uniform to the OpenGL WindowAdaptPass was a good idea or not, or if using the push constants under Vulkan was either, but I wasn't sure about the best way to get the window size for use in the shader, and other scaling methods still work fine. Implementation seems to work fine under both Vulkan and OpenGL, but might still need some minor tweaks to the shader. Should definitely do some testing before merging, I have tested on an Nvidia RTX 3080 under Windows.

Adapted from these two PRs:
https://github.com/Ryujinx/Ryujinx/pull/7304
https://github.com/dolphin-emu/dolphin/pull/11999

Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/57
Co-authored-by: lui <lui@vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion>
Co-committed-by: lui <lui@vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion>
2024-10-03 13:25:58 +00:00
..
buffer_cache general: workarounds for SMMU syncing issues (#12749) 2024-02-27 15:42:15 +01:00
control video_core: make gpu context aware of rendering program 2024-02-26 11:16:14 -05:00
engines vk_rasterizer: flip scissor y on lower left origin mode (#13122) 2024-02-27 15:40:33 +01:00
host1x fix for amd video playback (green videos) 2024-04-05 01:58:29 +02:00
host_shaders renderer: add area sampling scaling method (#57) 2024-10-03 13:25:58 +00:00
macro scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
query_cache Merge pull request #12499 from Kelebek1/time 2024-01-25 14:19:01 -05:00
renderer_null nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
renderer_opengl renderer: add area sampling scaling method (#57) 2024-10-03 13:25:58 +00:00
renderer_vulkan renderer: add area sampling scaling method (#57) 2024-10-03 13:25:58 +00:00
texture_cache Merge pull request #13171 from liamwhite/fake-address 2024-02-27 09:42:46 -05:00
textures Revert "HACK: Avoid swizzling and reuploading ASTC image every frame" 2023-08-06 14:55:05 -04:00
vulkan_common Vulkan validation error fix. 2024-04-05 01:58:30 +02:00
cache_types.h
capture.h nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
cdma_pusher.cpp Port changes from Early Access 2024-04-05 01:58:29 +02:00
cdma_pusher.h Port changes from Early Access 2024-04-05 01:58:29 +02:00
CMakeLists.txt Disabled problematic MSVC warning-to-errors 2024-05-07 18:57:50 +02:00
compatible_formats.cpp
compatible_formats.h
delayed_destruction_ring.h
dirty_flags.cpp
dirty_flags.h
dma_pusher.cpp Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
dma_pusher.h ci: fix new codespell errors 2023-10-02 18:03:05 -04:00
fence_manager.h scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
framebuffer_config.cpp video_core: simplify accelerated surface fetch and crop handling between APIs 2024-01-31 11:27:20 -05:00
framebuffer_config.h nvnflinger/gpu: implement blending 2024-02-09 09:20:53 -05:00
fsr.cpp
fsr.h
gpu_thread.cpp Port changes from Early Access 2024-04-05 01:58:29 +02:00
gpu_thread.h nvnflinger/gpu: implement layer stack composition 2024-01-31 11:27:21 -05:00
gpu.cpp Port changes from Early Access 2024-04-05 01:58:29 +02:00
gpu.h Port changes from Early Access 2024-04-05 01:58:29 +02:00
guest_memory.h Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
invalidation_accumulator.h
memory_manager.cpp MemoryManager: Reduce the page table size based on last big page address. 2024-02-01 13:00:36 +01:00
memory_manager.h Port changes from Early Access 2024-04-05 01:58:29 +02:00
precompiled_headers.h
present.h gpu: dependency-inject scaling/antialiasing filter state for capture layers 2024-02-09 09:20:53 -05:00
pte_kind.h
query_cache.h VideoCore: Move Slot Vector to Common 2024-02-04 20:01:47 +01:00
rasterizer_download_area.h Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
rasterizer_interface.h video_core: simplify accelerated surface fetch and crop handling between APIs 2024-01-31 11:27:20 -05:00
renderer_base.cpp
renderer_base.h nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
shader_cache.cpp Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
shader_cache.h Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
shader_environment.cpp Fix typos in video_core 2024-01-07 22:44:55 +00:00
shader_environment.h shader_recompiler: use float image operations on load/store when required 2023-12-21 14:34:46 -05:00
shader_notify.cpp
shader_notify.h
smaa_area_tex.h
smaa_search_tex.h
surface.cpp texture_cache: avoid overestimation of ASTC texture sizes 2024-02-11 13:41:13 -05:00
surface.h texture_cache: avoid overestimation of ASTC texture sizes 2024-02-11 13:41:13 -05:00
transform_feedback.cpp
transform_feedback.h
video_core.cpp Updated copyright headers 2024-04-05 01:58:30 +02:00
video_core.h