Commit Graph

7262 Commits

Author SHA1 Message Date
CamilleLaVey 92e9b82f6e [vk, spir-v] Refining the path for Array 1D emulation and R32 Uint handling consistency 2025-11-16 01:48:18 -04:00
CamilleLaVey 21575a7cc2 Fix building/ licensing issues 2025-11-15 23:18:39 -04:00
CamilleLaVey 7d8c5dad97 [vk, texture_cache, pipeline_cache] Refining handling of R32 2025-11-15 23:06:47 -04:00
CamilleLaVey 674f552ff1 [vk, texture_cache] Workaround for games with wrong usage of R32 with float samplers 2025-11-15 19:41:26 -04:00
CamilleLaVey 75d9236520 [vk, pipeline_cache, texture_cache, qcom] Resolving textures and pipeline usage for QCOM 2025-11-15 19:18:00 -04:00
CamilleLaVey 89926bce0b [vk, spir-v] Adding emulation of Array 1D with 2D for Android 2025-11-15 18:54:53 -04:00
CamilleLaVey 6c1fc4b4ed [vk] Handling threading missuse of VkQueue 2025-11-15 18:30:31 -04:00
CamilleLaVey 311f06047b [vk, Maxwell] Refining support for HDR Formats based on Specs 2025-11-15 18:24:14 -04:00
CamilleLaVey 46df717f7c [vk] Degrade HDR Format to LDR 2025-11-15 16:12:44 -04:00
CamilleLaVey dcf9483b0b [vk, qcom] TEST: Adjustment to the MSAA and format resolve with native support 2025-11-15 15:06:43 -04:00
CamilleLaVey 2b828a9fee [vk] Re-adjusted HDR format handling based on physical specifications 2025-11-15 14:44:47 -04:00
CamilleLaVey 6fe1f86984 [vk, qcom] Revert Push Descriptors Threshold due to data corruption 2025-11-15 14:14:37 -04:00
CamilleLaVey af073f13cf [vk, qcom] Including Tile Properties and Store Ops based on QCOM specifications 2025-11-15 03:02:08 -04:00
CamilleLaVey aea945b671 [vk, host shaders, qcom] MSAA Handling by Native QCOM Shader Resolve 2025-11-15 01:47:28 -04:00
lizzie c168755c65 fix license 2025-11-15 03:38:33 +00:00
CamilleLaVey 3db41fbce6 [memory, vk] TEST: Tiled GPU optimization try #1 2025-11-15 03:37:56 +00:00
CamilleLaVey 5e7fb6eead Fix building issues 2025-11-15 03:37:56 +00:00
CamilleLaVey bcc5390943 [texture_cache, gl, vk] Initial implementation for HDR + MSAA detection on QCOM drivers. 2025-11-15 03:37:44 +00:00
PavelBARABANOV 6134a57367 Revert "TEST: Enabling TimelineSemaphores for QCOM and Turnip"
This reverts commit 3cd33fce44.
2025-11-15 03:37:01 +00:00
CamilleLaVey c845b6086f Adding missing headers 2025-11-15 03:37:01 +00:00
CamilleLaVey 8bd87204f5 TEST: Enabling TimelineSemaphores for QCOM and Turnip 2025-11-15 03:36:09 +00:00
lizzie e72a206aee fix 2025-11-15 03:36:08 +00:00
CamilleLaVey 6a62fa7ee3 Implement handling for texture cache flickering 2025-11-15 03:36:01 +00:00
crueter 52b630dfdc build
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-11-15 03:35:37 +00:00
CamilleLaVey 4860050358 attempt to fix building issues 2025-11-15 03:35:37 +00:00
CamilleLaVey 47f0563c1b Giving maintance to driver features and unused extensions 2025-11-15 03:35:35 +00:00
CamilleLaVey b1208f03ee Fix building issues 2025-11-15 03:33:30 +00:00
CamilleLaVey 0fd603c094 [texture_cache, gl, vk] Initial implementation for HDR + MSAA detection on QCOM drivers. 2025-11-15 03:33:30 +00:00
PavelBARABANOV ddd78c3b37 Revert "TEST: Enabling TimelineSemaphores for QCOM and Turnip"
This reverts commit 3cd33fce44.
2025-11-15 03:33:30 +00:00
CamilleLaVey 2e68f8795d Adding missing headers 2025-11-15 03:33:28 +00:00
CamilleLaVey d3595fd2b1 [gl, vk, texture cache] Attempt to get correct MSAA image upload and download 2025-11-15 03:33:28 +00:00
CamilleLaVey b9954de1ca Fixing missing headers 2025-11-15 03:33:28 +00:00
CamilleLaVey 5f88deeebf [gl. vk] Extending impl for atomic floats operations 2025-11-15 03:33:28 +00:00
CamilleLaVey ec274a855e TEST: Enabling TimelineSemaphores for QCOM and Turnip 2025-11-15 03:33:27 +00:00
CamilleLaVey 8133d4a8b4 Improved handling for Custom Border Color buggy impl on ARM/ QCOM and Turnip 2025-11-15 03:33:27 +00:00
lizzie 4f3e4bf9cb fix 2025-11-15 03:33:27 +00:00
CamilleLaVey ec9e0f37ea Implement handling for texture cache flickering 2025-11-15 03:33:27 +00:00
crueter b5f7735dba build
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-11-15 03:33:27 +00:00
CamilleLaVey 5f501d6ec0 attempt to fix building issues 2025-11-15 03:33:27 +00:00
CamilleLaVey e820f304a5 Giving maintance to driver features and unused extensions 2025-11-15 03:33:26 +00:00
Shinmegumi 3f226678dd
[vk] Fix fallback viewport/scissor origin handling (#294)
When viewport_scale_offset_enabled is disabled, the fallback path
previously assumed a top-left origin for both viewport and scissor.
This caused incorrect positioning or inverted geometry when the GPU
state expected a lower-left origin.

This change:
- Adjusts viewport setup: if window_origin is lower-left, shift Y and
  flip height negative to emulate lower-left in Vulkan’s top-left space.
- Updates scissor setup: recalculates Y for lower-left origin and
  ensures width/height fall back to 1 if zero, avoiding invalid extents.

This aligns Vulkan’s viewport/scissor behavior with Maxwell state,
fixing rendering issues in paths without scale/offset enabled.

Co-authored-by: MaranBr <maranbr@outlook.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/294
Co-authored-by: Shinmegumi <shinmegumi@eden-emu.dev>
Co-committed-by: Shinmegumi <shinmegumi@eden-emu.dev>
2025-11-14 15:13:29 +01:00
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
MaranBr d89df63a28
[video_core] Clean up the code and fix some inconsistences (#3015)
This cleans up the code and fixes some inconsistencies in the EDS settings.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3015
Co-authored-by: MaranBr <maranbr@outlook.com>
Co-committed-by: MaranBr <maranbr@outlook.com>
2025-11-13 03:04:00 +01:00
crueter 7ca657d22f
[cmake] allow static MinGW/macOS builds; fix clangarm64 (#2994)
Requires qt6-static, obviously... at least for eden. eden-cli also can
be built fully static
Notable challenges n such:
1. VkMemAlloc conflicts with Qt, since it embeds vk_mem_alloc.h in
   qrhivulkan; we can get around this by conditionally defining
   VMA_IMPLEMENTATION; that is, define it in the SDL2 frontend and undef
   it in the Qt frontend. It's not ideal, but I mean... it works, no?
2. find_library, pkgconfig, and some Config modules will always look for
   a .dll, so we have to tell CMake to look for .a
3. In spite of this, some will end up using .dll.a (implib) as their
   link targets; this is, well, bad, so we create a find_library hook
   that rejects dll.a
4. Some libraries have specific configs (boost lol)
5. Some libraries use _static targets (zstd, mbedtls)
6. Some extra libraries need to be linked, i.e. jbig, lzma, etc
7. QuaZip is sad

Needs testing on all platforms, and for both frontends on desktop, to
ensure Vulkan still works as expected.

(also: CI). Resulting executables are:
- 71MB for eden.exe
- 39MB for eden-cli.exe

Considering the entire libicudt is included (thanks Qt), that's a great size all things considered. No need to bundle all those plugins and translation files too.

Theoretically, this lays the groundwork towards fully static executables for other platforms too; though Linux doesn't have a huge benefit since AppImages are needed regardless. eden-room though maybe?

Fixes comp for clangarm64 because -msse4.1

Also allows macOS to build with qt6-static. macOS can't build static executables, but with these changes it ONLY relies on system libraries like libc and frameworks. So in theory we don't even need macdeployqt.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2994
2025-11-11 06:22:33 +01:00
MaranBr 7764cdd57e
[am] Improve some error messages (#2996)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2996
Co-authored-by: MaranBr <maranbr@outlook.com>
Co-committed-by: MaranBr <maranbr@outlook.com>
2025-11-10 23:32:50 +01:00
lizzie 45a2008aa6
[common] replace Common::(DerivedFrom, IsArithmetic, Size, ConvertibleTo, IsIntegral) with libstdc++ equivalents (#290)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/290
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-11-07 17:03:01 +01:00
lizzie 8f6e0aa2cb
[tools, hle/kernel] generate condensed version of svc.cpp; move svc_generator.py and generate_converters.py to tools (#2791)
Eventually we'd want cmake to do the build for us (as a build step) instead of having git be polluted with commits to update the autogenerated file...

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2791
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-11-07 17:00:53 +01:00
lizzie ca0bc65531
[cmake] fix compilation for Intel Atom N455 (#2872)
Patience is key when building from source on an Intel Atom N455.

Of course, no SSE4.1 is in an atom... which is so unfortunate :(
We only get SSSE3 - but CI handles for building better codegen doesn't it?

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2872
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-11-07 16:58:41 +01:00
Caio Oliveira 159482a7a9
Revert "[vk] Clean up Extended Dynamic State code" (#2970)
* this PR need more work (as it break Eden on Windows+AMD)

Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com>

---

Revert "[vk] Add back VIDS but disable on EDS0 (#2957)"

This reverts commit 1c4dae066b.

Revert "[vk] disable VK_EXT_vertex_input_dynamic_state again (#2954)"

This reverts commit 9406438d51.

Revert "[vk] Clean up Extended Dynamic State code (#2947)"

This reverts commit 612da00d1b.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2970
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-committed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
2025-11-07 14:01:28 +01:00
MaranBr 569dbfe8c0
[video_core] Increase MAX_MIP_LEVELS to 16 according to specs (#2965)
This increases MAX_MIP_LEVELS from 14 to 16, according to specs.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2965
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Co-authored-by: MaranBr <maranbr@outlook.com>
Co-committed-by: MaranBr <maranbr@outlook.com>
2025-11-07 01:42:52 +01:00