- 19 May, 2020 2 commits
-
-
ReinUsesLisp authored
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.
-
ReinUsesLisp authored
Add settings for assembly shaders. Currently hidden to avoid users from accidentally enabled them.
-
- 16 May, 2020 6 commits
-
-
bunnei authored
FS: Improve emulation of device saves
-
bunnei authored
nv_flinger: Use enum for pixel format instead of u32
-
bunnei authored
DmaPusher: Remove dead code in step
-
David Marcec authored
-
David Marcec authored
-
bunnei authored
vk_rasterizer: Match OpenGL's FlushAndInvalidate behavior
-
- 15 May, 2020 2 commits
-
-
ReinUsesLisp authored
Match OpenGL's behavior. This can fix or simplify bisecting issues on Vulkan.
-
Morph authored
-
- 14 May, 2020 3 commits
- 13 May, 2020 1 commit
-
-
bunnei authored
shader_ir: Add separate instructions for ordered and unordered comparisons and fix NE on GLSL
-
- 12 May, 2020 2 commits
-
-
bunnei authored
-
James Rowe authored
-
- 11 May, 2020 13 commits
-
-
bunnei authored
vk_graphics_pipeline: Implement rasterizer_enable on Vulkan
-
bunnei authored
-
bunnei authored
-
bunnei authored
-
bunnei authored
Stub hid:SendKeyboardLockKeyEvent
-
David Marcec authored
-
David Marcec authored
-
David Marcec authored
Supersedes #3738 and #3321
-
bunnei authored
-
bunnei authored
-
bunnei authored
-
bunnei authored
-
David Marcec authored
Needed for Puchikon 4 SmileBASIC 1.0.0
-
- 10 May, 2020 2 commits
-
-
bunnei authored
CI: Don't check clang format on early access builds
-
ReinUsesLisp authored
"Not equal" operators on GLSL seem to behave as unordered when we expect an ordered comparison. Manually emulate this checking for LGE values (numbers, not-NaNs).
-
- 09 May, 2020 9 commits
-
-
James Rowe authored
externals: Cmake version checks
-
Markus Wick authored
-
Markus Wick authored
-
Markus Wick authored
-
Markus Wick authored
-
Markus Wick authored
-
Markus Wick authored
-
Rodrigo Locatti authored
texture: Implement R8G8UI
-
ReinUsesLisp authored
This allows us to use native SPIR-V instructions without having to manually check for NAN.
-