KhronosGroup / VK-GL-CTS

Khronos Vulkan, OpenGL, and OpenGL ES Conformance Tests
https://www.khronos.org/
Apache License 2.0
521 stars 290 forks source link

Add missing src buffer flush and dst buffer invalidation #400

Closed speles closed 1 year ago

speles commented 1 year ago

This PR is related to a bug that was originally submitted as a mesa issue, but I believe it's actually a test bug. (similar to the one fixed in https://github.com/KhronosGroup/VK-GL-CTS/pull/372).

We allocate and map src/dst buffers, write data to src, and read it from dst. But we don't flush src buffer after writing or invalidate dst buffer before reading. So if we allocate those buffers from non-host-coherent memory, the data may be corrupted at both of those steps.

mattst88 commented 1 year ago

I can confirm that with this patch the dEQP-VK.image.queue_transfer.* consistently pass on Intel Geminilake.

Thanks!

tpalli commented 1 year ago

Thanks, added to review process. It may take up to 2 weeks

ibriano commented 1 year ago

Merged in 6054d27fb5c2d810cb97702a716c9aee0ebe2d5b

speles commented 1 year ago

Thank you! Closing this PR now