skyline/app
Billy Laws baefb0fe93 Implement the Host1x command FIFO together with barebones Host1x classes
The Host1x block of the TX1 supports 14 separate channels to which commands can be issued, these all run asynchronously so are emulated the same way as GPU channels with one FIFO emulation thread each. The command FIFO itself is very similar to the GPFIFO found in the GPU however there are some differences, mainly the introduction of classes (similar to engines) and the Mask opcode (which allows writing to a specific set of offsets much more efficiently).

There is an internal Host1x class which functions similar to the GPFIFO class in the GPU, handling general operations such as syncpoint waits, this is accessed via the simple method interface. Other channels such as NVDEC and VIC are behind the 'Tegra Host Interface' (THI) in HW, this abstracts out the classes internal details and provides a uniform method interface ontop of the Host1x method one. We emulate the THI as a templated wrapper for the underlying class.

Syncpoint increments in Host1x are different to GPU, the THI allows submitting increment requests that will be queued up and only be applied after a specific condition in the associated engine is met; however the option to for immediate increments is also available.
2021-11-10 21:35:36 +05:30
..
libraries Use libcxx from LLVM Project submodule 2021-10-31 16:04:44 +05:30
src/main Implement the Host1x command FIFO together with barebones Host1x classes 2021-11-10 21:35:36 +05:30
.gitignore libNX FS Initalization (v0.3) 2019-10-18 16:22:38 +05:30
build.gradle Upgrade AGP to 7.1.0-beta01 & NDK to 24.0.7856742 2021-10-31 15:50:15 +05:30
CMakeLists.txt Implement the Host1x command FIFO together with barebones Host1x classes 2021-11-10 21:35:36 +05:30
proguard-rules.pro Keep member names in pro guard 2020-11-12 22:19:55 +05:30