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
ae786ee784
vulkan_device: Enable float64 and int64 conditionally
Add Intel Xe support.
5 years ago
ReinUsesLisp
60e44af24d
texture_cache: Reduce invalid image/sampler error severity
5 years ago
ReinUsesLisp
672930b6c8
shader: Handle host exceptions
5 years ago
ReinUsesLisp
e3d10ba821
glasm: Prepare XFB from state instead of global registers
5 years ago
ReinUsesLisp
df14567fcc
glasm: Use storage buffers instead of global memory when possible
5 years ago
ReinUsesLisp
58b5083052
gl_shader_cache: Add disk shader cache
5 years ago
ReinUsesLisp
205bf15e71
video_core,shader: Clang-format fixes
5 years ago
ReinUsesLisp
ddb24146b6
gl_shader_cache: Rename Program abstractions into Pipeline
5 years ago
ReinUsesLisp
921b6b48be
gl_shader_cache: Do not flip tessellation on OpenGL
5 years ago
ReinUsesLisp
548871e127
gl_graphics_program: Fix texture buffer bindings
5 years ago
ReinUsesLisp
712afb51d4
gl_shader_cache: Conditionally use viewport mask
5 years ago
ReinUsesLisp
94d3b4d7e3
gl_shader_cache,glasm: Conditionally use typeless image reads extension
5 years ago
ReinUsesLisp
8aa7240b7f
gl_shader_cache: Improve GLASM error print logic
5 years ago
ReinUsesLisp
16c95ab56d
glasm: Implement forced early Z
5 years ago
ReinUsesLisp
220e679fdf
glasm: Set transform feedback state
5 years ago
ReinUsesLisp
06ae1bff4b
video_core: Abstract transform feedback translation utility
5 years ago
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