mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-23 21:11:53 +01:00
Make active Vulkan pipeline public
This commit is contained in:
parent
2556966ec5
commit
3e12cde4d5
@ -88,7 +88,6 @@ namespace skyline::gpu::interconnect::maxwell3d {
|
|||||||
u32 lastExecutionNumber{}; //!< The last execution number this pipeline was used at
|
u32 lastExecutionNumber{}; //!< The last execution number this pipeline was used at
|
||||||
std::array<ShaderStage, engine::ShaderStageCount> shaderStages;
|
std::array<ShaderStage, engine::ShaderStageCount> shaderStages;
|
||||||
DescriptorInfo descriptorInfo;
|
DescriptorInfo descriptorInfo;
|
||||||
cache::GraphicsPipelineCache::CompiledPipeline compiledPipeline;
|
|
||||||
|
|
||||||
std::array<Pipeline *, 4> transitionCache{};
|
std::array<Pipeline *, 4> transitionCache{};
|
||||||
size_t transitionCacheNextIdx{};
|
size_t transitionCacheNextIdx{};
|
||||||
@ -98,6 +97,8 @@ namespace skyline::gpu::interconnect::maxwell3d {
|
|||||||
void SyncCachedStorageBufferViews(u32 executionNumber);
|
void SyncCachedStorageBufferViews(u32 executionNumber);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
cache::GraphicsPipelineCache::CompiledPipeline compiledPipeline;
|
||||||
|
|
||||||
PackedPipelineState sourcePackedState;
|
PackedPipelineState sourcePackedState;
|
||||||
|
|
||||||
Pipeline(InterconnectContext &ctx, const PackedPipelineState &packedState, const std::array<ShaderBinary, engine::PipelineCount> &shaderBinaries, span<TextureView *> colorAttachments, TextureView *depthAttachment);
|
Pipeline(InterconnectContext &ctx, const PackedPipelineState &packedState, const std::array<ShaderBinary, engine::PipelineCount> &shaderBinaries, span<TextureView *> colorAttachments, TextureView *depthAttachment);
|
||||||
|
@ -535,6 +535,10 @@ namespace skyline::gpu::interconnect::maxwell3d {
|
|||||||
pipeline = newPipeline;
|
pipeline = newPipeline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PipelineState::PurgeCaches() {
|
||||||
|
pipeline = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<TextureView> PipelineState::GetColorRenderTargetForClear(InterconnectContext &ctx, size_t index) {
|
std::shared_ptr<TextureView> PipelineState::GetColorRenderTargetForClear(InterconnectContext &ctx, size_t index) {
|
||||||
return colorRenderTargets[index].UpdateGet(ctx, packedState).view;
|
return colorRenderTargets[index].UpdateGet(ctx, packedState).view;
|
||||||
}
|
}
|
||||||
|
@ -271,7 +271,7 @@ namespace skyline::gpu::interconnect::maxwell3d {
|
|||||||
/**
|
/**
|
||||||
* @brief Holds all GPU state for a pipeline, any changes to this will result in a pipeline cache lookup
|
* @brief Holds all GPU state for a pipeline, any changes to this will result in a pipeline cache lookup
|
||||||
*/
|
*/
|
||||||
class PipelineState : dirty::ManualDirty {
|
class PipelineState : dirty::CachedManualDirty {
|
||||||
public:
|
public:
|
||||||
struct EngineRegisters {
|
struct EngineRegisters {
|
||||||
std::array<PipelineStageState::EngineRegisters, engine::PipelineCount> pipelineStageRegisters;
|
std::array<PipelineStageState::EngineRegisters, engine::PipelineCount> pipelineStageRegisters;
|
||||||
@ -317,6 +317,8 @@ namespace skyline::gpu::interconnect::maxwell3d {
|
|||||||
|
|
||||||
void Flush(InterconnectContext &ctx, StateUpdateBuilder &builder);
|
void Flush(InterconnectContext &ctx, StateUpdateBuilder &builder);
|
||||||
|
|
||||||
|
void PurgeCaches();
|
||||||
|
|
||||||
std::shared_ptr<TextureView> GetColorRenderTargetForClear(InterconnectContext &ctx, size_t index);
|
std::shared_ptr<TextureView> GetColorRenderTargetForClear(InterconnectContext &ctx, size_t index);
|
||||||
|
|
||||||
std::shared_ptr<TextureView> GetDepthRenderTargetForClear(InterconnectContext &ctx);
|
std::shared_ptr<TextureView> GetDepthRenderTargetForClear(InterconnectContext &ctx);
|
||||||
|
Loading…
Reference in New Issue
Block a user