Browse Source

Vk: allow the allocated buffer memory to be larger in the test.

Fixes an assertion in Utility::copy() on NVidia.
pull/419/merge
Vladimír Vondruš 2 years ago
parent
commit
6f298f4d9f
  1. 9
      src/Magnum/Vk/Test/BufferVkTest.cpp
  2. 4
      src/Magnum/Vk/Test/MeshVkTest.cpp

9
src/Magnum/Vk/Test/BufferVkTest.cpp

@ -228,11 +228,13 @@ void BufferVkTest::cmdCopyBuffer() {
/* Source buffer */
Buffer a{device(), BufferCreateInfo{BufferUsage::TransferSource, 7}, MemoryFlag::HostVisible};
Utility::copy("__ABCD_"_s, a.dedicatedMemory().map());
/* It might be allocated larger, copy to just a prefix */
Utility::copy("__ABCD_"_s, a.dedicatedMemory().map().prefix(7));
/* Destination buffer, clear it to have predictable output */
Buffer b{device(), BufferCreateInfo{BufferUsage::TransferDestination, 10}, MemoryFlag::HostVisible};
Utility::copy(".........."_s, b.dedicatedMemory().map());
/* It might be allocated larger, copy to just a prefix */
Utility::copy(".........."_s, b.dedicatedMemory().map().prefix(10));
cmd.begin()
.copyBuffer({a, b, {{2, 5, 4}}})
@ -242,7 +244,8 @@ void BufferVkTest::cmdCopyBuffer() {
.end();
queue().submit({SubmitInfo{}.setCommandBuffers({cmd})}).wait();
CORRADE_COMPARE(arrayView(b.dedicatedMemory().mapRead()),
/* It might be allocated larger, compare just a prefix */
CORRADE_COMPARE(arrayView(b.dedicatedMemory().mapRead()).prefix(10),
".....ABCD."_s);
}

4
src/Magnum/Vk/Test/MeshVkTest.cpp

@ -329,9 +329,9 @@ void MeshVkTest::cmdDrawIndexed() {
Containers::Array<char, MemoryMapDeleter> data = buffer.dedicatedMemory().map();
/** @todo ffs fucking casts!!! */
Utility::copy(Containers::stridedArrayView(QuadData).slice(&Quad::position),
Containers::arrayCast<Vector3>(data.slice(32, 32 + 12*4)));
Containers::arrayCast<Vector3>(data.sliceSize(32, 12*4)));
Utility::copy(Containers::arrayCast<const char>(QuadIndexData),
Containers::stridedArrayView(data).exceptPrefix(32 + 12*4));
Containers::stridedArrayView(data).sliceSize(32 + 12*4, 12));
mesh.addVertexBuffer(0, buffer, 32)
.setIndexBuffer(Utility::move(buffer), 32 + 12*4, MeshIndexType::UnsignedShort)
.setCount(6);

Loading…
Cancel
Save