1.7 KiB
1.7 KiB
RenderSurface::SetAutoTransitionEnabled
设置是否让部分渲染路径自动切换颜色附件状态。
void SetAutoTransitionEnabled(bool enabled);
2026-04-10 更新
- 当前这个开关不再只服务少数颜色路径;多条 Rendering pass 都会在它为
true时按RenderSurface上记录的约定插入 barrier。 - 自动切换涉及的不只是 color,部分 pass 也会读取 GetDepthStateBefore / GetDepthStateAfter 来接管 depth 附件。
RenderSurface自身并不执行 barrier;它只保存契约。真正的状态切换仍发生在具体 pass 的执行路径里。
参数
enabled-true表示允许读取colorStateBefore / colorStateAfter并自动插入颜色附件 barrier;false表示由调用方或 pass 自己管理。
当前语义
BuiltinForwardPipeline::Render()和BuiltinObjectIdPass::Render()会读取这个开关。- 打开时,它们会把颜色附件从 GetColorStateBefore 过渡到
RenderTarget,结束后再过渡到 GetColorStateAfter。 - 关闭时,这两条路径仍会继续渲染,但默认假设调用方已经保证目标颜色资源处于正确状态。
当前实现边界
- 这个开关不处理深度附件状态。
- 它也不会阻止其他 pass 显式做自己的 barrier。编辑器 overlay pass 就会无视该开关,直接把颜色附件从
GetColorStateAfter()切到RenderTarget并在结束后切回去。