summaryrefslogtreecommitdiff
path: root/src/video_core (follow)
Commit message (Collapse)AuthorAgeFilesLines
* renderer_opengl: Namespace OpenGL codeGravatar Lioncash2018-08-2221-23/+70
| | | | | | | Namespaces all OpenGL code under the OpenGL namespace. Prevents polluting the global namespace and allows clear distinction between other renderers' code in the future.
* Merge pull request #840 from FearlessTobi/port-3353Gravatar bunnei2018-08-221-1/+1
|\ | | | | Port #3353 from Citra: "citra-qt: Add customizable speed limit target "
| * Port #3353 from CitraGravatar fearlessTobi2018-08-211-1/+1
| |
* | Merge pull request #1154 from OatmealDome/topology-linesGravatar bunnei2018-08-221-0/+2
|\ \ | | | | | | maxwell_to_gl: Implement PrimitiveTopology::Lines
| * | maxwell_to_gl: Implement PrimitiveTopology::LinesGravatar OatmealDome2018-08-221-0/+2
| | | | | | | | | Used by Splatoon 2's debug menu.
* | | Merge pull request #1124 from Subv/logic_opsGravatar bunnei2018-08-226-7/+108
|\ \ \ | |/ / |/| | GPU: Implemented logic ops.
| * | GPU: Implemented the logic op functionality of the GPU.Gravatar Subv2018-08-203-0/+61
| | | | | | | | | | | | This will ASSERT if blending is enabled at the same time as logic ops.
| * | GLState: Allow enabling/disabling GL_COLOR_LOGIC_OP independently from blending.Gravatar Subv2018-08-202-6/+19
| | |
| * | GPU: Added registers for the logicop functionality.Gravatar Subv2018-08-201-1/+28
| |/
* | Revert "Shader: Use the right sampler type in the TEX, TEXS and TLDS ↵Gravatar bunnei2018-08-212-153/+31
| | | | | | | | | | | | | | 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.
* | shader_bytecode: Parenthesize conditional expression within GetTextureType()Gravatar Lioncash2018-08-211-1/+1
| | | | | | | | Resolves a -Wlogical-op-parentheses warning.
* | Merge pull request #1123 from lioncash/screenGravatar bunnei2018-08-217-30/+25
|\ \ | | | | | | rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface
| * | rasterizer_interface: Remove ScreenInfo from AccelerateDraw()'s signatureGravatar Lioncash2018-08-205-17/+14
| | | | | | | | | | | | | | | | | | 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.
| * | renderer_base: Make creation of the rasterizer, the responsibility of the ↵Gravatar Lioncash2018-08-204-14/+12
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | Merge pull request #1132 from Subv/gl_FragDepthGravatar bunnei2018-08-211-1/+6
|\ \ | | | | | | Shaders: Implement depth writing in fragment shaders.
| * | Shaders: Implement depth writing in fragment shaders.Gravatar Subv2018-08-201-1/+6
| | | | | | | | | | | | We'll write <last color output reg + 2> to gl_FragDepth.
* | | Merge pull request #1134 from lioncash/logGravatar bunnei2018-08-211-1/+1
|\ \ \ | | | | | | | | renderer_opengl: Use LOG_DEBUG for GL_DEBUG_SEVERITY_NOTIFICATION and GL_DEBUG_SEVERITY_LOW logs
| * | | renderer_opengl: Use LOG_DEBUG for GL_DEBUG_SEVERITY_NOTIFICATION and ↵Gravatar Lioncash2018-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge pull request #1121 from Subv/tex_reinterpretGravatar bunnei2018-08-214-16/+70
|\ \ \ \ | |/ / / |/| | | Rasterizer: Use PBOs to reinterpret texture formats when games re-use the same memory.
| * | | Rasterizer: Reinterpret the raw texture bytes instead of blitting (and thus ↵Gravatar Subv2018-08-201-3/+49
| | | | | | | | | | | | | | | | doing format conversion) to a new texture when a game requests an old texture address with a different format.
| * | | Rasterizer: Don't attempt to copy over the old texture's data when doing a ↵Gravatar Subv2018-08-204-13/+21
| | |/ | |/| | | | | | | format reinterpretation if we're only going to clear the framebuffer.
* | | Merge pull request #1133 from lioncash/guardGravatar bunnei2018-08-201-0/+2
|\ \ \ | |_|/ |/| | gl_stream_buffer: Add missing header guard
| * | gl_stream_buffer: Add missing header guardGravatar Lioncash2018-08-201-0/+2
| |/ | | | | | | | | Prevents potential compilation errors from occuring due to multiple inclusions
* | Merge pull request #1131 from bunnei/impl-tex3d-texcubeGravatar bunnei2018-08-202-2/+21
|\ \ | | | | | | gl_shader_decompiler: Implement TextureCube/Texture3D for TEX/TEXS.
| * | shader_bytecode: Replace some UNIMPLEMENTED logs.Gravatar bunnei2018-08-201-2/+6
| | |
| * | gl_shader_decompiler: Implement Texture3D for TEXS.Gravatar bunnei2018-08-201-0/+7
| | |
| * | gl_shader_decompiler: Implement TextureCube for TEX.Gravatar bunnei2018-08-201-0/+8
| | |
* | | Merge pull request #1106 from Subv/multiple_rendertargetsGravatar bunnei2018-08-202-6/+45
|\ \ \ | |/ / |/| | Shaders: Write all the enabled color outputs when a fragment shader exits.
| * | Shaders: Write all the enabled color outputs when a fragment shader exits.Gravatar Subv2018-08-202-6/+45
| | | | | | | | | | | | | | | | | | | | | 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.
* | | Shaders: Fixed the coords in TEX with Texture2D.Gravatar Subv2018-08-201-1/+1
| | | | | | | | | | | | | | | | | | The X and Y coordinates should be in gpr8 and gpr8+1, respectively. This fixes the cutscene rendering in Sonic Mania.
* | | Shaders: Log and crash when using an unimplemented texture type in a texture ↵Gravatar Subv2018-08-201-5/+14
| |/ |/| | | | | sampling instruction.
* | Merge pull request #1104 from Subv/instanced_arraysGravatar bunnei2018-08-202-4/+30
|\ \ | | | | | | GLRasterizer: Implemented instanced vertex arrays.
| * | GLRasterizer: Implemented instanced vertex arrays.Gravatar Subv2018-08-182-4/+30
| |/ | | | | | | Before each draw call, for every enabled vertex array configured as instanced, we take the current instance id and divide it by its configured divisor, then we multiply that by the corresponding stride and increment the start address by the resulting amount. This way we can simulate the vertex array being incremented once per instance without actually using OpenGL's instancing functions.
* | Merge pull request #1115 from Subv/texs_maskGravatar bunnei2018-08-201-18/+18
|\ \ | | | | | | Shaders/TEXS: Write to the correct output register when swizzling.
| * | Shaders/TEXS: Fixed the component mask in the TEXS instruction.Gravatar Subv2018-08-191-18/+18
| | | | | | | | | | | | Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
* | | Merge pull request #1112 from Subv/sampler_typesGravatar bunnei2018-08-203-33/+250
|\ \ \ | | | | | | | | Shaders: Use the correct shader type when sampling textures.
| * | | Shader: Implemented the TLD4 and TLD4S opcodes using GLSL's textureGather.Gravatar Subv2018-08-191-0/+51
| | | | | | | | | | | | | | | | It is unknown how TLD4S determines the sampler type, more research is needed.
| * | | Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.Gravatar Subv2018-08-192-29/+127
| | | | | | | | | | | | | | | | Different sampler types have their parameters in different registers.
| * | | Shader: Added bitfields for the texture type of the various sampling ↵Gravatar Subv2018-08-191-1/+65
| | | | | | | | | | | | | | | | instructions.
| * | | Shaders: Added decodings for TLD4 and TLD4SGravatar Subv2018-08-191-3/+7
| | | |
* | | | Implemented RGBA8_UINTGravatar David Marcec2018-08-204-45/+58
| |/ / |/| | | | | | | | Needed by kirby
* | | Merge pull request #1089 from Subv/neg_bitsGravatar bunnei2018-08-192-16/+38
|\ \ \ | | | | | | | | Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
| * | | Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic ↵Gravatar Subv2018-08-182-16/+38
| | | | | | | | | | | | | | | | | | | | | | | | instructions. We should definitely audit our shader generator for more errors like this.
* | | | Merge pull request #1105 from Subv/convert_negGravatar bunnei2018-08-191-2/+0
|\ \ \ \ | | | | | | | | | | Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
| * | | | Shader: Remove an unneeded assert, the negate bit is implemented for ↵Gravatar Subv2018-08-181-2/+0
| | |_|/ | |/| | | | | | | | | | conversion instructions.
* | | | Merge pull request #1113 from Subv/texs_maskGravatar bunnei2018-08-191-6/+11
|\ \ \ \ | | | | | | | | | | Shaders/TEXS: Fixed the component mask in the TEXS instruction.
| * | | | Shaders/TEXS: Fixed the component mask in the TEXS instruction.Gravatar Subv2018-08-191-6/+11
| | |_|/ | |/| | | | | | | | | | Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
* | | | Merge pull request #1102 from ogniK5377/mirror-clamp-edgeGravatar bunnei2018-08-191-0/+2
|\ \ \ \ | | | | | | | | | | Added WrapMode MirrorOnceClampToEdge
| * | | | Added WrapMode MirrorOnceClampToEdgeGravatar David Marcec2018-08-191-0/+2
| | |/ / | |/| | | | | | | | | | Used by splatoon 2
* | | | Merge pull request #1101 from Subv/ssy_stackGravatar bunnei2018-08-191-3/+36
|\ \ \ \ | |_|/ / |/| | | Shaders: Implemented a stack for the SSY/SYNC instructions.