Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2021-07-23 | gl_shader_cache: Store workers in shader cache object | ReinUsesLisp | 1 | -0/+7 | |
2021-07-23 | shader: Handle host exceptions | ReinUsesLisp | 1 | -3/+2 | |
2021-07-23 | gl_shader_cache: Add disk shader cache | ReinUsesLisp | 1 | -4/+6 | |
2021-07-23 | gl_shader_cache: Rename Program abstractions into Pipeline | ReinUsesLisp | 1 | -16/+16 | |
2021-07-23 | gl_shader_cache,glasm: Conditionally use typeless image reads extension | ReinUsesLisp | 1 | -0/+2 | |
2021-07-23 | shader: Initial OpenGL implementation | ReinUsesLisp | 1 | -51/+47 | |
2021-07-23 | shader: Move pipeline cache logic to separate files | ReinUsesLisp | 1 | -13/+45 | |
Move code to separate files to be able to reuse it from OpenGL. This greatly simplifies the pipeline cache logic on Vulkan. Transform feedback state is not yet abstracted and it's still intrusively stored inside vk_pipeline_cache. It will be moved when needed on OpenGL. | |||||
2021-07-23 | shader: Remove old shader management | ReinUsesLisp | 1 | -100/+2 | |
2021-06-22 | bootmanager: Use std::stop_source for stopping emulation | ReinUsesLisp | 1 | -1/+1 | |
Use its std::stop_token to abort shader cache loading. Using std::stop_token instead of std::atomic_bool allows the usage of other utilities like std::stop_callback. | |||||
2020-12-05 | video_core: Resolve more variable shadowing scenarios pt.3 | Lioncash | 1 | -4/+5 | |
Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors. | |||||
2020-12-04 | video_core: Resolve more variable shadowing scenarios | Lioncash | 1 | -1/+1 | |
Resolves variable shadowing scenarios up to the end of the OpenGL code to make it nicer to review. The rest will be resolved in a following commit. | |||||
2020-09-06 | video_core: Remove all Core::System references in renderer | ReinUsesLisp | 1 | -8/+15 | |
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-07-17 | async shaders | David Marcec | 1 | -6/+30 | |
2020-06-24 | gl_shader_cache: Avoid use after move for program size | ReinUsesLisp | 1 | -1/+0 | |
All programs had a size of zero due to this bug, skipping invalidations. While we are at it, remove some unused forward declarations. | |||||
2020-06-07 | gl_shader_cache: Use generic shader cache | ReinUsesLisp | 1 | -31/+20 | |
Trivially port the generic shader cache to OpenGL. | |||||
2020-05-19 | renderer_opengl: Add assembly program code paths | ReinUsesLisp | 1 | -4/+11 | |
Add code required to use OpenGL assembly programs based on NV_gpu_program5. Decompilation for ARB programs is intended to be added in a follow up commit. This does **not** include ARB decompilation and it's not in an usable state. The intention behind assembly programs is to reduce shader stutter significantly on drivers supporting NV_gpu_program5 (and other required extensions). Currently only Nvidia's proprietary driver supports these extensions. Add a UI option hidden for now to avoid people enabling this option accidentally. This code path has some limitations that OpenGL compatibility doesn't have: - NV_shader_storage_buffer_object is limited to 16 entries for a single OpenGL context state (I don't know if this is an intended limitation, an specification issue or I am missing something). Currently causes issues on The Legend of Zelda: Link's Awakening. - NV_parameter_buffer_object can't bind buffers using an offset different to zero. The used workaround is to copy to a temporary buffer (this doesn't happen often so it's not an issue). On the other hand, it has the following advantages: - Shaders build a lot faster. - We have control over how floating point rounding is done over individual instructions (SPIR-V on Vulkan can't do this). - Operations on shared memory can be unsigned and signed. - Transform feedbacks are dynamic state (not yet implemented). - Parameter buffers (uniform buffers) are per stage, matching NVN and hardware's behavior. - The API to bind and create assembly programs makes sense, unlike ARB_separate_shader_objects. | |||||
2020-04-22 | ShaderCache/PipelineCache: Cache null shaders. | Fernando Sahmkow | 1 | -0/+3 | |
2020-04-06 | Shader/Pipeline Cache: Use VAddr instead of physical memory for addressing. | Fernando Sahmkow | 1 | -7/+1 | |
2020-03-09 | video_core: Rename "const buffer locker" to "registry" | ReinUsesLisp | 1 | -4/+4 | |
2020-03-09 | gl_shader_cache: Rework shader cache and remove post-specializations | ReinUsesLisp | 1 | -64/+33 | |
Instead of pre-specializing shaders and then post-specializing them, drop the later and only "specialize" the shader while decoding it. | |||||
2019-11-23 | gl_shader_cache: Remove dynamic BaseBinding specialization | ReinUsesLisp | 1 | -1/+1 | |
2019-11-23 | video_core: Unify ProgramType and ShaderStage into ShaderType | ReinUsesLisp | 1 | -6/+7 | |
2019-11-23 | gl_shader_cache: Specialize shader workgroup | ReinUsesLisp | 1 | -3/+3 | |
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-10-25 | gl_shader_cache: Implement locker variants invalidation | ReinUsesLisp | 1 | -5/+10 | |
2019-10-25 | gl_shader_disk_cache: Store and load fast BRX | ReinUsesLisp | 1 | -1/+6 | |
2019-10-25 | gl_shader_decompiler: Move entries to a separate function | ReinUsesLisp | 1 | -27/+39 | |
2019-10-25 | Shader_Cache: setup connection of ConstBufferLocker | Fernando Sahmkow | 1 | -0/+1 | |
2019-09-04 | gl_shader_cache: Remove special casing for geometry shaders | ReinUsesLisp | 1 | -21/+0 | |
Now that ProgramVariants holds the primitive topology we no longer need to keep track of individual geometry shaders topologies. | |||||
2019-08-30 | video_core: Silent miscellaneous warnings (#2820) | Rodrigo Locatti | 1 | -1/+0 | |
* texture_cache/surface_params: Remove unused local variable * rasterizer_interface: Add missing documentation commentary * maxwell_dma: Remove unused rasterizer reference * video_core/gpu: Sort member declaration order to silent -Wreorder warning * fermi_2d: Remove unused MemoryManager reference * video_core: Silent unused variable warnings * buffer_cache: Silent -Wreorder warnings * kepler_memory: Remove unused MemoryManager reference * gl_texture_cache: Add missing override * buffer_cache: Add missing include * shader/decode: Remove unused variables | |||||
2019-07-16 | gl_shader_cache: Fix clang-format issues | ReinUsesLisp | 1 | -2/+1 | |
2019-07-15 | gl_shader_cache: Address review commentaries | ReinUsesLisp | 1 | -3/+3 | |
2019-07-15 | gl_rasterizer: Implement compute shaders | ReinUsesLisp | 1 | -3/+12 | |
2019-07-04 | gl_shader_cache: Make CachedShader constructor private | Zach Hilman | 1 | -3/+3 | |
Fixes missing review comments introduced. | |||||
2019-06-21 | gl_rasterizer: Track texture buffer usage | ReinUsesLisp | 1 | -9/+8 | |
2019-06-08 | gl_shader_cache: Use static constructors for CachedShader initialization | ReinUsesLisp | 1 | -10/+19 | |
2019-05-30 | gl_shader_cache: Store a system class and drop global accessors | ReinUsesLisp | 1 | -0/+1 | |
2019-05-21 | gl_shader_cache: Use shared contexts to build shaders in parallel | ReinUsesLisp | 1 | -5/+9 | |
2019-04-20 | RasterizerCache Redesign: Flush | Fernando Sahmkow | 1 | -3/+4 | |
flushing is now responsability of children caches instead of the cache object. This change will allow the specific cache to pass extra parameters on flushing and will allow more flexibility. | |||||
2019-04-14 | gl_shader_decompiler: Use variable AOFFI on supported hardware | ReinUsesLisp | 1 | -2/+6 | |
2019-04-04 | video_core/renderer_opengl: Remove unnecessary includes | Lioncash | 1 | -3/+2 | |
Quite a few unused includes have built up over time, particularly on core/memory.h. Removing these includes means the source files including those files will no longer need to be rebuilt if they're changed, making compilation slightly faster in this scenario. | |||||
2019-03-16 | video_core: Refactor to use MemoryManager interface for all memory access. | bunnei | 1 | -4/+4 | |
# Conflicts: # src/video_core/engines/kepler_memory.cpp # src/video_core/engines/maxwell_3d.cpp # src/video_core/morton.cpp # src/video_core/morton.h # src/video_core/renderer_opengl/gl_global_cache.cpp # src/video_core/renderer_opengl/gl_global_cache.h # src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | |||||
2019-03-15 | gpu: Use host address for caching instead of guest address. | bunnei | 1 | -9/+10 | |
2019-02-07 | gl_shader_disk_cache: Use unordered containers | ReinUsesLisp | 1 | -10/+10 | |
2019-02-07 | gl_shader_cache: Link loading screen with disk shader cache load | ReinUsesLisp | 1 | -1/+4 | |
2019-02-07 | gl_shader_disk_cache: Pass core system as argument and guard against games without title ids | ReinUsesLisp | 1 | -1/+5 | |
2019-02-07 | gl_shader_disk_cache: Address miscellaneous feedback | ReinUsesLisp | 1 | -3/+3 | |
2019-02-07 | gl_shader_disk_cache: Save GLSL and entries into the precompiled file | ReinUsesLisp | 1 | -5/+4 | |
2019-02-07 | gl_shader_cache: Refactor to support disk shader cache | ReinUsesLisp | 1 | -16/+43 | |
2019-02-07 | gl_shader_disk_cache: Add file and move BaseBindings declaration | ReinUsesLisp | 1 | -10/+1 | |
2019-02-07 | rasterizer_interface: Add disk cache entry for the rasterizer | ReinUsesLisp | 1 | -0/+3 | |
2019-01-30 | gl_shader_cache: Use explicit bindings | ReinUsesLisp | 1 | -53/+37 | |
2019-01-30 | gl_rasterizer: Implement global memory management | ReinUsesLisp | 1 | -1/+5 | |
2019-01-15 | video_core: Rename glsl_decompiler to gl_shader_decompiler | ReinUsesLisp | 1 | -1/+1 | |
2019-01-15 | video_core: Replace gl_shader_decompiler | ReinUsesLisp | 1 | -0/+1 | |
2019-01-07 | gl_shader_cache: Use dirty flags for shaders | ReinUsesLisp | 1 | -0/+4 | |
2018-12-19 | Fixed uninitialized memory due to missing returns in canary | David Marcec | 1 | -0/+1 | |
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used. | |||||
2018-12-09 | Implemented a shader unique identifier. | Fernando Sahmkow | 1 | -0/+2 | |
2018-11-20 | shader_cache: Only lock covered instructions. | Markus Wick | 1 | -1/+2 | |
2018-11-10 | gl_shader_decompiler: Guard out of bound geometry shader input reads | ReinUsesLisp | 1 | -6/+7 | |
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). | |||||
2018-11-08 | rasterizer_cache: Remove reliance on the System singleton | Lioncash | 1 | -0/+4 | |
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. | |||||
2018-10-22 | Use standard UBO and fix/stylize the code | FernandoS27 | 1 | -10/+0 | |
2018-10-22 | Cache uniform locations and restructure the implementation | FernandoS27 | 1 | -3/+9 | |
2018-10-22 | Remove SyncAlphaTest and clang format | FernandoS27 | 1 | -1/+0 | |
2018-10-22 | Implemented Alpha Testing | FernandoS27 | 1 | -0/+5 | |
2018-10-16 | rasterizer_cache: Refactor to support in-order flushing. | bunnei | 1 | -6/+4 | |
2018-10-16 | rasterizer_cache: Reintroduce method for flushing. | bunnei | 1 | -0/+3 | |
2018-10-07 | gl_shader_decompiler: Implement geometry shaders | ReinUsesLisp | 1 | -2/+44 | |
2018-09-15 | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 1 | -1/+1 | |
2018-09-04 | gl_shader_cache: Use an u32 for the binding point cache. | Markus Wick | 1 | -5/+5 | |
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. | |||||
2018-08-31 | gl_renderer: Cache textures, framebuffers, and shaders based on CPU address. | bunnei | 1 | -4/+3 | |
2018-08-31 | Report correct shader size. | Markus Wick | 1 | -1/+1 | |
Seems like this was an oversee in regards to 1fd979f50a9f4c21fa8cafba7268d959e3076924 It changed GLShader::ProgramCode to a std::vector, so sizeof is wrong. | |||||
2018-08-28 | renderer_opengl: Implement a new shader cache. | bunnei | 1 | -0/+69 | |