mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-08 04:08:32 +09:00
[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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user