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
MrPurple666
2d2e9208d2
Unified torzu and sudachi friend.cpp + fix android build on dma_pusher
2025-04-04 03:40:49 +02:00
Zephyron
0071e980b8
video_core: Enforce safe memory reads for compute dispatch
...
- Modify DmaPusher to use safe memory reads when handling compute
operations at High GPU accuracy
- Prevent potential memory corruption issues that could lead to
invalid dispatch parameters
- Previously, unsafe reads could result in corrupted launch_description
data in KeplerCompute::ProcessLaunch, causing invalid vkCmdDispatch
calls
- By enforcing safe reads specifically for compute operations, we
maintain performance for other GPU tasks while ensuring compute
dispatch stability
This change requires >= High GPU accuracy level to take effect.
2025-04-04 03:40:49 +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
edff3d4adb
Radeon gpu profiler detection support
2025-04-04 03:40:47 +02:00
darktux
2032d035a3
Removed telemetry and anonymized SCM (git) strings
2025-04-04 03:40:47 +02:00
darktux
616619c8f7
Port changes from Early Access
2025-04-04 03:40:46 +02:00
Briar
4bb6e633e0
externals: Downgrade dynarmic to ae99622 and xbyak to 0d67fd15; modify ABI parameter handling in macro_jit_x64.cpp
2025-04-04 03:23:32 +02:00
voidanix
d60cf76e2d
Fix GCC builds with Debug build type
2025-04-01 18:31:44 +02:00
yuzubot
f2aa821f94
"Merge Tagged PR 13178"
2024-03-03 13:02:49 +00:00
liamwhite
3a31129447
Merge pull request #13171 from liamwhite/fake-address
...
texture_cache: do not track invalid addresses
2024-02-27 09:42:46 -05: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
liamwhite
c98e01cee8
buffer_cache: avoid overflow in usage tracker ( #13166 )
2024-02-27 15:39:11 +01:00
liamwhite
df3712ad06
texture_cache: use two-pass collection for costly load resources ( #13096 )
2024-02-27 15:38:14 +01:00
Narr the Reg
325e577eec
Merge pull request #13172 from liamwhite/gl-streams
...
renderer_opengl: declare geometry stream support in profile
2024-02-26 11:51:25 -06:00
Liam
71a6d3596a
renderer_opengl: declare geometry stream support in profile
2024-02-26 11:18:30 -05: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
Liam
afb3516d43
texture_cache: do not track invalid addresses
2024-02-26 10:26:27 -05:00
Narr the Reg
615cc06ca4
Merge pull request #13001 from liamwhite/scaled-availability
...
vulkan_device: don't use fixed cap for memory limits
2024-02-22 11:31:17 -06: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
Matías Locatti
40497ab00f
Merge pull request #10529 from liamwhite/critical-spacing
...
caches: make critical reclamation less eager and possible in more cases
2024-02-20 23:19:27 -03: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
a956f0f4f8
vulkan_device: don't use fixed cap for memory limits
2024-02-18 18:59:13 -05:00
Liam
02430ed002
buffer_cache: use mapped range with large vertex buffer size
2024-02-13 08:27:33 -05:00
liamwhite
c741b765dd
Merge pull request #12975 from FernandoS27/keep-your-own-vodoo-doll-away-from-gf
...
Texture Cache: Fix untracking on GPU remap
2024-02-13 08:17:59 -05:00
Narr the Reg
e29b241a5a
Merge pull request #12756 from liamwhite/applet-multiprocess-hwc
...
general: applet multiprocess
2024-02-11 20:58:28 -06:00
Liam
25f5a651a9
texture_cache: tweak iteration tracking change
2024-02-11 13:41:13 -05:00
Liam
9a10c66e40
texture_cache: avoid overestimation of ASTC texture sizes
2024-02-11 13:41:13 -05:00
Liam
e882f6c1c3
caches: make critical reclamation less eager and possible in more cases
2024-02-11 13:41:13 -05:00
Liam
47eeb0008b
host_shaders: add vendor workaround for adreno drivers
2024-02-10 12:02:37 -05:00
Fernando Sahmkow
75847f0e8b
Texture Cache: Fix untracking on GPU remap
2024-02-10 14:49:49 +01: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
liamwhite
d26c4a5090
Merge pull request #12914 from FernandoS27/vc-refactor
...
VideoCore Refactor Part 1.
2024-02-08 10:59:59 -05:00
liamwhite
9e83fdcde3
Merge pull request #12883 from FernandoS27/memory_manager_mem
...
MemoryManager: Reduce the page table size based on last big page address.
2024-02-06 10:25:03 -05:00
Fernando Sahmkow
758d895408
Common: Rename SplitRangeSet to OverlapRangeSet
2024-02-05 23:01:17 +01: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
Fernando S
9162ecd960
Merge pull request #12761 from liamwhite/mp-composite
...
video_core: rewrite presentation for layer composition
2024-02-02 15:08:06 +01: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