summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_manager.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_rasterizer: Emulate viewport flipping with ARB_clip_controlReinUsesLisp2019-11-071-10/+5
| | | | | | | Emulates negative y viewports with ARB_clip_control. This allows us to more easily emulated pipelines with tessellation and/or geometry shader stages. It also avoids corrupting games with transform feedbacks and negative viewports (gl_Position.y was being modified).
* gl_rasterizer: Move alpha testing to the OpenGL pipelineReinUsesLisp2019-05-301-7/+1
| | | | Removes the alpha testing code from each fragment shader invocation.
* gl_shader_manager: Move code to source file and minor clean upReinUsesLisp2019-04-111-33/+28
|
* Merge pull request #2321 from ReinUsesLisp/gl-state-reworkbunnei2019-04-071-1/+0
|\ | | | | gl_state: Rework to enable individual applies
| * gl_state: Rework to enable individual appliesReinUsesLisp2019-04-041-1/+0
| |
* | gl_shader_manager: Move using statement into the cpp fileLioncash2019-03-281-3/+1
| | | | | | | | | | Avoids introducing Maxwell3D into the namespace for everything that includes the header.
* | gl_shader_manager: Remove reliance on global accessor within MaxwellUniformData::SetFromRegs()Lioncash2019-03-281-1/+2
| | | | | | | | | | | | | | | | | | We can just pass in the Maxwell3D instance instead of going through the system class to get at it. This also lets us simplify the interface a little bit. Since we pass in the Maxwell3D context now, we only really need to pass the shader stage index value in.
* | gl_shader_manager: Amend Doxygen string for MaxwellUniformDataLioncash2019-03-271-3/+3
|/ | | | | Previously only one line of the whole comment was in proper Doxygen formatting.
* gl_shader_manager: Update pipeline when programs have changedReinUsesLisp2018-11-291-4/+17
|
* gl_shader_decompiler: Implement S2R's Y_DIRECTIONReinUsesLisp2018-11-251-3/+6
|
* fix viewport and scissor behaviorRodolfo Bogado2018-11-171-0/+1
|
* gl_resource_manager: Split implementations in .cpp file.Markus Wick2018-11-061-0/+1
| | | | | Those implementations are quite costly, so there is no need to inline them to the caller. Ressource deletion is often a performance bug, so in this way, we support to add breakpoints to them.
* Use standard UBO and fix/stylize the codeFernandoS272018-10-221-1/+7
|
* gl_shader_decompiler: Implement geometry shadersReinUsesLisp2018-10-071-1/+6
|
* gl_state: Pack sampler bindings into a single ARB_multi_bindReinUsesLisp2018-09-281-3/+0
|
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-1/+1
|
* renderer_opengl: Implement a new shader cache.bunnei2018-08-281-116/+10
|
* renderer_opengl: Namespace OpenGL codeLioncash2018-08-221-2/+2
| | | | | | | Namespaces all OpenGL code under the OpenGL namespace. Prevents polluting the global namespace and allows clear distinction between other renderers' code in the future.
* Rasterizer: Implemented instanced rendering.Subv2018-08-151-2/+3
| | | | | | We keep track of the current instance and update an uniform in the shaders to let them know which instance they are. Instanced vertex arrays are not yet implemented.
* gl_shader_manager: Make ProgramManager's GetCurrentProgramStage() a const member functionLioncash2018-08-031-1/+1
| | | | This function doesn't modify class state, so it can be made const.
* gl_shader_manager: Take ShaderSetup instances by const reference in UseProgrammableVertexShader() and UseProgrammableFragmentShader()Lioncash2018-08-021-2/+2
| | | | | | | | | Avoids performing unnecessary copies of 65560 byte sized ShaderSetup instances, considering it's only used as part of lookup and not modified. Given the parameters were already const, it's likely taking these parameters by reference was intended but the ampersand was forgotten.
* gl_shader_manager: Replace unimplemented function prototypeLioncash2018-07-211-1/+0
| | | | This was just a linker error waiting to happen.
* GPU: Implement sampling multiple textures in the generated glsl shaders.Subv2018-06-061-1/+0
| | | | | | All tested games that use a single texture show no regression. Only Texture2D textures are supported right now, each shader gets its own "tex_fs/vs/gs" sampler array to maintain independent textures between shader stages, the textures themselves are reused if possible.
* gl_shader_gen: Support vertical/horizontal viewport flipping. (#347)bunnei2018-04-181-3/+2
| | | | | | * gl_shader_gen: Support vertical/horizontal viewport flipping. * fixup! gl_shader_gen: Support vertical/horizontal viewport flipping.
* GPU: Don't use explicit binding points when uploading the constbuffers to opengl.Subv2018-04-151-0/+11
| | | | The bindpoints will now be dynamically calculated based on the number of buffers used by the previous shader stage.
* shaders: Expose hints about used const buffers.bunnei2018-04-151-13/+28
|
* GPU: Upload the entirety of each constbuffer for each shader stage as SSBOs.Subv2018-04-151-4/+3
| | | | We're going to need the shader generator to give us a mapping of the actual used const buffers to properly bind them to the shader.
* shaders: Add NumTextureSamplers const, remove unused #pragma.bunnei2018-04-151-0/+3
|
* gl_shader_manager: Cleanup and consolidate uniform handling.bunnei2018-04-141-22/+9
|
* renderer_opengl: Add gl_shader_manager class.bunnei2018-04-141-0/+161