summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_gen.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-02-07gl_shader_cache: Fixup GLSL unique identifiersReinUsesLisp1-1/+1
2019-02-07gl_shader_disk_cache: Save GLSL and entries into the precompiled fileReinUsesLisp1-2/+0
2019-01-15video_core: Rename glsl_decompiler to gl_shader_decompilerReinUsesLisp1-1/+1
2019-01-15video_core: Replace gl_shader_decompilerReinUsesLisp1-155/+3
2018-12-09Implemented a shader unique identifier.Fernando Sahmkow1-0/+3
2018-11-29gl_rasterizer: Enable clip distances when set in register and in shaderReinUsesLisp1-0/+1
2018-11-20shader_cache: Only lock covered instructions.Markus Wick1-0/+1
2018-10-20gl_shader_decompiler: Move position varying declaration back to gl_shader_genReinUsesLisp1-0/+2
The intention of declaring them in gl_shader_decompiler was to be able to use blocks to implement geometry shaders. But that wasn't needed in the end and it caused issues when both vertex stages were being used, resulting in a redeclaration of "position".
2018-10-07gl_shader_decompiler: Implement geometry shadersReinUsesLisp1-0/+6
2018-10-06Implemented Depth Compare and Shadow SamplersFernandoS271-3/+11
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi1-9/+9
2018-09-08gl_shader_decompiler: Partially implement several non-2D texture types (Subv).bunnei1-6/+44
2018-09-04gl_shader_cache: Use an u32 for the binding point cache.Markus Wick1-0/+8
The std::string generation with its malloc and free requirement was a noticeable overhead. Also switch to an ordered_map to avoid the std::hash call. As those maps usually have a size of two elements, the lookup time shall not matter.
2018-08-28renderer_opengl: Implement a new shader cache.bunnei1-71/+4
2018-08-22gl_shader_gen: Make ShaderSetup's constructor explicitLioncash1-1/+1
Prevents implicit conversions.
2018-08-22gl_shader_gen: Use a std::vector to represent program code instead of std::arrayLioncash1-10/+15
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-22renderer_opengl: Namespace OpenGL codeLioncash1-6/+6
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-22Revert "Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions."bunnei1-44/+6
- 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-19Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.Subv1-6/+44
Different sampler types have their parameters in different registers.
2018-07-13gl_shader_gen: Implement dual vertex shader mode.bunnei1-3/+30
- When VertexA shader stage is enabled, we combine with VertexB program to make a single Vertex Shader stage.
2018-06-07gl_shader_gen: Add uniform handling for indirect const buffer access.bunnei1-3/+15
2018-06-06GPU: Implement sampling multiple textures in the generated glsl shaders.Subv1-0/+40
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.
2018-04-15GPU: Use the same buffer names in the generated GLSL and the buffer uploading code.Subv1-1/+13
2018-04-15shaders: Expose hints about used const buffers.bunnei1-2/+36
2018-04-14gl_shader_gen: Add hashable setup/config structs.bunnei1-27/+48
2018-03-20renderer_gl: Port over gl_shader_gen module from Citra.bunnei1-0/+66
2018-01-13Remove references to PICA and rasterizers in video_coreJames Rowe1-162/+0
2017-06-15gl_rasterizer/lighting: implement geometric factorwwylele1-0/+2
2017-05-30gl_rasterizer: sync spot light statuswwylele1-1/+2
2017-05-20gl_rasterizer: implement procedural texturewwylele1-0/+13
2017-05-03pica: use correct coordinates for texture 2wwylele1-0/+1
2017-04-17OpenGL: Pass Pica regs via parameterYuri Kunde Schlesner1-3/+3
2017-04-17OpenGL: Move PicaShaderConfig to gl_shader_gen.hYuri Kunde Schlesner1-2/+109
Also move the implementation of CurrentConfig to the cpp file.
2017-04-17OpenGL: Move Attributes enum to a more appropriate fileYuri Kunde Schlesner1-0/+11
2016-05-03Pica: Use a union for PicaShaderConfigJannik Vogel1-1/+1
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot1-1/+1
2015-10-22gl_rasterizer: Use MMH3 hash for shader cache hey.bunnei1-1/+1
- Includes a check to confirm no hash collisions.
2015-10-22gl_shader_gen: Add additional function documentation.bunnei1-0/+10
2015-10-22renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups.bunnei1-0/+17