ReinUsesLisp
fdd87ffdb7
glasm: Remove unused argument in identity instructions on GLASM
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
6c0a696179
glasm: Implement basic GLASM instructions
5 years ago
ReinUsesLisp
03f17ebc43
glasm: Changes to GLASM register allocator and emit context
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
d9b9c10f32
glasm: Add GLASM backend infrastructure
5 years ago
ameerj
a739b6933e
shader: ISET.X implementation
5 years ago
ReinUsesLisp
947a36e79e
gl_shader_cache: Remove code unintentionally committed
5 years ago
ReinUsesLisp
75adb54e79
shader: Fixup SPIR-V emit header namespaces
5 years ago
ReinUsesLisp
055db41f19
Move SPIR-V emission functions to their own header
5 years ago
FernandoS27
007a11014c
shader: Optimize NVN Fallthrough
5 years ago
FernandoS27
fb20effc51
shader: Stub SR_AFFINITY
5 years ago
ameerj
455872a4af
shader: Implement Int32 SUATOM/SURED
5 years ago
ReinUsesLisp
5ca5988c63
shader: Initial OpenGL implementation
5 years ago
ReinUsesLisp
5ad12292a6
spirv: Be aware of NAN unaware drivers
5 years ago
ReinUsesLisp
21a5bd332c
spirv: Add SSBO read fallbacks when no aliasing is available
5 years ago
ReinUsesLisp
1922cbb84c
spirv: Add OpKill fallback to demote
5 years ago
ReinUsesLisp
d2e6291c0e
spirv: Do not enable ShaderLayer
This is enabled by an extension instead of the capability.
5 years ago
ReinUsesLisp
b2fe282ad3
spirv: Enable DemoteToHelperInvocationEXT only when supported
5 years ago
ReinUsesLisp
2ee532c9bc
spirv: Use OriginLowerLeft when requested
5 years ago
ReinUsesLisp
f6c09c27b1
spirv: Only add image operands mask when needed
5 years ago
ReinUsesLisp
59668831b7
spirv: Workaround image unsigned offset bug
Workaround bug on Nvidia's OpenGL SPIR-V compiler when using unsigned
texture offsets.
5 years ago
ReinUsesLisp
4a76786740
spirv: Add int8 and int16 capabilities only when supported
5 years ago
ReinUsesLisp
8accb076ee
spirv: Add integer clamping workarounds
Workaround more bugs on Nvidia's OpenGL SPIR-V compiler.
5 years ago
ReinUsesLisp
55ff0ab463
spirv: Implement int8 and int16 conversion fallbacks
5 years ago
ReinUsesLisp
884a937022
spirv: Support OpenGL uniform buffers and change bindings
5 years ago
ReinUsesLisp
2bdce72c92
spirv: Desambiguate descriptor names
Worksaround a bug on Nvidia's OpenGL SPIR-V compiler where names are
used for name matching.
5 years ago
ReinUsesLisp
bfb08e709c
shader: Add OpenGL shader profile options
5 years ago
ReinUsesLisp
4c5f8d123d
shader: Remove shader util
5 years ago
FernandoS27
6aff9b4476
shader: Address feedback
5 years ago
FernandoS27
a2fac91c47
shader: Implement VertexA stage
5 years ago
FernandoS27
cb0587f841
shader: Implement delegation of Exit to dispatcher on CFG
5 years ago
ReinUsesLisp
806c5a3739
vk_graphics_pipeline: Fix texture buffer descriptors
5 years ago
ameerj
031e91e7e5
shader: Fix IADD3.CC
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
ameerj
90ff800962
shader: Fix BFE s32 undefined check
Our unit tests were hitting this exception.
5 years ago
ReinUsesLisp
ecd481a0ca
vk_compute_pipeline: Fix index comparison oversight on compute texture buffers
5 years ago
ReinUsesLisp
1f54f1ff26
shader: Fix error checking in bitfieldExtract and implement bitfieldInsert folding
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
ReinUsesLisp
e37ec2790d
shader: Fix storage type when reading patches on tess control
5 years ago