Age | Commit message (Collapse) | Author |
|
Gets rid of a TODO that is long overdue.
|
|
rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface
|
|
romfs_factory, service/filesystem: Use forward declarations where applicable
|
|
Shaders: Implement depth writing in fragment shaders.
|
|
renderer_opengl: Use LOG_DEBUG for GL_DEBUG_SEVERITY_NOTIFICATION and GL_DEBUG_SEVERITY_LOW logs
|
|
Rasterizer: Use PBOs to reinterpret texture formats when games re-use the same memory.
|
|
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.
|
|
gl_stream_buffer: Add missing header guard
|
|
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
|
|
Prevents potential compilation errors from occuring due to multiple
inclusions
|
|
We'll write <last color output reg + 2> to gl_FragDepth.
|
|
telemetry_session: Don't allocate std::string instances for program lifetime in GetTelemetryId() and RegenerateTelemetryId()
|
|
gl_shader_decompiler: Implement TextureCube/Texture3D for TEX/TEXS.
|
|
Shaders: Write all the enabled color outputs when a fragment shader exits.
|
|
|
|
|
|
|
|
Shaders: Fixed texture coordinates in TEX with Texture2D
|
|
The X and Y coordinates should be in gpr8 and gpr8+1, respectively.
This fixes the cutscene rendering in Sonic Mania.
|
|
sampling instruction.
|
|
acc/profile_manager: General cleanup
|
|
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.
|
|
filesystem: Add support for loading of system archives
|
|
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.
|
|
This is only used in a shared_ptr, so we can forward declare it.
|
|
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.
|
|
Arranges them in the order the members would be initialized
|
|
This is no longer used, so it can be removed.
|
|
Makes it a little bit more self-documenting.
|
|
Given the source and destination types are the same std::array type, we
can simply use regular assignment to perform the same behavior.
|
|
arrays
Avoids the need to repeatedly specify the whole array type in multiple
places.
|
|
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.
|
|
This doesn't modify the passed in array, so this can be a const
reference.
|
|
This can just be constexpr like the others
|
|
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.
|
|
This avoids needing to dump the contents of <random> into other files
that include the profile manager header.
|
|
common/telemetry: Migrate core-independent info gathering to common
|
|
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.
|
|
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)
|
|
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.
|
|
|
|
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).
|
|
doing format conversion) to a new texture when a game requests an old texture address with a different format.
|
|
format reinterpretation if we're only going to clear the framebuffer.
|
|
GLRasterizer: Implemented instanced vertex arrays.
|
|
Shaders/TEXS: Write to the correct output register when swizzling.
|
|
Shaders: Use the correct shader type when sampling textures.
|
|
Added CheckFreeCommunicationPermission
|
|
New account backend to allow for future extended support
|
|
Implemented RGBA8_UINT
|