summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-08-21bit_field: Convert ToBool() into explicit operator boolLioncash
Gets rid of a TODO that is long overdue.
2018-08-21Merge pull request #1123 from lioncash/screenbunnei
rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface
2018-08-21Merge pull request #1129 from lioncash/headerbunnei
romfs_factory, service/filesystem: Use forward declarations where applicable
2018-08-21Merge pull request #1132 from Subv/gl_FragDepthbunnei
Shaders: Implement depth writing in fragment shaders.
2018-08-21Merge pull request #1134 from lioncash/logbunnei
renderer_opengl: Use LOG_DEBUG for GL_DEBUG_SEVERITY_NOTIFICATION and GL_DEBUG_SEVERITY_LOW logs
2018-08-21Merge pull request #1121 from Subv/tex_reinterpretbunnei
Rasterizer: Use PBOs to reinterpret texture formats when games re-use the same memory.
2018-08-21renderer_opengl: Use LOG_DEBUG for GL_DEBUG_SEVERITY_NOTIFICATION and ↵Lioncash
GL_DEBUG_SEVERITY_LOW logs LOG_TRACE is only enabled on debug builds which can be quite slow when trying to debug graphics issues. Instead we can log the messages to the debug log, which is available on both release and debug builds.
2018-08-20Merge pull request #1133 from lioncash/guardbunnei
gl_stream_buffer: Add missing header guard
2018-08-20service/filesystem: Use forward declarations where applicableLioncash
Avoids the need to rebuild multiple source files if the filesystem code headers change. This also gets rid of a few instances of indirect inclusions being relied upon
2018-08-20gl_stream_buffer: Add missing header guardLioncash
Prevents potential compilation errors from occuring due to multiple inclusions
2018-08-20Shaders: Implement depth writing in fragment shaders.Subv
We'll write <last color output reg + 2> to gl_FragDepth.
2018-08-20Merge pull request #1126 from lioncash/telembunnei
telemetry_session: Don't allocate std::string instances for program lifetime in GetTelemetryId() and RegenerateTelemetryId()
2018-08-20Merge pull request #1131 from bunnei/impl-tex3d-texcubebunnei
gl_shader_decompiler: Implement TextureCube/Texture3D for TEX/TEXS.
2018-08-20Merge pull request #1106 from Subv/multiple_rendertargetsbunnei
Shaders: Write all the enabled color outputs when a fragment shader exits.
2018-08-20shader_bytecode: Replace some UNIMPLEMENTED logs.bunnei
2018-08-20gl_shader_decompiler: Implement Texture3D for TEXS.bunnei
2018-08-20gl_shader_decompiler: Implement TextureCube for TEX.bunnei
2018-08-20Merge pull request #1130 from Subv/tex_2dbunnei
Shaders: Fixed texture coordinates in TEX with Texture2D
2018-08-20Shaders: Fixed the coords in TEX with Texture2D.Subv
The X and Y coordinates should be in gpr8 and gpr8+1, respectively. This fixes the cutscene rendering in Sonic Mania.
2018-08-20Shaders: Log and crash when using an unimplemented texture type in a texture ↵Subv
sampling instruction.
2018-08-20Merge pull request #1122 from lioncash/accbunnei
acc/profile_manager: General cleanup
2018-08-20romfs_factory: Remove unnecessary includes and use forward declarations ↵Lioncash
where applicable Avoids the need to rebuild whatever includes the romfs factory header if the loader header ever changes. We also don't need to include the main core header. We can instead include the headers we specifically need.
2018-08-20Merge pull request #1095 from DarkLordZach/sysarchivesbunnei
filesystem: Add support for loading of system archives
2018-08-20telemetry_session: Don't allocate std::string instances for program lifetime ↵Lioncash
in GetTelemetryId() and RegenerateTelemetryId() Given these functions aren't intended to be used frequently, there's no need to keep the std::string instances allocated for the whole lifetime of the program. It's just a waste of memory.
2018-08-20acc: Replace profile_manager include with a forward declarationLioncash
This is only used in a shared_ptr, so we can forward declare it.
2018-08-20acc: Simplify WriteBuffer call within LoadImage()Lioncash
We have an overload of WriteBuffer that accepts containers that satisfy the ContiguousContainer concept, which std::array does, so we only need to pass in the array itself.
2018-08-20acc: Correct IProfile's constructor initializer list orderLioncash
Arranges them in the order the members would be initialized
2018-08-20acc: Remove unused DEFAULT_USER_IDLioncash
This is no longer used, so it can be removed.
2018-08-20profile_manager: Use INVALID_UUID in the initializer of last_opened_userLioncash
Makes it a little bit more self-documenting.
2018-08-20profile_manager: Remove unnecessary memcpy in GetProfileBaseAndData()Lioncash
Given the source and destination types are the same std::array type, we can simply use regular assignment to perform the same behavior.
2018-08-20profile_manager: Use type aliases for username data, profile data, and user ↵Lioncash
arrays Avoids the need to repeatedly specify the whole array type in multiple places.
2018-08-20profile_manager: Take ProfileInfo by const reference where applicableLioncash
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.
2018-08-20profile_manager: Make array parameter to CreateNewUser a const referenceLioncash
This doesn't modify the passed in array, so this can be a const reference.
2018-08-20profile_manager: Remove unnecessary staticLioncash
This can just be constexpr like the others
2018-08-20profile_manager: Simplify UUID's two param constructor, operator==, and ↵Lioncash
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.
2018-08-20profile_manager: Move UUID generation function to the cpp fileLioncash
This avoids needing to dump the contents of <random> into other files that include the profile manager header.
2018-08-20Merge pull request #1064 from lioncash/telemetrybunnei
common/telemetry: Migrate core-independent info gathering to common
2018-08-20rasterizer_interface: Remove ScreenInfo from AccelerateDraw()'s signatureLioncash
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.
2018-08-20renderer_base: Make creation of the rasterizer, the responsibility of the ↵Lioncash
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)
2018-08-20Shaders: Write all the enabled color outputs when a fragment shader exits.Subv
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.
2018-08-20registration: Add Data_Unknown5 NCAContentTypeZach Hilman
2018-08-20profile_manager: Remove unnecessary std::move in AddToProfiles() and ↵Lioncash
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).
2018-08-20Rasterizer: Reinterpret the raw texture bytes instead of blitting (and thus ↵Subv
doing format conversion) to a new texture when a game requests an old texture address with a different format.
2018-08-20Rasterizer: Don't attempt to copy over the old texture's data when doing a ↵Subv
format reinterpretation if we're only going to clear the framebuffer.
2018-08-20Merge pull request #1104 from Subv/instanced_arraysbunnei
GLRasterizer: Implemented instanced vertex arrays.
2018-08-20Merge pull request #1115 from Subv/texs_maskbunnei
Shaders/TEXS: Write to the correct output register when swizzling.
2018-08-20Merge pull request #1112 from Subv/sampler_typesbunnei
Shaders: Use the correct shader type when sampling textures.
2018-08-20Merge pull request #1117 from ogniK5377/CheckFreeCommunicationPermissionbunnei
Added CheckFreeCommunicationPermission
2018-08-20Merge pull request #1017 from ogniK5377/better-accountbunnei
New account backend to allow for future extended support
2018-08-20Merge pull request #1120 from ogniK5377/rgba8-uintbunnei
Implemented RGBA8_UINT