Commit Graph

64 Commits

Author SHA1 Message Date
Billy Laws d3d36c6fa0 Update hades 2023-04-16 16:31:42 +01:00
Billy Laws 5c83dec85f Update shader compiler 2023-04-02 17:35:12 +01:00
Billy Laws 7bfe63f679 Enable adreno/mali LLVM misopt workaround
Fixes animal crossing character issues, see shader compiler commit for details.
2023-04-02 17:35:12 +01:00
Billy Laws 9a51b5f54e Update audio-core 2023-04-02 17:33:57 +01:00
Billy Laws 9555082763 Update audio-core 2023-03-27 22:31:14 +01:00
Billy Laws 653bfba23b Use OpenSL over AAudio
AAudio lacks support for multiple streams on some devices, whereas OpenSL doesn't.
2023-03-27 22:31:14 +01:00
Billy Laws 01febe75c4 Reimplement audout and audren using yuzu audio_core
The yuzu audio_core code is mostly untouched, with a set of wrappers used to bridge it with skyline kernel primitives. Huge thanks to maide and their advice, whom without this wouldn't have been possible.
2023-03-27 22:31:14 +01:00
Billy Laws 6433a1722d Update adrenotools for 8G2 DMI 2023-03-19 13:52:15 +00:00
Billy Laws ffdd50bdf3 Fix geometry and compute shaders on mali GPUs 2023-02-20 18:01:49 +00:00
Billy Laws 754a9dfd77 Avoid storing guest shader hash in generated spirv
This accidentally broke VK spec and could harm driver caching.
2023-02-07 16:50:46 +00:00
Billy Laws 7f1b6de1fe Update hades 2023-02-04 23:10:45 +00:00
Billy Laws bb3baa888d Add a hack to disable shader subgroup shuffles
These are about 100x as expensive on adreno than nvidia due to the lack of a dedicated instruction, since some games work fine without them add a hack to disable them.
2023-02-04 23:10:45 +00:00
Billy Laws 0a608fb4b2 Update to latest hades 2023-01-20 21:07:59 +00:00
Billy Laws 3e5992e366 Update hades 2023-01-08 19:30:52 +00:00
Billy Laws 83ecc33a77 Update adrenotools 2023-01-08 19:30:52 +00:00
Billy Laws f32ab1feff Include BS thread pool library 2022-12-22 18:05:45 +00:00
Billy Laws 8c5e6d2bb4 Update VKMA 2022-12-03 22:50:56 +00:00
Billy Laws d69c6851f3 Update hades 2022-12-03 22:50:56 +00:00
Billy Laws a940d6fd34 Update submodules 2022-11-02 17:46:07 +00:00
Billy Laws a15db9cb06 Update hades submodule 2022-11-02 17:46:07 +00:00
Billy Laws cfc55e60b0 Add robin map submodule 2022-11-02 17:46:07 +00:00
Billy Laws 77a131df60 Support using in-app renderdoc API to capture individual executions 2022-11-02 17:46:07 +00:00
Billy Laws 08f36aac33 Enable hades vertex position input workaround for Adreno
Caused crashes in any games using geometry shaders as by default hades uses the position builtin directly.
2022-08-08 18:09:00 +01:00
lynxnb 2d70be60d1 Remove `PugiXML` submodule
`PugiXML` was only used for parsing the SharedPreferences settings file, not needed anymore.
2022-07-26 20:16:24 +05:30
Billy Laws 55cddc7a66 Update hades 2022-06-02 21:58:30 +01:00
Billy Laws e1c13bbc08 Update hades 2022-05-08 19:37:10 +01:00
lynxnb 69ba4f8abb Swap out boostorg/boost for skyline-emu/boost 2022-04-14 14:14:52 +05:30
PixelyIon 7ce2a903a1 Update LLVM + Oboe
Initially this commit was only intended to update LLVM but due to a compilation error  on latest LLVM libcxx due to the C++ stdlib header `<algorithm>` being a transitive dependency that is no longer transitively included on the latest LLVM libcxx (as of https://reviews.llvm.org/D119667), this required changes in Skyline and Oboe which were done in https://github.com/google/oboe/pull/1521 and the submodule has been updated to include those changes.
2022-04-14 14:14:52 +05:30
Billy Laws c549788377 Update shader compiler 2022-04-14 14:14:52 +05:30
Billy Laws c55e1a135e Update adrenotools 2022-04-14 14:14:52 +05:30
Billy Laws 737ff840a5 Update adrenotools for BTI 2022-04-14 14:14:52 +05:30
Billy Laws 900d00a876 Update tzcode with missed bugfix 2022-04-14 14:14:52 +05:30
Billy Laws 4378658cbc Update BCeNabler to support ---X .text devices 2022-04-14 14:14:52 +05:30
Billy Laws 175ba11f07 Integrate BCeNabler support into QuirkManager
Allows using BCn format textures on devices where they are unsupported by the driver.
2022-04-14 14:14:52 +05:30
Billy Laws 5815cda7a7 Update Vulkan-Hpp to v1.2.202 2022-04-14 14:14:52 +05:30
PixelyIon b97e06f617 Update Vulkan Validation Layer to 1.2.198.0 SDK release 2022-04-14 14:14:52 +05:30
PixelyIon e8d92a6858 Update Shader Compiler
Update to 2c295a067d
2022-04-14 14:14:52 +05:30
PixelyIon ece2785582 Introduce `ShaderManager` with Proxy Shader Compiler Logger/Settings
This class will be entirely responsible for any interop with the shader compiler, it is also responsible for caching and compilation of shaders in itself.
2022-04-14 14:14:52 +05:30
PixelyIon def9cedbee Add yuzu Shader Compiler as a submodule
We plan to use our fork of yuzu's shader compiler for GPU shader compilation so it's been added as a submodule.
2022-04-14 14:14:52 +05:30
PixelyIon 746af4cb4c Add Sirit as a submodule
We require Sirit as it is a dependency for yuzu's shader compiler where it uses it to emit SPIR-V in an easy and efficient manner.
2022-04-14 14:14:52 +05:30
PixelyIon dbc94f36d3 Add Range v3 as a submodule
We want to utilize features from C++ 20 ranges but they haven't been entirely implemented in libc++ so in the meantime we use the reference implementation for it which is Ranges v3.
2022-04-14 14:14:52 +05:30
PixelyIon 4b80e1f91c Use libcxx from LLVM Project submodule
The version of libcxx shipped with Android NDK is fairly outdated and doesn't contain several features we desire such as C++ 20 ranges. This has been fixed by using libcxx directly from the LLVM Project which has been added as a submodule and can be updated independently of NDK.
2021-10-31 16:04:44 +05:30
PixelyIon 82154f3ef6 Upgrade AGP to `7.1.0-beta01` & NDK to `24.0.7856742`
We've moved to using a beta AGP as `7.0.2` is breaks `clangd` and other C++ features on Beta/Canary Android Studio. NDK was additionally updated with `mbedtls` to fix warnings caused by it alongside some other minor fixes to code for newer versions of libcxx.

The new AGP has a bug where it does not look for executables specified in `android_gradle_build.json` in `PATH` that includes `ninja` which is provided by the `ninja-build` package on the system rather than Android SDK's CMake on GitHub Actions (Ubuntu 20.04). This has been fixed by symlinking `/usr/bin/ninja` to the project root which is searched in for the `ninja` executable.
2021-10-31 15:50:15 +05:30
PixelyIon bbf28d1942 Improve Clean Exit + Audio Pausing + Improve System Language Setting
* Clean Exiting was improved by implementing a robust system for when to abandon clean exiting and simply restart the process alongside moving clean exiting to the background when the application is quit by using the back button
* Audio is now automatically paused whenever the application is moved to the background and automatically resumed when it's brought to the foreground
* The system language setting had several errors and inconsistencies which have now been fixed, it's been brought more in line with HOS language (Albeit not entirely due to no region setting in Skyline)
* Fix a bug with `ThreadLocal` where the atomic `list` pointer was uninitialized resulting in a `SEGFAULT` during the destructor
2021-10-26 10:46:36 +05:30
PixelyIon a7548c79a0 Android 12 Support + Update Libraries + Include Khronos Validation Layer
* Fix handling `SA_EXPOSE_TAGBITS` bit being set in Android 12 `sigaction`
* Fix CMake bug using `CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE` when not supported causing `-fuse-ld=gold` to be emitted as a linker flag
* Support using `VIBRATOR_MANAGER_SERVICE` rather than `VIBRATOR_SERVICE` on Android 12
* Optimize Imports for Kotlin code
* Move away from deprecated APIs in Kotlin or explicitly mark where it's not possible
* Update SDK, NDK and libraries
* Enable Gradle Configuration Cache
2021-10-26 10:46:36 +05:30
PixelyIon 8cba1edf6d Introduce Boost as a submodule + Minor Fixes
Utilize Boost Container's `small_vector` for optimizing allocations, fix certain implicit casting issues and make `ILogger` not output an additional newline in the log when the application supplies one at the end of the log
2021-10-05 01:13:22 +05:30
sspacelynx 3de4c3e32e Add Opus submodule 2021-07-19 02:07:12 +05:30
PixelyIon 1ad5ea6867 Move Mbed TLS to submodule + Update Java Libraries
We've moved from using an AAR for Mbed TLS to a submodule as the AAR was packaged manually and used from a local repository which ended up being very hacky and resulted in Linter errors, it could also not be updated with ease as it would need to be repackaged. All of these issues have been solved by moving to a git submodule tied to the official Mbed TLS GitHub repository.
2021-07-12 21:27:49 +05:30
PixelyIon 2e8ce2cbaf Update C++ Libraries 2021-07-12 21:27:49 +05:30
PixelyIon b2132fd7aa Implement Fence Cycle, Memory Manager and Command Scheduler
Implements a wrapper over fences to track a single cycle of activation, implement a Vulkan memory manager that wraps the Vulkan-Memory-Allocator library and a command scheduler for scheduling Vulkan command buffers
2021-07-12 21:27:49 +05:30