Windows
- added summary Overview section for MSVC
- consolidated Visual Studio settings screens for C++ etc at the beginning (instead of providing them in the CMake GUI steps if they get an error)
- added notes to dependencies, to add them to Windows PATH if they ask for it
- moved the MSVC command line section (from the very bottom of the page under the Clion section), to between "dependency installation" and the "GUI method of building"
- prioritizing MSVC command line over GUI since it's much shorter and easier if all dependencies are installed correctly
- moved/duplicated contents of MSVC "Clone with Git" section into both the "MSVC command line" and "MSVC GUI" sections, so all steps are together for each and not split up
- changed some header sizes for better separation
- added a large separator bar area between MSVC, MinGW and CLion sections, and smaller separator bar areas between the three main sections of MSVC for readability
- added a specific repo-to-use note to the Clion cloning section
- corrected repo urls
Linux/Debian
- added flatpak build section at the top, labeled the existing as native builds
- added qttools5-dev and libva-dev to dependency cut and paste (were needed to compile on Debian)
- corrected repo url
MacOS
- removed redundant to-do items
- corrected repo url
Android
- corrected repo url
Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/65
Co-authored-by: anon <anon@noreply.localhost>
Co-committed-by: anon <anon@noreply.localhost>
If unsafe read is done there can sometimes be corrupt data in the
KeplerCompute::ProcessLaunch qmd structure.
Fixes GPU crashes in 'Princess Peach: Showtime!' when using vulkan
renderer. Requires using "Accuracy Level High" (crashes will still
happen if using "Normal").
Tested on Radeon 6750XT, Linux 6.11.2, Mesa 24.2.5 (RADV driver).
Unsafe read was introduced in 115792158d
"VideoCore: Implement DispatchIndirect"
How did I debug this:
- Used VK_LAYER_KHRONOS_validation which found invalid vkCmdDispatch
(along with a lot of other noise!)
- Instrumented all calls to vulkan Dispatch(), set breakpoint when
grid_dim_x > 1024 (an obviously invalid value). Found dispatch came
from RasterizerVulkan::DispatchCompute().
- Commented out DispatchCompute() entirely, game runs with no crashes
but some graphics effects are missing.
- Keep going one layer up, observe corrupted `launch_description` in
KeplerCompute::ProcessLaunch()
- Attempted safe ReadBlock (`which = VideoCommon::CacheType::All`)
instead of ReadBlockUnsafe in KeplerCompute::ProcessLaunch(), did not
help
- Go one layer up to DmaPusher. Switch to safe_process(). No more
corrupt `launch_description`.
lol, has the emulator been running in a slower debug mode, even in release builds, ever since it was yuzu? This has been there since 4176. I was wondering why *.pdb debugging files still get generated.
Fixes x86_64 builds for Android by stubbing a function that calls into libadrenotools to query GPU driver information. libadrenotools is only available for arm64.
The function should not be called anyways, as the menu that would display the information is disabled on unsupported devices.
To enable x86_64 for building change the line `abiFilters += listOf("arm64-v8a")` in `src/android/app/build.gradle.kts` to `abiFilters += listOf("arm64-v8a", "x86_64")`.
I did not do this by default as it significantly increases the build time (the native part needs to be build once for each architecture) and increases the app size (this is less of a concern as games are already significantly larger).
It might allow usage on Chromebooks (the internet tells me those run on x86_64) and some few Android devices. The main advantage I see is for development of the app itself, as it allows running it in waydroid for local testing.
Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/49
Co-authored-by: echosys <echosys@noreply.localhost>
Co-committed-by: echosys <echosys@noreply.localhost>
Removes the early access Android app variant from the build config and removes the get early access button from the settings tab.
I also tried to remove the code for the variant (different logo + colors) and the code for the button, but I am no Android developer so I might have missed some stuff.
Additionally I did not touch the translation files.
Essentially this gets rid of the now useless fancy button and improves build times as it only needs to build one apk now.
Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/27
Spec's note:
Whatever there's left can still be removed at a later point.
Co-authored-by: echosys <echosys@noreply.localhost>
Co-committed-by: echosys <echosys@noreply.localhost>
Adds a new option "On Load" to the "Optimize SPIRV output" option that turns on optimizations during the loading of the shader cache from disk, but turns it off after that.
The previous checkbox states have been named "Never" for unchecked and "Always" for checked.
The idea is that once the shader cache has most of the shaders in a game cached they can be optimized during initial game startup (where a performance hit matters less) and the few shaders that get compiled during runtime are not optimized to reduce performance hits.
Most of the commit is adding the setting to the Android app, the main logic is in the `gl_shader_cache.cpp` and `vk_pipeline_cache.cpp` files.
Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/13
Co-authored-by: echosys <echosys@noreply.localhost>
Co-committed-by: echosys <echosys@noreply.localhost>
Reverts most of this commit (but not all, some parts are still needed, or were reverted already in later EAs): 39c8ddcda2 or 39c8ddcda2
Above commit to the audio sink was first included in EA-3835, changing the way an audio engine is auto-selected by lowest latency... but still doesn't work very well, often using cubeb when it should use SDL.
A side effect of this was that microstuttering was introduced in a few titles. In Diablo 3, the main player character appears to teleport forward a few steps, every couple of steps. It's a consistent, constant stutter when simply walking forward. Occurs for both SDL and cubeb, with cubeb noticeably worse.
3834 and 3833 didn't have this issue with SDL, and the commit above was the bulk of the changes for 3835. Reverting those changes back to the 3833 version has fixed the stutter (for me at least) in D3 as long as SDL is selected (cubeb still stutters). The only observed negative is the audio engine may need to be manually selected in global settings instead of using auto.
Also seems to have fixed intermittent microstutters in TOTK and RDR. Unaware of other titles this may fix, or possibly create a problem for (though creating issues probably is not likely.)