Commit Graph

5622 Commits

Author SHA1 Message Date
ba3bdf1d41 vulkan_device: Enable VK_EXT_vertex_input_dynamic_state 2021-07-22 21:51:35 -04:00
41cca8b8ad vk_pipeline_cache: Skip cached pipelines with different dynamic state 2021-07-22 21:51:35 -04:00
ea038d6653 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
cb78a1b494 shader: Reorder shader cache directories 2021-07-22 21:51:35 -04:00
3025b2f605 vk_rasterizer: Implement first index 2021-07-22 21:51:35 -04:00
d554778311 vulkan: Use VK_EXT_provoking_vertex when available 2021-07-22 21:51:35 -04:00
cd8427367e 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
5befc0bf87 shader_environment: Fix local memory size calculations 2021-07-22 21:51:35 -04:00
60a96c49e5 buffer_cache: Fix copy based uniform bindings tracking 2021-07-22 21:51:35 -04:00
15bdd27cac shader_environment: Add shader_local_memory_crs_size to local memory size
Fixes DOOM 2016 missing local memory
2021-07-22 21:51:35 -04:00
7eaa74ad23 gl_texture_cache: Create image storage views
Fixes SULD.D tests.
2021-07-22 21:51:35 -04:00
b1ed64ac18 gl_shader_util: Move shader utility code to a separate file 2021-07-22 21:51:35 -04:00
12fe7210d2 gl_shader_cache: Store workers in shader cache object 2021-07-22 21:51:35 -04:00
cffd4716c5 vk_pipeline_cache,shader_notify: Add shader notifications 2021-07-22 21:51:35 -04:00
48aad8dc05 vk_pipeline_cache: Add asynchronous shaders 2021-07-22 21:51:35 -04:00
2a0aeaa3d2 vk_rasterizer: Flush work on clear and dispatches 2021-07-22 21:51:34 -04:00
c736b9ffab DMA: Restrict optimised path for BlockToLinear further. 2021-07-22 21:51:34 -04:00
f45f7b5c2a vk_swapchain: Handle outdated swapchains
Fixes pixelated presentation on Intel devices.
2021-07-22 21:51:34 -04:00
562af30181 shader: Fix VertexA Shaders. 2021-07-22 21:51:34 -04:00
b02c78b276 vk_buffer_cache: Handle null texture buffers
Fixes a crash on Age of Calamity cutscenes.
2021-07-22 21:51:34 -04:00
8f099af6a8 nsight_aftermath_tracker: Fix SPIR-V module writes 2021-07-22 21:51:34 -04:00
8c954fcaee vk_pipeline_cache: Set support_derivative_control to true 2021-07-22 21:51:34 -04:00
79f2fe1a39 glasm: Use ARB_derivative_control conditionally 2021-07-22 21:51:34 -04:00
4a2361a1e2 buffer_cache: Reduce uniform buffer size from shader usage
Increases performance significantly on certain titles.
2021-07-22 21:51:34 -04:00
e57ee3b7fd transform_feedback: Read buffer stride from index instead of layout 2021-07-22 21:51:34 -04:00
46bd362d0d fixed_pipeline_state: Use regular for loop instead of ranges for perf
MSVC generates better code for it.
2021-07-22 21:51:34 -04:00
d26271b014 vk_swapchain: Avoid recreating the swapchain on each frame
Recreate only when requested (or sRGB is changed) instead of tracking
the frontend's size. That size is still used as a hint.
2021-07-22 21:51:34 -04:00
1148a4eac7 vulkan: Conditionally use shaderInt16
Add support for Polaris AMD devices.
2021-07-22 21:51:34 -04:00
77372443c3 vulkan: Enable depth bounds and use it conditionally
Intel devices pre-Xe don't support this.
2021-07-22 21:51:34 -04:00
c44b16124f vk_buffer_cache: Add transform feedback usage to buffers 2021-07-22 21:51:34 -04:00
916ca74324 opengl: Declare fragment outputs even if they are not used
Fixes Ori and the Blind Forest's menu on GLASM. For some reason
(probably high level optimizations) it is not sanitized on SPIR-V for
OpenGL. Vulkan is unaffected by this change.
2021-07-22 21:51:34 -04:00
a7e9756671 buffer_cache: Mark uniform buffers as dirty if any enable bit changes 2021-07-22 21:51:34 -04:00
99f2c31b64 vulkan_device: Enable float64 and int64 conditionally
Add Intel Xe support.
2021-07-22 21:51:34 -04:00
56d4a9ebde texture_cache: Reduce invalid image/sampler error severity 2021-07-22 21:51:34 -04:00
b7764c3a79 shader: Handle host exceptions 2021-07-22 21:51:34 -04:00
3b595fe8b2 glasm: Prepare XFB from state instead of global registers 2021-07-22 21:51:33 -04:00
adb591a757 glasm: Use storage buffers instead of global memory when possible 2021-07-22 21:51:33 -04:00
a41b2ed391 gl_shader_cache: Add disk shader cache 2021-07-22 21:51:33 -04:00
a49532c8eb video_core,shader: Clang-format fixes 2021-07-22 21:51:33 -04:00
eacf18cce9 gl_shader_cache: Rename Program abstractions into Pipeline 2021-07-22 21:51:33 -04:00
4017928213 gl_shader_cache: Do not flip tessellation on OpenGL 2021-07-22 21:51:33 -04:00
80884e3270 gl_graphics_program: Fix texture buffer bindings 2021-07-22 21:51:33 -04:00
1bccb43cbe gl_shader_cache: Conditionally use viewport mask 2021-07-22 21:51:33 -04:00
c31521512f gl_shader_cache,glasm: Conditionally use typeless image reads extension 2021-07-22 21:51:33 -04:00
df406246d9 gl_shader_cache: Improve GLASM error print logic 2021-07-22 21:51:33 -04:00
84feabac88 glasm: Implement forced early Z 2021-07-22 21:51:33 -04:00
6bc54e12a0 glasm: Set transform feedback state 2021-07-22 21:51:33 -04:00
69b910e9e7 video_core: Abstract transform feedback translation utility 2021-07-22 21:51:33 -04:00
c07cc9d6a5 gl_shader_cache: Pass shader runtime information 2021-07-22 21:51:33 -04:00
9e7b6622c2 shader: Split profile and runtime information in separate structs 2021-07-22 21:51:33 -04:00