Bind all pipeline states to main pipeline dirty state

This commit is contained in:
Billy Laws 2022-09-14 21:56:32 +01:00
parent a04d8fb5cf
commit 19a75c3f65
2 changed files with 8 additions and 1 deletions

View File

@ -33,7 +33,7 @@ namespace skyline::dirty {
* @tparam OverlapPoolSize Size of the pool used to store handles when there are multiple bound to the same subresource
* @note This class is *NOT* thread-safe
*/
template<size_t ManagedResourceSize, size_t Granularity, size_t OverlapPoolSize = 0x400>
template<size_t ManagedResourceSize, size_t Granularity, size_t OverlapPoolSize = 0x1000>
class Manager {
private:
struct BindingState {

View File

@ -399,9 +399,16 @@ namespace skyline::gpu::interconnect::maxwell3d {
void PipelineState::EngineRegisters::DirtyBind(DirtyManager &manager, dirty::Handle handle) const {
auto bindFunc{[&](auto &regs) { regs.DirtyBind(manager, handle); }};
ranges::for_each(pipelineStageRegisters, bindFunc);
ranges::for_each(colorRenderTargetsRegisters, bindFunc);
bindFunc(depthRenderTargetRegisters);
bindFunc(vertexInputRegisters);
bindFunc(inputAssemblyRegisters);
bindFunc(tessellationRegisters);
bindFunc(rasterizationRegisters);
bindFunc(depthStencilRegisters);
bindFunc(colorBlendRegisters);
bindFunc(globalShaderConfigRegisters);
}
PipelineState::PipelineState(dirty::Handle dirtyHandle, DirtyManager &manager, const EngineRegisters &engine)