-
Notifications
You must be signed in to change notification settings - Fork 455
Description
Platform: MacBook Air M2 with macOS 15.5 (24F74)
I have some code that loops through a set of framebuffers and resource sets and kicks off a fullscreen draw pass as follows:
unsigned int frameBufferCount = 3;
for( size_t i = 1; i < frameBufferCount; ++I )
{
encoder.Bind( pipeline );
encoder.Bind( resourceSets[i-1] );
encoder.Bind( framebuffers[i] );
encoder.Bind( vertexBuffers, vertexBufferCount );
encoder.SetViewport( 0, 0, frameBufferWidth, frameBufferHeight );
encoder.SetScissor( 0, 0, frameBufferWidth, frameBufferHeight );
encoder.Draw( indexBuffer, indexType, indexCount );
encoder.Bind( nullptr );
}
This was all working and outputting the same image as an actual android device prior to this git commit: c3f40ee - "Put resources in residency sets"
However, it now causes random corruption every frame at runtime.
Android Reference - Ground Truth
The residency sets commit is causing random squares (corruption) to appear. I am able to fix it by hard setting _metalFeatures.residencySets
to be false and building the libs manually. I can also fix it on latest code by doing the same thing.
Residency sets seem to be ok in this kind of loop if the framebuffer count is <= 2 but any more than that and I see corruption.