summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-07-22shader: Address feedbackFernandoS27
2021-07-22shader: Implement VertexA stageFernandoS27
2021-07-22shader: Implement delegation of Exit to dispatcher on CFGFernandoS27
2021-07-22vk_graphics_pipeline: Fix texture buffer descriptorsReinUsesLisp
2021-07-22shader: Fix IADD3.CCameerj
2021-07-22vk_scheduler: Allow command submission on worker threadReinUsesLisp
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-22vk_compute_pass: Fix -Wshadow warningReinUsesLisp
2021-07-22shader: Move pipeline cache logic to separate filesReinUsesLisp
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-22vulkan: Defer descriptor set work to the Vulkan threadReinUsesLisp
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.
2021-07-22vulkan: Rework descriptor allocation algorithmReinUsesLisp
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.
2021-07-22vk_graphics_pipeline: Generate specialized pipeline config functions and ↵ReinUsesLisp
improve code
2021-07-22shader: Accelerate pipeline transitions and use dirty flags for shadersReinUsesLisp
2021-07-22shader: Fix BFE s32 undefined checkameerj
Our unit tests were hitting this exception.
2021-07-22vk_compute_pipeline: Fix index comparison oversight on compute texture buffersReinUsesLisp
2021-07-22shader: Fix error checking in bitfieldExtract and implement bitfieldInsert ↵ReinUsesLisp
folding
2021-07-22vulkan_device: Require shaderClipDistance and shaderCullDistance featuresReinUsesLisp
2021-07-22vk_graphics_pipeline: Guard against non-tessellation pipelines using patchesReinUsesLisp
2021-07-22shader: Fix storage type when reading patches on tess controlReinUsesLisp
2021-07-22shader: Fix VMNMX selector BReinUsesLisp
2021-07-22shader: Fix bugs and build issues on GCCRodrigo Locatti
2021-07-22shader: Fix render targets with null attachmentsReinUsesLisp
2021-07-22shader: Increase the maximum number of storage buffersReinUsesLisp
Compute shaders spill uniform buffers on storage buffers, increasing the expected number.
2021-07-22shader: Remove identity removal pass for better build timesReinUsesLisp
2021-07-22shader: Add more strict validation the passReinUsesLisp
2021-07-22shader: Fix forward referencing identity instructions when inserting phiReinUsesLisp
2021-07-22shader: Remove invalidated blocks in dead code elimination passReinUsesLisp
2021-07-22shader: Add missing UndoUse case for GetSparseFromOpReinUsesLisp
2021-07-22shader: Require dual source blendingReinUsesLisp
2021-07-22shader: Simplify code in opcodes.h to fix IntellisenseReinUsesLisp
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.
2021-07-22shader: Implement indexed texturesReinUsesLisp
2021-07-22shader: Refactor atomic_operations_global_memoryameerj
2021-07-22shader: add missing include guard in half_floating_point_helper.hameerj
2021-07-22shader: Fix gcc warningsReinUsesLisp
2021-07-22shader: Inline common Value gettersReinUsesLisp
2021-07-22shader: Intrusively store in a block if it's sealed or notReinUsesLisp
2021-07-22cmake: Link to common in shader_recompilerReinUsesLisp
2021-07-22shader: Improve goto removal algorithm complexityReinUsesLisp
Find sibling node containing a nephew searching from the nephew itself instead of the uncle.
2021-07-22shader: Use memset to reset instruction argumentsReinUsesLisp
2021-07-22shader: Inline common Value functions into the headerReinUsesLisp
2021-07-22shader: Move microinstruction header to the value headerReinUsesLisp
2021-07-22shader: Move siblings check to a separate function and comment them outReinUsesLisp
2021-07-22shader: Intrusively store register values in block for SSA passReinUsesLisp
2021-07-22shader: Inline common Opcode and Inst functionsReinUsesLisp
2021-07-22shader: Inline common IR::Block methodsReinUsesLisp
2021-07-22shader: Use a small_vector for phi blocksReinUsesLisp
2021-07-22shader: Calculate number of arguments in an opcode at compile timeReinUsesLisp
2021-07-22shader: Implement D3D samplersReinUsesLisp
2021-07-22shader: Add constant propagation for arithmetic right shiftsReinUsesLisp
2021-07-22shader: Simplify code for local memoryReinUsesLisp
2021-07-22shader: Add NVN storage buffer fallbacksReinUsesLisp
When we can't track the SSBO origin of a global memory instruction, leave it as a global memory operation and assume these pointers are in the NVN storage buffer slots, then apply a linear search in the shader's runtime.