ReinUsesLisp
c45503bcb7
gl_shader_cache: Pass shader runtime information
5 years ago
ReinUsesLisp
9452fe2dc6
shader: Split profile and runtime information in separate structs
5 years ago
ReinUsesLisp
d4bc962012
gl_shader_manager: Zero initialize current assembly programs
5 years ago
ReinUsesLisp
bde1749606
gl_shader_manager: Remove unintentionally committed #pragma
5 years ago
ReinUsesLisp
1ec230efae
renderer_opengl: State track compute assembly programs
5 years ago
ReinUsesLisp
e21983ce24
renderer_opengl: State track assembly programs
5 years ago
ReinUsesLisp
5d24aadff0
HACK: Bind stages before and after bindings
Works around a bug where program parameters are only applied to the
current stage, and this one wasn't bound at the moment.
Affects all SSBO usages on GLASM.
5 years ago
ReinUsesLisp
0c82ee3444
glasm: Support textures used in more than one stage
5 years ago
ReinUsesLisp
e45e4d02d3
opengl: Initial (broken) support to GLASM shaders
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
33a769ea26
gl_rasterizer: Flush L2 caches before glFlush on GLASM
5 years ago
ReinUsesLisp
826796b51f
glasm: Initial GLASM compute implementation for testing
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
947a36e79e
gl_shader_cache: Remove code unintentionally committed
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
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