summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-24renderer_opengl: Silence a -Wdangling-else warning in DrawScreenTriangles()Lioncash
2018-04-24Merge pull request #389 from mailwl/fs-renamefilebunnei
Service/FS: implement IFileSystem::RenameFile
2018-04-24Service/FS: implement IFileSystem::RenameFilemailwl
2018-04-24Merge pull request #379 from Subv/multi_buffersbunnei
GPU: Support multiple enabled vertex arrays.
2018-04-23Merge pull request #370 from Subv/sync_primitivesbunnei
Kernel: Reworked the new kernel synchronization primitives.
2018-04-23Merge pull request #384 from Subv/nvhost-remapbunnei
Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.
2018-04-23Merge pull request #385 from Subv/unimpl_ioctlsbunnei
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
2018-04-23Merge pull request #383 from Subv/gpu_mmubunnei
GPU: Make the GPU virtual memory manager use 16 page bits and 10 pagetable bits.
2018-04-23Merge pull request #382 from Subv/a2rgb10_rtbunnei
GPU: Implement the RGB10_A2 RenderTarget format
2018-04-23GPU: Support multiple enabled vertex arrays.Subv
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-23Kernel: Implemented mutex priority inheritance.Subv
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-23NvDrv/nvhost-as-gpu: Ensure that the object passed to MapBufferEx has ↵Subv
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-23Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.Subv
It takes a previously-reserved (AllocateSpace) GPU memory address and maps it to the address of the nvmap object passed to Remap.
2018-04-23Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.Subv
2018-04-23GPU: Make the GPU virtual memory manager use 16 page bits and 10 page table ↵Subv
bits. Also removed some dead code and added memory map consistency asserts.
2018-04-23GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format ↵Subv
as the A2BGR10 texture format.
2018-04-21Merge pull request #378 from Subv/a2bgr10bunnei
GPU: Implement the A2BGR10 texture format.
2018-04-21GPU: Implement the A2BGR10 texture format.Subv
2018-04-21Merge pull request #377 from adityaruplaha/sdl2-fullscreenbunnei
SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607)
2018-04-21SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607)adityaruplaha
2018-04-21Merge pull request #376 from bunnei/shader-decoderbunnei
Shader opcode decoding
2018-04-20Merge pull request #375 from lioncash/headerbunnei
opengl: Remove unnecessary header inclusions
2018-04-20gl_shader_decompiler: Skip RRO instruction.bunnei
2018-04-20gl_shader_decompiler: Cleanup error logging.bunnei
2018-04-20shader_bytecode: Add several more instruction decodings.bunnei
2018-04-20shader_bytecode: Decode instructions based on bit strings.bunnei
2018-04-20Merge pull request #369 from Subv/shader_instr2bunnei
ShaderGen: Implemented fsetp/kil and predicated instruction execution.
2018-04-20Merge pull request #374 from lioncash/noexceptbunnei
gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
2018-04-20Merge pull request #373 from lioncash/enum2bunnei
gl_rasterizer_cache: Make MatchFlags an enum class
2018-04-20ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.Subv
2018-04-20ShaderGen: Implemented predicated instruction execution.Subv
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-20ShaderGen: Implemented the fsetp instruction.Subv
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-20Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOsSubv
2018-04-20Qt: Update the WaitTree widget to show info about the current mutex of each ↵Subv
thread.
2018-04-20Kernel: Remove unused ConditionVariable class.Subv
2018-04-20Kernel: Remove old and unused Mutex code.Subv
2018-04-20Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKeySubv
They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
2018-04-20Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.Subv
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-20Merge pull request #372 from lioncash/enumbunnei
resource_limit: Make ResourceTypes an enum class
2018-04-20Merge pull request #371 from lioncash/globalbunnei
core: Relocate g_service_manager to the System class
2018-04-20opengl: Remove unnecessary header inclusionsLioncash
2018-04-20gl_resource_manager: Add missing noexcept specifiers to move constructors ↵Lioncash
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-20gl_rasterizer_cache: Make MatchFlags an enum classLioncash
Prevents implicit conversions and scope pollution.
2018-04-20core: Relocate g_service_manager to the System classLioncash
Converts the service manager from a global into an instance-based variable.
2018-04-20resource_limit: Make ResourceTypes an enum classLioncash
Prevents enum identifiers from leaking into the surrounding scope.
2018-04-20Merge pull request #340 from mailwl/vi-updatebunnei
Service/VI: stub SetLayerVisibility, fix GetDisplayResolution output
2018-04-20ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).Subv
2018-04-20ShaderGen: Ignore the 'sched' instruction when generating shaders.Subv
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-20Merge pull request #367 from lioncash/clampbunnei
math_util: Remove the Clamp() function
2018-04-20Merge pull request #361 from lioncash/commonbunnei
common_types: Minor changes