eden-miror/src/common
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
..
android [android] input over(lay)haul 2: Individual scaling of buttons (#2562) 2025-09-29 22:38:26 +02:00
arm64 Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
fs [desktop, fs] main_window separation; fix Ryujinx save data link issues (#2929) 2025-11-09 18:07:38 +01:00
linux general: conditionally compile gamemode on linux only 2023-11-29 14:26:11 -05:00
logging [common] fix formatting of swapped u32_le/u64_le for BE targets (#2998) 2025-11-13 13:23:46 +01:00
windows
x64 [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
address_space.cpp
address_space.h
address_space.inc
algorithm.h
alignment.h fssystem: rework for yuzu style 2023-08-15 17:47:40 -04:00
announce_multiplayer_room.h Fix License headers & CI (#168) 2025-06-09 01:40:21 +00:00
assert.cpp [common] Do not expose platform specific Crash() macro that is only used ever once (#2909) 2025-11-03 21:07:30 +01:00
assert.h [common] Do not expose platform specific Crash() macro that is only used ever once (#2909) 2025-11-03 21:07:30 +01:00
atomic_ops.h [common] provide fallback for lack of atomic u128 support (#2999) 2025-11-13 13:27:32 +01:00
bit_field.h
bit_util.h
bounded_threadsafe_queue.h [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
cityhash.cpp
cityhash.h
CMakeLists.txt [cmake] allow static MinGW/macOS builds; fix clangarm64 (#2994) 2025-11-11 06:22:33 +01:00
common_funcs.h [common] Do not expose platform specific Crash() macro that is only used ever once (#2909) 2025-11-03 21:07:30 +01:00
common_types.h [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
concepts.h [common] replace Common::(DerivedFrom, IsArithmetic, Size, ConvertibleTo, IsIntegral) with libstdc++ equivalents (#290) 2025-11-07 17:03:01 +01:00
container_hash.h
demangle.cpp [compat] Solaris build fixes for openssl, catch2; NetBSD build fixes (#2752) 2025-10-17 22:12:58 +02:00
demangle.h
detached_tasks.cpp general: Silence -Wshadow{,-uncaptured-local} warnings 2023-07-18 19:31:35 -04:00
detached_tasks.h
device_power_state.cpp Add Device Power State (Windows, Linux, Mac and Android) (#197) 2025-06-18 08:34:54 +00:00
device_power_state.h Add Device Power State (Windows, Linux, Mac and Android) (#197) 2025-06-18 08:34:54 +00:00
div_ceil.h
dynamic_library.cpp Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
dynamic_library.h
elf.h jit: add support for relr-type relocations 2023-10-11 11:13:19 -04:00
error.cpp
error.h
expected.h
fiber.cpp Revert "Disabled MCO_USE_VMEM_ALLOCATOR because standard stack size seems to suffice" 2025-04-06 22:52:55 -03:00
fiber.h Implemented rewindless Fiber without Boost (using minicoro) 2025-04-04 03:40:47 +02:00
fixed_point.h [common] replace Common::(DerivedFrom, IsArithmetic, Size, ConvertibleTo, IsIntegral) with libstdc++ equivalents (#290) 2025-11-07 17:03:01 +01:00
free_region_manager.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
hash.h
heap_tracker.cpp Revert "[core/memory] Remove defered heap allocation on Linux." (#2974) 2025-11-09 22:42:09 +01:00
heap_tracker.h Revert "[heap_tracker] Use ankerl map instead of rb tree (#249)" (#382) 2025-09-04 16:04:42 +02:00
hex_util.cpp
hex_util.h Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
host_memory.cpp [compat] Fix other DragonFlyBSD/NixOS issues (#2860) 2025-11-07 16:50:03 +01:00
host_memory.h core: track separate heap allocation for linux 2023-12-25 23:30:56 -05:00
input.h input_common: Remove duplicated DriverResult enum 2023-06-28 09:49:47 -06:00
intrusive_list.h
intrusive_red_black_tree.h
literals.h
lru_cache.h
lz4_compression.cpp fssystem: rework for yuzu style 2023-08-15 17:47:40 -04:00
lz4_compression.h fssystem: rework for yuzu style 2023-08-15 17:47:40 -04:00
make_unique_for_overwrite.h
math_util.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
memory_detect.cpp
memory_detect.h Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
minicoro.h [build, cmake] port to solaris (#96) 2025-07-23 10:00:29 +02:00
multi_level_page_table.cpp
multi_level_page_table.h
multi_level_page_table.inc
overflow.h [common] replace Common::BitCast with libc++ provided one (#2774) 2025-10-22 02:56:28 +02:00
page_table.cpp scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
page_table.h kernel: add KPageTableBase 2023-11-10 12:01:35 -05:00
param_package.cpp
param_package.h
parent_of_member.h
point.h
polyfill_thread.h [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
quaternion.h
range_map.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
range_mutex.h smmu: use new range mutex construction for protecting counters 2024-01-31 16:38:51 +01:00
range_sets.h Common: Rename SplitRangeSet to OverlapRangeSet 2024-02-05 23:01:17 +01:00
range_sets.inc [cmake] enable clang-cl and WoA builds (#348) 2025-09-09 20:47:49 +02:00
ring_buffer.h [cmake] enable clang-cl and WoA builds (#348) 2025-09-09 20:47:49 +02:00
scm_rev.cpp.in [fixup] fix bad variable names (#2642) 2025-10-01 16:36:07 +02:00
scm_rev.h [meta] allow customisation of auto-updater, remove hardcoded title names and fix dup title names (#2588) 2025-10-01 05:07:59 +02:00
scope_exit.h scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
scratch_buffer.h Fix ScratchBuffer moves 2023-07-04 16:02:58 +01:00
settings.cpp [renderer] NG ragebound workaround via LoadOverrides + vk_rasterizer UpdateBlending TouchBlendequations Rework (#2934) 2025-11-13 14:01:32 +01:00
settings.h [renderer] NG ragebound workaround via LoadOverrides + vk_rasterizer UpdateBlending TouchBlendequations Rework (#2934) 2025-11-13 14:01:32 +01:00
settings_common.cpp Fix more typos 2024-01-15 23:26:53 +00:00
settings_common.h Add dynamic state extension configs 2025-04-23 20:57:53 -04:00
settings_enums.h [compat] Solaris build fixes for openssl, catch2; NetBSD build fixes (#2752) 2025-10-17 22:12:58 +02:00
settings_input.cpp core: hid: Split SL and SR buttons 2023-11-11 21:03:15 -06:00
settings_input.h android: Input mapping 2024-02-17 12:32:33 -05:00
settings_setting.h [common] No need to specify min/max for settings; fix crash when OOB value is given for some settings (#2609) 2025-09-29 18:40:29 +02:00
signal_chain.cpp android: Add cpu bakend gui toggle 2023-11-25 00:47:28 -05:00
signal_chain.h Address some review comments 2023-11-25 00:47:35 -05:00
slot_vector.h [compat] Debian stable gcc12/clang14 compilation fixes (#2763) 2025-10-18 01:54:43 +02:00
socket_types.h ssl: Reorder inclusions 2023-07-17 15:46:24 -04:00
spin_lock.cpp
spin_lock.h
stb.cpp cmake: prefer system stb headers 2023-10-25 21:47:32 +02:00
stb.h cmake: prefer system stb headers 2023-10-25 21:47:32 +02:00
steady_clock.cpp
steady_clock.h
stream.cpp
stream.h
string_util.cpp [common, fs] Use std::string_view instead of std::string&; inline functions that are used rarely (#330) 2025-08-27 22:21:04 +02:00
string_util.h [common, fs] include missing header introduced on #330 (#370) 2025-08-31 08:40:46 +02:00
swap.h [common] fix formatting of swapped u32_le/u64_le for BE targets (#2998) 2025-11-13 13:23:46 +01:00
thread.cpp [compat] Windows 8.1 support (#2772) 2025-11-03 21:06:51 +01:00
thread.h [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
thread_queue_list.h
thread_worker.h [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
threadsafe_queue.h [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
time_zone.cpp Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
time_zone.h
tiny_mt.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
tree.h [common] Use U8 for colour of RB-tree instead of integer to save space (#228) 2025-08-15 23:21:15 +02:00
typed_address.h Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
uint128.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
unique_function.h
uuid.cpp Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
uuid.h [desktop, core] yuzu -> Eden, eden -> Eden 2025-07-19 00:12:21 -04:00
vector_math.h [vector_math]: Use NEON intrinsics in Vec4 dot operation (#177) 2025-08-02 01:48:04 +02:00
virtual_buffer.cpp [compat] HaikuOS port (#2805) 2025-10-22 04:53:40 +02:00
virtual_buffer.h
wall_clock.cpp Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
wall_clock.h Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
zstd_compression.cpp
zstd_compression.h