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
d835906b9f
vulkan_device: Require shaderClipDistance and shaderCullDistance features
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
9b691a28d8
shader: Require dual source blending
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
FernandoS27
6c60109967
shader: Implement SR_Y_DIRECTION
5 years ago
ReinUsesLisp
cc96469019
shader: Implement PIXLD.MY_INDEX
5 years ago
ReinUsesLisp
b6b541e36a
spirv: Implement ViewportMask with NV_viewport_array2
5 years ago
ReinUsesLisp
38908d0f7e
shader: Implement tessellation shaders, polygon mode and invocation id
5 years ago
lat9nq
212f5c8050
vk_pipeline_cache: Silence GCC warnings
Silences `-Werror=missing-field-initializers` due to missing
initializers.
5 years ago
ReinUsesLisp
03c16b085a
spirv: Implement image buffers
5 years ago
ameerj
542dc35aac
spirv: Implement alpha test
5 years ago
ReinUsesLisp
e59971ea1b
shader: Implement transform feedbacks and define file format
5 years ago
ReinUsesLisp
4a6c299e3f
shader: Implement early Z tests
5 years ago
ReinUsesLisp
c84c2ab88c
spirv: Rework storage buffers and shader memory
5 years ago
ReinUsesLisp
4b32692423
shader: Implement geometry shaders
5 years ago
ReinUsesLisp
7c867c2d7c
pipeline_helper: Simplify descriptor objects initialization
5 years ago
ameerj
62c3bef607
shader: Implement ATOM/S and RED
5 years ago
ReinUsesLisp
619f68db8e
nsight_aftermath_tracker: Report used shaders to Nsight Aftermath
5 years ago
ReinUsesLisp
480ce24b7e
spirv: Guard against typeless image reads on unsupported devices
5 years ago
ReinUsesLisp
7f8b92cc2d
vk_rasterizer: Request outside render pass execution context for compute
5 years ago
ReinUsesLisp
9a49eed4d6
pipeline_helper: Add missing [[maybe_unused]]
5 years ago
ReinUsesLisp
5ab1ac4f29
shader: Implement SULD and SUST
5 years ago
lat9nq
5b95114cd4
shader: Address feedback + clang format
5 years ago
lat9nq
a4e7a41e7f
shader_recompiler,video_core: Cleanup some GCC and Clang errors
Mostly fixing unused *, implicit conversion, braced scalar init,
fpermissive, and some others.
Some Clang errors likely remain in video_core, and std::ranges is still
a pertinent issue in shader_recompiler
shader_recompiler: cmake: Force bracket depth to 1024 on Clang
Increases the maximum fold expression depth
thread_worker: Include condition_variable
Don't use list initializers in control flow
Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
5 years ago
ReinUsesLisp
3e6cb6362d
shader: Interact texture buffers with buffer cache
5 years ago
ReinUsesLisp
96da029a74
shader: Implement texture buffers
5 years ago
ReinUsesLisp
459057f8d4
vk_pipeline_cache: Fix num of pipeline workers on weird platforms
5 years ago
FernandoS27
3fc7d20fce
shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardware
5 years ago
ReinUsesLisp
4c15b3b91a
vk_compute_pass: Fix compute passes
5 years ago
ReinUsesLisp
ee52ec7e04
shader: Remove atomic flags and use mutex + cond variable for pipelines
5 years ago
ReinUsesLisp
9008061b99
vk_pipeline_cache: Remove unnecesary scope in pipeline cache locking
5 years ago
FernandoS27
98c08894d9
vk_pipeline_cache: Small fixes to the pipeline cache
5 years ago
FernandoS27
06469da581
shader: Mark SSBOs as written when they are
5 years ago
FernandoS27
68bad0e922
shader: Implement ViewportIndex
5 years ago
ReinUsesLisp
2b6f357e36
vulkan: Serialize pipelines on a separate thread
5 years ago
ReinUsesLisp
8678cb10d4
vulkan: Create pipeline layouts in separate threads
5 years ago
ReinUsesLisp
9e46643465
vulkan: Build pipelines in parallel at runtime
Wait from the worker thread for a pipeline to build before binding it to
the command buffer. This allows queueing pipelines to multiple threads.
5 years ago
ReinUsesLisp
9730422e34
vk_pipeline_cache: Name SPIR-V modules
5 years ago
FernandoS27
7d40446b99
shader: Address feedback
5 years ago