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 RasterizerMemory: Add filtering for flushing/invalidation operations. 2023-01-01 16:43:58 -05:00
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 renderer_vulkan: Fix some missing view formats 2023-07-01 16:03:35 +03:00
compatible_formats.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
delayed_destruction_ring.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
dirty_flags.cpp Fix stencil func registers, make clip control equivalent to how it was before, but surely wrong. 2022-10-10 20:59:57 +01:00
dirty_flags.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
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 video_core/opengl: Add FSR upscaling filter to the OpenGL renderer 2023-01-26 21:43:33 +01:00
fsr.h video_core/opengl: Add FSR upscaling filter to the OpenGL renderer 2023-01-26 21:43:33 +01:00
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 BufferBase: Don't ignore GPU pages. 2023-01-05 14:00:10 -05:00
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 CMake: Consolidate common PCH headers 2022-11-30 18:30:30 -05:00
present.h gpu: dependency-inject scaling/antialiasing filter state for capture layers 2024-02-09 09:20:53 -05:00
pte_kind.h video_core: Implement memory manager page kind 2022-10-17 15:33:29 +08:00
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 general: Silence -Wshadow{,-uncaptured-local} warnings 2023-07-18 19:31:35 -04:00
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 general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
shader_notify.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
smaa_area_tex.h video_core: Integrate SMAA 2022-12-08 17:17:45 -05:00
smaa_search_tex.h video_core: Integrate SMAA 2022-12-08 17:17:45 -05:00
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 Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
transform_feedback.h Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
video_core.cpp Updated copyright headers 2024-04-05 01:58:30 +02:00
video_core.h chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00