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