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
ReinUsesLisp
c8b0377a67
shader: Fix VMNMX selector B
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
763adf56a6
shader: Increase the maximum number of storage buffers
Compute shaders spill uniform buffers on storage buffers, increasing the
expected number.
5 years ago
ReinUsesLisp
1d861a6e90
shader: Remove identity removal pass for better build times
5 years ago
ReinUsesLisp
4eec191801
shader: Add more strict validation the pass
5 years ago
ReinUsesLisp
21d50bd9bd
shader: Fix forward referencing identity instructions when inserting phi
5 years ago
ReinUsesLisp
3c80ebf1e2
shader: Remove invalidated blocks in dead code elimination pass
5 years ago
ReinUsesLisp
12d7acf707
shader: Add missing UndoUse case for GetSparseFromOp
5 years ago
ReinUsesLisp
9b691a28d8
shader: Require dual source blending
5 years ago
ReinUsesLisp
04e042d3b3
shader: Simplify code in opcodes.h to fix Intellisense
Avoid using std::array to fix Intellisense not properly compiling this
code and disabling itself on all files that include it.
While we are at it, change the code to use u8 instead of size_t for the
number of instructions in an opcode.
5 years ago
ReinUsesLisp
052317e748
shader: Implement indexed textures
5 years ago
ameerj
3089fb1e2a
shader: Refactor atomic_operations_global_memory
5 years ago
ameerj
8202ace3e9
shader: add missing include guard in half_floating_point_helper.h
5 years ago
ReinUsesLisp
172942911a
shader: Fix gcc warnings
5 years ago
ReinUsesLisp
16a869571e
shader: Inline common Value getters
5 years ago
ReinUsesLisp
9f5c43dd53
shader: Intrusively store in a block if it's sealed or not
5 years ago
ReinUsesLisp
fecb87ebc8
cmake: Link to common in shader_recompiler
5 years ago
ReinUsesLisp
3c1229a7c5
shader: Improve goto removal algorithm complexity
Find sibling node containing a nephew searching from the nephew itself
instead of the uncle.
5 years ago
ReinUsesLisp
1a44a5cafa
shader: Use memset to reset instruction arguments
5 years ago
ReinUsesLisp
9edc2bd70f
shader: Inline common Value functions into the header
5 years ago
ReinUsesLisp
6236b611cf
shader: Move microinstruction header to the value header
5 years ago
ReinUsesLisp
7769517fc0
shader: Move siblings check to a separate function and comment them out
5 years ago
ReinUsesLisp
7bf134b294
shader: Intrusively store register values in block for SSA pass
5 years ago
ReinUsesLisp
3a39124359
shader: Inline common Opcode and Inst functions
5 years ago
ReinUsesLisp
b6bd6a5bce
shader: Inline common IR::Block methods
5 years ago
ReinUsesLisp
8d1327bf78
shader: Use a small_vector for phi blocks
5 years ago
ReinUsesLisp
c44139cda0
shader: Calculate number of arguments in an opcode at compile time
5 years ago
ReinUsesLisp
7066f9ef7b
shader: Implement D3D samplers
5 years ago
ReinUsesLisp
5c187201ec
shader: Add constant propagation for arithmetic right shifts
5 years ago
ReinUsesLisp
56aae7efcf
shader: Simplify code for local memory
5 years ago