aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
AgeCommit message (Collapse)Author
2021-07-22vk_update_descriptor: Properly initialize payload on the update descriptor queueReinUsesLisp
2021-07-22vk_pipeline_cache: Enable int8 and int16 types on VulkanReinUsesLisp
2021-07-22vk_scheduler: Use locks instead of SPSC a queueReinUsesLisp
This tries to fix a data race where we'd wait forever for the GPU.
2021-07-22vk_query_cache: Wait before reading queriesReinUsesLisp
2021-07-22vk_master_semaphore: Use fetch_add to increase master semaphore tickReinUsesLisp
2021-07-22Move SPIR-V emission functions to their own headerReinUsesLisp
2021-07-22shader: Initial OpenGL implementationReinUsesLisp
2021-07-22spirv: Support OpenGL uniform buffers and change bindingsReinUsesLisp
2021-07-22shader: Address feedbackFernandoS27
2021-07-22shader: Implement VertexA stageFernandoS27
2021-07-22vk_graphics_pipeline: Fix texture buffer descriptorsReinUsesLisp
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-22vk_compute_pipeline: Fix index comparison oversight on compute texture buffersReinUsesLisp
2021-07-22vk_graphics_pipeline: Guard against non-tessellation pipelines using patchesReinUsesLisp
2021-07-22shader: Fix bugs and build issues on GCCRodrigo Locatti
2021-07-22shader: Fix render targets with null attachmentsReinUsesLisp
2021-07-22shader: Implement indexed texturesReinUsesLisp
2021-07-22shader: Move microinstruction header to the value headerReinUsesLisp
2021-07-22shader: Implement D3D samplersReinUsesLisp
2021-07-22shader: Implement SR_Y_DIRECTIONFernandoS27
2021-07-22spirv: Implement ViewportMask with NV_viewport_array2ReinUsesLisp
2021-07-22shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp
2021-07-22vk_pipeline_cache: Silence GCC warningslat9nq
Silences `-Werror=missing-field-initializers` due to missing initializers.
2021-07-22spirv: Implement image buffersReinUsesLisp
2021-07-22spirv: Implement alpha testameerj
2021-07-22shader: Implement transform feedbacks and define file formatReinUsesLisp
2021-07-22shader: Implement early Z testsReinUsesLisp
2021-07-22shader: Implement geometry shadersReinUsesLisp
2021-07-22pipeline_helper: Simplify descriptor objects initializationReinUsesLisp
2021-07-22shader: Implement ATOM/S and REDameerj
2021-07-22nsight_aftermath_tracker: Report used shaders to Nsight AftermathReinUsesLisp
2021-07-22spirv: Guard against typeless image reads on unsupported devicesReinUsesLisp
2021-07-22vk_rasterizer: Request outside render pass execution context for computeReinUsesLisp
2021-07-22pipeline_helper: Add missing [[maybe_unused]]ReinUsesLisp
2021-07-22shader: Implement SULD and SUSTReinUsesLisp
2021-07-22shader: Address feedback + clang formatlat9nq
2021-07-22shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq
Mostly fixing unused *, implicit conversion, braced scalar init, fpermissive, and some others. Some Clang errors likely remain in video_core, and std::ranges is still a pertinent issue in shader_recompiler shader_recompiler: cmake: Force bracket depth to 1024 on Clang Increases the maximum fold expression depth thread_worker: Include condition_variable Don't use list initializers in control flow Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
2021-07-22shader: Interact texture buffers with buffer cacheReinUsesLisp
2021-07-22shader: Implement texture buffersReinUsesLisp
2021-07-22vk_pipeline_cache: Fix num of pipeline workers on weird platformsReinUsesLisp
2021-07-22shader: Fix ShadowCube declaration type, set number of pipeline threads ↵FernandoS27
based on hardware
2021-07-22vk_compute_pass: Fix compute passesReinUsesLisp
2021-07-22shader: Remove atomic flags and use mutex + cond variable for pipelinesReinUsesLisp
2021-07-22vk_pipeline_cache: Remove unnecesary scope in pipeline cache lockingReinUsesLisp