ReinUsesLisp
eb7925b421
vk_rasterizer: Exit render passes on fragment barriers
5 years ago
Rodrigo Locatti
0ce45868ca
vk_graphics_pipeline: Fix path with no VK_EXT_extended_dynamic_state
5 years ago
ReinUsesLisp
cefa403eba
vk_pipeline_cache: Skip cached pipelines with different dynamic state
5 years ago
ReinUsesLisp
1805ba1763
vulkan: Add VK_EXT_vertex_input_dynamic_state support
Reduces the number of total pipelines generated on Vulkan.
Tested on Super Smash Bros. Ultimate.
5 years ago
ReinUsesLisp
8fae35f767
shader: Reorder shader cache directories
5 years ago
ReinUsesLisp
2e99f9ce1b
vk_rasterizer: Implement first index
5 years ago
ReinUsesLisp
969f76707c
vulkan: Use VK_EXT_provoking_vertex when available
5 years ago
ReinUsesLisp
b420b97025
vk_pipeline_cache,shader_notify: Add shader notifications
5 years ago
ReinUsesLisp
1dccf005e1
vk_pipeline_cache: Add asynchronous shaders
5 years ago
ReinUsesLisp
420ec60284
vk_rasterizer: Flush work on clear and dispatches
5 years ago
ReinUsesLisp
41737ccae4
vk_swapchain: Handle outdated swapchains
Fixes pixelated presentation on Intel devices.
5 years ago
ReinUsesLisp
73fb56fe7e
vk_buffer_cache: Handle null texture buffers
Fixes a crash on Age of Calamity cutscenes.
5 years ago
ReinUsesLisp
99e3490f64
vk_pipeline_cache: Set support_derivative_control to true
5 years ago
ReinUsesLisp
535fb4e6b5
buffer_cache: Reduce uniform buffer size from shader usage
Increases performance significantly on certain titles.
5 years ago
ReinUsesLisp
bbc537fec0
fixed_pipeline_state: Use regular for loop instead of ranges for perf
MSVC generates better code for it.
5 years ago
ReinUsesLisp
5593b029d4
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.
5 years ago
ReinUsesLisp
ccea376e34
vulkan: Conditionally use shaderInt16
Add support for Polaris AMD devices.
5 years ago
ReinUsesLisp
7207ef07f4
vulkan: Enable depth bounds and use it conditionally
Intel devices pre-Xe don't support this.
5 years ago
ReinUsesLisp
e7bf692f9e
vk_buffer_cache: Add transform feedback usage to buffers
5 years ago
ReinUsesLisp
9750e0410b
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.
5 years ago
ReinUsesLisp
ebfbb5e09f
buffer_cache: Mark uniform buffers as dirty if any enable bit changes
5 years ago
ReinUsesLisp
672930b6c8
shader: Handle host exceptions
5 years ago
ReinUsesLisp
205bf15e71
video_core,shader: Clang-format fixes
5 years ago
ReinUsesLisp
06ae1bff4b
video_core: Abstract transform feedback translation utility
5 years ago
ReinUsesLisp
9452fe2dc6
shader: Split profile and runtime information in separate structs
5 years ago
ReinUsesLisp
f132d214a1
vk_update_descriptor: Properly initialize payload on the update descriptor queue
5 years ago
ReinUsesLisp
d5c0c34383
vk_pipeline_cache: Enable int8 and int16 types on Vulkan
5 years ago
ReinUsesLisp
99ae172ef2
vk_scheduler: Use locks instead of SPSC a queue
This tries to fix a data race where we'd wait forever for the GPU.
5 years ago
ReinUsesLisp
3fca53bce8
vk_query_cache: Wait before reading queries
5 years ago
ReinUsesLisp
dbe29b8bb6
vk_master_semaphore: Use fetch_add to increase master semaphore tick
5 years ago
ReinUsesLisp
055db41f19
Move SPIR-V emission functions to their own header
5 years ago
ReinUsesLisp
5ca5988c63
shader: Initial OpenGL implementation
5 years ago
ReinUsesLisp
884a937022
spirv: Support OpenGL uniform buffers and change bindings
5 years ago
FernandoS27
6aff9b4476
shader: Address feedback
5 years ago
FernandoS27
a2fac91c47
shader: Implement VertexA stage
5 years ago
ReinUsesLisp
806c5a3739
vk_graphics_pipeline: Fix texture buffer descriptors
5 years ago
ReinUsesLisp
b62b8f2e84
vk_scheduler: Allow command submission on worker thread
This changes how Scheduler::Flush works. It queues the current command
buffer to be sent to the GPU but does not do it immediately. The Vulkan
worker thread takes care of that. Users will have to use
Scheduler::Flush + Scheduler::WaitWorker to get the previous behavior.
Scheduler::Finish is unchanged.
To avoid waiting on work never queued, Scheduler::Wait sends the current
command buffer if that's what the caller wants to wait.
5 years ago
ReinUsesLisp
eb7ef12b95
vk_compute_pass: Fix -Wshadow warning
5 years ago
ReinUsesLisp
ed6c131c92
shader: Move pipeline cache logic to separate files
Move code to separate files to be able to reuse it from OpenGL. This
greatly simplifies the pipeline cache logic on Vulkan.
Transform feedback state is not yet abstracted and it's still
intrusively stored inside vk_pipeline_cache. It will be moved when
needed on OpenGL.
5 years ago
ReinUsesLisp
fd502a4d43
vulkan: Defer descriptor set work to the Vulkan thread
Move descriptor lookup and update code to a separate thread. Delaying
this removes work from the main GPU thread and allows creating
descriptor layouts on another thread. This reduces a bit the workload
of the main thread when new pipelines are encountered.
5 years ago
ReinUsesLisp
896a4fe9b5
vulkan: Rework descriptor allocation algorithm
Create multiple descriptor pools on demand. There are some degrees of
freedom what is considered a compatible pool to avoid wasting large
pools on small descriptors.
5 years ago
ReinUsesLisp
a3b025c6a4
vk_graphics_pipeline: Generate specialized pipeline config functions and improve code
5 years ago
ReinUsesLisp
565d922014
shader: Accelerate pipeline transitions and use dirty flags for shaders
5 years ago
ReinUsesLisp
ecd481a0ca
vk_compute_pipeline: Fix index comparison oversight on compute texture buffers
5 years ago
ReinUsesLisp
1f47476089
vk_graphics_pipeline: Guard against non-tessellation pipelines using patches
5 years ago
Rodrigo Locatti
72b10edd15
shader: Fix bugs and build issues on GCC
5 years ago
ReinUsesLisp
fa439cb6df
shader: Fix render targets with null attachments
5 years ago
ReinUsesLisp
052317e748
shader: Implement indexed textures
5 years ago
ReinUsesLisp
6236b611cf
shader: Move microinstruction header to the value header
5 years ago
ReinUsesLisp
7066f9ef7b
shader: Implement D3D samplers
5 years ago