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]>
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]>
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]>
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]>
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.
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.
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.