summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_cache.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* shader_cache: Only lock covered instructions.Markus Wick2018-11-201-0/+1
|
* Merge pull request #1669 from ReinUsesLisp/fixup-gsbunnei2018-11-111-2/+6
|\ | | | | gl_shader_decompiler: Guard out of bound geometry shader input reads
| * gl_shader_decompiler: Guard out of bound geometry shader input readsReinUsesLisp2018-11-101-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Geometry shaders follow a pattern that results in out of bound reads. This pattern is: - VSETP to predicate - Use that predicate to conditionally set a register a big number - Use the register to access geometry shaders At the time of writing this commit I don't know what's the intent of this number. Some drivers argue about these out of bound reads. To avoid this issue, input reads are guarded limiting reads to the highest posible vertex input of the current topology (e.g. points to 1 and triangles to 3).
* | rasterizer_cache: Remove reliance on the System singletonLioncash2018-11-081-1/+3
|/ | | | | | Rather than have a transparent dependency, we can make it explicit in the interface. This also gets rid of the need to put the core include in a header.
* video_core: Move OpenGL specific utils to its rendererReinUsesLisp2018-10-291-2/+3
|
* gl_shader_decompiler: Implement geometry shadersReinUsesLisp2018-10-071-5/+29
|
* Added glObjectLabels for renderdoc for textures and shader programs (#1384)David2018-09-231-0/+2
| | | | | | | | * Added glObjectLabels for renderdoc for textures and shader programs * Changed hardcoded "Texture" name to reflect the texture type instead * Removed string initialize
* Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi2018-09-151-3/+3
|
* video_core: fixed arithmetic overflow warnings & improved code stylePatrick Elsässer2018-09-091-4/+4
| | | | | | | | - Fixed all warnings, for renderer_opengl items, which were indicating a possible incorrect behavior from integral promotion rules and types larger than those in which arithmetic is typically performed. - Added const for variables where possible and meaningful. - Added constexpr where possible.
* gl_shader_cache: Use an u32 for the binding point cache.Markus Wick2018-09-041-8/+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.
* gl_renderer: Cache textures, framebuffers, and shaders based on CPU address.bunnei2018-08-311-11/+7
|
* gl_shader_cache: Remove unused program_code vector in GetShaderAddress()Lioncash2018-08-281-2/+1
| | | | | | | | Given std::vector is a type with a non-trivial destructor, this variable cannot be optimized away by the compiler, even if unused. Because of that, something that was intended to be fairly lightweight, was actually allocating 32KB and deallocating it at the end of the function.
* renderer_opengl: Implement a new shader cache.bunnei2018-08-281-0/+131