[Fix] (Pipe): let a readback fill the transform-feedback state its emulation reads

- the depth/stencil read emulation opens a ScopedEmulationDrawState that pauses an active
  capture around its own draw, so ReadPixels/GetTexImage read IsTransformFeedbackActive and
  IsTransformFeedbackPaused; without the two kReadback rows every emulated readback aborts
  with Fatal{UnmigratedPipeInput, "IsTransformFeedbackActive@ReadPixels"} once the Espryt
  sites are converted
This commit is contained in:
2026-09-06 04:41:15 -04:00
parent 44ffafb2dc
commit 9087f13308
2 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -237,7 +237,7 @@
X(kReadback, GetSamplingResolutionGeneration) \
X(kReadback, GetTextureBindGeneration) \
X(kReadback, GetMaxTouchedTextureUnit) \
X(kReadback, GetImageTextureBinding) \
X(kReadback, GetImageTextureBinding) /* The depth/stencil read emulation draws (ScopedEmulationDrawState, */ /* DirectGLES.cpp:5224) and pauses an active capture around its own draw, so */ /* a readback reads the transform-feedback state exactly as a draw does. */ X(kReadback, IsTransformFeedbackActive) X(kReadback, IsTransformFeedbackPaused) \
/* kXfbSpan */ \
X(kXfbSpan, GetTransformFeedbackProgram) \
X(kXfbSpan, GetBufferBindingPoint) \
@@ -287,8 +287,8 @@ inline constexpr MGPipeFieldMask kMGPipeClassFieldMask[kMGPipeVerbClassCount] =
{{0x5f50ffa001344101ull, 0x0000000000000000ull}},
// kTextureOp: 14 fields (7 own + 7 sticky)
{{0x5c00f22001200101ull, 0x0000000000000000ull}},
// kReadback: 22 fields (15 own + 7 sticky)
{{0x5c50f3a041300541ull, 0x0000000000000000ull}},
// kReadback: 24 fields (17 own + 7 sticky)
{{0x5f50f3a041300541ull, 0x0000000000000000ull}},
// kXfbSpan: 15 fields (8 own + 7 sticky)
{{0x7f0b402000000380ull, 0x0000000000000000ull}},
// kProgramOp: 18 fields (11 own + 7 sticky)