summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_gen.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_shader_decompiler: Partially implement several non-2D texture types (Subv).bunnei2018-09-081-6/+44
|
* gl_shader_cache: Use an u32 for the binding point cache.Markus Wick2018-09-041-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.
* renderer_opengl: Implement a new shader cache.bunnei2018-08-281-71/+4
|
* Merge pull request #1157 from lioncash/vecbunnei2018-08-231-10/+15
|\ | | | | gl_shader_gen: Use a std::vector to represent program code instead of std::array
| * gl_shader_gen: Make ShaderSetup's constructor explicitLioncash2018-08-221-1/+1
| | | | | | | | Prevents implicit conversions.
| * gl_shader_gen: Use a std::vector to represent program code instead of std::arrayLioncash2018-08-221-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).
* | renderer_opengl: Namespace OpenGL codeLioncash2018-08-221-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.
* Revert "Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions."bunnei2018-08-221-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.
* Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.Subv2018-08-191-6/+44
| | | | Different sampler types have their parameters in different registers.
* gl_shader_gen: Implement dual vertex shader mode.bunnei2018-07-131-3/+30
| | | | - When VertexA shader stage is enabled, we combine with VertexB program to make a single Vertex Shader stage.
* Merge pull request #534 from Subv/multitexturingbunnei2018-06-071-0/+40
|\ | | | | GPU: Implement sampling multiple textures in the generated glsl shaders.
| * GPU: Implement sampling multiple textures in the generated glsl shaders.Subv2018-06-061-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.
* | gl_shader_gen: Add uniform handling for indirect const buffer access.bunnei2018-06-071-3/+15
|/
* GPU: Use the same buffer names in the generated GLSL and the buffer uploading code.Subv2018-04-151-1/+13
|
* shaders: Expose hints about used const buffers.bunnei2018-04-151-2/+36
|
* gl_shader_gen: Add hashable setup/config structs.bunnei2018-04-141-27/+48
|
* renderer_gl: Port over gl_shader_gen module from Citra.bunnei2018-03-201-0/+66
|
* Remove references to PICA and rasterizers in video_coreJames Rowe2018-01-131-162/+0
|
* gl_rasterizer/lighting: implement geometric factorwwylele2017-06-151-0/+2
|
* gl_rasterizer: sync spot light statuswwylele2017-05-301-1/+2
|
* gl_rasterizer: implement procedural texturewwylele2017-05-201-0/+13
|
* pica: use correct coordinates for texture 2wwylele2017-05-031-0/+1
|
* OpenGL: Pass Pica regs via parameterYuri Kunde Schlesner2017-04-171-3/+3
|
* OpenGL: Move PicaShaderConfig to gl_shader_gen.hYuri Kunde Schlesner2017-04-171-2/+109
| | | | Also move the implementation of CurrentConfig to the cpp file.
* OpenGL: Move Attributes enum to a more appropriate fileYuri Kunde Schlesner2017-04-171-0/+11
|
* Pica: Use a union for PicaShaderConfigJannik Vogel2016-05-031-1/+1
|
* VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot2016-04-301-1/+1
|
* gl_rasterizer: Use MMH3 hash for shader cache hey.bunnei2015-10-221-1/+1
| | | | - Includes a check to confirm no hash collisions.
* gl_shader_gen: Add additional function documentation.bunnei2015-10-221-0/+10
|
* renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups.bunnei2015-10-221-0/+17