Zephyron
3e835ac3aa
video_core: Add new shader format conversion pipelines
...
Adds several new shader-based format conversion pipelines to support additional
texture formats and operations:
- RGBA8 to BGRA8 conversion
- YUV420/RGB conversions
- BC7 to RGBA8 decompression
- ASTC HDR to RGBA16F decompression
- RGBA16F to RGBA8 conversion
- Temporal dithering
- Dynamic resolution scaling
Updates the texture cache runtime to handle these new conversion paths and adds
helper functions to check format compatibility for dithering and scaling
operations.
The changes include:
- New shader files and CMake entries
- Additional conversion pipeline setup in BlitImageHelper
- Extended format conversion logic in TextureCacheRuntime
- New format compatibility check helpers
2025-04-11 17:05:30 -03:00
Zephyron
5cb3153f15
video_core: Add sRGB to D24S8 depth-stencil conversion support
...
Implements conversion from sRGB color formats to D24S8 depth-stencil format
in the Vulkan renderer. This change includes:
- New fragment shader convert_abgr8_srgb_to_d24s8.frag that handles proper
sRGB to linear conversion before depth calculation
- Added shader to CMake build system
- Extended BlitImageHelper with new conversion pipeline and methods
- Updated texture cache to handle sRGB to D24S8 format conversion paths
The conversion properly handles sRGB color space by first converting to
linear space before calculating luminance values for the depth component,
while preserving alpha channel data for the stencil component.
2025-04-11 17:05:20 -03:00
crueter
9cef9f5dce
Update fmt to allow for v11
...
Signed-off-by: swurl <swurl@swurl.xyz>
2025-04-10 01:11:22 +02:00
JPikachu
52eab40fc8
Implement LogicOP Workaround for Vulkan on AMD GPUs
...
This fixes black sewers in Paper Mario: TTYD
Credit: Antique - [Sudachi] Dev (https://sudachi.emuplace.app/ )
2025-04-08 19:17:28 +02:00
darktux
492d3856e8
Vulkan validation error fix.
...
Different image usage flags between image creation and image view
creation.
2025-04-04 03:40:48 +02:00
darktux
2032d035a3
Removed telemetry and anonymized SCM (git) strings
2025-04-04 03:40:47 +02:00
liamwhite
5f2369bba6
general: workarounds for SMMU syncing issues ( #12749 )
2024-02-27 15:42:15 +01:00
liamwhite
a918ce6fe9
vk_rasterizer: flip scissor y on lower left origin mode ( #13122 )
2024-02-27 15:40:33 +01:00
Liam
9db29b4e20
settings: remove global override for smash on amdvlk
2024-02-26 11:16:18 -05:00
Liam
e15b1021a4
video_core: make gpu context aware of rendering program
2024-02-26 11:16:14 -05:00
Narr the Reg
091abdc5cb
Merge pull request #13075 from liamwhite/mali-having-a-bad-time
...
shader_recompiler: throw on missing geometry streams in geometry shaders
2024-02-22 11:30:26 -06:00
FearlessTobi
4d55e58ee4
scope_exit: Make constexpr
...
Allows the use of the macro in constexpr-contexts.
Also avoids some potential problems when nesting braces inside it.
2024-02-19 16:00:46 +01:00
Liam
749f0564ae
shader_recompiler: throw on missing geometry streams in geometry shaders
2024-02-19 00:34:00 -05:00
Liam
ba17a8c2b8
gpu: dependency-inject scaling/antialiasing filter state for capture layers
2024-02-09 09:20:53 -05:00
Liam
ce72818075
nvnflinger/gpu: implement applet capture
2024-02-09 09:20:53 -05:00
Liam
1c32e4157c
nvnflinger/gpu: implement blending
2024-02-09 09:20:53 -05:00
Liam
85abd0243e
video_core: defensively program around unmapped device pointers
2024-02-09 09:20:53 -05:00
Fernando Sahmkow
80d505b5cf
Buffer Cache: Refactor to use Range sets instead
2024-02-05 11:06:52 +01:00
Fernando Sahmkow
4d97c54676
VideoCore: Move Slot Vector to Common
2024-02-04 20:01:47 +01:00
liamwhite
3868b44440
Merge pull request #12885 from Moonlacer/eclipse-fix
...
structured_control_flow: Add Samsung Proprietary Driver ID to Reorder Pass
2024-02-02 09:08:54 -05:00
Moonlacer
309ca2bd3b
Clang Fix
2024-02-01 18:15:21 -06:00
Moonlacer
31200d0c7a
Add Samsung Proprietary Driver ID to Reorder Pass
...
For RDNA-based Samsung Xclipse GPUs
2024-02-01 17:53:26 -06:00
Liam
5ec76db392
nvnflinger/gpu: implement layer stack composition
2024-01-31 11:27:21 -05:00
Liam
f727f13cb9
renderer_vulkan: implement layer stack composition
2024-01-31 11:27:21 -05:00
Liam
2a314f9e2e
renderer_opengl: split up blit screen resources into antialias and window adapt passes
2024-01-31 11:27:21 -05:00
Liam
cc8493ea2e
renderer_vulkan: convert FSR to graphics pipeline
2024-01-31 11:27:21 -05:00
Liam
bd9c228844
renderer_opengl: split out FXAA
2024-01-31 11:27:20 -05:00
Liam
86bfa837fc
renderer_vulkan: split up blit screen resources into separate antialias and window adapt passes
2024-01-31 11:27:20 -05:00
Liam
f50296ab23
renderer_vulkan: isolate FXAA from blit screen
2024-01-31 11:27:20 -05:00
Liam
cd8049a5e2
video_core: consistently account for resolution scaling when rendering
2024-01-31 11:27:20 -05:00
Liam
84678c7014
video_core: simplify accelerated surface fetch and crop handling between APIs
2024-01-31 11:27:20 -05:00
liamwhite
bc857b4b5a
Merge pull request #12439 from FireBurn/vkresult
...
Simplify VkResult lookup
2024-01-29 09:08:32 -05:00
liamwhite
0ab550c726
Merge pull request #12499 from Kelebek1/time
...
Rework time services
2024-01-25 14:19:01 -05:00
Kelebek1
52c35521bd
Rework time service to fix time passing offline.
2024-01-24 04:26:55 +00:00
liamwhite
5a6b3a0125
Merge pull request #12579 from FernandoS27/smmu
...
Core: Implement Device Mapping & GPU SMMU
2024-01-22 10:55:39 -05:00
Mike Lothian
0a3c09f2f6
Simplify VkResult lookup
2024-01-22 03:10:43 +00:00
Fernando Sahmkow
241c64e43b
Core: Eliminate core/memory dependancies.
2024-01-18 21:12:30 -05:00
Fernando Sahmkow
b206089ea7
Core: Clang format and other small issues.
2024-01-18 21:12:30 -05:00
Fernando Sahmkow
f11218a03e
SMMU: Implement physical memory mirroring
2024-01-18 21:12:30 -05:00
Fernando Sahmkow
9db159da71
SMMU: Initial adaptation to video_core.
2024-01-18 21:12:30 -05:00
Liam
be2a32b041
renderer_vulkan: recreate swapchain when frame size changes
2024-01-16 16:09:39 -05:00
Viktor Szépe
897ff8a95c
Fix one more typo
2024-01-15 23:34:11 +00:00
Viktor Szépe
e895ebb546
Fix typos in video_core
2024-01-07 22:44:55 +00:00
Fernando Sahmkow
d9b2778306
Vulkan: Only recreate swapchain if the frame is bigger than the swap image.
2023-12-31 21:03:46 +01:00
liamwhite
84a1054801
Merge pull request #12412 from ameerj/gl-query-prims
...
OpenGL: Add GL_PRIMITIVES_GENERATED and GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries
2023-12-22 11:42:05 -05:00
Fernando S
d73d8e8471
Merge pull request #12410 from liamwhite/more-mali-null
...
renderer_vulkan: don't pass null view when nullDescriptor is not supported
2023-12-22 17:40:47 +01:00
Liam
a952270b5c
shader_recompiler: use float image operations on load/store when required
2023-12-21 14:34:46 -05:00
liamwhite
3db4ff982c
Merge pull request #12400 from ameerj/vk-query-prefix-fix
...
vk_query_cache: Fix prefix sum max_accumulation_limit logic
2023-12-20 12:46:41 -05:00
Fernando S
18b7ed6453
Merge pull request #12403 from liamwhite/clipdistance
...
shader_recompiler: use minimal clip distance array
2023-12-20 18:45:20 +01:00
Fernando S
33f38c09aa
Merge pull request #12390 from liamwhite/binding-insanity
...
renderer_vulkan: work around turnip binding bug in a610
2023-12-20 18:44:47 +01:00