| Age | Commit message (Collapse) | Author |
|
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.
|
|
Add settings for assembly shaders. Currently hidden to avoid users from
accidentally enabled them.
|
|
hid: Clear keyboard states & fix logic issue
|
|
Add format B8G8R8A8_SRGB and add Attachable capability for B8G8R8A8_UNORM
Used by Bravely Default II
|
|
debugging is enabled.
This commit aims to help easing debugging of driver crashes without
having to modify existing code.
|
|
Logs both physical memory and swapfile sizes, this is useful for support.
|
|
FS: Improve emulation of device saves
|
|
nv_flinger: Use enum for pixel format instead of u32
|
|
DmaPusher: Remove dead code in step
|
|
|
|
|
|
|
|
vk_rasterizer: Match OpenGL's FlushAndInvalidate behavior
|
|
Match OpenGL's behavior. This can fix or simplify bisecting issues on
Vulkan.
|
|
|
|
Frontend: Remove tracking for context wrapper
|
|
audio_renderer: Better voice mixing and 6 channel downmixing
|
|
Improve time zone support
|
|
shader_ir: Add separate instructions for ordered and unordered comparisons and fix NE on GLSL
|
|
Constant attributes (in OpenGL known disabled attributes) are not
supported on Vulkan, even with extensions. To emulate this behavior we
return zero on reads from disabled vertex attributes in shader code.
This has no caching cost because attribute formats are not dynamic state
on Vulkan and we have to store it in the pipeline cache anyway.
- Fixes Animal Crossing: New Horizons terrain borders
|
|
This was a left over from OpenGL when disabled buffers where not properly
emulated. We no longer have to assert this as it is checked in vertex
buffer initialization.
|
|
|
|
|
|
Previously we never cleared the states of the entries and the key would stay held down, also looping over the key bytes for each key lead to setting every bit for the key state instead of the key we wanted
|
|
vk_graphics_pipeline: Implement rasterizer_enable on Vulkan
|
|
|
|
|
|
|
|
Stub hid:SendKeyboardLockKeyEvent
|
|
|
|
|
|
Supersedes #3738 and #3321
|
|
|
|
|
|
|
|
|
|
Needed for Puchikon 4 SmileBASIC 1.0.0
|
|
CI: Don't check clang format on early access builds
|
|
"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).
|
|
|
|
|
|
|
|
externals: Cmake version checks
|
|
|
|
|
|
|
|
|
|
|
|
|
|
texture: Implement R8G8UI
|