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.
5 years ago
ameerj
c446ada33e
glsl: Declare local memory in main
5 years ago
ameerj
0810714e46
glsl: Add passthrough geometry shader support
5 years ago
ReinUsesLisp
41b2a991c4
shader: Use std::bit_cast instead of Common::BitCast for passthrough
5 years ago
ReinUsesLisp
362888dcb0
glasm: Add passthrough geometry shader support
5 years ago
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.
5 years ago
ReinUsesLisp
649c9cca0f
vk_graphics_pipeline: Implement conservative rendering
5 years ago
ReinUsesLisp
6db3ba6542
shader: Only verify shader when graphics debugging is enabled
5 years ago
ReinUsesLisp
c0705f79b8
shader: Unify shader stage types
5 years ago
lat9nq
0f092f17af
lower_int64_to_int32: Add missing include
5 years ago
ReinUsesLisp
0a75c400e3
shader: Emulate 64-bit integers when not supported
Useful for mobile and Intel Xe devices.
5 years ago
ReinUsesLisp
e3df2285ca
shader: Add int64 to int32 lowering pass
5 years ago
ReinUsesLisp
ba211323ab
shader: Teach global memory base tracker to follow vectors
5 years ago
ReinUsesLisp
f54fa4a1f5
shader: Add constant propagation to integer vectors
5 years ago
ameerj
99e8164b43
glsl: Better IAdd Overflow CC fix
This ensures the original operand values are not overwritten when being used in the overflow detection.
5 years ago
ReinUsesLisp
f158fe9359
shader: Remove IAbs64
5 years ago
ameerj
516c17d4d3
glsl: Fix IADD CC
5 years ago
ameerj
58a052072c
shader_recompiler: Fix IADD3 input partitioning
5 years ago
ReinUsesLisp
04c1dca457
shader: Move loop safety tests to code emission
5 years ago
ReinUsesLisp
e57f54e582
gl_graphics_pipeline: Fix assembly shaders check for transform feedbacks
5 years ago
ameerj
abade15f5e
glsl: Remove frag color initialization
5 years ago
ameerj
1d99187d4c
glasm: Implement SetAttribute ViewportMask
5 years ago
ReinUsesLisp
2cff04fab9
gl_graphics_pipeline: Inline hash and operator== key functions
5 years ago
ReinUsesLisp
97cfedab70
gl_shader_cache: Check previous pipeline before checking hash map
Port optimization from Vulkan.
5 years ago
ReinUsesLisp
40402f3947
gl_graphics_pipeline: Port optimizations from Vulkan pipelines
5 years ago
ameerj
b79424c3bf
emit_glsl_special: Skip initialization of frag_color0
Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest.
5 years ago
ReinUsesLisp
d633ec4ecc
shader: Calibrate loop safety threshold
5 years ago
ReinUsesLisp
2cd96376b5
buffer_cache: Fix debugging leftover
5 years ago
Morph
6e8400f165
glsl: Add missing ; in EmitSetSampleMask
Fixes shader compilation in Okami HD
5 years ago
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.
5 years ago
ameerj
7d20cd7656
glsl: Fix output varying initialization when transform feedback is used
5 years ago
ameerj
c7921c7812
shaders: Allow shader notify when async shaders is disabled
5 years ago
ameerj
633c54a202
texture_pass: Fix is_read image qualification
Atomic operations are considered to have both read and write access. This was not being accounted for.
5 years ago
ReinUsesLisp
9c387a270b
shader: Align constant buffer sizes to 16 bytes
WAR for AMD reading zeroes on uniform buffers of size 2.
5 years ago
ReinUsesLisp
10f91c42e2
spirv: Properly handle devices without int8 and int16
5 years ago
ReinUsesLisp
fe5fc478e7
spirv: Handle small storage buffer loads on devices with no support
5 years ago
ReinUsesLisp
b3bf0d4ebb
vk_graphics_pipeline: Use VK_KHR_push_descriptor when available
~51% faster on Nvidia compared to previous method.
5 years ago
ameerj
45c91da369
glsl: Fix cbuf component indexing bug falback
5 years ago
ReinUsesLisp
16d28031e7
shader: Simplify MergeDualVertexPrograms
5 years ago
ReinUsesLisp
c4a71824d5
shader: Properly manage attributes not written from previous stages
5 years ago
ReinUsesLisp
ebd1146ea7
glsl: Only declare fragment outputs on fragment shaders
5 years ago
ReinUsesLisp
9389e71b12
shader: Split profile and runtime info headers
5 years ago
ReinUsesLisp
52be21495e
shader: Add support for native 16-bit floats
5 years ago
ReinUsesLisp
41c634a7a9
shader: Rename maxwell/program.h to translate_program.h
5 years ago
ReinUsesLisp
a9a5f5b535
vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on Intel
5 years ago
ameerj
7a9b23ea70
glsl: Obey need_declared_frag_colors to declare and initialize all frag_color
Fixes Ori and the blind forest title screen
5 years ago
ameerj
1d2c13fd7b
glsl: Address rest of feedback
5 years ago
ameerj
52bd1d7788
glsl: Move gl_Position/generic attribute initialization to EmitProlgue
5 years ago
ameerj
bc50a9ef20
glsl: Conditionally use fine/coarse derivatives based on device support
5 years ago
ameerj
4e73fdbd0f
glsl: Cleanup/Address feedback
5 years ago