ReinUsesLisp
a55ff22900
vulkan/blit_image: Commit descriptor sets within worker thread
...
Fixes race condition caused. The descriptor pool is not thread safe, so
we have to commit descriptor sets within the same thread.
4 years ago
ReinUsesLisp
f6796cad9c
vulkan_device: Blacklist Volta and older from VK_KHR_push_descriptor
...
Causes crashes on Link's Awakening intro. It's hard to debug if it's our
fault due to bugs in validation layers.
4 years ago
ReinUsesLisp
594ea29015
cmake: Remove unused code in GenerateSCMRev.cmake
...
Remove shader code hash generation code as it's no longer used.
4 years ago
ReinUsesLisp
a741513e65
qt: Remove "experimental" from asynchronous shader building UI
4 years ago
ReinUsesLisp
3c6d440015
Revert "renderers: Disable async shader compilation"
...
This reverts commit 4a152767286717fa69bfc94846a124a366f70065.
4 years ago
ReinUsesLisp
8381490a04
opengl: Fix asynchronous shaders
...
Wait for shader to build before configuring it, and wait for the shader
to build before sharing it with other contexts.
4 years ago
ReinUsesLisp
258f35515d
shader_environment: Receive cache version from outside
...
This allows us invalidating OpenGL and Vulkan separately in the future.
4 years ago
ReinUsesLisp
4a82450c81
cmake: Remove shader cache version
4 years ago
ameerj
56478bc9ac
shader: Fix disabled attribute default values
4 years ago
ameerj
c9528282d9
gl_device: Simplify GLASM setting logic
4 years ago
ameerj
56c30dd9e0
glsl: Simplify FCMP emission
4 years ago
ameerj
79d2684261
glsl: Update TessellationControl gl_in
...
Adheres to GL_ARB_separate_shader_objects requirements
4 years ago
ReinUsesLisp
e1ed218b41
renderer_opengl: Use ARB_separate_shader_objects
...
Ensures that states set for a particular stage are not attached to other
stages which may not need them.
4 years ago
ameerj
fc7bed21b5
shader: Implement ISETP.X
4 years ago
ReinUsesLisp
bf2956d77a
shader: Avoid usage of C++20 ranges to build in clang
4 years ago
ameerj
94af0a00f6
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
4 years ago
ReinUsesLisp
8c166c68d4
gl_shader_cache: Properly implement asynchronous shaders
4 years ago
lat9nq
49946cf780
shader_recompiler, video_core: Resolve clang errors
...
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
4 years ago
ameerj
4e4b8775b5
main: Update Shader Cache menu options
...
This change adds two new context menu items to remove either the OpenGL or the Vulkan shader caches individually, and the provides the option to remove all caches for the selected title.
This also changes the behavior of the open shader cache option. Now it creates the shader cache directory for the title if it does not yet exist.
4 years ago
ameerj
41493fbe89
renderers: Fix clang formatting
4 years ago
ReinUsesLisp
2235a51b5d
shader: Manually convert from array<u32> to bitset instead of using bit_cast
4 years ago
ameerj
8390286a89
renderers: Disable async shader compilation
...
The current implementation is prone to causing graphical issues. Disable until a better solution is implemented.
4 years ago
ReinUsesLisp
be54aad1c4
maxwell_to_vk: Add R16_SNORM
4 years ago
lat9nq
18fb9bdfa8
configure_graphics: Mark SPIR-V as Experimental, Mesa only
4 years ago
ameerj
41c6cb70f9
glsl: Fix tracking of info.uses_shadow_lod
4 years ago
ameerj
11f04f1022
shader: Ignore global memory ops on devices lacking int64 support
4 years ago
lat9nq
55233c2861
vulkan_device: Add missing include algorithm
4 years ago
ameerj
7277d7fe96
vulkan_device: Blacklist ampere devices from float16 math
4 years ago
ameerj
57f222c56e
dual_vertex_pass: Clang format
4 years ago
ameerj
dbee32d302
gl_shader_cache: Fixes for async shaders
4 years ago
ReinUsesLisp
57171b23f9
vulkan_device: Enable VK_EXT_extended_dynamic_state on RADV 21.2 onward
4 years ago
ReinUsesLisp
8722668b3c
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
...
Fix regression on Fire Emblem: Three Houses when using native fp16.
4 years ago
lat9nq
1b27a2b597
configure_graphics: Re-order vulkan device populating
4 years ago
lat9nq
2e5af95541
shader: GCC fmt 8.0.0 fixes
4 years ago
ameerj
b9069c7891
shader: Account for 33-bit IADD3 scenario
4 years ago
ReinUsesLisp
b21bf79bd2
shader: Only apply shift on register mode for IADD3
4 years ago
ReinUsesLisp
fba6bd92d4
vk_rasterizer: Workaround bug in VK_EXT_vertex_input_dynamic_state
...
Workaround potential bug on Nvidia's driver where only updating high
attributes leaves low attributes out dated.
4 years ago
ReinUsesLisp
5643a909bc
shader: Fix disabled and unwritten attributes and varyings
4 years ago
ameerj
65daec8b75
glsl: Fix shared and local memory declarations
...
account for the fact that program.*memory_size is in units of bytes.
4 years ago
ameerj
8289eb108f
opengl: Implement LOP.CC
...
Used by MH:Rise
4 years ago
ReinUsesLisp
f94f0be521
vk_graphics_pipeline: Implement smooth lines
4 years ago
ReinUsesLisp
57a8921e01
vk_graphics_pipeline: Implement line width
4 years ago
ReinUsesLisp
5b2b0634a1
spirv: Fix code emission when descriptor aliasing is unsupported
...
Fixes OpenGL.
4 years ago
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