summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_rasterizer: Bind graphics images to draw commandsReinUsesLisp2019-11-231-1/+1
| | | | | Images were not being bound to draw invocations because these would require a cache invalidation.
* gl_shader_cache: Specialize local memory size for compute shadersReinUsesLisp2019-11-231-2/+2
| | | | | Local memory size in compute shaders was stubbed with an arbitary size. This commit specializes local memory size from guest GPU parameters.
* gl_shader_cache: Specialize shared memory sizeReinUsesLisp2019-11-231-2/+2
| | | | | Shared memory was being declared with an undefined size. Specialize from guest GPU parameters the compute shader's shared memory size.
* gl_shader_cache: Specialize shader workgroupReinUsesLisp2019-11-231-2/+2
| | | | | | Drop the usage of ARB_compute_variable_group_size and specialize compute shaders instead. This permits compute to run on AMD and Intel proprietary drivers.
* shader/texture: Deduce texture buffers from lockerReinUsesLisp2019-11-231-16/+17
| | | | | Instead of specializing shaders to separate texture buffers from 1D textures, use the locker to deduce them while they are being decoded.
* gl_shader_disk_cache: Store and load fast BRXReinUsesLisp2019-10-251-25/+158
|
* gl_shader_decompiler: Move entries to a separate functionReinUsesLisp2019-10-251-251/+29
|
* gl_shader_disk_cache: Properly ignore existing cacheReinUsesLisp2019-10-061-12/+16
| | | | | Previously old entries where appended to the file even if the shader cache was ignored at boot. Address that issue.
* gl_shader_decompiler: Use uint for images and fix SUATOMReinUsesLisp2019-09-211-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.
* shader/image: Implement SULD and remove irrelevant codeReinUsesLisp2019-09-211-10/+0
| | | | | * Implement SULD as float. * Remove conditional declaration of GL_ARB_shader_viewport_layer_array.
* shader/image: Implement SUATOM and fix SUSTReinUsesLisp2019-09-111-6/+14
|
* gl_shader_decompiler: Keep track of written images and mark them as modifiedReinUsesLisp2019-09-061-5/+10
|
* gl_rasterizer: Implement compute shadersReinUsesLisp2019-07-151-1/+1
|
* gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shadersReinUsesLisp2019-07-081-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.
* gl_shader_disk_cache: Address feedbackReinUsesLisp2019-06-241-2/+5
|
* shader_cache: Correct versioning and size calculation.Fernando Sahmkow2019-06-211-1/+1
|
* Fix rebase errorsFernando Sahmkow2019-06-211-1/+1
|
* gl_shader_decompiler: Implement image binding settingsReinUsesLisp2019-06-211-9/+34
|
* gl_rasterizer: Track texture buffer usageReinUsesLisp2019-06-211-2/+2
|
* gl_shader_cache: Fix clang strict standard build issuesReinUsesLisp2019-05-211-5/+3
|
* gl_shader_disk_cache: in-class initialize virtual file offset of ShaderDiskCacheOpenGLLioncash2019-05-191-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.
* gl_shader_disk_cache: Default ShaderDiskCacheOpenGL's destructor in the cpp fileLioncash2019-05-191-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.
* gl_shader_disk_cache: Remove redundant code string construction in LoadDecompiledEntry()Lioncash2019-05-191-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.
* gl_shader_disk_cache: Make variable non-const in decompiled entry caseLioncash2019-05-191-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.
* gl_shader_disk_cache: Special-case boolean handlingLioncash2019-05-191-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.
* gl_shader_disk_cache: Skip stored shader variants instead of assertingReinUsesLisp2019-05-011-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.
* Re added new lines at the end of filesFreddyFunk2019-04-231-1/+1
|
* gl_shader_disk_cache: Compress precompiled shader cache file with Zstandardunknown2019-04-231-6/+10
|
* gl_shader_disk_cache: Use VectorVfsFile for the virtual precompiled shader cache fileunknown2019-04-231-92/+112
|
* gl_shader_disk_cache: Remove per shader compressionunknown2019-04-231-44/+11
|
* Merge pull request #2348 from FernandoS27/guest-bindlessbunnei2019-04-181-5/+9
|\ | | | | Implement Bindless Textures on Shader Decompiler and GL backend
| * Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.Fernando Sahmkow2019-04-081-3/+4
| |
| * Unify both sampler types.Fernando Sahmkow2019-04-081-3/+6
| |
| * Implement Bindless Samplers and TEX_B in the IR.Fernando Sahmkow2019-04-081-1/+1
| |
* | shader_ir: Implement STG, keep track of global memory usage and flushReinUsesLisp2019-04-141-3/+10
|/
* common/zstd_compression: simplify decompression interfaceunknown2019-03-291-3/+2
|
* gl_shader_disk_cache: Fixup clang formatunknown2019-03-291-2/+3
|
* gl_shader_disk_cache: Use Zstandard for compressionunknown2019-03-291-6/+6
|
* gl_shader_disk_cache: Use LZ4HC with compression level 9 instead of compression level 12 for less compression timeunknown2019-03-291-3/+3
|
* Addressed feedbackunknown2019-03-291-6/+6
|
* gl_shader_disk_cache: Use better compression for transferable and precompiled shader disk chache filesunknown2019-03-291-2/+2
|
* data_compression: Move LZ4 compression from video_core/gl_shader_disk_cache to common/data_compressionunknown2019-03-291-38/+8
|
* gl_shader_disk_cache: Remove #pragma once from cpp fileLioncash2019-02-271-2/+0
| | | | This is only necessary in headers. Silences a warning with clang.
* gl_shader_disk_cache: Check LZ4 size limitFrederic L2019-02-071-0/+4
| | | Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
* gl_shader_disk_cache: Consider compressed size zero as an errorFrederic L2019-02-071-2/+2
| | | Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
* gl_shader_disk_cache: Use unordered containersReinUsesLisp2019-02-071-6/+6
|
* gl_shader_disk_cache: Pass core system as argument and guard against games without title idsReinUsesLisp2019-02-071-4/+10
|
* gl_shader_disk_cache: Guard reads and writes against failureReinUsesLisp2019-02-071-210/+315
|
* gl_shader_disk_cache: Address miscellaneous feedbackReinUsesLisp2019-02-071-8/+18
|
* gl_shader_disk_cache: Pass return values returning instead of by parametersReinUsesLisp2019-02-071-25/+22
|
* gl_shader_disk_cache: Compress program binaries using LZ4ReinUsesLisp2019-02-071-7/+28
|
* gl_shader_disk_cache: Compress GLSL code using LZ4ReinUsesLisp2019-02-071-5/+56
|
* gl_shader_disk_cache: Save GLSL and entries into the precompiled fileReinUsesLisp2019-02-071-21/+156
|
* settings: Hide shader cache behind a settingReinUsesLisp2019-02-071-0/+21
|
* gl_shader_disk_cache: Invalidate shader cache changes with CMake hashReinUsesLisp2019-02-071-7/+16
|
* gl_shader_disk_cache: Add transferable cache invalidationReinUsesLisp2019-02-071-0/+5
|
* gl_shader_disk_cache: Add precompiled loadReinUsesLisp2019-02-071-0/+39
|
* gl_shader_disk_cache: Add precompiled saveReinUsesLisp2019-02-071-0/+43
|
* gl_shader_disk_cache: Add transferable loadReinUsesLisp2019-02-071-0/+52
|
* gl_shader_disk_cache: Add transferable storesReinUsesLisp2019-02-071-0/+92
|
* gl_shader_disk_cache: Add ShaderDiskCacheOpenGL class and helpersReinUsesLisp2019-02-071-0/+52
|
* gl_shader_disk_cache: Add file and move BaseBindings declarationReinUsesLisp2019-02-071-0/+14