f85d880ac6
acc: Move logging macros over to new fmt-compatible ones
2018-04-24 10:04:22 -04:00
7495142688
Merge pull request #389 from mailwl/fs-renamefile
...
Service/FS: implement IFileSystem::RenameFile
2018-04-24 08:57:46 -04:00
a0179e5ca5
Service/FS: implement IFileSystem::RenameFile
2018-04-24 10:56:05 +03:00
07dc0bbf3e
Merge pull request #379 from Subv/multi_buffers
...
GPU: Support multiple enabled vertex arrays.
2018-04-24 01:09:02 -04:00
0214351f4f
Merge pull request #370 from Subv/sync_primitives
...
Kernel: Reworked the new kernel synchronization primitives.
2018-04-23 16:33:00 -04:00
bf25299272
Merge pull request #384 from Subv/nvhost-remap
...
Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.
2018-04-23 15:23:55 -04:00
d4f87e9af4
Merge pull request #385 from Subv/unimpl_ioctls
...
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
2018-04-23 15:22:49 -04:00
3967f9c6ef
Merge pull request #383 from Subv/gpu_mmu
...
GPU: Make the GPU virtual memory manager use 16 page bits and 10 pagetable bits.
2018-04-23 14:00:52 -04:00
55d0b0609d
Merge pull request #382 from Subv/a2rgb10_rt
...
GPU: Implement the RGB10_A2 RenderTarget format
2018-04-23 13:16:48 -04:00
9531a29283
GPU: Support multiple enabled vertex arrays.
...
The vertex arrays will be copied to the stream buffer one after the other, and the attributes will be set using the ARB_vertex_attrib_binding extension.
yuzu now thus requires OpenGL 4.3 or the ARB_vertex_attrib_binding extension.
2018-04-23 11:34:50 -05:00
46572d027d
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.
2018-04-23 11:23:44 -05:00
0d6eafe11a
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.
2018-04-23 11:21:46 -05:00
e4bd0bddea
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.
2018-04-23 11:21:46 -05:00
e862c50a70
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
2018-04-23 11:13:53 -05:00
f823c1d599
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.
2018-04-23 10:57:12 -05:00
010227e149
GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format as the A2BGR10 texture format.
2018-04-23 10:50:28 -05:00
ebb8e06df0
Merge pull request #378 from Subv/a2bgr10
...
GPU: Implement the A2BGR10 texture format.
2018-04-21 21:43:17 -04:00
c079cf4eec
GPU: Implement the A2BGR10 texture format.
2018-04-21 17:32:25 -05:00
62937798a0
Merge pull request #377 from adityaruplaha/sdl2-fullscreen
...
SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607 )
2018-04-21 13:53:55 -04:00
f48d5e4c4c
SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607 )
2018-04-21 13:24:33 +05:30
f8764bb5d3
Merge pull request #376 from bunnei/shader-decoder
...
Shader opcode decoding
2018-04-21 00:04:51 -04:00
f8a037ead4
Merge pull request #375 from lioncash/header
...
opengl: Remove unnecessary header inclusions
2018-04-20 23:08:47 -04:00
d08fd7e86d
gl_shader_decompiler: Skip RRO instruction.
2018-04-20 22:30:56 -04:00
8b28dc55e6
gl_shader_decompiler: Cleanup error logging.
2018-04-20 22:30:56 -04:00
e1630c4d43
shader_bytecode: Add several more instruction decodings.
2018-04-20 22:30:56 -04:00
9f6d305eab
shader_bytecode: Decode instructions based on bit strings.
2018-04-20 22:30:56 -04:00
8ac3a3f45e
Merge pull request #369 from Subv/shader_instr2
...
ShaderGen: Implemented fsetp/kil and predicated instruction execution.
2018-04-20 22:29:39 -04:00
634d9ee18b
Merge pull request #374 from lioncash/noexcept
...
gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
2018-04-20 22:28:47 -04:00
ba6f3e8f9f
Merge pull request #373 from lioncash/enum2
...
gl_rasterizer_cache: Make MatchFlags an enum class
2018-04-20 22:28:09 -04:00
17a0ef1e1e
ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.
2018-04-20 21:09:34 -05:00
c3a8ea76f1
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.
2018-04-20 21:09:33 -05:00
0a5e01b710
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.
2018-04-20 21:09:33 -05:00
a70ed9c8ae
Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOs
2018-04-20 21:04:35 -05:00
013778aa21
Qt: Update the WaitTree widget to show info about the current mutex of each thread.
2018-04-20 21:04:34 -05:00
be155f4d9d
Kernel: Remove unused ConditionVariable class.
2018-04-20 21:04:33 -05:00
5fdfbfe25a
Kernel: Remove old and unused Mutex code.
2018-04-20 21:04:32 -05:00
b18ccf9399
Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKey
...
They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
2018-04-20 21:04:27 -05:00
e81a2080eb
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.
2018-04-20 21:04:25 -05:00
1723b4d8d4
Merge pull request #372 from lioncash/enum
...
resource_limit: Make ResourceTypes an enum class
2018-04-20 21:26:54 -04:00
2e7ce96b1d
Merge pull request #371 from lioncash/global
...
core: Relocate g_service_manager to the System class
2018-04-20 21:26:27 -04:00
eafdcc1b8a
opengl: Remove unnecessary header inclusions
2018-04-20 20:19:37 -04:00
ab71997b2c
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.
2018-04-20 20:04:00 -04:00
7db0b8d74f
gl_rasterizer_cache: Make MatchFlags an enum class
...
Prevents implicit conversions and scope pollution.
2018-04-20 19:50:05 -04:00
659a612368
core: Relocate g_service_manager to the System class
...
Converts the service manager from a global into an instance-based
variable.
2018-04-20 19:44:32 -04:00
bec05db746
resource_limit: Make ResourceTypes an enum class
...
Prevents enum identifiers from leaking into the surrounding scope.
2018-04-20 19:41:45 -04:00
1df3a7710e
Merge pull request #340 from mailwl/vi-update
...
Service/VI: stub SetLayerVisibility, fix GetDisplayResolution output
2018-04-20 16:23:15 -04:00
d03fc77475
ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).
2018-04-20 14:57:40 -05:00
2e0a9f66a0
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).
2018-04-20 14:57:40 -05:00
326b044c19
Merge pull request #367 from lioncash/clamp
...
math_util: Remove the Clamp() function
2018-04-20 14:18:03 -04:00
87f89ac82d
Merge pull request #361 from lioncash/common
...
common_types: Minor changes
2018-04-20 10:27:17 -04:00