| Age | Commit message (Collapse) | Author |
|
core.h is kind of a massive header in terms what it includes within
itself. It includes VFS utilities, kernel headers, file_sys header,
ARM-related headers, etc. This means that changing anything in the
headers included by core.h essentially requires you to rebuild almost
all of core.
Instead, we can modify the System class to use the PImpl idiom, which
allows us to move all of those headers to the cpp file and forward
declare the bulk of the types that would otherwise be included, reducing
compile times. This change specifically only performs the PImpl portion.
|
|
Seems like this was an oversee in regards to 1fd979f50a9f4c21fa8cafba7268d959e3076924
It changed GLShader::ProgramCode to a std::vector, so sizeof is wrong.
|
|
|
|
* Implement POPC
* implement invert
|
|
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
|
|
|
|
|
|
gpu: Make memory_manager private
|
|
gl_rasterizer: Remove unused variables
|
|
Given std::vector is a type with a non-trivial destructor, this
variable cannot be optimized away by the compiler, even if unused.
Because of that, something that was intended to be fairly lightweight,
was actually allocating 32KB and deallocating it at the end of the
function.
|
|
Makes the class interface consistent and provides accessors for
obtaining a reference to the memory manager instance.
Given we also return references, this makes our more flimsy uses of
const apparent, given const doesn't propagate through pointers in the
way one would typically expect. This makes our mutable state more
apparent in some places.
|
|
|
|
|
|
|
|
Previously the assert would always be hit, since it was the equivalent
of: array == nullptr, which is never true.
|
|
gl_rasterizer_cache: Several improvements
|
|
|
|
later use.
|
|
|
|
|
|
- Used by Splatoon 2.
|
|
|
|
|
|
gl_shader_gen: Use a std::vector to represent program code instead of std::array
|
|
gl_shader_decompiler: Implement LOP3
|
|
Prevents implicit conversions.
|
|
While convenient as a std::array, it's also quite a large set of data as
well (32KB). It being an array also means data cannot be std::moved. Any
situation where the code is being set or relocated means that a full
copy of that 32KB data must be done.
If we use a std::vector we do need to allocate on the heap, however, it
does allow us to std::move the data we have within the std::vector into
another std::vector instance, eliminating the need to always copy the
program data (as std::move in this case would just transfer the pointers
and bare necessities over to the new vector instance).
|
|
|
|
|
|
Namespaces all OpenGL code under the OpenGL namespace.
Prevents polluting the global namespace and allows clear distinction
between other renderers' code in the future.
|
|
|
|
|
|
maxwell_to_gl: Implement PrimitiveTopology::Lines
|
|
GPU: Implemented logic ops.
|
|
Used by Splatoon 2's debug menu.
|
|
instructions."
- This reverts commit 3ef4b3d4b445960576f10d1ba6521580d03e3da8.
- This commit had broken a lot of games. We really should do a full implementation of this in one change.
|
|
rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface
|
|
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
|
|
Prevents potential compilation errors from occuring due to multiple
inclusions
|
|
We'll write <last color output reg + 2> to gl_FragDepth.
|
|
gl_shader_decompiler: Implement TextureCube/Texture3D for TEX/TEXS.
|
|
Shaders: Write all the enabled color outputs when a fragment shader exits.
|
|
|
|
|
|
The X and Y coordinates should be in gpr8 and gpr8+1, respectively.
This fixes the cutscene rendering in Sonic Mania.
|
|
sampling instruction.
|