docs(render): drop the ambient-encoder relaxation from Campaign V

The transitional path for slices V4a-V4g needs no special API after all.
On GL, BeginPass binds the target framebuffer and applies load ops but
deliberately leaves viewport and scissor to the encoder, so a renderer
being ported mid-campaign opens a Load/Store pass against the backbuffer
and gets exactly today's behavior while the frame spine still owns clears.
One less contract concept, and one less thing for V4h to unwind.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-07-27 14:28:06 +02:00
parent 621b16364b
commit 90f7c6f2f4
2 changed files with 11 additions and 6 deletions

View file

@ -42,10 +42,15 @@ internal readonly record struct GpuDepthAttachment(
///
/// GL has no such object — its "pass" is implicit in whatever framebuffer happens
/// to be bound — so making passes explicit is the single largest structural change
/// the RHI imposes on the existing renderers. The GL backend therefore accepts an
/// ambient encoder during Campaign V slices V1..V4g (draws outside any declared
/// pass, preserving today's behaviour) and slice V4h removes that relaxation once
/// every renderer declares its passes.
/// the RHI imposes on the existing renderers.
///
/// The transitional path needs no special API. On GL, <c>BeginPass</c> binds the
/// target framebuffer and applies load ops, and deliberately does NOT touch
/// viewport or scissor — encoders set those explicitly. A renderer being ported
/// during Campaign V slices V4a..V4g therefore opens a pass with
/// <see cref="GpuLoadOp.Load"/> / <see cref="GpuStoreOp.Store"/> against the
/// backbuffer and gets exactly today's behaviour, while the frame spine still
/// owns clears and framebuffer management. Slice V4h converts the spine itself.
/// </summary>
internal sealed record GpuPassDescription
{