aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl
AgeCommit message (Collapse)Author
2020-01-04Merge pull request #3258 from FernandoS27/shader-amendbunnei
Shader_IR: add the ability to amend code in the shader ir.
2020-01-04Shader_IR: Address FeedbackFernando Sahmkow
2020-01-01Merge pull request #3243 from ReinUsesLisp/topologiesbunnei
maxwell_to_gl: Implement missing primitive topologies
2019-12-30Shader_IR: add the ability to amend code in the shader ir.Fernando Sahmkow
This commit introduces a mechanism by which shader IR code can be amended and extended. This useful for track algorithms where certain information can derived from before the track such as indexes to array samplers.
2019-12-28Merge pull request #3250 from ReinUsesLisp/empty-fragmentFernando Sahmkow
gl_rasterizer: Allow rendering without fragment shader
2019-12-26Merge pull request #3228 from ReinUsesLisp/ptpbunnei
shader/texture: Implement AOFFI and PTP for TLD4 and TLD4S
2019-12-26gl_rasterizer: Allow rendering without fragment shaderReinUsesLisp
Rendering without a fragment shader is usually used in depth-only passes.
2019-12-24Merge pull request #3236 from ReinUsesLisp/rasterize-enablebunnei
gl_rasterizer: Implement RASTERIZE_ENABLE
2019-12-22maxwell_to_gl: Implement missing primitive topologiesReinUsesLisp
Many of these topologies are exclusively available in OpenGL.
2019-12-20gl_shader_cache: Update commentary for shared memoryReinUsesLisp
Remove false commentary. Not dividing by 4 the size of shared memory is not a hack; it describes the number of integers, not bytes. While we are at it sort the generated code to put preprocessor lines on the top.
2019-12-20gl_shader_cache: Remove unused entry in GetPrimitiveDescriptionReinUsesLisp
2019-12-18gl_rasterizer: Implement RASTERIZE_ENABLEReinUsesLisp
RASTERIZE_ENABLE is the opposite of GL_RASTERIZER_DISCARD. Implement it naturally using this. NVN games expect rasterize to be enabled by default, reflect that in our initial GPU state.
2019-12-17gl_shader_decompiler: Add missing DeclareImagesReinUsesLisp
2019-12-16Merge pull request #3182 from ReinUsesLisp/renderer-openglbunnei
renderer_opengl: Miscellaneous clean ups
2019-12-16shader/texture: Implement TLD4.PTPReinUsesLisp
2019-12-16gl_shader_decompiler: Rename "sepparate" to "separate"ReinUsesLisp
2019-12-16Merge pull request #3219 from FernandoS27/fix-bindlessRodrigo Locatti
Corrections and fixes to TLD4S & bindless samplers failing
2019-12-14Merge pull request #3213 from ReinUsesLisp/intel-mesabunnei
gl_device: Enable compute shaders for Intel Mesa drivers
2019-12-13Merge pull request #3212 from ReinUsesLisp/fix-smem-lmembunnei
gl_shader_cache: Add missing new-line on emitted GLSL
2019-12-11Shader_IR: Correct TLD4S Depth Compare.Fernando Sahmkow
2019-12-11Gl_Shader_compiler: Correct Depth Compare for Texture Gather operations.Fernando Sahmkow
2019-12-11Gl_Rasterizer: Skip Tesselation Control and Eval stages as they are un ↵Fernando Sahmkow
implemented. This commit ensures the OGL backend does not execute tesselation shader stages as they are currently unimplemented.
2019-12-11Merge pull request #3210 from ReinUsesLisp/memory-barrierbunnei
shader: Implement MEMBAR.GL
2019-12-11gl_device: Enable compute shaders for Intel Mesa driversReinUsesLisp
Previously we naively checked for "Intel" in GL_VENDOR, but this includes both Intel's proprietary driver and the mesa driver. Re-enable compute shaders for mesa.
2019-12-10gl_shader_cache: Add missing new-line on emitted GLSLReinUsesLisp
Add missing new-line. This caused shaders using local memory and shared memory to inject a preprocessor GLSL line after an expression (resulting in invalid code). It looked like this: shared uint smem[8];#define LOCAL_MEMORY_SIZE 16 It should look like this (addressed by this commit): shared uint smem[8]; \#define LOCAL_MEMORY_SIZE 16
2019-12-10Maxwell3D: Implement Depth Mode.Fernando Sahmkow
This commit finishes adding depth mode that was reverted before due to other unresolved issues.
2019-12-10shader: Implement MEMBAR.GLReinUsesLisp
Implement using memoryBarrier in GLSL and OpMemoryBarrier on SPIR-V.
2019-12-09shader_ir/other: Implement S2R InvocationIdReinUsesLisp
2019-12-06Merge pull request #3109 from FernandoS27/new-instrbunnei
Implement FLO & TXD Instructions on GPU Shaders
2019-11-28gl_framebuffer_cache: Optimize framebuffer keyReinUsesLisp
Pack color attachment enumerations into a single u32. To determine the number of buffers, the highest color attachment with a shared pointer that doesn't point to null is used.
2019-11-28gl_rasterizer: Re-enable framebuffer cache for clear buffersReinUsesLisp
2019-11-28renderer_opengl: Make ScreenRectVertex's constructor constexprReinUsesLisp
2019-11-28renderer_opengl: Remove C castsReinUsesLisp
2019-11-28renderer_opengl: Use explicit binding for presentation shadersReinUsesLisp
2019-11-28renderer_opengl: Drop macros for message decorationsReinUsesLisp
2019-11-28renderer_opengl: Move static definitions to anonymous namespaceReinUsesLisp
2019-11-28renderer_opengl: Move commentaries to header fileReinUsesLisp
2019-11-26core/memory: Migrate over GetPointer()Lioncash
With all of the interfaces ready for migration, it's trivial to migrate over GetPointer().
2019-11-26core: Prepare various classes for memory read/write migrationLioncash
Amends a few interfaces to be able to handle the migration over to the new Memory class by passing the class by reference as a function parameter where necessary. Notably, within the filesystem services, this eliminates two ReadBlock() calls by using the helper functions of HLERequestContext to do that for us.
2019-11-26Merge pull request #3143 from ReinUsesLisp/indexing-bugbunnei
gl_device: Deduce indexing bug from device instead of heuristic
2019-11-25gl_shader_decompiler: Fix casts from fp32 to f16ReinUsesLisp
Casts from f32 to f16 zeroes the higher half of the target register.
2019-11-25gl_device: Deduce indexing bug from device instead of heuristicReinUsesLisp
The heuristic to detect AMD's driver was not working properly since it also included Intel. Instead of using heuristics to detect it, compare the GL_VENDOR string.
2019-11-24Merge pull request #3158 from ReinUsesLisp/srgb-blitbunnei
gl_texture_cache: Apply sRGB on blits
2019-11-24Merge pull request #3098 from ReinUsesLisp/shader-invalidationsbunnei
gl_shader_cache: Miscellaneous changes to shaders
2019-11-24gl_texture_cache: Apply sRGB on blitsReinUsesLisp
glBlitFramebuffer keeps in mind GL_FRAMEBUFFER_SRGB's state. Enable this depending on the target surface pixel format.
2019-11-23Merge pull request #3141 from ReinUsesLisp/gl-positionbunnei
gl_shader_gen: Apply default value to gl_Position
2019-11-22gl_device: Reserve base bindings on limited devicesReinUsesLisp
SSBOs and other resources are limited per pipeline on Intel and AMD. Heuristically reserve resources per stage having in mind the reported OpenGL limits.
2019-11-22gl_state: Skip null texture bindsReinUsesLisp
glBindTextureUnit doesn't support null textures. Skip binding these.
2019-11-22gl_rasterizer: Disable compute shaders on IntelReinUsesLisp
Intel's proprietary driver enters in a corrupt state when compute shaders are executed. For now, disable these.
2019-11-22gl_shader_cache: Hack shared memory sizeReinUsesLisp
The current shared memory size seems to be smaller than what the game actually uses. This makes Nvidia's driver consistently blow up; in the case of FE3H it made it explode on Qt's SwapBuffers while SDL2 worked just fine. For now keep this hack since it's still progress over the previous hardcoded shared memory size.