bunnei
bf25299272
Merge pull request #384 from Subv/nvhost-remap
...
Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.
7 years ago
bunnei
d4f87e9af4
Merge pull request #385 from Subv/unimpl_ioctls
...
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
7 years ago
bunnei
3967f9c6ef
Merge pull request #383 from Subv/gpu_mmu
...
GPU: Make the GPU virtual memory manager use 16 page bits and 10 pagetable bits.
7 years ago
Subv
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.
7 years ago
Subv
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.
7 years ago
Subv
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.
7 years ago
Subv
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.
7 years ago
Subv
e862c50a70
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
7 years ago
Subv
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.
7 years ago
Subv
010227e149
GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format as the A2BGR10 texture format.
7 years ago
Subv
c079cf4eec
GPU: Implement the A2BGR10 texture format.
7 years ago
bunnei
62937798a0
Merge pull request #377 from adityaruplaha/sdl2-fullscreen
...
SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607 )
7 years ago
adityaruplaha
f48d5e4c4c
SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607 )
7 years ago
bunnei
f8764bb5d3
Merge pull request #376 from bunnei/shader-decoder
...
Shader opcode decoding
7 years ago
bunnei
f8a037ead4
Merge pull request #375 from lioncash/header
...
opengl: Remove unnecessary header inclusions
7 years ago
bunnei
d08fd7e86d
gl_shader_decompiler: Skip RRO instruction.
7 years ago
bunnei
8b28dc55e6
gl_shader_decompiler: Cleanup error logging.
7 years ago
bunnei
e1630c4d43
shader_bytecode: Add several more instruction decodings.
7 years ago
bunnei
9f6d305eab
shader_bytecode: Decode instructions based on bit strings.
7 years ago
bunnei
8ac3a3f45e
Merge pull request #369 from Subv/shader_instr2
...
ShaderGen: Implemented fsetp/kil and predicated instruction execution.
7 years ago
bunnei
634d9ee18b
Merge pull request #374 from lioncash/noexcept
...
gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
7 years ago
bunnei
ba6f3e8f9f
Merge pull request #373 from lioncash/enum2
...
gl_rasterizer_cache: Make MatchFlags an enum class
7 years ago
Subv
17a0ef1e1e
ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.
7 years ago
Subv
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.
7 years ago
Subv
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.
7 years ago
Subv
a70ed9c8ae
Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOs
7 years ago
Subv
013778aa21
Qt: Update the WaitTree widget to show info about the current mutex of each thread.
7 years ago
Subv
be155f4d9d
Kernel: Remove unused ConditionVariable class.
7 years ago
Subv
5fdfbfe25a
Kernel: Remove old and unused Mutex code.
7 years ago
Subv
b18ccf9399
Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKey
...
They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
7 years ago
Subv
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.
7 years ago
bunnei
1723b4d8d4
Merge pull request #372 from lioncash/enum
...
resource_limit: Make ResourceTypes an enum class
7 years ago
Lioncash
eafdcc1b8a
opengl: Remove unnecessary header inclusions
7 years ago
Lioncash
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.
7 years ago
Lioncash
7db0b8d74f
gl_rasterizer_cache: Make MatchFlags an enum class
...
Prevents implicit conversions and scope pollution.
7 years ago
Lioncash
659a612368
core: Relocate g_service_manager to the System class
...
Converts the service manager from a global into an instance-based
variable.
7 years ago
Lioncash
bec05db746
resource_limit: Make ResourceTypes an enum class
...
Prevents enum identifiers from leaking into the surrounding scope.
7 years ago
bunnei
1df3a7710e
Merge pull request #340 from mailwl/vi-update
...
Service/VI: stub SetLayerVisibility, fix GetDisplayResolution output
7 years ago
Subv
d03fc77475
ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).
7 years ago
Subv
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).
7 years ago
bunnei
326b044c19
Merge pull request #367 from lioncash/clamp
...
math_util: Remove the Clamp() function
7 years ago
bunnei
87f89ac82d
Merge pull request #361 from lioncash/common
...
common_types: Minor changes
7 years ago
Lioncash
fae2dd0344
math_util: Remove the Clamp() function
...
C++17 adds clamp() to the standard library, so we can remove ours in
favor of it.
7 years ago
bunnei
b11f6f90e7
Merge pull request #360 from lioncash/namespaces
...
service: Use nested namespace specifiers where applicable
7 years ago
bunnei
4d96997447
Merge pull request #364 from lioncash/thread-local
...
common/thread: Remove unnecessary feature checking for thread_local
7 years ago
bunnei
b5c204ac6f
Merge pull request #362 from lioncash/snprintf
...
common_funcs: Remove check for VS versions that we don't even support
7 years ago
bunnei
701dd649e6
Merge pull request #363 from lioncash/array-size
...
common_funcs: Remove ARRAY_SIZE macro
7 years ago
bunnei
79c1ed80e9
Merge pull request #366 from lioncash/vec
...
vector_math: Remove AsArray() and Write() functions from Vec[2,3,4]
7 years ago
bunnei
cb267093bb
Merge pull request #365 from lioncash/codeblock
...
common: Remove code_block.h
7 years ago
Lioncash
956e200f12
vector_math: Remove AsArray() and Write() functions from Vec[2,3,4]
...
These are all unused and the Write() ones should arguably not even be in the interface. There are better ways to provide this if we ever need it (like iterators).
7 years ago
Lioncash
0eba5911f2
common: Remove code_block.h
...
We use dynarmic, so this is unued. Anything else we need will likely use Xbyak, so
this header isn't necessary any more.
7 years ago
Lioncash
b134e6afcf
common/thread: Remove unnecessary feature checking for thread_local
...
Every compiler we require already supports it.
7 years ago
Lioncash
d9e316e353
common_funcs: Remove ARRAY_SIZE macro
...
C++17 has non-member size() which we can just call where necessary.
7 years ago
Lioncash
902fc61ef8
common_funcs: Remove check for VS versions that we don't even support
...
We don't support any VS versions that don't already have snprintf in the
standard library implementation.
7 years ago
Lioncash
16ffecd8fb
common_types: Convert typedefs to using aliases
...
May as well while we're making changes to this file.
7 years ago
Lioncash
e8e5041955
common_types: Remove unnecessary check for whether or not__func__ is defined
...
VS has supported this for quite a while.
7 years ago
Lioncash
ccca5e7c28
service: Use nested namespace specifiers where applicable
...
Tidies up namespace declarations
7 years ago
bunnei
2c8afe1140
Merge pull request #357 from lioncash/guard
...
renderer_opengl: Add missing header guards
7 years ago
bunnei
2ef04f69b2
Merge pull request #358 from lioncash/explicit
...
disk_filesystem: Minor changes
7 years ago
Lioncash
3990da488b
vi: Remove redundant initializers in the constructors
7 years ago
Lioncash
80982748c8
disk_filesystem: Remove unused total_entries_in_directory member from Disk_Directory
7 years ago
Lioncash
e61a4dd485
disk_filesystem: Remove redundant initializer in Disk_Directory's constructor
7 years ago
Lioncash
b05f8ea5b5
disk_filesystem: Make constructors explicit where applicable
7 years ago
Lioncash
3841ec4200
renderer_opengl: Add missing header guards
7 years ago
bunnei
17ad56c1dc
Merge pull request #356 from lioncash/shader
...
glsl_shader_decompiler: Minor API changes to ShaderWriter
7 years ago
bunnei
f633b0c875
Merge pull request #355 from Subv/shader_instr
...
ShaderGen: Fixed TEXS overriding its own texcoords and implemented fmul32i
7 years ago
Lioncash
e3b6f6c016
glsl_shader_decompiler: Use std::string_view instead of std::string for AddLine()
...
This function doesn't need to take ownership of the string data being
given to it, considering all we do is append the characters to the
internal string instance.
Instead, use a string view to simply reference the string data without
any potential heap allocation.
Now anything that is a raw const char* won't need to be converted to a
std::string before appending.
7 years ago
Lioncash
412b31ad72
glsl_shader_decompiler: Add AddNewLine() function to ShaderWriter
...
Avoids constructing a std::string just to append a newline character
7 years ago
Lioncash
aa26baa3db
glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()
...
Avoids constructing a std::string just to append a character.
7 years ago
Lioncash
4ef392906b
glsl_shader_decompiler: Append indentation without constructing a separate std::string
...
The interface of std::string already lets us append N copies of a
character to an existing string.
7 years ago
Subv
fe84842137
ShaderGen: Implemented the fmul32i shader instruction.
7 years ago
Subv
5367935d35
ShaderGen: Fixed a case where the TEXS instruction would use the same registers for the input and the output.
...
It will now save the coords before writing the outputs in a subscope.
7 years ago
N00byKing
8a47e7e493
Implement Pull #3528 from citra: use nvidia graphics automatically on laptops with optimus (with AMD support) ( #271 )
...
* Port 3528: use nvidia graphics automatically on laptops with optimus
* Force dedicated AMD Card for switchable Graphics
* Ran clang-format
7 years ago
James Rowe
e90a12f80c
Merge pull request #352 from bunnei/fix-microprofile
...
nvflinger: Call MicroProfileFlip on NVFlinger::Compose.
7 years ago
Subv
057170928c
GPU: Add support for the DXT23 and DXT45 compressed texture formats.
7 years ago
bunnei
de18592179
nvflinger: Call MicroProfileFlip on NVFlinger::Compose.
7 years ago
bunnei
60e6e8953e
Merge pull request #351 from Subv/tex_formats
...
GPU: Implemented the B5G6R5 format.
7 years ago
Subv
2985056340
GPU: Implemented the B5G6R5 format.
7 years ago
bunnei
ce4f159b1c
gl_shader_gen: Support vertical/horizontal viewport flipping. ( #347 )
...
* gl_shader_gen: Support vertical/horizontal viewport flipping.
* fixup! gl_shader_gen: Support vertical/horizontal viewport flipping.
7 years ago
Subv
43d98ca8fe
GLCache: Added boilerplate code to make supporting configurable texture component types.
...
For now only the UNORM type is supported.
7 years ago
Subv
5b3fab6766
GLCache: Unify texture and framebuffer formats when converting to OpenGL.
7 years ago
Subv
b2c1672e10
GPU: Texture format 8 and framebuffer format 0xD5 are actually ABGR8.
7 years ago
Subv
48d4efbd69
GPU: Pitch textures are now supported, don't assert when encountering them.
7 years ago
Subv
a3e82e8e1f
GLCache: Take into account the texture's block height when caching and unswizzling.
7 years ago
Subv
ac09b5a2e9
GLCache: Added a function to convert cached PixelFormats back to texture formats.
...
TODO: The way we handle cached formats must change, framebuffer and texture formats are too different to keep them in the same place.
7 years ago
Subv
6b63aaa5b4
GPU: Allow using a configurable block height when unswizzling textures.
7 years ago
Subv
db5f2bfa7e
GPU/TIC: Added the pitch and block height fields to the TIC structure.
7 years ago
bunnei
c93ea96366
Merge pull request #346 from bunnei/misc-gpu-improvements
...
Misc gpu improvements
7 years ago
bunnei
71b4a3b9f6
Merge pull request #344 from bunnei/shader-decompiler-p2
...
Shader decompiler changes part 2
7 years ago
bunnei
7222d9a4c3
gl_rasterizer_cache: Add missing LOG statements.
7 years ago
bunnei
9df8e924fb
texture: Add missing formats.
7 years ago
bunnei
3ed8a1cac7
gpu: Add several framebuffer formats to RenderTargetFormat.
7 years ago
bunnei
4a8eb6745e
maxwell3d: Allow Texture2DNoMipmap as Texture2D.
7 years ago
bunnei
531c25386e
shader_bytecode: Make ctor's constexpr and explicit.
7 years ago
bunnei
174cba5c58
renderer_opengl: Implement BlendEquation and BlendFunc.
7 years ago
bunnei
e59126809c
bit_field: Remove is_pod check, add is_trivially_copyable_v.
7 years ago
bunnei
1f6fe062ca
gl_shader_decompiler: Fix warnings with MarkAsUsed.
7 years ago
bunnei
ed542a7309
gl_shader_decompiler: Cleanup logging, updating to NGLOG_*.
7 years ago
bunnei
ef2d5ab0c1
gl_shader_decompiler: Implement several MUFU subops and abs_d.
7 years ago
bunnei
59f4ff4659
gl_shader_decompiler: Fix swizzle in GetRegister.
7 years ago