summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_disk_cache.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-07-23shader: Remove old shader managementReinUsesLisp1-176/+0
2021-05-26common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)Morph1-5/+6
* common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only
2020-09-06video_core: Remove all Core::System references in rendererReinUsesLisp1-8/+8
Now that the GPU is initialized when video backends are initialized, it's no longer needed to query components once the game is running: it can be done when yuzu is booting. This allows us to pass components between constructors and in the process remove all Core::System references in the video backend.
2020-08-16common/fileutil: Convert namespace to Common::FSLioncash1-5/+5
Migrates a remaining common file over to the Common namespace, making it consistent with the rest of common files. This also allows for high-traffic FS related code to alias the filesystem function namespace as namespace FS = Common::FS; for more concise typing.
2020-06-05shader/texture: Join separate image and sampler pairs offlineReinUsesLisp1-0/+1
Games using D3D idioms can join images and samplers when a shader executes, instead of baking them into a combined sampler image. This is also possible on Vulkan. One approach to this solution would be to use separate samplers on Vulkan and leave this unimplemented on OpenGL, but we can't do this because there's no consistent way of determining which constant buffer holds a sampler and which one an image. We could in theory find the first bit and if it's in the TIC area, it's an image; but this falls apart when an image or sampler handle use an index of zero. The used approach is to track for a LOP.OR operation (this is done at an IR level, not at an ISA level), track again the constant buffers used as source and store this pair. Then, outside of shader execution, join the sample and image pair with a bitwise or operation. This approach won't work on games that truly use separate samplers in a meaningful way. For example, pooling textures in a 2D array and determining at runtime what sampler to use. This invalidates OpenGL's disk shader cache :) - Used mostly by D3D ports to Switch
2020-03-09shader/registry: Store graphics and compute metadataReinUsesLisp1-1/+3
Store information GLSL forces us to provide but it's dynamic state in hardware (workgroup sizes, primitive topology, shared memory size).
2020-03-09video_core: Rename "const buffer locker" to "registry"ReinUsesLisp1-1/+1
2020-03-09gl_shader_cache: Rework shader cache and remove post-specializationsReinUsesLisp1-128/+21
Instead of pre-specializing shaders and then post-specializing them, drop the later and only "specialize" the shader while decoding it.
2020-01-24Shader_IR: Store Bound buffer on Shader UsageFernando Sahmkow1-0/+1
2019-11-23gl_shader_cache: Remove dynamic BaseBinding specializationReinUsesLisp1-37/+7
2019-11-23video_core: Unify ProgramType and ShaderStage into ShaderTypeReinUsesLisp1-13/+13
2019-11-23gl_shader_cache: Specialize local memory size for compute shadersReinUsesLisp1-7/+9
Local memory size in compute shaders was stubbed with an arbitary size. This commit specializes local memory size from guest GPU parameters.
2019-11-23gl_shader_cache: Specialize shared memory sizeReinUsesLisp1-7/+11
Shared memory was being declared with an undefined size. Specialize from guest GPU parameters the compute shader's shared memory size.
2019-11-23gl_shader_cache: Specialize shader workgroupReinUsesLisp1-13/+33
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.
2019-11-23shader/texture: Deduce texture buffers from lockerReinUsesLisp1-6/+2
Instead of specializing shaders to separate texture buffers from 1D textures, use the locker to deduce them while they are being decoded.
2019-10-25gl_shader_disk_cache: Store and load fast BRXReinUsesLisp1-1/+11
2019-10-25gl_shader_decompiler: Move entries to a separate functionReinUsesLisp1-28/+4
2019-10-06gl_shader_disk_cache: Properly ignore existing cacheReinUsesLisp1-4/+1
Previously old entries where appended to the file even if the shader cache was ignored at boot. Address that issue.
2019-07-15gl_rasterizer: Implement compute shadersReinUsesLisp1-27/+6
2019-06-24gl_shader_disk_cache: Address feedbackReinUsesLisp1-2/+3
2019-06-21gl_shader_decompiler: Implement image binding settingsReinUsesLisp1-15/+9
2019-06-21gl_rasterizer: Track texture buffer usageReinUsesLisp1-13/+40
2019-05-21gl_shader_cache: Fix clang strict standard build issuesReinUsesLisp1-1/+6
2019-05-19gl_shader_disk_cache: in-class initialize virtual file offset of ShaderDiskCacheOpenGLLioncash1-3/+2
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/+1
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: Make hash specializations noexceptLioncash1-2/+2
The standard library expects hash specializations that don't throw exceptions. Make this explicit in the type to allow selection of better code paths if possible in implementations.
2019-05-19gl_shader_disk_cache: Special-case boolean handlingLioncash1-1/+17
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-04-23gl_shader_disk_cache: Use VectorVfsFile for the virtual precompiled shader cache fileunknown1-8/+45
2019-04-23gl_shader_disk_cache: Remove per shader compressionunknown1-1/+0
2019-02-07gl_shader_disk_cache: Use unordered containersReinUsesLisp1-37/+45
2019-02-07gl_shader_disk_cache: Pass core system as argument and guard against games without title idsReinUsesLisp1-1/+12
2019-02-07gl_shader_disk_cache: Guard reads and writes against failureReinUsesLisp1-6/+24
2019-02-07gl_shader_disk_cache: Address miscellaneous feedbackReinUsesLisp1-25/+29
2019-02-07gl_shader_disk_cache: Pass return values returning instead of by parametersReinUsesLisp1-7/+10
2019-02-07gl_shader_disk_cache: Save GLSL and entries into the precompiled fileReinUsesLisp1-7/+14
2019-02-07gl_shader_disk_cache: Add transferable cache invalidationReinUsesLisp1-0/+3
2019-02-07gl_shader_disk_cache: Add precompiled loadReinUsesLisp1-0/+6
2019-02-07gl_shader_disk_cache: Add precompiled saveReinUsesLisp1-0/+14
2019-02-07gl_shader_disk_cache: Add transferable loadReinUsesLisp1-0/+4
2019-02-07gl_shader_disk_cache: Add transferable storesReinUsesLisp1-0/+102
2019-02-07gl_shader_disk_cache: Add ShaderDiskCacheOpenGL class and helpersReinUsesLisp1-0/+24
2019-02-07gl_shader_disk_cache: Add file and move BaseBindings declarationReinUsesLisp1-0/+41