Second Render Encoder Causing Artefacts on iOS Devices

My code initially renders to a texture then I use a blit command encoder to copy that texture to a new empty one. Then in the same rendering pass, I create a new encoder and pass this texture in as an argument. The code below gives an overview. When running it on macOS, it works fine; but when running it on iOS, I get some visual artefacts that cover the entire screen.


// Create render pass descriptor...
renderPassdecriptor.colorAttachments[0].texture = initialRenderTarget
// Continue configuring this pass desriptor and other stuff

let firstEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: renderPassDescriptor)
// Configure firstEncoder and perform draw calls...
firstEncoder.endEncoding()

let blitEncoder = commandBuffer.makeBlitCommandEncoder()
blitEncoder.copy(initialRenderTarget, newTexture)
blitEncoder.endEncoding()

let secondEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: renderPassDescriptor)
// Encode...
secondEncoder.endEncoding()