From 0867c593be5a4abc08829dafb1b19912f22abe5a Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Thu, 29 Sep 2022 20:35:34 +0100 Subject: [PATCH] Support binding pipelines in state updater --- .../gpu/interconnect/maxwell_3d/state_updater.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/state_updater.h b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/state_updater.h index fee34110..90a8b846 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/state_updater.h +++ b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/state_updater.h @@ -230,6 +230,15 @@ namespace skyline::gpu::interconnect::maxwell3d { }; using SetDescriptorSetWithUpdateCmd = CmdHolder; + struct SetPipelineCmdImpl { + void Record(GPU &gpu, vk::raii::CommandBuffer &commandBuffer) { + commandBuffer.bindPipeline(vk::PipelineBindPoint::eGraphics, pipeline); + } + + vk::Pipeline pipeline; + }; + using SetPipelineCmd = CmdHolder; + /** * @brief Single-use helper for recording a batch of state updates into a command buffer */ @@ -413,5 +422,11 @@ namespace skyline::gpu::interconnect::maxwell3d { .dstSet = dstSet, }); } + + void SetPipeline(vk::Pipeline pipeline) { + AppendCmd({ + .pipeline = pipeline, + }); + } }; }