9f851e3832
glasm: Implement GLASM fp16 packing and move bitwise insns
2021-07-22 21:51:30 -04:00
4de65fbff4
glasm: Remove unused functions left from rebase
2021-07-22 21:51:30 -04:00
6358b0d0c1
glasm: Specify namespace when using FormatTo
2021-07-22 21:51:30 -04:00
939dab7120
glasm: Implement more GLASM composite instructions
2021-07-22 21:51:30 -04:00
01e18581b9
vk_pipeline_cache: Enable int8 and int16 types on Vulkan
2021-07-22 21:51:30 -04:00
1c9307969c
glasm: Make GLASM aware of types
2021-07-22 21:51:30 -04:00
934d300246
glasm: Use CMP.S for Select32
...
also fixes ADD and SUB to use U modifier
2021-07-22 21:51:30 -04:00
68cc445b8e
glasm: Implement more logical ops
2021-07-22 21:51:30 -04:00
941c6dc740
glasm: Implement BFI, BFE
...
Along with implementations of common instructions along the way
2021-07-22 21:51:30 -04:00
3e841f6441
glasm: Use BitField instead of C bitfields
2021-07-22 21:51:30 -04:00
2b04b4d27f
glasm: Remove unused argument in identity instructions on GLASM
2021-07-22 21:51:30 -04:00
dc02cb92e4
gl_rasterizer: Flush L2 caches before glFlush on GLASM
2021-07-22 21:51:30 -04:00
2c81ad8311
glasm: Initial GLASM compute implementation for testing
2021-07-22 21:51:30 -04:00
6fd190d1ae
glasm: Implement basic GLASM instructions
2021-07-22 21:51:30 -04:00
c1ba685d9c
glasm: Changes to GLASM register allocator and emit context
2021-07-22 21:51:30 -04:00
36f1586267
vk_scheduler: Use locks instead of SPSC a queue
...
This tries to fix a data race where we'd wait forever for the GPU.
2021-07-22 21:51:30 -04:00
56c47951c5
vk_query_cache: Wait before reading queries
2021-07-22 21:51:30 -04:00
a515036604
vk_master_semaphore: Use fetch_add to increase master semaphore tick
2021-07-22 21:51:30 -04:00
b10cf64c48
glasm: Add GLASM backend infrastructure
2021-07-22 21:51:30 -04:00
09dc23f971
shader: ISET.X implementation
2021-07-22 21:51:30 -04:00
bfa47539f6
gl_shader_cache: Remove code unintentionally committed
2021-07-22 21:51:30 -04:00
b725db8709
shader: Fixup SPIR-V emit header namespaces
2021-07-22 21:51:30 -04:00
bed090807a
Move SPIR-V emission functions to their own header
2021-07-22 21:51:30 -04:00
ee61ec2c39
shader: Optimize NVN Fallthrough
2021-07-22 21:51:30 -04:00
153a77efee
shader: Stub SR_AFFINITY
2021-07-22 21:51:30 -04:00
7ecc6de56a
shader: Implement Int32 SUATOM/SURED
2021-07-22 21:51:30 -04:00
d621e96d0d
shader: Initial OpenGL implementation
2021-07-22 21:51:30 -04:00
850b08a16c
spirv: Be aware of NAN unaware drivers
2021-07-22 21:51:30 -04:00
fde47152d9
spirv: Add SSBO read fallbacks when no aliasing is available
2021-07-22 21:51:29 -04:00
fd913bceaf
spirv: Add OpKill fallback to demote
2021-07-22 21:51:29 -04:00
d2a0f9d7ad
spirv: Do not enable ShaderLayer
...
This is enabled by an extension instead of the capability.
2021-07-22 21:51:29 -04:00
2b434b74af
spirv: Enable DemoteToHelperInvocationEXT only when supported
2021-07-22 21:51:29 -04:00
cfd873275d
spirv: Use OriginLowerLeft when requested
2021-07-22 21:51:29 -04:00
bafe9e35a9
spirv: Only add image operands mask when needed
2021-07-22 21:51:29 -04:00
d2e811db2e
spirv: Workaround image unsigned offset bug
...
Workaround bug on Nvidia's OpenGL SPIR-V compiler when using unsigned
texture offsets.
2021-07-22 21:51:29 -04:00
4ead714910
spirv: Add int8 and int16 capabilities only when supported
2021-07-22 21:51:29 -04:00
33bebc3412
spirv: Add integer clamping workarounds
...
Workaround more bugs on Nvidia's OpenGL SPIR-V compiler.
2021-07-22 21:51:29 -04:00
7b03b97118
spirv: Implement int8 and int16 conversion fallbacks
2021-07-22 21:51:29 -04:00
48a17298d7
spirv: Support OpenGL uniform buffers and change bindings
2021-07-22 21:51:29 -04:00
d5d6778ba5
spirv: Desambiguate descriptor names
...
Worksaround a bug on Nvidia's OpenGL SPIR-V compiler where names are
used for name matching.
2021-07-22 21:51:29 -04:00
a46d91b1ef
shader: Add OpenGL shader profile options
2021-07-22 21:51:29 -04:00
028f0033bd
shader: Remove shader util
2021-07-22 21:51:29 -04:00
c49d56c931
shader: Address feedback
2021-07-22 21:51:29 -04:00
b541f5e5e3
shader: Implement VertexA stage
2021-07-22 21:51:29 -04:00
da936d6ad8
shader: Implement delegation of Exit to dispatcher on CFG
2021-07-22 21:51:29 -04:00
f4b82b8dd7
vk_graphics_pipeline: Fix texture buffer descriptors
2021-07-22 21:51:29 -04:00
fb14820c86
shader: Fix IADD3.CC
2021-07-22 21:51:29 -04:00
53acdda772
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.
2021-07-22 21:51:29 -04:00
c5425b38c1
vk_compute_pass: Fix -Wshadow warning
2021-07-22 21:51:29 -04:00
025b20f96a
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.
2021-07-22 21:51:29 -04:00