Files
XCEngine/docs/api/XCEngine/Rendering/RenderSurface/SetAutoTransitionEnabled.md

1.7 KiB
Raw Blame History

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 并自动插入颜色附件 barrierfalse 表示由调用方或 pass 自己管理。

当前语义

  • BuiltinForwardPipeline::Render()BuiltinObjectIdPass::Render() 会读取这个开关。
  • 打开时,它们会把颜色附件从 GetColorStateBefore 过渡到 RenderTarget,结束后再过渡到 GetColorStateAfter
  • 关闭时,这两条路径仍会继续渲染,但默认假设调用方已经保证目标颜色资源处于正确状态。

当前实现边界

  • 这个开关不处理深度附件状态。
  • 它也不会阻止其他 pass 显式做自己的 barrier。编辑器 overlay pass 就会无视该开关,直接把颜色附件从 GetColorStateAfter() 切到 RenderTarget 并在结束后切回去。

相关文档