Commit Graph

28814 Commits

Author SHA1 Message Date
CamilleLaVey bfdc50ee76 [TEST] Refactored SRGBToLinear function 2026-07-05 07:20:59 -04:00
CamilleLaVey b0ccfb2c2a [TEST] Remove sRGB curve convertion 2026-07-05 07:10:41 -04:00
CamilleLaVey f191d7a0b7 Revert "[TEST] Removing AMD/Nvidia from HDR on ASTC decoded formats" 2026-07-05 06:59:15 -04:00
CamilleLaVey 0a0156a484 [TEST] Removing AMD/Nvidia from HDR on ASTC decoded formats 2026-07-05 06:53:33 -04:00
CamilleLaVey e48a8d3ff4 Revert "[TEST] Test for RefreshParametter actual concurrency" 2026-07-05 06:36:31 -04:00
CamilleLaVey 811ee522e0 Revert "[TEST] Diagnosis for corrupted HDR consumed views" 2026-07-05 06:36:06 -04:00
CamilleLaVey 7cb8ae0c0d [TEST] Diagnosis for corrupted HDR consumed views 2026-07-05 06:31:42 -04:00
CamilleLaVey dbb48c4e4e [TEST] Format swap 2026-07-05 06:24:17 -04:00
CamilleLaVey 8cc658e5be [vulkan] Updated Typeless format structure for ASTC decoding 2026-07-05 05:26:47 -04:00
CamilleLaVey 785461a26c [vulkan] Verify actual format of ASTC before decode 2026-07-05 05:06:16 -04:00
CamilleLaVey 7bf0e49a91 [vulkan] Plumbing ASTC decoding capabilities for HDR 2026-07-05 03:45:32 -04:00
CamilleLaVey 55627c3896 [video_core] Initial implementation on HDR endpoints for ASTC decoding 2026-07-05 02:53:52 -04:00
CamilleLaVey 1987384dec [TEST] Test for RefreshParametter actual concurrency 2026-07-05 01:35:12 -04:00
CamilleLaVey 3b617a6733 [TEST] Add B10G11R11 as target format 2026-07-05 01:31:51 -04:00
CamilleLaVey 963e1f633b [TEST] Add preliminary/ missing formats based on driver reports for Switch 2026-07-05 00:36:26 -04:00
CamilleLaVey 6eec277428 [vulkan] Silence unimplemented format entry 2026-07-05 00:07:41 -04:00
CamilleLaVey dbd59bd119 [vulkan] Override default behavior on rasterizer channel 2026-07-04 23:21:46 -04:00
CamilleLaVey 3dc15a4f96 Smolio Gidolardo 2026-07-04 22:10:02 -04:00
CamilleLaVey 4900fee536 [TEST] Re-test removed features from QCOM 2026-07-04 22:05:28 -04:00
CamilleLaVey 34df1b4a16 [vulkan] Another approach for queries reset 2026-07-04 22:03:22 -04:00
CamilleLaVey f5560deab7 [vulkan] Added tracker for reused uploads 2026-07-04 21:41:00 -04:00
CamilleLaVey 307a32f9a0 [vulkan, qcom] Updated list of features removed for QCOM stock drivers 2026-07-04 20:44:25 -04:00
CamilleLaVey 7bb4991edd [vulkan] Refactored dual blending/ dual source attachments 2026-07-04 19:03:27 -04:00
CamilleLaVey f5720663c2 [vulkan] Adjust blend targets from texture types 2026-07-04 18:55:00 -04:00
CamilleLaVey 53927e175e [vulkan] Adjustments on previous TFB barrier added 2026-07-04 18:26:29 -04:00
CamilleLaVey 20a68e1e9d [vulkan, qcom] Returned custom border color and derivates to QCOM drivers 2026-07-04 17:59:07 -04:00
CamilleLaVey c7668fd43e [vulkan] Adjusted checks for 8 - 16bits UBO's iteration 2026-07-04 16:40:15 -04:00
CamilleLaVey eb7f950322 [spir-v] Workaorund for 1D sampled images 2026-07-04 16:24:22 -04:00
CamilleLaVey 80609ee974 [TEST] Remove border color swizzle from qcom 2026-07-04 16:17:01 -04:00
CamilleLaVey 28630ff109 [vulkan] Sampled linear images fallback to nearest 2026-07-04 13:47:44 -04:00
CamilleLaVey b049f7d273 [texture_cache] Relaxed TIC's lookup for integer type image formats 2026-07-04 12:57:20 -04:00
CamilleLaVey f6ccf2c368 [shader_recompiler] Added texture type functions 2026-07-04 01:31:25 -04:00
CamilleLaVey 27a0010b6e [vulkan] Verify UniformAndStorage capabilities on device 2026-07-04 00:32:36 -04:00
CamilleLaVey b06b9cc7a2 [vulkan] Pixel format handling for formats 2026-07-04 00:16:01 -04:00
CamilleLaVey 943f91cf0b [texture_cache] Added typeless storage form 2026-07-04 00:01:31 -04:00
CamilleLaVey bd8caa5294 [texture_cache] Added b5g6r5 pixel format to depth blit resolves 2026-07-03 23:36:05 -04:00
CamilleLaVey 3ddf349ca1 [buffer_cache] Force offsets to 0 on descriptors and use VK_WHOLE_SIZE instead 2026-07-03 23:01:13 -04:00
CamilleLaVey d707d241fc [host_shaders] Corrections on mismatchs for SINT on depth formats 2026-07-03 22:28:42 -04:00
CamilleLaVey aa5d2cf9d7 [qcom] Removal custom border color from QCOM drivers 2026-07-03 22:10:12 -04:00
CamilleLaVey decf41a3cb Fix build 2026-07-03 21:21:14 -04:00
CamilleLaVey d7dc4f2143 [vulkan] Correction on mislead of BindVertexBuffer entries 2026-07-03 20:58:34 -04:00
CamilleLaVey fbd94e4237 [vulkan] Implementation color write enable + color border swizzle 2026-07-03 20:35:45 -04:00
CamilleLaVey 48cc8f4c8c [vulkan] XFB memory barrier added 2026-07-03 02:29:06 -04:00
CamilleLaVey e1721012d8 [vulkan] Set actual dynamic state handling for topology 2026-07-03 01:49:56 -04:00
CamilleLaVey 5af01bef9f [vulkan] Initial implementation Synchronization2 2026-07-03 00:58:40 -04:00
lizzie 4c65780f11 Revert "[common/dynamic_library] fix AUR build error (#4156)" (#4157)
This reverts commit a9c4c8aefd.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4157
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-07-02 22:07:37 +02:00
lizzie a9c4c8aefd [common/dynamic_library] fix AUR build error (#4156)
not gonna question why there was an ifdef there

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4156
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-07-02 19:49:19 +02:00
lizzie a769505a45 [vk, ogl] Remove dedicated precomputed swizzle table; use shorter inline table in block_linear swizzle shaders (#4146)
old table = 64 * 8 * sizeof(u32) = 512 * 4 = 4096 bytes
new table = 8 * sizeof(u32) = 8 * 4 = 32 bytes

the expression
```glsl
    return ((pos & 0x0180) >> 1)
         | ((pos & 0x0040) >> 2)
         | ((pos & 0x0020) << 3)
         | ((pos & 0x0010) << 1)
         | ((pos & 0x000f) << 0);
```
is equivalent for generating the table but idk if we'd want that

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4146
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-07-02 19:24:07 +02:00
xbzk 54c3d10b86 [vk, renderdoc] (VUID-02997) avoid vk_image_view as VK_NULL_HANDLE when feature nullDescriptor is unavailable (#4056)
This minor change in src\video_core\renderer_vulkan\pipeline_helper.h allows renderdoc capture on mhr sunbreak.
Maybe it sanitizes some crashes on old vulkan GPUs.

Device log (nvidia kepler gpu vulkan 1.1.117):
[  17.605262] Render.Vulkan <Info> video_core\vulkan_common\vulkan_device.cpp:1041:GetSuitability: Device doesn't support feature nullDescriptor

VUID-VkWriteDescriptorSet-descriptorType-02997
For sampled/combined/storage image descriptors, Khronos says imageView must be valid or VK_NULL_HANDLE
(https://docs.vulkan.org/refpages/latest/refpages/source/VkPhysicalDeviceRobustness2FeaturesKHR.html)

but then it says: if nullDescriptor is not enabled, imageView must not be VK_NULL_HANDLE.
(https://docs.vulkan.org/spec/latest/chapters/descriptorsets.html)
nullDescriptor is exactly the feature that allows descriptors to be written with null handles.

The fix relies on conditionally replacing the null sampled view with Eden’s dummy null-image-view object (ImageView constructor checks HasNullDescriptor which checks features.robustness2.nullDescriptor. cheap checks, and only for null handles, so no notable cost).

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4056
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-07-02 03:23:08 +02:00
xbzk bdf60d79a0 [video_core] gate Mesa EXIT terminator detection behind non-proprietary driver (#4151)
FIXES A REGRESSION FROM 4012.

TryFindSize's Mesa fallback matched the unconditional @PT EXIT (0xE30000000007000F) that nv50_ir emits at program end.
That exact word is also emitted by NVN mid-program for unconditional early-outs, so on retail titles (e.g. Super Mario 3D World) the scan truncated at the first early EXIT and dropped the rest of the shader, making textures vanish.

Mesa's terminal EXIT and NVN's mid-program EXIT are bit-identical, so no mask can separate them. Gate the heuristic on !is_proprietary_driver:

NVN binaries (bindless cbuf slot 2) keep self-branch-only sizing, while nouveau/Mesa homebrew (single terminal EXIT, no self-branch trailer) still uses the EXIT terminator. nv50_ir emits exactly one EXIT (early returns lower to BRA-to-exit, discard to DISCARD), so a single terminal match is correct for that path.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4151
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-07-01 13:06:00 +02:00