Commit Graph
13 Commits
Author SHA1 Message Date
CamilleLaVey 1fbace438c [vulkan, qcom] Another set of fixes for QCOM stock driver (#3334)
This pr is another set of fixes for the system driver (stock) on Qualcomm devices, mostly taking into consideration drivers from series 512.800.0 and on, reduces unwanted loads in the GPU by allocating properly features that were forced available, when they weren't, generating wrong commands between shader recompiler and Adreno's compiler; also this pr has a bunch of small fixes on games that some textures were displayed wrongly due to double swizzling during the creation of shaders, which allows serveral games to be fixed:

- Zelda: Link's Awakening (no blur, hearts properly displayed, flickering highly reduced on NCE)
- Zelda: Echoes Of Wisdom (no blur, hearts properly displayed, reduced highly flickering, rift properly rendered)
- Mario Kart 8 Deluxe (no longer wrong blue texture on icons of the cups or countdown marker, no longer freezes when compilling shaders on game versions below NCE update to bring more compatibility with CTGP MOD)
- Naruto's Ninja Storm series (no longer blue texturing on Naruto or main character on the screeen)
- Pokemon Scarlet/ Violet (no longer missing characters or npc)
- And many more games that are missing from our scope of testing.

But not only that, but also improved GPU - CPU synchornization for better performance (by 15% compared to previous builds) more stable shader compilations and removed unneeded emulation paths; making games as Breath Of The Wild less stuttery than it was used to; along some cleaning from dead code, allowing mobile devices to go brrrr, always long live to the Snapdragon Master Race, it's needed to explain that devices from A7XX need to use the driver 819.2, meanwhile A8XX can use 842.9 to obtain all the benefits from VK 1.4 allowed in Eden.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3334
Reviewed-by: DraVee <[email protected]>
Reviewed-by: Maufeat <[email protected]>
Reviewed-by: Lizzie <[email protected]>
Reviewed-by: MaranBr <[email protected]>
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2026-01-19 04:10:54 +01:00
CamilleLaVey 1a9b4b37e1 [buffer_cache] Add batching support for memory tracker updates (#3288)
I added a batching/ coalescing of ranges in WordManager to reduce calls per pages in UpdatePagesCachedCount, also a test to verify if FlushCachedWrites coalesced (reduces callings to UpdatePagesCachedCount) callings and register each of them to inspect them.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3288
Reviewed-by: Maufeat <[email protected]>
Reviewed-by: DraVee <[email protected]>
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2026-01-18 03:48:09 +01:00
CamilleLaVeyandlizzie 51cc1bc6be [scheduler, dma, maxwell] Reduce CPU stalls in the GPU command processing pipeline through multiple targeted optimizations (#3296)
- Scheduler: Reduced lock scope to allow parallel command preparation across channels
- DmaPusher: Added command prefetching (16-command lookahead) to improve cache hit rate
- Maxwell3D: Pre-allocated macro parameter vectors to eliminate dynamic allocations and unrolls dirty register tracking loop for better cache locality
- MacroEngine: Added last-executed macro cache to skip hash table lookups on hot path

Co-authored-by: lizzie <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3296
Reviewed-by: Maufeat <[email protected]>
Reviewed-by: DraVee <[email protected]>
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2026-01-18 03:45:18 +01:00
CamilleLaVey 4a7772f104 [renderer_vulkan, buffer_cache] Fixing turnip shenanigans (#3325)
This is a trivial change to remove turnip from some of my clamps for qcom hardware, fixes crashes of turnip drivers in recent nightlies.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3325
Reviewed-by: MaranBr <[email protected]>
Reviewed-by: DraVee <[email protected]>
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2026-01-17 10:17:10 +01:00
CamilleLaVeyandCaio Oliveira a27d35362d [vk, qcom] Memory, Samplers, BindingBuffers and UniformBufferAlignment set by hardware capabilities for QCOM. (#3280)
This PR adjust resources usage of Eden based on driver specification, improving stability and smarter resources usage, extends the amount of TotalPipelineWorkers on Android.

Co-authored-by: Caio Oliveira <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3280
Reviewed-by: Lizzie <[email protected]>
Reviewed-by: DraVee <[email protected]>
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2026-01-11 05:31:23 +01:00
5edcdea78f [refactor, vk] DynamicState, ExtendedDynamicState and VertexInputDynamicState (#3074)
This PR rewrites the DynamicState, ExtendedDynamicState and VertexInputDynamicState logic:

- Adds proper handling on how features should be loaded based on driver available features for ExtendedDynamicState/ VertexInputDynamicState.
- Fixes some old regressions with emulated formats for Android.
- Adds better formatting for tiling format features.
- Adds better formatting for format features.
- Adds NonWritable buffers handling for Spir-v.
- Updates Maintenance features calling.
- Adds new features: Multidraw, Robustness2, Image Robustness.
- Removes dead code/ duplicated on Vulkan device related to ExtendedDynamicState handling.
- Adjusts and conditions with better handling for some features callings: SwapchainMaintenance1, ConditionalRendering, ShaderExtencilExport, CustomBorderColor, TransformFeedback, VertexInputDynamicState.
- Removes some older feature ban logic.
- Adds hardware resolve path for MSAA Image Blits on Nvidia cards.
- Adds flat decorations for input interfaces on Spir-v.
- Reduces flushwork within drawcalls.
- Clamps render limits on out-of-area for rasterizer.

Co-authored-by: lizzie <[email protected]>
Co-authored-by: Caio Oliveira <[email protected]>
Co-authored-by: DraVee <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3074
Reviewed-by: DraVee <[email protected]>
Reviewed-by: Lizzie <[email protected]>
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2026-01-07 06:49:32 +01:00
b6241e4148 revert [vk] StreamBuffer Changes (#2684) (#2707)
revert [vk] StreamBuffer Changes (#2684)

Streambuffer changes did broke stuff in other games that got out of our scope of testing, we're going to study this changes in the future for better graphic stability.

Co-authored-by: Ribbit <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2684
Reviewed-by: MaranBr <[email protected]>
Reviewed-by: Lizzie <[email protected]>
Reviewed-by: CamilleLaVey <[email protected]>
Co-authored-by: Ribbit <[email protected]>
Co-committed-by: Ribbit <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2707
Reviewed-by: MaranBr <[email protected]>
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2025-10-10 01:55:43 +02:00
3c6ef765af revert [vk] Fast UBO: fix tracking, resize heuristics, add debug guard (#2695) (#2706)
revert [vk] Fast UBO: fix tracking, resize heuristics, add debug guard (#2695)

Well, stuff showed up after testing phase, that showed us this change break SMO and some mods after being merged directly into master, we will keep stuying why happens this and add a better handling later.

Co-authored-by: Ribbit <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2695
Reviewed-by: CamilleLaVey <[email protected]>
Co-authored-by: Ribbit <[email protected]>
Co-committed-by: Ribbit <[email protected]>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2706
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2025-10-09 21:37:27 +02:00
CamilleLaVeyandlizzie 9fae048a5a revert [jit] Increase x86_64 default code size to full 2GiB hugepage (#318) (#337)
revert [jit] Increase x86_64 default code size to full 2GiB hugepage (#318)

Abuses the existence of transparent huge pages on Unix. 4*2 = 8GiB virtual memory used total by JIT. May reduce native host TLB trees.

--------------

WIP: Wasn't meant to be merged, it's going to be refined to be added later when more data/ testing have been made about this approach.
Signed-off-by: lizzie <[email protected]>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/318
Reviewed-by: Shinmegumi <[email protected]>
Co-authored-by: lizzie <[email protected]>
Co-committed-by: lizzie <[email protected]>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/337
Co-authored-by: CamilleLaVey <[email protected]>
Co-committed-by: CamilleLaVey <[email protected]>
2025-08-27 21:28:23 +02:00
15d371c51a revert 45e7c0d62d
Revert fix inversion of toggle for early fences (#175)

This should fix performance regressions in games that didn't need this and fix it to work with the games it is intended to be used for.

// Commit reverted there's some issues with the logic of "release early fences", it's going to be solved in a later commit.

Made based on recommendations by Discord Contributor.

Signed-off-by: Shinmegumi <[email protected]>
Co-authored-by: Gamer64 <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/175
Co-authored-by: Shinmegumi <[email protected]>
Co-committed-by: Shinmegumi <[email protected]>
2025-08-02 02:50:17 +02:00
CamilleLaVeyandPavel Barabanov be9a415157 Revert [Android] 0 FPS Error fix for certain titles.
revert [android] Fix 0fps errors on DKCR, Subnautica, and Ori 2 (#79)

Co-authored-by: Pavel Barabanov <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/79


Option reverted due problems caused with another games and make some advances worst when testing, if necessary it's going to be refined to be converted into a toggle.
2025-07-21 13:44:26 +02:00
CamilleLaVeyandAleksandr Popovich cd394fc40f revert [android] Snapdragon 865 patches (#23)
revert [android] Snapdragon 865 patches (#23)

Co-authored-by: Aleksandr Popovich <[email protected]>
Reviewed-on: https://git.bixed.xyz/Bix/eden/pulls/23

Reverted due to heavy performance hits on Android with higher specifications, will be adjusted to be included in a specific build for older A6XX devices, as 855, 860, 865, 870, meanwhile it does fix critical issues with certain games crashing due to memory and VRAM usage, hits performance on SoC that can do it without this special flags.
2025-07-12 20:10:40 +02:00
CamilleLaVeyandAleksandr Popovich 3df06da02c revert Align and bias memory stronger
revert [ir] Align and bias memory stronger

Signed-off-by: Aleksandr Popovich <[email protected]>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/229
Co-authored-by: Aleksandr Popovich <[email protected]>
Co-committed-by: Aleksandr Popovich <[email protected]>

Reverted as showed up issues with buffers on games that weren't expected, it's going to be refined and implemented again with better params.
2025-07-11 19:57:21 +02:00