[MG_Pipe, MG_IntegrationTest] (Disaggregated): P5f fm - ratchet retired Magma clear and shared copy pulls

This commit is contained in:
2026-09-19 23:03:30 -04:00
parent 6c3662be9b
commit 20f48d6e40
2 changed files with 15 additions and 6 deletions
@@ -42,12 +42,10 @@ GetFramebufferBindingSlot@ReadPixels
# The XFB program check at draw setup (FieldOwnership.def: "P3b/P4b (Espryt), P7 (Magma)").
# 11 entries (the TessellationXfbCapture / XfbCaptureBufferReuse family)
GetTransformFeedbackProgram@DrawArrays
# CopyImageSubData resolves both textures through the sticky forward (def: "P7").
# 6 entries
GetTextureObject@CopyImageSubData
# Magma's Clear path (the two DirectVulkan.Split.NamedBlit entries) - fm's first rows.
# 2 entries
GetFramebufferBindingSlot@Clear
# P5f fm measured retirement: GetTextureObject@CopyImageSubData disappeared via
# the shared fe/fm endpoint-handle seam; those six Espryt cases now reach ReadPixels.
# P5f fm measured retirement: the two Magma NamedBlit entries are green; Clear,
# readback and blit resolve server framebuffer/resource records.
# CopyTexImage2D's texture-unit read (def: "P5e (Espryt unbarriered), P7 (Magma)").
# 2 entries
GetTextureUnitObject@CopyTexImage2D
+11
View File
@@ -50,6 +50,17 @@
// RetiringPhase is `-` for every class but BARRIER_PULLED, where it is the ROADMAP phase
// whose row stops the pull. It is a string, not an enum, because two of them name two
// phases for the two backends and flattening that would lose the half that matters.
//
// P5f fm: the Magma transport consumers of the nine object rows below have retired.
// WireDraw/WireFramebuffer and MagmaProgramSource/UniformManager read server records;
// enabled vertex arrays, EBO/indirect/named UBO/SSBO/texel-buffer uses meet the existing
// named P7 buffer refusal before any frontend read. Texture sync uses handle-keyed images
// and staged bytes, never GetTextureObject. The old getters remain reachable only through
// the monolith implementation (or behind the named P7/class-C boundary). Keep these global
// classifications until fe + fm are integrated and the residual-fill/generator invariants
// are retired together; a missing wire branch must still poison, never read a default.
// RecordError belongs to fv. Details and the no-buffer draw counterexample are in
// docs/Disaggregated/notes/p5f/fm-report.md.
#define MGP_FIELD_OWNERSHIP_LIST(X) \
/* ---- BARRIER_PULLED: the 9 non-sticky rows the reduced path actually reads ---- */ \
/* scout-unmigrated-census section 3 intersects each verb class's may-read mask with "no */ \