Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | renderer_opengl: Add assembly program code paths | ReinUsesLisp | 2020-05-19 | 1 | -0/+9 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | gl_state: Remove completely | ReinUsesLisp | 2020-02-28 | 1 | -1/+0 |
| | |||||
* | gl_state: Remove program tracking | ReinUsesLisp | 2020-02-28 | 1 | -2/+0 |
| | |||||
* | gl_state: Remove framebuffer tracking | ReinUsesLisp | 2020-02-28 | 1 | -3/+1 |
| | |||||
* | gl_state: Remove texture and sampler tracking | ReinUsesLisp | 2020-02-28 | 1 | -3/+0 |
| | |||||
* | gl_state: Remove VAO cache and tracking | ReinUsesLisp | 2020-02-28 | 1 | -18/+0 |
| | |||||
* | renderer_opengl: Add OGLRenderbuffer to resource/state management. | bunnei | 2020-02-26 | 1 | -0/+18 |
| | |||||
* | gl_resource_manager: Add managed query class | ReinUsesLisp | 2020-02-14 | 1 | -0/+17 |
| | |||||
* | gl_texture_cache: Correct asserts | Fernando Sahmkow | 2019-06-26 | 1 | -1/+1 |
| | |||||
* | gl_resource_manager: Correct MakeStreamCopy | Fernando Sahmkow | 2019-06-25 | 1 | -2/+1 |
| | |||||
* | gl_texture_cache: Use Stream Buffers instead of Persistant for Buffer Copies. | Fernando Sahmkow | 2019-06-21 | 1 | -3/+2 |
| | |||||
* | texture_cache: Implement Buffer Copy and detect Turing GPUs Image Copies | Fernando Sahmkow | 2019-06-21 | 1 | -0/+8 |
| | |||||
* | Add OGLTextureView | Fernando Sahmkow | 2019-06-21 | 1 | -0/+18 |
| | |||||
* | gl_shader_util: Add parameter to handle retrievable programs | ReinUsesLisp | 2019-02-07 | 1 | -2/+3 |
| | |||||
* | gl_rasterizer: Use DSA for textures | ReinUsesLisp | 2019-01-30 | 1 | -2/+2 |
| | |||||
* | gl_rasterizer: Use DSA for vertex array objects | ReinUsesLisp | 2019-01-06 | 1 | -3/+2 |
| | |||||
* | gl_resource_manager: Amend clang-format discrepancies | Lioncash | 2018-11-08 | 1 | -4/+2 |
| | | | | Fixes the buildbot. | ||||
* | gl_resource_manager: Profile creation and deletion. | Markus Wick | 2018-11-06 | 1 | -0/+42 |
| | |||||
* | gl_resource_manager: Split implementations in .cpp file. | Markus Wick | 2018-11-06 | 1 | -0/+146 |
| | | | | | Those implementations are quite costly, so there is no need to inline them to the caller. Ressource deletion is often a performance bug, so in this way, we support to add breakpoints to them. | ||||
* | OpenGL: Make OpenGL object resource wrappers fully inline | Yuri Kunde Schlesner | 2015-07-26 | 1 | -111/+0 |
| | | | | | The functions are so simple that having them separate only bloats the code and hinders optimization. | ||||
* | OpenGL renderer | tfarley | 2015-05-23 | 1 | -0/+111 |