lat9nq
ddd4720fe4
general: Add setting shader_backend
...
GLASM is getting good enough that we can move it out of advanced
graphics settings. This removes the setting `use_assembly_shaders`,
opting for a enum class `shader_backend`. This comes with the benefits
that it is extensible for additional shader backends besides GLSL and
GLASM, and this will work better with a QComboBox.
Qt removes the related assembly shader setting from the Advanced
Graphics section and places it as a new QComboBox in the API Settings
group. This will replace the Vulkan device selector when OpenGL is
selected.
Additionally, mark all of the custom anisotropic filtering settings as
"WILL BREAK THINGS", as that is the case with a select few games.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
362888dcb0
glasm: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
ReinUsesLisp
b1df436cef
shader: Rework varyings and implement passthrough geometry shaders
...
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
649c9cca0f
vk_graphics_pipeline: Implement conservative rendering
2021-07-22 21:51:39 -04:00
ReinUsesLisp
c0705f79b8
shader: Unify shader stage types
2021-07-22 21:51:39 -04:00
ReinUsesLisp
0a75c400e3
shader: Emulate 64-bit integers when not supported
...
Useful for mobile and Intel Xe devices.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
e57f54e582
gl_graphics_pipeline: Fix assembly shaders check for transform feedbacks
2021-07-22 21:51:39 -04:00
ReinUsesLisp
2cff04fab9
gl_graphics_pipeline: Inline hash and operator== key functions
2021-07-22 21:51:39 -04:00
ReinUsesLisp
97cfedab70
gl_shader_cache: Check previous pipeline before checking hash map
...
Port optimization from Vulkan.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
40402f3947
gl_graphics_pipeline: Port optimizations from Vulkan pipelines
2021-07-22 21:51:39 -04:00
ReinUsesLisp
2cd96376b5
buffer_cache: Fix debugging leftover
2021-07-22 21:51:38 -04:00
ReinUsesLisp
b7cf8e0de4
buffer_cache: Fix size reductions not having in mind bind sizes
...
A buffer binding can change between shaders without changing the
shaders. This lead to outdated bindings on OpenGL.
2021-07-22 21:51:38 -04:00
ameerj
c7921c7812
shaders: Allow shader notify when async shaders is disabled
2021-07-22 21:51:38 -04:00
ReinUsesLisp
b3bf0d4ebb
vk_graphics_pipeline: Use VK_KHR_push_descriptor when available
...
~51% faster on Nvidia compared to previous method.
2021-07-22 21:51:38 -04:00
ReinUsesLisp
c4a71824d5
shader: Properly manage attributes not written from previous stages
2021-07-22 21:51:38 -04:00
ReinUsesLisp
9389e71b12
shader: Split profile and runtime info headers
2021-07-22 21:51:38 -04:00
ReinUsesLisp
52be21495e
shader: Add support for native 16-bit floats
2021-07-22 21:51:38 -04:00
ReinUsesLisp
41c634a7a9
shader: Rename maxwell/program.h to translate_program.h
2021-07-22 21:51:38 -04:00
ReinUsesLisp
a9a5f5b535
vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on Intel
2021-07-22 21:51:38 -04:00
ameerj
1d2c13fd7b
glsl: Address rest of feedback
2021-07-22 21:51:38 -04:00
ameerj
bc50a9ef20
glsl: Conditionally use fine/coarse derivatives based on device support
2021-07-22 21:51:38 -04:00
ameerj
4e73fdbd0f
glsl: Cleanup/Address feedback
2021-07-22 21:51:38 -04:00
ameerj
7e661303d5
gl_shader_cache: Implement async shaders
2021-07-22 21:51:38 -04:00
ameerj
b33af69513
glsl: Add stubs for sparse queries and variable aoffi when not supported
2021-07-22 21:51:38 -04:00
ameerj
18aae22ad2
gl_shader_cache: Remove const from pipeline source arguments
2021-07-22 21:51:38 -04:00
ameerj
07a59e1404
gl_shader_cache: Move OGL shader compilation to the respective Pipeline constructor
2021-07-22 21:51:38 -04:00
ameerj
7bf5c1164e
glsl: Address more feedback. Implement indexed texture reads
2021-07-22 21:51:38 -04:00
ameerj
3ad05ecd4e
gl_rasterizer: Add texture fetch barrier for fragments
...
Fixes flicker seen in XC2
2021-07-22 21:51:37 -04:00
ameerj
656de6639c
glsl: Implement fswzadd
...
and wip nv thread shuffle impl
2021-07-22 21:51:37 -04:00
ameerj
c800b9bf92
glsl: Rebase fixes
2021-07-22 21:51:37 -04:00
ameerj
8c9d420fa5
glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupported
2021-07-22 21:51:37 -04:00
ameerj
0c162d8b17
glsl: skip gl_ViewportIndex write if device does not support it
2021-07-22 21:51:37 -04:00
ameerj
f54240823c
glsl: Implement transform feedback
2021-07-22 21:51:37 -04:00
ameerj
ee44e94932
glsl: Implement VOTE for subgroup size potentially larger
2021-07-22 21:51:36 -04:00
ameerj
32328acc39
glsl: Implement some attribute getters and setters
2021-07-22 21:51:36 -04:00
ameerj
ce2ddb7d69
glsl: Query GL Device for FP16 extension support
2021-07-22 21:51:36 -04:00
ReinUsesLisp
fc7cb28bc7
glsl: Fixup build issues
2021-07-22 21:51:36 -04:00
ameerj
fda83fe3c5
glsl: Initial backend
2021-07-22 21:51:35 -04:00
ReinUsesLisp
eb7925b421
vk_rasterizer: Exit render passes on fragment barriers
2021-07-22 21:51:35 -04:00
Rodrigo Locatti
0ce45868ca
vk_graphics_pipeline: Fix path with no VK_EXT_extended_dynamic_state
2021-07-22 21:51:35 -04:00
ReinUsesLisp
ee69b7aa59
buffer_cache: Invalidate fast buffers on compute
2021-07-22 21:51:35 -04:00
lat9nq
3a70b6c79b
shader: Add shader loop safety check settings
...
Also add a setting for enable Nsight Aftermath.
2021-07-22 21:51:35 -04:00
ReinUsesLisp
59a989f149
vulkan_device: Enable VK_EXT_vertex_input_dynamic_state
2021-07-22 21:51:35 -04:00
ReinUsesLisp
cefa403eba
vk_pipeline_cache: Skip cached pipelines with different dynamic state
2021-07-22 21:51:35 -04:00
ReinUsesLisp
1805ba1763
vulkan: Add VK_EXT_vertex_input_dynamic_state support
...
Reduces the number of total pipelines generated on Vulkan.
Tested on Super Smash Bros. Ultimate.
2021-07-22 21:51:35 -04:00
ReinUsesLisp
8fae35f767
shader: Reorder shader cache directories
2021-07-22 21:51:35 -04:00
ReinUsesLisp
2e99f9ce1b
vk_rasterizer: Implement first index
2021-07-22 21:51:35 -04:00
ReinUsesLisp
969f76707c
vulkan: Use VK_EXT_provoking_vertex when available
2021-07-22 21:51:35 -04:00
ameerj
6e65f16895
gl_buffer_cache: Use unorm internal formats for snorm texture buffer views
...
Fixes black textures in UE4 games
2021-07-22 21:51:35 -04:00
ReinUsesLisp
09c4a71dd4
shader_environment: Fix local memory size calculations
2021-07-22 21:51:35 -04:00