Image curruption when writing to a image float target


Before I take the time to write a reproducible error report, I’d like to describe the problem that I’m facing and understand whether this is a known problem.

I’m writing code with the goal of calculating the ZBuffer minimum distances for an observer looking at an orthonormal world from the positive z-axis. To do that I set up a head less Vulkan command queue with a target R32_SFLOAT image, and shaders that write the z-coordinate to the fragment output. As my model may be very large I loop over chunks of the vertices and each time upload a chunk of my vertices to the GPU and draw that geometry. But, the problem is that the resulting image that I download after I’m finished is “corrupted” with lots of holes and errors in the geometry. I’m running with validation layers turned on, and everything is clean.

The reason that I think it might be a bug in the driver (or the card??) is that when running the same code against the software SwiftShader, then everything works as it should.

Here’s an image comparing the resulting floating point images from NVidia vs SwiftShader.