aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
2018-08-31core: Make the main System class use the PImpl idiomLioncash
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.
2018-08-31Report correct shader size.Markus Wick
Seems like this was an oversee in regards to 1fd979f50a9f4c21fa8cafba7268d959e3076924 It changed GLShader::ProgramCode to a std::vector, so sizeof is wrong.
2018-08-31Added predicate comparison GreaterEqualWithNanHexagon12
2018-08-30gl_shader_decompiler: Implement POPC (#1203)Laku
* Implement POPC * implement invert
2018-08-30Merge pull request #1200 from bunnei/improve-ipabunnei
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
2018-08-29Shaders: Implemented IADD3tech4me
2018-08-29gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.bunnei
2018-08-28Merge pull request #1193 from lioncash/privbunnei
gpu: Make memory_manager private
2018-08-28Merge pull request #1192 from lioncash/unusedbunnei
gl_rasterizer: Remove unused variables
2018-08-28gl_shader_cache: Remove unused program_code vector in GetShaderAddress()Lioncash
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.
2018-08-28gpu: Make memory_manager privateLioncash
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.
2018-08-28gl_rasterizer: Remove unused variablesLioncash
2018-08-27renderer_opengl: Implement a new shader cache.bunnei
2018-08-27gl_rasterizer_cache: Update to use RasterizerCache base class.bunnei
2018-08-23gl_rasterizer: Correct assertion condition in SyncLogicOpState()Lioncash
Previously the assert would always be hit, since it was the equivalent of: array == nullptr, which is never true.
2018-08-23Merge pull request #1160 from bunnei/surface-reservebunnei
gl_rasterizer_cache: Several improvements
2018-08-23gl_rasterizer_cache: Blit when possible on RecreateSurface.bunnei
2018-08-23gl_rasterizer_cache: Reserve surfaces that have already been created for ↵bunnei
later use.
2018-08-23gl_rasterizer_cache: Remove assert for RecreateSurface type.bunnei
2018-08-23gl_rasterizer_cache: Implement compressed texture copies.bunnei
2018-08-23gl_rasterizer: Implement stencil test.bunnei
- Used by Splatoon 2.
2018-08-23gl_rasterizer: Implement partial color clear and stencil clear.bunnei
2018-08-23gl_state: Update to handle stencil front/back face separately.bunnei
2018-08-23Merge pull request #1157 from lioncash/vecbunnei
gl_shader_gen: Use a std::vector to represent program code instead of std::array
2018-08-23Merge pull request #1156 from Lakumakkara/lop3bunnei
gl_shader_decompiler: Implement LOP3
2018-08-22gl_shader_gen: Make ShaderSetup's constructor explicitLioncash
Prevents implicit conversions.
2018-08-22gl_shader_gen: Use a std::vector to represent program code instead of std::arrayLioncash
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).
2018-08-23more fixesLaku
2018-08-22fixesLaku
2018-08-22renderer_opengl: Namespace OpenGL codeLioncash
Namespaces all OpenGL code under the OpenGL namespace. Prevents polluting the global namespace and allows clear distinction between other renderers' code in the future.
2018-08-22remove debug loggingLaku
2018-08-22implement lop3Laku
2018-08-22Merge pull request #1154 from OatmealDome/topology-linesbunnei
maxwell_to_gl: Implement PrimitiveTopology::Lines
2018-08-22Merge pull request #1124 from Subv/logic_opsbunnei
GPU: Implemented logic ops.
2018-08-22maxwell_to_gl: Implement PrimitiveTopology::LinesOatmealDome
Used by Splatoon 2's debug menu.
2018-08-21Revert "Shader: Use the right sampler type in the TEX, TEXS and TLDS ↵bunnei
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.
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 #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-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 #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-20gl_shader_decompiler: Implement Texture3D for TEXS.bunnei
2018-08-20gl_shader_decompiler: Implement TextureCube for TEX.bunnei
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.