Lioncash
350f6e0aa4
profile_manager: Use INVALID_UUID in the initializer of last_opened_user
...
Makes it a little bit more self-documenting.
7 years ago
Lioncash
9d8f19d7bf
profile_manager: Remove unnecessary memcpy in GetProfileBaseAndData()
...
Given the source and destination types are the same std::array type, we
can simply use regular assignment to perform the same behavior.
7 years ago
Lioncash
38cd4e9c61
profile_manager: Use type aliases for username data, profile data, and user arrays
...
Avoids the need to repeatedly specify the whole array type in multiple
places.
7 years ago
Lioncash
f9a26d468c
profile_manager: Take ProfileInfo by const reference where applicable
...
ProfileInfo is quite a large struct in terms of data, and we don't need
to perform a copy in these instances, so we can just pass constant
references instead.
7 years ago
Lioncash
1277556c69
profile_manager: Make array parameter to CreateNewUser a const reference
...
This doesn't modify the passed in array, so this can be a const
reference.
7 years ago
Lioncash
dfdf4a46fe
profile_manager: Remove unnecessary static
...
This can just be constexpr like the others
7 years ago
Lioncash
69dd37d874
profile_manager: Simplify UUID's two param constructor, operator==, and operator bool
...
We can use the constructor initializer list and just compare the
contained u128's together instead of comparing each element
individually. Ditto for comparing against an invalid UUID.
7 years ago
Lioncash
f13a66b963
profile_manager: Move UUID generation function to the cpp file
...
This avoids needing to dump the contents of <random> into other files
that include the profile manager header.
7 years ago
Subv
2b9eee4d1e
GPU: Implemented the logic op functionality of the GPU.
...
This will ASSERT if blending is enabled at the same time as logic ops.
7 years ago
bunnei
b1d238bbb8
Merge pull request #1064 from lioncash/telemetry
...
common/telemetry: Migrate core-independent info gathering to common
7 years ago
Subv
f24ab6d9e6
GLState: Allow enabling/disabling GL_COLOR_LOGIC_OP independently from blending.
7 years ago
Lioncash
46ef072cf9
rasterizer_interface: Remove ScreenInfo from AccelerateDraw()'s signature
...
This is an OpenGL renderer-specific data type. Given that, this type
shouldn't be used within the base interface for the rasterizer. Instead,
we can pass this information to the rasterizer via reference.
7 years ago
Subv
6bcdf37d4f
GPU: Added registers for the logicop functionality.
7 years ago
Lioncash
bc16f7f3cc
renderer_base: Make creation of the rasterizer, the responsibility of the renderers themselves
...
Given we use a base-class type within the renderer for the rasterizer
(RasterizerInterface), we want to allow renderers to perform more
complex initialization if they need to do such a thing. This makes it
important to reserve type information.
Given the OpenGL renderer is quite simple settings-wise, this is just a
simple shuffling of the initialization code. For something like Vulkan
however this might involve doing something like:
// Initialize and call rasterizer-specific function that requires
// the full type of the instance created.
auto raster = std::make_unique<VulkanRasterizer>(some, params);
raster->CallSomeVulkanRasterizerSpecificFunction();
// Assign to base class variable
rasterizer = std::move(raster)
7 years ago
fearlessTobi
ba8ff096fd
Port #3353 from Citra
7 years ago
Subv
7784ce1854
Shaders: Write all the enabled color outputs when a fragment shader exits.
...
We were only writing to the first render target before.
Note that this is only the GLSL side of the implementation, supporting multiple render targets requires more changes in the OpenGL renderer.
Dual Source blending is not implemented and stuff that uses it might not work at all.
7 years ago
Zach Hilman
e8cb6f5c9b
registration: Add Data_Unknown5 NCAContentType
7 years ago
Lioncash
9e9a4bb3a7
profile_manager: Remove unnecessary std::move in AddToProfiles() and CreateNewUser()
...
Moving a const reference isn't possible, so this just results in a copy
(and given ProfileInfo is composed of trivial types and aggregates, a
move wouldn't really do anything).
7 years ago
Subv
d7c68fbb12
Rasterizer: Reinterpret the raw texture bytes instead of blitting (and thus doing format conversion) to a new texture when a game requests an old texture address with a different format.
7 years ago
Subv
3fe77be392
Rasterizer: Don't attempt to copy over the old texture's data when doing a format reinterpretation if we're only going to clear the framebuffer.
7 years ago
bunnei
028d90eb79
Merge pull request #1104 from Subv/instanced_arrays
...
GLRasterizer: Implemented instanced vertex arrays.
7 years ago
bunnei
296e57fa0e
Merge pull request #1115 from Subv/texs_mask
...
Shaders/TEXS: Write to the correct output register when swizzling.
7 years ago
bunnei
b20ed93884
Merge pull request #1112 from Subv/sampler_types
...
Shaders: Use the correct shader type when sampling textures.
7 years ago
bunnei
185b35bfcd
Merge pull request #1117 from ogniK5377/CheckFreeCommunicationPermission
...
Added CheckFreeCommunicationPermission
7 years ago
bunnei
943771e703
Merge pull request #1017 from ogniK5377/better-account
...
New account backend to allow for future extended support
7 years ago
bunnei
ce4b77bd7d
Merge pull request #1120 from ogniK5377/rgba8-uint
...
Implemented RGBA8_UINT
7 years ago
bunnei
6ee8b15abe
Merge pull request #1119 from lioncash/uninit
...
game_list: Avoid uninitialized variables when retrieving program ID
7 years ago
David Marcec
23d45715dc
Implemented RGBA8_UINT
...
Needed by kirby
7 years ago
Lioncash
ffd60ee476
game_list: Avoid uninitialized variables when retrieving program ID
...
Avoids potentially leaving this variable uninitialized based off the
loader failing to retrieve the ID value.
7 years ago
David Marcec
8a88110060
Added CheckFreeCommunicationPermission
...
This fixes save files not loading in splatoon 2
7 years ago
Subv
6cf719a4ab
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
...
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
7 years ago
bunnei
51ddb130c5
Merge pull request #1089 from Subv/neg_bits
...
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
7 years ago
bunnei
9b17486be6
Merge pull request #1105 from Subv/convert_neg
...
Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
7 years ago
bunnei
0a1d4fbc5c
Merge pull request #1113 from Subv/texs_mask
...
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
7 years ago
Subv
f7edbcd7a3
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
...
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
7 years ago
bunnei
b0eb580931
Merge pull request #1102 from ogniK5377/mirror-clamp-edge
...
Added WrapMode MirrorOnceClampToEdge
7 years ago
bunnei
85da529f15
Merge pull request #1101 from Subv/ssy_stack
...
Shaders: Implemented a stack for the SSY/SYNC instructions.
7 years ago
Subv
7fb406c3fc
Shader: Implemented the TLD4 and TLD4S opcodes using GLSL's textureGather.
...
It is unknown how TLD4S determines the sampler type, more research is needed.
7 years ago
Subv
3ef4b3d4b4
Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.
...
Different sampler types have their parameters in different registers.
7 years ago
Subv
73b937b190
Shader: Added bitfields for the texture type of the various sampling instructions.
7 years ago
Subv
656758fd81
Shaders: Added decodings for TLD4 and TLD4S
7 years ago
bunnei
29d4f8c2dd
Merge pull request #1109 from Subv/ldg_decode
...
Shaders: Added decodings for the LDG and STG instructions.
7 years ago
bunnei
9baf5de90c
Merge pull request #1108 from Subv/front_facing
...
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
7 years ago
bunnei
d6cb22b0df
Merge pull request #1103 from Subv/lop_pred
...
Shader: Implemented the predicate and mode arguments of LOP.
7 years ago
Subv
1b92ae136f
Shaders: Added decodings for the LDG and STG instructions.
7 years ago
Subv
731701a2d2
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
7 years ago
David Marcec
706fc5d2d6
Added check to see if ARB_texture_mirror_clamp_to_edge is supported
7 years ago
Zach Hilman
27da7bc9da
filesystem: Add support for loading of system archives
7 years ago
Subv
9b1c49a9cf
Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
7 years ago
Subv
e0f66c1fbf
GLRasterizer: Implemented instanced vertex arrays.
...
Before each draw call, for every enabled vertex array configured as instanced, we take the current instance id and divide it by its configured divisor, then we multiply that by the corresponding stride and increment the start address by the resulting amount. This way we can simulate the vertex array being incremented once per instance without actually using OpenGL's instancing functions.
7 years ago