aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
AgeCommit message (Collapse)Author
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-22Merge pull request #840 from FearlessTobi/port-3353bunnei
Port #3353 from Citra: "citra-qt: Add customizable speed limit target "
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-21shader_bytecode: Parenthesize conditional expression within GetTextureType()Lioncash
Resolves a -Wlogical-op-parentheses warning.
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-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-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-20GPU: Implemented the logic op functionality of the GPU.Subv
This will ASSERT if blending is enabled at the same time as logic ops.
2018-08-20GLState: Allow enabling/disabling GL_COLOR_LOGIC_OP independently from blending.Subv
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-20GPU: Added registers for the logicop functionality.Subv
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-21Port #3353 from CitrafearlessTobi
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-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-20Implemented RGBA8_UINTDavid Marcec
Needed by kirby
2018-08-19Shaders/TEXS: Fixed the component mask in the TEXS instruction.Subv
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
2018-08-19Merge pull request #1089 from Subv/neg_bitsbunnei
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
2018-08-19Merge pull request #1105 from Subv/convert_negbunnei
Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
2018-08-19Merge pull request #1113 from Subv/texs_maskbunnei
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
2018-08-19Shaders/TEXS: Fixed the component mask in the TEXS instruction.Subv
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
2018-08-19Merge pull request #1102 from ogniK5377/mirror-clamp-edgebunnei
Added WrapMode MirrorOnceClampToEdge
2018-08-19Merge pull request #1101 from Subv/ssy_stackbunnei
Shaders: Implemented a stack for the SSY/SYNC instructions.
2018-08-19Shader: Implemented the TLD4 and TLD4S opcodes using GLSL's textureGather.Subv
It is unknown how TLD4S determines the sampler type, more research is needed.
2018-08-19Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.Subv
Different sampler types have their parameters in different registers.
2018-08-19Shader: Added bitfields for the texture type of the various sampling ↵Subv
instructions.
2018-08-19Shaders: Added decodings for TLD4 and TLD4SSubv
2018-08-19Merge pull request #1109 from Subv/ldg_decodebunnei
Shaders: Added decodings for the LDG and STG instructions.
2018-08-19Merge pull request #1108 from Subv/front_facingbunnei
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
2018-08-19Shaders: Added decodings for the LDG and STG instructions.Subv
2018-08-19Shaders: Implemented the gl_FrontFacing input attribute (attr 63).Subv