eden-miror/src/core
xbzk 32db6c1877
[renderer] NG ragebound workaround via LoadOverrides + vk_rasterizer UpdateBlending TouchBlendequations Rework (#2934)
this pull should impact ninja gaiden ragebound only! it makes it playable past stage 4-1.
it contains a workaround for missing maxwell_3d's iterated_blend functionality, which fixes several graphics all over the game.
the issue causes transparency enabled blends (mostly lighting fx) to be wrongly blended into destination, turning textures into black frames.
in stage 4-1 there are lighthing layers in the foreground, causing sprites layer to become overlapped by these opaque black frames, including entire screen in a mid boss fight, making it unplayable* (players maneuvered by turning immortal option on and swinging sword all around until defeating it).
also only in stage 4-1 the fix has a short drawback: when you buff up next attack these problematique blends will be drawn back as black frames, but only for a split second, so no big deal.
this workaround was already discovered and available in PR 302,  but in an unconventional way for a game specific override, so we did forbidden it. now it uses classic game specific override solution exampled in core.cpp's System::Impl::LoadOverrides method, so now i guess it's worth to merge it and deliver this to players until we harness iterated_blend control.

additionally I've slightly reworked vk_rasterizer.cpp's RasterizerVulkan::UpdateBlending, if (state_tracker.TouchBlendEquations()) {...} session.
it was made in a way that for a single blend, it exhaustly calls 48 (6 x 8) MaxwellToVK redundant functions, and declared a lambda function inside a 8 laps loop.
reworked it so that instead of 48 calls it makes only the necessary 6 calls, and then merely safely copy the result for the other 7 times.

Co-authored-by: Allison Cunha <allisonbzk@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2934
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Co-authored-by: xbzk <xbzk@eden-emu.dev>
Co-committed-by: xbzk <xbzk@eden-emu.dev>
2025-11-13 14:01:32 +01:00
..
arm Revert "[core/memory] Remove defered heap allocation on Linux." (#2974) 2025-11-09 22:42:09 +01:00
crypto [crypto] Rework AES CTR/XTS streaming and squash heap churn (#2782) 2025-10-26 02:12:27 +01:00
debugger [logging, debugger] remove unescesary logic and only query USER env variable once (#2800) 2025-10-27 20:55:01 +01:00
file_sys [common] replace Common::(DerivedFrom, IsArithmetic, Size, ConvertibleTo, IsIntegral) with libstdc++ equivalents (#290) 2025-11-07 17:03:01 +01:00
frontend [compat] HaikuOS port (#2805) 2025-10-22 04:53:40 +02:00
hle [am] Improve some error messages (#2996) 2025-11-10 23:32:50 +01:00
internal_network [compat] HaikuOS port (#2805) 2025-10-22 04:53:40 +02:00
loader [common] replace Common::(DerivedFrom, IsArithmetic, Size, ConvertibleTo, IsIntegral) with libstdc++ equivalents (#290) 2025-11-07 17:03:01 +01:00
memory [tools, cmake] refactor: update/hash check scripts, use tags for some more deps, proper CPMUtil separation (#2666) 2025-10-05 03:04:53 +02:00
tools [compat] HaikuOS port (#2805) 2025-10-22 04:53:40 +02:00
CMakeLists.txt [cmake] allow static MinGW/macOS builds; fix clangarm64 (#2994) 2025-11-11 06:22:33 +01:00
constants.cpp service: acc: Replace default image with a 32x32 image 2023-03-05 16:36:19 -06:00
constants.h service: acc: Replace default image with a 32x32 image 2023-03-05 16:36:19 -06:00
core.cpp [renderer] NG ragebound workaround via LoadOverrides + vk_rasterizer UpdateBlending TouchBlendequations Rework (#2934) 2025-11-13 14:01:32 +01:00
core.h [meta] remove MicroProfile (#185) 2025-08-06 07:48:11 +02:00
core_timing.cpp [meta] remove MicroProfile (#185) 2025-08-06 07:48:11 +02:00
core_timing.h core_timing: handle concurrent unscheduling of looping events 2023-12-23 15:36:46 -05:00
cpu_manager.cpp [meta] remove MicroProfile (#185) 2025-08-06 07:48:11 +02:00
cpu_manager.h Fix typos in src/core (#12625) 2024-01-08 13:31:48 -06:00
device_memory.cpp core: Define HAS_NCE macro 2023-11-25 00:47:36 -05:00
device_memory.h Core: Initial implementation of device memory mapping 2024-01-18 21:12:30 -05:00
device_memory_manager.h revert [vk] Fast UBO: fix tracking, resize heuristics, add debug guard (#2695) (#2706) 2025-10-09 21:37:27 +02:00
device_memory_manager.inc revert [vk] Fast UBO: fix tracking, resize heuristics, add debug guard (#2695) (#2706) 2025-10-09 21:37:27 +02:00
gpu_dirty_memory_manager.h Core: Eliminate core/memory dependancies. 2024-01-18 21:12:30 -05:00
guest_memory.h Solves warning about GuestMemory having internal linkage. 2025-04-04 03:40:47 +02:00
hardware_properties.h [dynarmic] jit fix branch v2 (#203) 2025-08-27 06:49:50 +02:00
memory.cpp Revert "[core/memory] Remove defered heap allocation on Linux." (#2974) 2025-11-09 22:42:09 +01:00
memory.h Revert "[core/memory] Remove defered heap allocation on Linux." (#2974) 2025-11-09 22:42:09 +01:00
perf_stats.cpp [core] Fix buiding with fmt 10 (#2524) 2025-09-19 17:02:53 +02:00
perf_stats.h chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
reporter.cpp [core] Fix buiding with fmt 10 (#2524) 2025-09-19 17:02:53 +02:00
reporter.h service: move hle_ipc from kernel 2023-03-01 10:39:49 -05:00