Tree:
8fd974ce3f
2ndAdjustmentVulkan
2ndAdjustmentVulkanV3-STOP_FORCE_PUSHING_CAMILLE
2ndAdjustmentVulkanv2
2ndgpuopts
John-android-rescale-toggle
Kernel
TTYD
Update-some-barriers-test
astc_optimization1
astc_optimizations
atomicops-mxwell
bcn-ternary-soft
bioshock
buffer_cache
bump-httplib-minver
civa
crueter-patch-1
crueter-patch-2
crueter-patch-3
crueter-patch-4
descriptor
descriptor_pool_opt
descriptor_set
detectplatform
discfix
dmnt2
drop-msvc
dynarmic
dynarmic-ppc64
eden-managarm
eden-orbis-ps4
eden-wasm
eds-true-adreno-fixes
eds-true-adreno-fixes-pre-0.1.0
eds_changes1
eds_changes_phasewise
ext-boost
feat/android_kotlin_compose
feat/game_override
feat/qlaunch-ovl-fixes
fix-cpmutil-win
fix-friend-list-freeze
fix-grid-autoalign
fix-update-android
fix-update-deps-ci
fix/discord-rpc
flatopsfixes23485
fs-try
gpuopts
kosmic_krisp
kosmickrisp
lanobu
lines
liz-dynarmic-macos-fbsd-port
liz-heaptrack-fix
lizize/fixcrashwehenimagesizeexceed
lizzie/1st-anniversary-icon
lizzie/anv-cached-mesa-hack
lizzie/areafixnvidia
lizzie/astc-mp4-improv
lizzie/aurfixixifxixfi
lizzie/brunofix7546847
lizzie/bump-18-version-cache
lizzie/bundle-v53
lizzie/bundleevil123
lizzie/cpudetect1234
lizzie/demote-reset-signal-to-trace
lizzie/dynarmic-coalesce-rw
lizzie/dynarmic-exclusive-fixups
lizzie/dynarmic-terminal-leafs
lizzie/edit-handheld-mode
lizzie/emutls-nuke
lizzie/evil-f32-u32-format-fix
lizzie/evil-meow-meow
lizzie/fbsd-shm_create_largepage
lizzie/ffmpeg-d1d873c003
lizzie/ffmpeg-fix-externel
lizzie/fix-aur-build-again
lizzie/fix-nvmap-handles
lizzie/fix-nvmap-handles-but-evil
lizzie/fixandroid7435683485
lizzie/force-flush-in-nce-invalidate
lizzie/forceattachements-at-all-times
lizzie/gamemetadatacorrupt
lizzie/gidofix7545
lizzie/gigdigdi75
lizzie/gutter-sw-blitter
lizzie/hbloader-fix
lizzie/inline-123
lizzie/inline-audio-structure-parent-refs
lizzie/inlinecodecnvenc
lizzie/invert-gyro
lizzie/ios-port-sud
lizzie/jit-addresschecks
lizzie/macos-network-ifaces
lizzie/macos-vk-metal-fix-stype
lizzie/mediatek-stuff-for-fun
lizzie/mlp223
lizzie/msvcfix1234
lizzie/multicore-macos-fix1
lizzie/nce-invalidate-split
lizzie/nce-port1123
lizzie/netbsdgcc14-fix
lizzie/noexcept-dynarmic
lizzie/nuke-opus-wawaw
lizzie/openssl-external-builds
lizzie/patch-manager-implemente-sdsd
lizzie/pkza-mwait
lizzie/powerunswizzle
lizzie/product-model-wawa
lizzie/qtcrashwhensgssersrtsr
lizzie/readonly-listicons
lizzie/refactor-networking-12
lizzie/remove-disassembler-dynarmic
lizzie/remove-mlp-2-level
lizzie/restore-fcsm
lizzie/revert-buffer-cache-2nd-time
lizzie/rework-ips
lizzie/rework-sdl3-cs
lizzie/settings-blocked-domains
lizzie/simplify-invalid-acc
lizzie/spirvheaderstoolsnuke
lizzie/splay
lizzie/ssaa-what-the-fuck
lizzie/stable-shader-pools
lizzie/stuff-for-fun-but-evil
lizzie/swkbd-mhu
lizzie/thread-names-log
lizzie/tomo-toggle
lizzie/tryfixrandomvkshit
lizzie/ulaunch-attempt1
lizzie/unaligned-attempt-2
lizzie/unity-build
lizzie/update-deps75487
lizzie/update-faq-link-wwa
lizzie/vex-encode-vmovd
lizzie/vk-VkSamplerBorderColorComponentMappingCreateInfoEXT
lizzie/vk-ext-fault-info
lizzie/vkexperiments1-highp-fucked
lizzie/vkweep12
lizzie/werorr-option-cmake
lizzie/wstring-uni-123
lizzie/xbyak-force-bundled
lizzie/xcode-evil-shit-123
lizzie/zlib-ng
lsfg-android
macroify-surface-stuffs
many/fix-tomodachi
master
memory_changes
mmap-fixews
mutliplayer-filter-better1
n64
nce_cpp
no-profanity
pipelinederivative
pr-template-v2
qcomopts2
queries
querybugfix
refactoreds2
release-early-fences
release/0.0.3
release/0.0.4
release/0.1.0
release/0.2.0
restore-metal-surface
revert-2695
revert-3aa0d462598beb2021308eee1d757d74fe33b312
showcase
showcase2
sjkdbsdfjkbsdf-2834
spvopts
sured-revert
temporary-branch
test-revert-gpu-optim
test2
tex_opt
tiled-gpu
tiled-gpu-v2
true-eds
true-eds-graphics
true-eds-pre-0.0.1
uma
update-deps-1780370490
update-deps-1780370770
update-deps-1781956847
update-deps-1782561694
update-deps-1783166490
update-translations-1777730513
update-translations-1779199346
update-translations-1779804173
update-translations-1782568916
update-translations-1782828125
update-translations-1783173710
update-translations-1784383309
update-translations-1784642524
update-translations-1785247326
update-translations-1785592875
vk-experiments1
vk-experiments2
vk-experiments3
vk-experiments4
vk-experiments5
vk-experiments7
vk-experiments8
vk-experiments9
vk-fix-oom-force-maller-buffers
vk-symph
vkexperiments1
vuid00336_1
vuid02999
vuid04553
vulkanasync
wildcard-amd
workgroup
xbzk-dma-pusher-step-redesign
xbzk-saf-recursive-write-with-permission-request
xbzk/background-support
xbzk/disable-sdl-guide-hack-setting
xbzk/fix-ci-package-cache-key
xbzk/flicker-fix
xbzk/frame-skipping+interpolation-experiments
xbzk/hb-tico-support-part-2
xbzk/reloadinputdevices-isrunning-m_mutex-guard
xbzk/samsung-dex-fullscreen-fix
xbzk/unreal-unsafe-junk-guards
xbzk/vulkan-vuid-goodies-pack
0.0.0
0.0.1-pre-alpha
0.0.2-pre-alpha
test-tag1
test-tag2
v0.0.3
v0.0.3-rc1
v0.0.3-rc2
v0.0.3-rc3
v0.0.3.git
v0.0.4
v0.0.4-rc1
v0.0.4-rc2
v0.0.4-rc2.test
v0.0.4-rc2.test2
v0.0.4-rc3
v0.0.4-rc3.test1
v0.0.4-rc3.test2
v0.0.4.test
v0.1.0
v0.1.0-rc1
v0.1.1
v0.2.0
v0.2.0-rc1
v0.2.0-rc2
v0.2.1
${ noResults }
14 Commits (8fd974ce3fc303b1e1a8eb896ab7f0e3c734c5fe)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
8fd974ce3f |
[video_core] Avoid stale macro upload references
|
15 hours ago |
|
|
8ab9521cea |
[video_core] Restrict macro JIT zero-register skips
Only apply the zero-register ALU skip when the operation is safe to elide without changing carry/result semantics. This avoids invalid-instruction floods seen with Macro JIT enabled while keeping the optimization for operations where a zero source is harmless. |
5 days ago |
|
|
54046ac60e
|
[video_core/macro] check HLE hashes before compiling (#4236)
- [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. ------------------- Known HLE macros are identified by a hash, but MacroEngine compiled them first and and afterwards it threw the compiled program away when the hash matched. This fix makes it so it checks the hash first and caches the HLE implementation directly, so it only compiles when the hash is unknown or if HLE is disabled. Cached macros were also constantly checking the hash again and walking through each `std::get_if` until their variant matched. So I dispatched them through `std::visit` instead, and keep one resolved code span for hashing, compiling, and dumping so mid-method uploads use the right range. Continues the macro hot path work from [#4067](https://git.eden-emu.dev/eden-emu/eden/pulls/4067) Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4236 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> Reviewed-by: Lizzie <lizzie@eden-emu.dev> |
3 days ago |
|
|
58dee53305
|
[fmt] use {#:x} instead of 0x{:#x} (#4170)
continuation of #309 but applying to even more files than before :) also makes them lowercase because `0xfafafa` is better as `0XFAFAFA` Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4170 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Maufeat <sahyno1996@gmail.com> |
1 week ago |
|
|
09b6b3b71e
|
xbzk/gpu-logging_qt-controls_android-fix (#4018)
5af7771f83-Bugfix: Made gpu_log_level global-only (was per-game switchable). Fixed Android non-determinism where a per-game profile silently overrode the global to Off and trapped GPULogger::Initialize() in a dead state, making shader dumps fail invisibly. Android per-game UI now hides the whole GPU logging block; Qt UI is untouched (global-only anyway). bf4aabe8ab-Refactor/Cleanup: Removed gpu_logging_enabled master toggle as redundant with gpu_log_level == Off. Introduced GPU::Logging::IsActive() helper, replaced 14 call sites across vk_*.cpp. Refactored LogShaderCompilation() to be text-only and extracted SPIR-V dumping into a standalone GPU::Logging::DumpSpirvShader() free function. No singleton dependency, gated only by gpu_log_shader_dumps. Now gpu_log_level and gpu_log_shader_dumps are fully orthogonal. Cleaned up Android (BooleanSetting, SettingsItem, presenter, 7 locale string files). 865a1c5027-Refactor: Renamed dump_shaders → dump_guest_shaders to disambiguate from gpu_log_shader_dumps. Updated Qt label to "Dump Guest (Maxwell) Shaders" and rewrote the tooltip to mention .ash, the DumpDir/shaders/ location, and nvdisasm. 7cab456fdf-Feature: Added Qt UI control for GPU log level in the Logging session. Added gpu_log_shader_dumps checkbox to the Graphics column right below dump_guest_shaders. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4018 Reviewed-by: MaranBr <maranbr@eden-emu.dev> |
1 month ago |
|
|
629ebf1bde
|
[video_core/maxwell3d] compute macro param address on demand (#4067)
GetMacroAddress only reads a couple of indices per macro, but ProcessMacro was then building a full std::vector GPUVAddr> with one push_back per parameter word every submission. macro_segments already holds base, count per chunk, so GetMacroAddress can just walk it instead, drops the per-word loop, a .clear(), and a vector member. Also makes it so it returns on the first match in the macro dispatch instead of running every std::get_if check. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4067 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> |
1 month ago |
|
|
3aa0d46259
|
[video_core, hle] remove redundant parent references in system structs (#3908)
reworked a bit to remove references of parent objects and instead pass as arguments to methods to prevent useless reloads Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3908 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> |
1 month ago |
|
|
c8c61a12c3
|
[dynarmic, MacroHLE] Fix crashes on W^X systems (#4090)
should fix crashes on: - NetBSD - SELinux - OpenBSD - other W^X systems - some person trying to be funny with W^X on their system even if they dont have to perf impact should be minimal Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4090 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com> |
2 months ago |
|
|
2f0f8a979c
|
[dynarmic, macroHLE] Use faster ankerl for xbyak maps (#3716)
the nominal std::unordered_map<> isn't enough to warrant it's continued usage in xbyak internal structures, thus using ankerl should greatly remove a lot of indirection/stdc++ specific overhead from the usually poorly performant std::unordered_map Both dynarmic and macroHLE should benefit greatly from a less-stupid unordered_dense This should speedup both CPU and shader compilation latency (NOT BY A GREAT MARGIN) just enough to make loading zones in ToTK less horrific Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3716 Reviewed-by: crueter <crueter@eden-emu.dev> |
3 months ago |
|
|
77decca678
|
[video_core/engines/maxwell3d] memory inline DrawState to reduce indirection on hot paths (#3758)
usual indirection removal helps very slightly to codegen the idea is basically to reduce the amount of pointer deference overall in the code, and use idiomatic std::variant<>-isms to not rely on vtables/unique_ptr overhead this should allow the compiler to emit better code of course it's a tiny optimisation and only CPU side, but allows us to reduce indirection which is almost always a good thing "but youre passing more parameters to the function!!!" its literally memoized into a register my friend Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3758 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> |
3 months ago |
|
|
b3cc8723c1
|
[vulkan] 2nd Vulkan Global Maintenance (#3853)
This pr is a sequel to the one merged some days ago (#3839); which aims to improve stability, graphical accuracy and better Vulkan implementation and coherency among all platforms, contains the next changes: -> Removal of VK_EXT_unified_image_layouts: The removal of this ext was for cleaning purposes since the only part of this extension implemented was the activator; meanwhile a proper structure of use for this extension was not implemented, currently it's not viable to keep following an idea of a proper implementation due to complexity of this feature and the state of buffer cache and texture cache, which it's task that we must do near in the future, when this happens a better oportunity will arise to properly set layouts along a proper implementation of VK_EXT_descriptors_indexing, practically this feature was dead code. -> Adjustment of VK_EXT_custom_border_color: The implementation of this feature was handled poorly and worsened during the first tries of making ExtendedDynamicState stable, by gating it's use to the slider of EDS (dyna_state) if the counter was at least in 1, even tho this entered in a bug with the RemoveUnsuitableExtension, when is not a requirement for enabling in Vulkan's documentation and was my mistake, some time later in ExtendedDynamicState refactor (#3074) I tried to make the implementation more robust in comparison the Yuzu's implementation which had bans on vendor drivers, the new handling was requesting if extension was available and what kind of support feature it had, enabling what it was available and wiring an adequate path for said available feature; which leads us to today's change, after reading carefully how certain paths weren't triggered or caused mostly issues on how extension should work I did the next changes: - I removed the forced disabling with ExtendedDynamicState setting - Resolved the bug with RemoveUnsuitableExtension + dyna_state - Removed comments of explanation + log_debug warning - Set extension to be disabled if customBorderColorWithoutFormat is not available - Helps to solidify the removal of bans in vendor drivers This changes fixes the VUID 04015 for the handling with undefined format and made the usage of the extension more near to what Vulkan specification expects, yet there is still cases where we can't emulate properly samplers and some translucid black boxes will still appear, yet, now alleviated by allowing extension choose the proper custom available in Vulkan or degrade into a fallaback of solid colors. -> Adjustment of VK_EXT/KHR_robustness2: This feature was introduced in ExtendedDynamicState refactor (#3074), as safety measure for descriptors during the Write of buffers, providing robustness with an upgraded access to image, buffers and proper discard of null data in descriptors, however, despite the configuration the logs during debug sessions never stopped to bring the next VUID-VkWriteDescriptorSet-descriptorType-00324 and VUID-VkWriteDescriptorSet-descriptorType-00325, being the first one, the most constant issue plaguing logs; the approach was not only ensuring device can access between each of the version of this feature, whether is an EXT or KHR (drivers can report one of them or both, yet, if we call the one of them and it's not the version supported, driver would not load the feature, there's a priority to the KHR version) with a simplified configuration of the extension to use only nullDescritor to deflect properly buffers and other trash data outside of descriptors bound; ensuring to wire the path when it's and not available and also with BindVertexBuffers2EXT when it's or not available; fixing both VUID's. This changes helps to save some CPU resources and memory on binding routes. - Fixes VUID-VkWriteDescriptorSet-descriptorType-00324 - Fixes VUID-VkWriteDescriptorSet-descriptorType-00325 - Fixes VUID-vkCmdBindVertexBuffers-pBuffers-00621 (alongisde a latter adjustment for pStrides) -> Adjustment VK_EXT_image_robustness: As other features, this was implemented during the ExtendedDynamicState refactor (#3074), currently this change it's just to ensure more drivers are accessing this feature by changing the modality from extension to an explicit feature, some other redundant code was cleaned within this change. -> Restored gating flush operation on removed gpu accuracy: An issue report from an user called CaptFaraday in https://github.com/eden-emulator/Issue-Reports/issues/425, posted a behavior appearing after the rework of gpu accuracy levels (#3129), which broke the rendering in Paper Mario - The-Thousand-Year Door where some graphical issues such as black flash and missing rendering from many animations through the game thanks to the removal of the flush inside FlushAndInvalidateRegion gated with IsGPULevelExtreme and suggested a possible fix with resting the missing gating and flush; which I did and properly restoring the complete behavior of this functionality + wiring to the new IsGPULevelHigh for a better semantic correctness, the change was tested and didn't affected Yoshi's Crafted World graphical problems and main reason behind the deletion of this function, fixed in |
3 months ago |
|
|
395613b01f
|
[common/logging] Simplify logging logic and fix issues when logging before system is created (#3688)
- our logging code was bigger than spdlog itself, why???? just keep it simple - fix issues when logging before logging system is even started - removes the "initialized logging twice" issue - removes uneeded indirection in file logging - uses direct formatting instead of jumping hoopla-around the fmt::format() ressult - code duplication and dead code removal as usual I did explore dup2() but I think it's not worth the hassle I did try `fwopen()` but it's better if things are just kept as-is. there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev> |
5 months ago |
|
|
c70b857c4f
|
[video_core/engines] Macro HLE inline (#3653)
Should slightly boost perf on android, Desktop is mainly unaffected (for now) Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3653 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: DraVee <chimera@dravee.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev> |
5 months ago |
|
|
83a28dc251
|
[common, core] remove uneeded memory indirection overhead at startup (#3306)
for core stuff: just remove unique ptrs that dont need any pointer stability at all (afterall its an allocation within an allocation so yeah) for fibers: Main reasoning behind this is because virtualBuffer<> is stupidly fucking expensive and it also clutters my fstat view ALSO mmap is a syscall, syscalls are bad for performance or whatever ALSO std::vector<> is better suited for handling this kind of "fixed size thing where its like big but not THAT big" (512 KiB isn't going to kill your memory usage for each fiber...) for core.cpp stuff - inlines stuff into std::optional<> as opposed to std::unique_ptr<> (because yknow, we are making the Impl from an unique_ptr, allocating within an allocation is unnecessary) - reorganizes the structures a bit so padding doesnt screw us up (it's not perfect but eh saves a measly 44 bytes) - removes unused/dead code - uses std::vector<> instead of std::deque<> no perf impact expected, maybe some initialisation boost but very minimal impact nonethless lto gets rid of most calls anyways - the heavy issue is with shared_ptr and the cache coherency from the atomics... but i clumped them together because well, they kinda do not suffer from cache coherency - hopefully not a mistake this balloons the size of Impl to about 1.67 MB - which is fine because we throw it in the stack anyways REST OF INTERFACES: most of them ballooned in size as well, but overhead is ok since its an allocation within an alloc, no stack is used (when it comes to storing these i mean) Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3306 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev> |
7 months ago |