0
0
mirror of https://github.com/Ishan09811/pine.git synced 2025-04-29 16:35:12 +00:00

78 Commits

Author SHA1 Message Date
Ishan09811
241a799a33
Update vkma to 3.2.0 (#48) 2025-01-03 17:18:28 +05:30
Ishan09811
55efa7dc96
Implement Android 15 16kib page size support (#40) 2024-12-26 20:30:27 +05:30
Ishan09811
3ff78af28e
Update vulkan headers to 1.4+ (#39) 2024-12-23 14:17:00 +05:30
Ishan09811
101a5c478b
Initial oboe sink support (#32) 2024-10-06 08:02:49 +05:30
Ishan09811
1d0b0ec14d
Update libadrenotools submodule and adapt to API changes (#29)
- Updated the libadrenotools submodule to the latest version.
- Adapted the `adrenotools_open_libvulkan` calls to handle the new function signature.
  - Replaced the `adrenotools_gpu_mapping*` argument with a `void**` for user mapping.
  - Properly cast `userMappingHandle` to `adrenotools_gpu_mapping*` after loading Vulkan driver.
- Updated related code in `LoadVulkanDriver` to handle the new GPU mapping logic for both custom and built-in Vulkan drivers.
- Ensured backward compatibility with the new feature flags and import handling in the updated API.
2024-10-05 17:29:59 +05:30
Ishan09811
1d799d69a8 Update audio-core submodule 2024-07-24 13:32:43 +05:30
Ishan09811
3826e32458 fix 2024-07-24 11:38:27 +05:30
Ishan09811
8398baf359
Implement Jit32 (#9)
* Introduce Jit32 and JitCore32 objects

* Initialize JIT when launching 32bit executables

* Introduce kernel objects for 32bit processes

This commit introduces two new kernel thread types, `KNceThread` and `Jit32Thread`.
`KNceThread`s behave like the previous kernel thread object by setting up thread state and jumping into guest code.
`KJit32Thread`s need to run guest code on a `JitCore32` object, so they perform the necessary state setup and then they also setup the jit core for executing guest code. A loop was introduced because jit execution might return when halted, either for an SVC or for preemption. In those cases the thread needs to wait to be scheduled before executing again.

The process object has also been updated to be able to create 32bit threads when running 32bit processes.

Additionally NCE's ThreadContext has been removed from DeviceState, since a thread is not an NCE thread only anymore, and IPC code has been changed to retrieve the tls region from the thread object.

* Introduce a preemption handler for scheduling with JIT

Scheduler initialization has been delayed until process information is available, as it needs to differentiate between 32bit and 64bit processes.

* Support initializing VMM for 32bit address spaces

* Implement GetThreadContext3 SVC for 32bit processes

* Introduce a thread local pointer to the current guest thread

This also gives easier access to the current guest process structure via the thread structure, just like any kernel does for their internal structures.

* Add a signal handler for JIT threads

* Implement coprocessor 15 accesses

* Implement exclusive memory writes and exclusive monitor

* Enable JIT fastmem

* Enable more JIT optimizations and log exceptions

* Fix incorrect logging call in QueryMemory

* Translate guest virtual addresses on direct accesses from SVCs

* Perform TLS page address translation for direct accesses

This allows the IPC code to work without modifications since `KThread::tlsRegion` now stores a host address that can be accessed directly.

* Add Dynarmic as a submodule

* Revert "Perform TLS page address translation for direct accesses"

This reverts commit 2e25b3f7e4f0687b038fa949648c74e3393da006.

* Revert "Translate guest virtual addresses on direct accesses from SVCs"

This reverts commit 7bec4e0902e6dbb6f06a2efac53a1e2127f44068.

* add an option to change cpu backend

* Fix

---------

Co-authored-by: lynxnb <niccolo.betto@gmail.com>
2024-07-23 23:59:15 +05:30
Ishan09811
527f53fd01 Update audio-core and shader-compiler submodule 2024-07-12 20:55:30 +05:30
Ishan09811
069af0df2b Remove the LLVM submodule
Co-authored-by: nickbeth <nickbeth>
2024-07-04 19:47:16 +05:30
lynxnb
d9f8f74013 libs: Use Strato's shader-compiler fork 2023-09-03 00:50:30 +02:00
lynxnb
a9e576e86d Move Boost submodule to the Strato org 2023-07-04 12:47:14 +02:00
TheASVigilante
05d8a0cea3 Update boost
For whoever set this to ignore, thanks for making me waste 3 hours on this.
2023-05-15 22:57:31 +02:00
TheASVigilante
b26b1b680b Update llvm 2023-05-15 22:57:31 +02:00
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