bunnei
5ff201a288
Merge pull request #370 from Subv/sync_primitives
Kernel: Reworked the new kernel synchronization primitives.
8 years ago
bunnei
ac7b1f4aed
Merge pull request #384 from Subv/nvhost-remap
Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.
8 years ago
bunnei
65d0d7ea69
Merge pull request #385 from Subv/unimpl_ioctls
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
8 years ago
bunnei
dc5549a9b1
Merge pull request #383 from Subv/gpu_mmu
GPU: Make the GPU virtual memory manager use 16 page bits and 10 pagetable bits.
8 years ago
bunnei
7afc8a845b
Merge pull request #382 from Subv/a2rgb10_rt
GPU: Implement the RGB10_A2 RenderTarget format
8 years ago
Subv
329bec6dbd
Kernel: Implemented mutex priority inheritance.
Verified with a hwtest and implemented based on reverse engineering.
Thread A's priority will get bumped to the highest priority among all the threads that are waiting for a mutex that A holds.
Once A releases the mutex and ownership is transferred to B, A's priority will return to normal and B's priority will be bumped.
8 years ago
Subv
e56ef284bb
NvDrv/nvhost-as-gpu: Ensure that the object passed to MapBufferEx has already been allocated.
Also added a consistency check and a comment for the case when the object id is different than its handle. The real nvservices doesn't make a distinction between ids and handles, each object gets an unique handle which doubles as its id.
8 years ago
Subv
c4131e271f
Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.
It takes a previously-reserved (AllocateSpace) GPU memory address and maps it to the address of the nvmap object passed to Remap.
8 years ago
Subv
3c2b29e5c2
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
8 years ago
Subv
fbc480d611
GPU: Make the GPU virtual memory manager use 16 page bits and 10 page table bits.
Also removed some dead code and added memory map consistency asserts.
8 years ago
Subv
fa6edc4412
GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format as the A2BGR10 texture format.
8 years ago
bunnei
82d8bd97e8
Merge pull request #378 from Subv/a2bgr10
GPU: Implement the A2BGR10 texture format.
8 years ago
Subv
abd66a9a33
GPU: Implement the A2BGR10 texture format.
8 years ago
bunnei
0aae96830a
Merge pull request #377 from adityaruplaha/sdl2-fullscreen
SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607 )
8 years ago
adityaruplaha
cd2aeb1046
SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607 )
8 years ago
bunnei
1fe68fa427
Merge pull request #376 from bunnei/shader-decoder
Shader opcode decoding
8 years ago
bunnei
83ea05b814
Merge pull request #375 from lioncash/header
opengl: Remove unnecessary header inclusions
8 years ago
bunnei
ff1700e261
gl_shader_decompiler: Skip RRO instruction.
8 years ago
bunnei
54fbbc6f26
gl_shader_decompiler: Cleanup error logging.
8 years ago
bunnei
f66098bd37
shader_bytecode: Add several more instruction decodings.
8 years ago
bunnei
d2302ee79f
shader_bytecode: Decode instructions based on bit strings.
8 years ago
bunnei
806b2133e4
Merge pull request #369 from Subv/shader_instr2
ShaderGen: Implemented fsetp/kil and predicated instruction execution.
8 years ago
bunnei
b29507b551
Merge pull request #374 from lioncash/noexcept
gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
8 years ago
bunnei
b79cec4040
Merge pull request #373 from lioncash/enum2
gl_rasterizer_cache: Make MatchFlags an enum class
8 years ago
Subv
79e7bb8896
ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.
8 years ago
Subv
2fbb91a6b6
ShaderGen: Implemented predicated instruction execution.
Each predicated instruction will be wrapped in an `if (predicate) { instruction_body; }` in the GLSL, where `predicate` is one of the predicate boolean variables previously set by fsetp.
8 years ago
Subv
31de416fc0
ShaderGen: Implemented the fsetp instruction.
Predicate variables are now added to the generated shader code in the form of 'pX' where X is the predicate id.
These predicate variables are initialized to false on shader startup and are set via the fsetp instructions.
TODO:
* Not all the comparison types are implemented.
* Only the single-predicate version is implemented.
8 years ago
Subv
4be07d1090
Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOs
8 years ago
Subv
106d31e8c3
Qt: Update the WaitTree widget to show info about the current mutex of each thread.
8 years ago
Subv
f5a2b1920b
Kernel: Remove unused ConditionVariable class.
8 years ago
Subv
e499b48f97
Kernel: Remove old and unused Mutex code.
8 years ago
Subv
fcd7cbe65a
Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKey
They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
8 years ago
Subv
4e47dd5b59
Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.
Switch mutexes are no longer kernel objects, they are managed in userland and only use the kernel to handle the contention case.
Mutex addresses store a special flag value (0x40000000) to notify the guest code that there are still some threads waiting for the mutex to be released. This flag is updated when a thread calls ArbitrateUnlock.
TODO:
* Fix svcWaitProcessWideKey
* Fix svcSignalProcessWideKey
* Remove the Mutex class.
8 years ago
bunnei
4a972207d6
Merge pull request #372 from lioncash/enum
resource_limit: Make ResourceTypes an enum class
8 years ago
bunnei
ed5600442d
Merge pull request #371 from lioncash/global
core: Relocate g_service_manager to the System class
8 years ago
Lioncash
c3ade6d56d
opengl: Remove unnecessary header inclusions
8 years ago
Lioncash
3768508edf
gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
Standard library containers may use std::move_if_noexcept to perform
move operations. If a move cannot be performed under these
circumstances, then a copy is attempted. Given we only intend for these
types to be move-only this can be somewhat problematic. By defining
these to be noexcept we prevent cases where copies may be attempted.
8 years ago
Lioncash
f7eb0e8f1b
gl_rasterizer_cache: Make MatchFlags an enum class
Prevents implicit conversions and scope pollution.
8 years ago
Lioncash
4bd499d440
core: Relocate g_service_manager to the System class
Converts the service manager from a global into an instance-based
variable.
8 years ago
Lioncash
5860b9f4ce
resource_limit: Make ResourceTypes an enum class
Prevents enum identifiers from leaking into the surrounding scope.
8 years ago
bunnei
18e541f7e2
Merge pull request #340 from mailwl/vi-update
Service/VI: stub SetLayerVisibility, fix GetDisplayResolution output
8 years ago
Subv
601c5d9d93
ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).
8 years ago
Subv
8b8f55d8be
ShaderGen: Ignore the 'sched' instruction when generating shaders.
The 'sched' instruction has a very convoluted encoding, but fortunately it seems to only appear on a fixed interval (once every 4 instructions).
8 years ago
bunnei
c2adb07b55
Merge pull request #367 from lioncash/clamp
math_util: Remove the Clamp() function
8 years ago
bunnei
c5438e898e
Merge pull request #361 from lioncash/common
common_types: Minor changes
8 years ago
Lioncash
043546e4db
math_util: Remove the Clamp() function
C++17 adds clamp() to the standard library, so we can remove ours in
favor of it.
8 years ago
bunnei
ba33c44e4a
Merge pull request #368 from lioncash/dynarmic
externals: Update dynarmic to HEAD
8 years ago
bunnei
c3236a3a37
Merge pull request #360 from lioncash/namespaces
service: Use nested namespace specifiers where applicable
8 years ago
bunnei
7108f2c331
Merge pull request #364 from lioncash/thread-local
common/thread: Remove unnecessary feature checking for thread_local
8 years ago
bunnei
d7a69c96e4
Merge pull request #362 from lioncash/snprintf
common_funcs: Remove check for VS versions that we don't even support
8 years ago