Commit Graph

7489 Commits

Author SHA1 Message Date
CamilleLaVey b7b90c183f Add checks on texel buffer alignments 2026-09-26 12:43:32 -04:00
CamilleLaVey 1fbb1a0499 Revert QCOM spoof 2026-09-26 12:43:32 -04:00
CamilleLaVey 09371eab60 Remove dead code om VMA 2026-09-26 12:43:32 -04:00
CamilleLaVey 8a8c7f4c06 addresing MHR regression 2026-09-26 12:43:31 -04:00
CamilleLaVey 3a22f908a3 Re-add pitch 2D pass 2026-09-26 12:43:31 -04:00
CamilleLaVey 0dd78bbd07 Re-add unswizzle 3D pass 2026-09-26 12:43:31 -04:00
CamilleLaVey 20d3a4370a Remove the dependency test + remove color texture filter per shasder storage view 2026-09-26 12:43:31 -04:00
CamilleLaVey 1529e30435 quick tests with dependency flags per attachment stage 2026-09-26 12:43:31 -04:00
CamilleLaVey 51d64c298d Some reviews on storage views 2026-09-26 12:43:31 -04:00
CamilleLaVey 3cabafc06a Re-add unswizzle linear 2D to the pass 2026-09-26 12:43:31 -04:00
CamilleLaVey e9436f8094 A test to remove uneeded Finish() 2026-09-26 12:43:31 -04:00
CamilleLaVey 228a400752 Quick change to previous GC adjustment 2026-09-26 12:43:31 -04:00
CamilleLaVey 08741c919a Some changes to GC 2026-09-26 12:43:31 -04:00
CamilleLaVey 17adc28b2c Remove some dead accesors 2026-09-26 12:43:31 -04:00
CamilleLaVey 10528f1ceb Revert some previous changes partially + maintenance5 changes 2026-09-26 12:43:31 -04:00
CamilleLaVey 377478cd46 A quick topology test 2026-09-26 12:43:31 -04:00
CamilleLaVey f92e326e17 Adjustments from the previous change for pipelines 2026-09-26 12:43:30 -04:00
CamilleLaVey b10212fe94 Let's try to change a bit the redundancy 2026-09-26 12:43:30 -04:00
CamilleLaVey 521d3922f5 Fix build 2026-09-26 12:43:30 -04:00
CamilleLaVey 8cdf552c28 Some adjustments to vertex attributes 2026-09-26 12:43:30 -04:00
CamilleLaVey d633c43aae Remove static pipelines 2026-09-26 12:43:30 -04:00
CamilleLaVey 27bcaba75c first intent to pinpoint performance decrease on virtual buffer table + multi-range 2026-09-26 12:43:30 -04:00
CamilleLaVey 64a307c6dc Port some changes from Lizzie's optimization with some exceptions 2026-09-26 12:43:30 -04:00
CamilleLaVey 691b63e79b Quick adjustments on overlapped buffers 2026-09-26 12:43:30 -04:00
CamilleLaVey 86f826c313 Remove astc recompression method 2026-09-26 12:43:30 -04:00
CamilleLaVey 052a04e610 Correcting some bugs on the vulkan async presentation thread 2026-09-26 12:43:30 -04:00
CamilleLaVey bd82351d73 First try to align GOB's 2026-09-26 12:43:30 -04:00
CamilleLaVey a152596f29 Chinga su madre que perramente molesto es este puto juego 2026-09-26 12:43:30 -04:00
CamilleLaVey 40036eb0f8 Remove the thread opt for unswizzle images 2026-09-26 12:43:30 -04:00
CamilleLaVey 0cc76f1f22 First intent to relax the pressure on the gpu thread for unswizzling images 2026-09-26 12:43:30 -04:00
CamilleLaVey b016c88768 Remove the unswizzle path on the extra shaders 2026-09-26 12:43:30 -04:00
CamilleLaVey 6221bd2c43 Reduce accelerated unswizzle path 2026-09-26 12:43:30 -04:00
CamilleLaVey facee08b5e More tests to find out the texture corruption on previous unswizzle changes 2026-09-26 12:43:30 -04:00
CamilleLaVey 43622f463d A test for a corrupted unswizzled textures 2026-09-26 12:43:30 -04:00
CamilleLaVey 9bedcf6202 Keep working on ASTC 2026-09-26 12:43:29 -04:00
CamilleLaVey 66a25a3d79 Some unvalid checks on astc decoder 2026-09-26 12:43:29 -04:00
CamilleLaVey b24c3d7226 Keep refining astc decoding math 2026-09-26 12:43:29 -04:00
CamilleLaVey 26031c0940 Fixes on the astc decoder 2026-09-26 12:43:29 -04:00
CamilleLaVey 930b64858e Fix build 2026-09-26 12:43:29 -04:00
CamilleLaVey b1e512c152 Some cleanups 2026-09-15 21:10:36 -04:00
PavelBARABANOV fa4e7c6992 [vk_texture_cache] drop depth comparison sampler fallback (#4408)
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

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

This fixes the flashlight in Alan Wake.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4408
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-09-16 01:42:37 +02:00
lizzie 2b4184dd2b Revert "[audio] Replace libopus with FFmpeg (#4169)" (#4419)
This reverts commit ff8368c606.

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4419
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-09-14 14:34:24 +02:00
CamilleLaVey 099547b3f4 [android] Add LSFG UI to quick settings (#4393)
Adds UI of LSFG to QS UI, very self-explanatory.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4393
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-09-14 02:53:30 +02:00
lizzie 9b64944480 [video_core/control] Fix SIGBUS due to uninit channel_state (#4406)
Some homebrew don't properly initialize the GPU but seemingly try to use it, this is meant to be benign, yet triggers a SIGBUS due to garbage data being on the pointer after ctor(), so the fix is to make it nullptr on construction.

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

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4406
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-09-14 00:39:07 +02:00
lizzie ff8368c606 [audio] Replace libopus with FFmpeg (#4169)
FFmpeg offers two opus decoders:
- libopus, this one is fed the same data (that affects output) as the previous libopus decoder had as well
- native opus decoder: this only takes Float32 samples, we then need to invoke swrescale to translate between s16 (what switch sends) and float32 (what FFmpeg expects), the process is computationally more expensive, but trades off neatly as the native opus decoder is very optimised

It also relegates the handling to FFmpeg, which simplifies existing code (more concretely, by using the "fill/drain" scheme for packets/frames)

Closes #2897

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4169
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-09-12 09:59:33 +02:00
lizzie c95ad020fb [gpu] Fix infinite hangup/freezes at shutdown/reset (#4395)
Thread may be destroyed at dtor(), but it hasn't fully shut down, so before notify shutdown, request immediate stop (effective immediately).

Like the issue was that the thread didn't want to stop running, thus it would hang, it would also reference objects which were being destroyed without waiting for them to actually be destroyed
So it would reference invalid data
This PR tells the thread: "hey, STOP now, and DESTROY yourself"
So all of that should be avoided

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

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4395
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-09-11 15:29:52 +02:00
CamilleLaVey ed566919f4 [vulkan, android] Add feature of post-processing shaders on Android (#4348)
Very self-explanatory; implementation of the feature for post-processing shaders for Android (at least for now); will allow users to enhance the graphic quality of video games based on the use of multiple shaders adjustable, presets and more, inspired on the PPSSPP implementation, this feature adds 22 customizable shaders (1 pass) that lives on the overlay of the screen, which means that aside of the capability to chain multiple shaders on the screen, this doesn't have depths (pixel/ depth z-buffer) so it ensures the performance with it's use. Few shaders were a faithful port from PPSSPP with their respective attribution on the shader headers for their respective owners; and there are adaptations from public references/ cinematographic (Anime4K) and the rest are my own addition.

_Special Credits:_

1.- PPSSPP Team for their contribution on the public references for shaders: Henrik Rydgard, ShadX, SimoneT, KillaMaaki and guest(r).
2.- Niklas Haas.
3.- bloc97.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4348
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-09-10 15:14:02 +02:00
Exverge 5f142c7926 [common/core/dynarmic] Optimize page table allocations (#4219)
Reduces the page entries from 32 bytes to 8 and rewrites `VirtualBuffer` to be more efficient in memory usage and specifically for large zero regions.

The page table will now only reserve 1GiB instead of 4GiB and of this memory it should only use at most ~8MiB.

This PR has the side effect of using Eden on Windows on low memory systems much more plausible since it would previously require ~10GiB of committable memory at front (despite using ~5-6 at most, inadvertently stalling other processes) where as now it should only require around the amount that it'll actually use.

Co-authored-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4219
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-09-09 21:35:49 +02:00
lizzie 8a10109e24 [vulkan] Masquerade VkInfo as PUBGMobile + UE (#4320)
Signed-off-by: lizzie <lizzie@eden-emu.dev>

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

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

PR I was talking about with @CamilleLaVey , please tell me if this is a stupid idea OR has a chance to work
applicationname is a wild guess

Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4320
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-09-08 21:04:08 +02:00
CamilleLaVey a538cd9aff [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362)
Storage buffers can span GPU pages that aren't contiguous in host memory, but the buffer cache assumed one contiguous buffer per binding, so anything crossing a mapping boundary read the wrong bytes. Multi-range binding resolves the real segments and presents them to the shader as one buffer, aliasing their memory into a sparse VkBuffer or gathering them into a copy, all of this was mostly fixed by making a path to use sparse on buffers (the same way as texture cache has it) and retrieve properly the mapping ranges to the virtual pages, including the actual structure on the use of binding sparse.

Meanwhile this fixes Monster Hunter Sunbreak z-fighting, bad performance and mostly vertex explosions (coming from the contiguous buffer read from the shader's game) it's only the basis for a further investigation towards how are we gonna treat phi calculations, optimized them and mostly eradicate the currently excess of exposure on the textures where the lightning trace should not being reflected.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4362
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-09-08 20:42:20 +02:00