summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-10-06gl_shader_disk_cache: Properly ignore existing cacheReinUsesLisp1-12/+16
Previously old entries where appended to the file even if the shader cache was ignored at boot. Address that issue.
2019-09-21gl_shader_decompiler: Use uint for images and fix SUATOMReinUsesLisp1-8/+4
In the process remove implementation of SUATOM.MIN and SUATOM.MAX as these require a distinction between U32 and S32. These have to be implemented with imageCompSwap loop.
2019-09-21shader/image: Implement SULD and remove irrelevant codeReinUsesLisp1-10/+0
* Implement SULD as float. * Remove conditional declaration of GL_ARB_shader_viewport_layer_array.
2019-09-11shader/image: Implement SUATOM and fix SUSTReinUsesLisp1-6/+14
2019-09-06gl_shader_decompiler: Keep track of written images and mark them as modifiedReinUsesLisp1-5/+10
2019-07-15gl_rasterizer: Implement compute shadersReinUsesLisp1-1/+1
2019-07-08gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shadersReinUsesLisp1-0/+10
This commit implements gl_ViewportIndex and gl_Layer in vertex and geometry shaders. In the case it's used in a vertex shader, it requires ARB_shader_viewport_layer_array. This extension is available on AMD and Nvidia devices (mesa and proprietary drivers), but not available on Intel on any platform. At the moment of writing this description I don't know if this is a hardware limitation or a driver limitation. In the case that ARB_shader_viewport_layer_array is not available, writes to these registers on a vertex shader are ignored, with the appropriate logging.
2019-06-24gl_shader_disk_cache: Address feedbackReinUsesLisp1-2/+5
2019-06-21shader_cache: Correct versioning and size calculation.Fernando Sahmkow1-1/+1
2019-06-21Fix rebase errorsFernando Sahmkow1-1/+1
2019-06-21gl_shader_decompiler: Implement image binding settingsReinUsesLisp1-9/+34
2019-06-21gl_rasterizer: Track texture buffer usageReinUsesLisp1-2/+2
2019-05-21gl_shader_cache: Fix clang strict standard build issuesReinUsesLisp1-5/+3
2019-05-19gl_shader_disk_cache: in-class initialize virtual file offset of ShaderDiskCacheOpenGLLioncash1-2/+1
Given the offset is assigned a fixed value in the constructor, we can just assign it directly and get rid of the need to write the name of the variable again in the constructor initializer list.
2019-05-19gl_shader_disk_cache: Default ShaderDiskCacheOpenGL's destructor in the cpp fileLioncash1-0/+2
Given the disk shader cache contains non-trivial types, we should default it in the cpp file in order to prevent inlining of the complex destruction logic.
2019-05-19gl_shader_disk_cache: Remove redundant code string construction in LoadDecompiledEntry()Lioncash1-2/+2
We don't need to load the code into a vector and then construct a string over the data. We can just create a string with the necessary size ahead of time, and read the data directly into it, getting rid of an unnecessary heap allocation.
2019-05-19gl_shader_disk_cache: Make variable non-const in decompiled entry caseLioncash1-1/+1
std::move does nothing when applied to a const variable. Resources can't be moved if the object is immutable. With this change, we don't end up making several unnecessary heap allocations and copies.
2019-05-19gl_shader_disk_cache: Special-case boolean handlingLioncash1-23/+20
Booleans don't have a guaranteed size, but we still want to have them integrate into the disk cache system without needing to actually use a different type. We can do this by supplying non-template overloads for the bool type. Non-template overloads always have precedence during function resolution, so this is safe to provide. This gets rid of the need to smatter ternary conditionals, as well as the need to use u8 types to store the value in.
2019-05-01gl_shader_disk_cache: Skip stored shader variants instead of assertingReinUsesLisp1-1/+4
Instead of asserting on already stored shader variants, silently skip them. This shouldn't be happening but when a shader is invalidated and it is not stored in the shader cache, this assert would hit and save that shader anyways when the asserts are disabled.
2019-04-23Re added new lines at the end of filesFreddyFunk1-1/+1
2019-04-23gl_shader_disk_cache: Compress precompiled shader cache file with Zstandardunknown1-6/+10
2019-04-23gl_shader_disk_cache: Use VectorVfsFile for the virtual precompiled shader cache fileunknown1-92/+112
2019-04-23gl_shader_disk_cache: Remove per shader compressionunknown1-44/+11
2019-04-14shader_ir: Implement STG, keep track of global memory usage and flushReinUsesLisp1-3/+10
2019-04-08Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.Fernando Sahmkow1-3/+4
2019-04-08Unify both sampler types.Fernando Sahmkow1-3/+6
2019-04-08Implement Bindless Samplers and TEX_B in the IR.Fernando Sahmkow1-1/+1
2019-03-29common/zstd_compression: simplify decompression interfaceunknown1-3/+2
2019-03-29gl_shader_disk_cache: Fixup clang formatunknown1-2/+3
2019-03-29gl_shader_disk_cache: Use Zstandard for compressionunknown1-6/+6
2019-03-29gl_shader_disk_cache: Use LZ4HC with compression level 9 instead of compression level 12 for less compression timeunknown1-3/+3
2019-03-29Addressed feedbackunknown1-6/+6
2019-03-29gl_shader_disk_cache: Use better compression for transferable and precompiled shader disk chache filesunknown1-2/+2
2019-03-29data_compression: Move LZ4 compression from video_core/gl_shader_disk_cache to common/data_compressionunknown1-38/+8
2019-02-27gl_shader_disk_cache: Remove #pragma once from cpp fileLioncash1-2/+0
This is only necessary in headers. Silences a warning with clang.
2019-02-07gl_shader_disk_cache: Check LZ4 size limitFrederic L1-0/+4
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-07gl_shader_disk_cache: Consider compressed size zero as an errorFrederic L1-2/+2
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-07gl_shader_disk_cache: Use unordered containersReinUsesLisp1-6/+6
2019-02-07gl_shader_disk_cache: Pass core system as argument and guard against games without title idsReinUsesLisp1-4/+10
2019-02-07gl_shader_disk_cache: Guard reads and writes against failureReinUsesLisp1-210/+315
2019-02-07gl_shader_disk_cache: Address miscellaneous feedbackReinUsesLisp1-8/+18
2019-02-07gl_shader_disk_cache: Pass return values returning instead of by parametersReinUsesLisp1-25/+22
2019-02-07gl_shader_disk_cache: Compress program binaries using LZ4ReinUsesLisp1-7/+28
2019-02-07gl_shader_disk_cache: Compress GLSL code using LZ4ReinUsesLisp1-5/+56
2019-02-07gl_shader_disk_cache: Save GLSL and entries into the precompiled fileReinUsesLisp1-21/+156
2019-02-07settings: Hide shader cache behind a settingReinUsesLisp1-0/+21
2019-02-07gl_shader_disk_cache: Invalidate shader cache changes with CMake hashReinUsesLisp1-7/+16
2019-02-07gl_shader_disk_cache: Add transferable cache invalidationReinUsesLisp1-0/+5
2019-02-07gl_shader_disk_cache: Add precompiled loadReinUsesLisp1-0/+39
2019-02-07gl_shader_disk_cache: Add precompiled saveReinUsesLisp1-0/+43
2019-02-07gl_shader_disk_cache: Add transferable loadReinUsesLisp1-0/+52
2019-02-07gl_shader_disk_cache: Add transferable storesReinUsesLisp1-0/+92
2019-02-07gl_shader_disk_cache: Add ShaderDiskCacheOpenGL class and helpersReinUsesLisp1-0/+52
2019-02-07gl_shader_disk_cache: Add file and move BaseBindings declarationReinUsesLisp1-0/+14