Commit Graph

19356 Commits (7b39215c8a0842fff38f8edb2b8ee67038eb96c5)
 

Author SHA1 Message Date
lat9nq fb9b1787f8 video_core: Enable GL SPIR-V shaders 4 years ago
lat9nq 1152d66ddd 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.
4 years ago
ameerj 00fa09dc45 glsl: Declare local memory in main 4 years ago
ameerj f7352411f0 glsl: Add passthrough geometry shader support 4 years ago
ReinUsesLisp 8612b5fec5 shader: Use std::bit_cast instead of Common::BitCast for passthrough 4 years ago
ReinUsesLisp 8a3427a4c8 glasm: Add passthrough geometry shader support 4 years ago
ReinUsesLisp 7dafa96ab5 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.
4 years ago
ReinUsesLisp 4f052a1f39 vk_graphics_pipeline: Implement conservative rendering 4 years ago
ReinUsesLisp ecd6b4356b shader: Only verify shader when graphics debugging is enabled 4 years ago
ReinUsesLisp 395bed3a0a shader: Unify shader stage types 4 years ago
lat9nq 257d2aab74 lower_int64_to_int32: Add missing include 4 years ago
ReinUsesLisp fb166b5ff4 shader: Emulate 64-bit integers when not supported
Useful for mobile and Intel Xe devices.
4 years ago
ReinUsesLisp d8d5501459 shader: Add int64 to int32 lowering pass 4 years ago
ReinUsesLisp 04ef2160f9 shader: Teach global memory base tracker to follow vectors 4 years ago
ReinUsesLisp 97e80dda55 shader: Add constant propagation to integer vectors 4 years ago
ameerj 27ca8a0e13 glsl: Better IAdd Overflow CC fix
This ensures the original operand values are not overwritten when being used in the overflow detection.
4 years ago
ReinUsesLisp 4397053d5c shader: Remove IAbs64 4 years ago
ameerj bc6e399ae3 glsl: Fix IADD CC 4 years ago
ameerj a7536825df shader_recompiler: Fix IADD3 input partitioning 4 years ago
ReinUsesLisp 808ef97a08 shader: Move loop safety tests to code emission 4 years ago
ReinUsesLisp 3877918e96 gl_graphics_pipeline: Fix assembly shaders check for transform feedbacks 4 years ago
ameerj cbce9ddd4a glsl: Remove frag color initialization 4 years ago
ameerj 3a2dd1b483 glasm: Implement SetAttribute ViewportMask 4 years ago
ReinUsesLisp 9bd0531384 gl_graphics_pipeline: Inline hash and operator== key functions 4 years ago
ReinUsesLisp f5db8c7440 gl_shader_cache: Check previous pipeline before checking hash map
Port optimization from Vulkan.
4 years ago
ReinUsesLisp 218dedca1f gl_graphics_pipeline: Port optimizations from Vulkan pipelines 4 years ago
ameerj 1c648f176c emit_glsl_special: Skip initialization of frag_color0
Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest.
4 years ago
ReinUsesLisp 1d182fc0f5 shader: Calibrate loop safety threshold 4 years ago
ReinUsesLisp df9b7e18f5 buffer_cache: Fix debugging leftover 4 years ago
Morph cfbc85839d glsl: Add missing ; in EmitSetSampleMask
Fixes shader compilation in Okami HD
4 years ago
ReinUsesLisp 838d7e4ca5 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.
4 years ago
ameerj 9e066dcb15 glsl: Fix output varying initialization when transform feedback is used 4 years ago
ameerj fcff19e0fa shaders: Allow shader notify when async shaders is disabled 4 years ago
ameerj a0365217f5 texture_pass: Fix is_read image qualification
Atomic operations are considered to have both read and write access. This was not  being accounted for.
4 years ago
ReinUsesLisp 0cd08b3e72 shader: Align constant buffer sizes to 16 bytes
WAR for AMD reading zeroes on uniform buffers of size 2.
4 years ago
ReinUsesLisp 59fead3a47 spirv: Properly handle devices without int8 and int16 4 years ago
ReinUsesLisp b5e78607ad spirv: Handle small storage buffer loads on devices with no support 4 years ago
ReinUsesLisp ca67077ca8 vk_graphics_pipeline: Use VK_KHR_push_descriptor when available
~51% faster on Nvidia compared to previous method.
4 years ago
ameerj ccbd24fe00 glsl: Fix cbuf component indexing bug falback 4 years ago
ReinUsesLisp 1091995f8e shader: Simplify MergeDualVertexPrograms 4 years ago
ReinUsesLisp 374eeda1a3 shader: Properly manage attributes not written from previous stages 4 years ago
ReinUsesLisp 892b8aa2ad glsl: Only declare fragment outputs on fragment shaders 4 years ago
ReinUsesLisp 0ffea97e2e shader: Split profile and runtime info headers 4 years ago
ReinUsesLisp cbbca26d18 shader: Add support for native 16-bit floats 4 years ago
ReinUsesLisp 376aa94819 shader: Rename maxwell/program.h to translate_program.h 4 years ago
ReinUsesLisp 69f9b97e7e vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on Intel 4 years ago
ameerj 12ef06ba8b glsl: Obey need_declared_frag_colors to declare and initialize all frag_color
Fixes Ori and the blind forest title screen
4 years ago
ameerj d36f667bc0 glsl: Address rest of feedback 4 years ago
ameerj c5dfa0b630 glsl: Move gl_Position/generic attribute initialization to EmitProlgue 4 years ago
ameerj 3b339fbbf6 glsl: Conditionally use fine/coarse derivatives based on device support 4 years ago