diff --git a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/active_state.cpp b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/active_state.cpp index 16cff9bd..a290653b 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/active_state.cpp +++ b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/active_state.cpp @@ -381,6 +381,15 @@ namespace skyline::gpu::interconnect::maxwell3d { return pipeline.Get().pipeline; } + + span ActiveState::GetColorAttachments() { + return pipeline.Get().colorAttachments; + } + + TextureView *ActiveState::GetDepthAttachment() { + return pipeline.Get().depthAttachment; + } + std::shared_ptr ActiveState::GetColorRenderTargetForClear(InterconnectContext &ctx, size_t index) { return pipeline.Get().GetColorRenderTargetForClear(ctx, index); } diff --git a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/active_state.h b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/active_state.h index 18a88add..f81724ff 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/active_state.h +++ b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/active_state.h @@ -258,6 +258,10 @@ namespace skyline::gpu::interconnect::maxwell3d { Pipeline *GetPipeline(); + span GetColorAttachments(); + + TextureView *GetDepthAttachment(); + std::shared_ptr GetColorRenderTargetForClear(InterconnectContext &ctx, size_t index); std::shared_ptr GetDepthRenderTargetForClear(InterconnectContext &ctx); diff --git a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_state.cpp b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_state.cpp index e0ae8ee8..91b2a018 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_state.cpp +++ b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_state.cpp @@ -493,12 +493,12 @@ namespace skyline::gpu::interconnect::maxwell3d { shaderBinaries[i] = stage.binary; } - boost::container::static_vector colorAttachments; + colorAttachments.clear(); for (auto &colorRenderTarget : colorRenderTargets) if (auto view{colorRenderTarget.UpdateGet(ctx, packedState).view}) colorAttachments.push_back(view.get()); - TextureView *depthAttachment{depthRenderTarget.UpdateGet(ctx, packedState).view.get()}; + depthAttachment = depthRenderTarget.UpdateGet(ctx, packedState).view.get(); vertexInput.Update(packedState); directState.inputAssembly.Update(packedState); diff --git a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_state.h b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_state.h index 1c5c931d..3135140a 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_state.h +++ b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_state.h @@ -308,6 +308,8 @@ namespace skyline::gpu::interconnect::maxwell3d { public: DirectPipelineState directState; Pipeline *pipeline{}; + boost::container::static_vector colorAttachments; + TextureView *depthAttachment{}; PipelineState(dirty::Handle dirtyHandle, DirtyManager &manager, const EngineRegisters &engine);