Correctly reset mappedData in MapTwice buffer test
The test would previously fail because the mappedData pointer stayed non-null which meant the spin-loop waiting for the map read callback would exit immediately. BUG=dawn:278 BUG=dawn:280 Change-Id: I53e5974571d7684b09903c599bb65c0d8efe4d8a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13821 Reviewed-by: Yunchao He <yunchao.he@intel.com> Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
parent
4d15609d26
commit
0d4a7b0ba5
|
@ -38,6 +38,11 @@ class BufferMapReadTests : public DawnTest {
|
||||||
return mappedData;
|
return mappedData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UnmapBuffer(const wgpu::Buffer& buffer) {
|
||||||
|
buffer.Unmap();
|
||||||
|
mappedData = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const void* mappedData = nullptr;
|
const void* mappedData = nullptr;
|
||||||
};
|
};
|
||||||
|
@ -55,16 +60,11 @@ TEST_P(BufferMapReadTests, SmallReadAtZero) {
|
||||||
const void* mappedData = MapReadAsyncAndWait(buffer);
|
const void* mappedData = MapReadAsyncAndWait(buffer);
|
||||||
ASSERT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData));
|
ASSERT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData));
|
||||||
|
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Map, read and unmap twice. Test that both of these two iterations work.
|
// Map, read and unmap twice. Test that both of these two iterations work.
|
||||||
TEST_P(BufferMapReadTests, MapTwice) {
|
TEST_P(BufferMapReadTests, MapTwice) {
|
||||||
// TODO(http://crbug.com/dawn/278): the second read doesn't get updated data
|
|
||||||
// on D3D12, Metal and Vulkan.
|
|
||||||
// TODO(http://crbug.com/dawn/280): the second read doesn't get updated data
|
|
||||||
// on OpenGL wire.
|
|
||||||
DAWN_SKIP_TEST_IF(IsD3D12() || IsMetal() || IsVulkan() || UsesWire());
|
|
||||||
wgpu::BufferDescriptor descriptor;
|
wgpu::BufferDescriptor descriptor;
|
||||||
descriptor.size = 4;
|
descriptor.size = 4;
|
||||||
descriptor.usage = wgpu::BufferUsage::MapRead | wgpu::BufferUsage::CopyDst;
|
descriptor.usage = wgpu::BufferUsage::MapRead | wgpu::BufferUsage::CopyDst;
|
||||||
|
@ -76,7 +76,7 @@ TEST_P(BufferMapReadTests, MapTwice) {
|
||||||
const void* mappedData = MapReadAsyncAndWait(buffer);
|
const void* mappedData = MapReadAsyncAndWait(buffer);
|
||||||
EXPECT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData));
|
EXPECT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData));
|
||||||
|
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
|
|
||||||
myData = 0x05060708;
|
myData = 0x05060708;
|
||||||
buffer.SetSubData(0, sizeof(myData), &myData);
|
buffer.SetSubData(0, sizeof(myData), &myData);
|
||||||
|
@ -84,7 +84,7 @@ TEST_P(BufferMapReadTests, MapTwice) {
|
||||||
const void* mappedData1 = MapReadAsyncAndWait(buffer);
|
const void* mappedData1 = MapReadAsyncAndWait(buffer);
|
||||||
EXPECT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData1));
|
EXPECT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData1));
|
||||||
|
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test mapping a large buffer.
|
// Test mapping a large buffer.
|
||||||
|
@ -105,7 +105,7 @@ TEST_P(BufferMapReadTests, LargeRead) {
|
||||||
const void* mappedData = MapReadAsyncAndWait(buffer);
|
const void* mappedData = MapReadAsyncAndWait(buffer);
|
||||||
ASSERT_EQ(0, memcmp(mappedData, myData.data(), kDataSize * sizeof(uint32_t)));
|
ASSERT_EQ(0, memcmp(mappedData, myData.data(), kDataSize * sizeof(uint32_t)));
|
||||||
|
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
DAWN_INSTANTIATE_TEST(BufferMapReadTests, D3D12Backend, MetalBackend, OpenGLBackend, VulkanBackend);
|
DAWN_INSTANTIATE_TEST(BufferMapReadTests, D3D12Backend, MetalBackend, OpenGLBackend, VulkanBackend);
|
||||||
|
@ -136,6 +136,11 @@ class BufferMapWriteTests : public DawnTest {
|
||||||
return resultPointer;
|
return resultPointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UnmapBuffer(const wgpu::Buffer& buffer) {
|
||||||
|
buffer.Unmap();
|
||||||
|
mappedData = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void* mappedData = nullptr;
|
void* mappedData = nullptr;
|
||||||
};
|
};
|
||||||
|
@ -150,7 +155,7 @@ TEST_P(BufferMapWriteTests, SmallWriteAtZero) {
|
||||||
uint32_t myData = 2934875;
|
uint32_t myData = 2934875;
|
||||||
void* mappedData = MapWriteAsyncAndWait(buffer);
|
void* mappedData = MapWriteAsyncAndWait(buffer);
|
||||||
memcpy(mappedData, &myData, sizeof(myData));
|
memcpy(mappedData, &myData, sizeof(myData));
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_EQ(myData, buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, buffer, 0);
|
||||||
}
|
}
|
||||||
|
@ -165,14 +170,14 @@ TEST_P(BufferMapWriteTests, MapTwice) {
|
||||||
uint32_t myData = 2934875;
|
uint32_t myData = 2934875;
|
||||||
void* mappedData = MapWriteAsyncAndWait(buffer);
|
void* mappedData = MapWriteAsyncAndWait(buffer);
|
||||||
memcpy(mappedData, &myData, sizeof(myData));
|
memcpy(mappedData, &myData, sizeof(myData));
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_EQ(myData, buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, buffer, 0);
|
||||||
|
|
||||||
myData = 9999999;
|
myData = 9999999;
|
||||||
void* mappedData1 = MapWriteAsyncAndWait(buffer);
|
void* mappedData1 = MapWriteAsyncAndWait(buffer);
|
||||||
memcpy(mappedData1, &myData, sizeof(myData));
|
memcpy(mappedData1, &myData, sizeof(myData));
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_EQ(myData, buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, buffer, 0);
|
||||||
}
|
}
|
||||||
|
@ -192,7 +197,7 @@ TEST_P(BufferMapWriteTests, LargeWrite) {
|
||||||
|
|
||||||
void* mappedData = MapWriteAsyncAndWait(buffer);
|
void* mappedData = MapWriteAsyncAndWait(buffer);
|
||||||
memcpy(mappedData, myData.data(), kDataSize * sizeof(uint32_t));
|
memcpy(mappedData, myData.data(), kDataSize * sizeof(uint32_t));
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), buffer, 0, kDataSize);
|
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), buffer, 0, kDataSize);
|
||||||
}
|
}
|
||||||
|
@ -216,7 +221,7 @@ TEST_P(BufferMapWriteTests, ManyWrites) {
|
||||||
|
|
||||||
void* mappedData = MapWriteAsyncAndWait(buffer);
|
void* mappedData = MapWriteAsyncAndWait(buffer);
|
||||||
memcpy(mappedData, myData.data(), kDataSize * sizeof(uint32_t));
|
memcpy(mappedData, myData.data(), kDataSize * sizeof(uint32_t));
|
||||||
buffer.Unmap();
|
UnmapBuffer(buffer);
|
||||||
|
|
||||||
buffers.push_back(buffer); // Destroy buffers upon return.
|
buffers.push_back(buffer); // Destroy buffers upon return.
|
||||||
}
|
}
|
||||||
|
@ -373,6 +378,11 @@ class CreateBufferMappedTests : public DawnTest {
|
||||||
return mappedData;
|
return mappedData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UnmapBuffer(const wgpu::Buffer& buffer) {
|
||||||
|
buffer.Unmap();
|
||||||
|
mappedData = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
void CheckResultStartsZeroed(const wgpu::CreateBufferMappedResult& result, uint64_t size) {
|
void CheckResultStartsZeroed(const wgpu::CreateBufferMappedResult& result, uint64_t size) {
|
||||||
ASSERT_EQ(result.dataLength, size);
|
ASSERT_EQ(result.dataLength, size);
|
||||||
for (uint64_t i = 0; i < result.dataLength; ++i) {
|
for (uint64_t i = 0; i < result.dataLength; ++i) {
|
||||||
|
@ -455,7 +465,7 @@ TEST_P(CreateBufferMappedTests, MapWriteUsageSmall) {
|
||||||
uint32_t myData = 230502;
|
uint32_t myData = 230502;
|
||||||
wgpu::CreateBufferMappedResult result = CreateBufferMappedWithData(
|
wgpu::CreateBufferMappedResult result = CreateBufferMappedWithData(
|
||||||
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -464,11 +474,11 @@ TEST_P(CreateBufferMappedTests, MapReadUsageSmall) {
|
||||||
uint32_t myData = 230502;
|
uint32_t myData = 230502;
|
||||||
wgpu::CreateBufferMappedResult result =
|
wgpu::CreateBufferMappedResult result =
|
||||||
CreateBufferMappedWithData(wgpu::BufferUsage::MapRead, {myData});
|
CreateBufferMappedWithData(wgpu::BufferUsage::MapRead, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
const void* mappedData = MapReadAsyncAndWait(result.buffer);
|
const void* mappedData = MapReadAsyncAndWait(result.buffer);
|
||||||
ASSERT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData));
|
ASSERT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData));
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test that the simplest CreateBufferMapped works for non-mappable buffers.
|
// Test that the simplest CreateBufferMapped works for non-mappable buffers.
|
||||||
|
@ -476,7 +486,7 @@ TEST_P(CreateBufferMappedTests, NonMappableUsageSmall) {
|
||||||
uint32_t myData = 4239;
|
uint32_t myData = 4239;
|
||||||
wgpu::CreateBufferMappedResult result =
|
wgpu::CreateBufferMappedResult result =
|
||||||
CreateBufferMappedWithData(wgpu::BufferUsage::CopySrc, {myData});
|
CreateBufferMappedWithData(wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
||||||
}
|
}
|
||||||
|
@ -491,7 +501,7 @@ TEST_P(CreateBufferMappedTests, MapWriteUsageLarge) {
|
||||||
|
|
||||||
wgpu::CreateBufferMappedResult result = CreateBufferMappedWithData(
|
wgpu::CreateBufferMappedResult result = CreateBufferMappedWithData(
|
||||||
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), result.buffer, 0, kDataSize);
|
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), result.buffer, 0, kDataSize);
|
||||||
}
|
}
|
||||||
|
@ -506,11 +516,11 @@ TEST_P(CreateBufferMappedTests, MapReadUsageLarge) {
|
||||||
|
|
||||||
wgpu::CreateBufferMappedResult result =
|
wgpu::CreateBufferMappedResult result =
|
||||||
CreateBufferMappedWithData(wgpu::BufferUsage::MapRead, myData);
|
CreateBufferMappedWithData(wgpu::BufferUsage::MapRead, myData);
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
const void* mappedData = MapReadAsyncAndWait(result.buffer);
|
const void* mappedData = MapReadAsyncAndWait(result.buffer);
|
||||||
ASSERT_EQ(0, memcmp(mappedData, myData.data(), kDataSize * sizeof(uint32_t)));
|
ASSERT_EQ(0, memcmp(mappedData, myData.data(), kDataSize * sizeof(uint32_t)));
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test CreateBufferMapped for a large non-mappable buffer
|
// Test CreateBufferMapped for a large non-mappable buffer
|
||||||
|
@ -523,7 +533,7 @@ TEST_P(CreateBufferMappedTests, NonMappableUsageLarge) {
|
||||||
|
|
||||||
wgpu::CreateBufferMappedResult result =
|
wgpu::CreateBufferMappedResult result =
|
||||||
CreateBufferMappedWithData(wgpu::BufferUsage::CopySrc, {myData});
|
CreateBufferMappedWithData(wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), result.buffer, 0, kDataSize);
|
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), result.buffer, 0, kDataSize);
|
||||||
}
|
}
|
||||||
|
@ -534,7 +544,7 @@ TEST_P(CreateBufferMappedTests, CreateThenMapSuccess) {
|
||||||
static uint32_t myData2 = 1337;
|
static uint32_t myData2 = 1337;
|
||||||
wgpu::CreateBufferMappedResult result = CreateBufferMappedWithData(
|
wgpu::CreateBufferMappedResult result = CreateBufferMappedWithData(
|
||||||
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
||||||
|
|
||||||
|
@ -553,7 +563,7 @@ TEST_P(CreateBufferMappedTests, CreateThenMapSuccess) {
|
||||||
WaitABit();
|
WaitABit();
|
||||||
}
|
}
|
||||||
|
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
EXPECT_BUFFER_U32_EQ(myData2, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData2, result.buffer, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -580,7 +590,7 @@ TEST_P(CreateBufferMappedTests, CreateThenMapBeforeUnmapFailure) {
|
||||||
}());
|
}());
|
||||||
|
|
||||||
// CreateBufferMapped is unaffected by the MapWrite error.
|
// CreateBufferMapped is unaffected by the MapWrite error.
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -589,7 +599,7 @@ TEST_P(CreateBufferMappedTests, MapWriteUsageSmallAsync) {
|
||||||
uint32_t myData = 230502;
|
uint32_t myData = 230502;
|
||||||
wgpu::CreateBufferMappedResult result = CreateBufferMappedAsyncWithDataAndWait(
|
wgpu::CreateBufferMappedResult result = CreateBufferMappedAsyncWithDataAndWait(
|
||||||
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -598,11 +608,11 @@ TEST_P(CreateBufferMappedTests, MapReadUsageSmallAsync) {
|
||||||
uint32_t myData = 230502;
|
uint32_t myData = 230502;
|
||||||
wgpu::CreateBufferMappedResult result =
|
wgpu::CreateBufferMappedResult result =
|
||||||
CreateBufferMappedAsyncWithDataAndWait(wgpu::BufferUsage::MapRead, {myData});
|
CreateBufferMappedAsyncWithDataAndWait(wgpu::BufferUsage::MapRead, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
const void* mappedData = MapReadAsyncAndWait(result.buffer);
|
const void* mappedData = MapReadAsyncAndWait(result.buffer);
|
||||||
ASSERT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData));
|
ASSERT_EQ(myData, *reinterpret_cast<const uint32_t*>(mappedData));
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test that the simplest CreateBufferMappedAsync works for non-mappable buffers.
|
// Test that the simplest CreateBufferMappedAsync works for non-mappable buffers.
|
||||||
|
@ -610,7 +620,7 @@ TEST_P(CreateBufferMappedTests, NonMappableUsageSmallAsync) {
|
||||||
uint32_t myData = 4239;
|
uint32_t myData = 4239;
|
||||||
wgpu::CreateBufferMappedResult result =
|
wgpu::CreateBufferMappedResult result =
|
||||||
CreateBufferMappedAsyncWithDataAndWait(wgpu::BufferUsage::CopySrc, {myData});
|
CreateBufferMappedAsyncWithDataAndWait(wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
||||||
}
|
}
|
||||||
|
@ -625,7 +635,7 @@ TEST_P(CreateBufferMappedTests, MapWriteUsageLargeAsync) {
|
||||||
|
|
||||||
wgpu::CreateBufferMappedResult result = CreateBufferMappedAsyncWithDataAndWait(
|
wgpu::CreateBufferMappedResult result = CreateBufferMappedAsyncWithDataAndWait(
|
||||||
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), result.buffer, 0, kDataSize);
|
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), result.buffer, 0, kDataSize);
|
||||||
}
|
}
|
||||||
|
@ -640,11 +650,11 @@ TEST_P(CreateBufferMappedTests, MapReadUsageLargeAsync) {
|
||||||
|
|
||||||
wgpu::CreateBufferMappedResult result =
|
wgpu::CreateBufferMappedResult result =
|
||||||
CreateBufferMappedAsyncWithDataAndWait(wgpu::BufferUsage::MapRead, {myData});
|
CreateBufferMappedAsyncWithDataAndWait(wgpu::BufferUsage::MapRead, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
const void* mappedData = MapReadAsyncAndWait(result.buffer);
|
const void* mappedData = MapReadAsyncAndWait(result.buffer);
|
||||||
ASSERT_EQ(0, memcmp(mappedData, myData.data(), kDataSize * sizeof(uint32_t)));
|
ASSERT_EQ(0, memcmp(mappedData, myData.data(), kDataSize * sizeof(uint32_t)));
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test CreateBufferMappedAsync for a large non-mappable buffer
|
// Test CreateBufferMappedAsync for a large non-mappable buffer
|
||||||
|
@ -657,7 +667,7 @@ TEST_P(CreateBufferMappedTests, NonMappableUsageLargeAsync) {
|
||||||
|
|
||||||
wgpu::CreateBufferMappedResult result =
|
wgpu::CreateBufferMappedResult result =
|
||||||
CreateBufferMappedAsyncWithDataAndWait(wgpu::BufferUsage::CopySrc, {myData});
|
CreateBufferMappedAsyncWithDataAndWait(wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), result.buffer, 0, kDataSize);
|
EXPECT_BUFFER_U32_RANGE_EQ(myData.data(), result.buffer, 0, kDataSize);
|
||||||
}
|
}
|
||||||
|
@ -668,7 +678,7 @@ TEST_P(CreateBufferMappedTests, CreateThenMapSuccessAsync) {
|
||||||
static uint32_t myData2 = 1337;
|
static uint32_t myData2 = 1337;
|
||||||
wgpu::CreateBufferMappedResult result = CreateBufferMappedAsyncWithDataAndWait(
|
wgpu::CreateBufferMappedResult result = CreateBufferMappedAsyncWithDataAndWait(
|
||||||
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc, {myData});
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
|
|
||||||
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
||||||
|
|
||||||
|
@ -687,7 +697,7 @@ TEST_P(CreateBufferMappedTests, CreateThenMapSuccessAsync) {
|
||||||
WaitABit();
|
WaitABit();
|
||||||
}
|
}
|
||||||
|
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
EXPECT_BUFFER_U32_EQ(myData2, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData2, result.buffer, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -714,7 +724,7 @@ TEST_P(CreateBufferMappedTests, CreateThenMapBeforeUnmapFailureAsync) {
|
||||||
}());
|
}());
|
||||||
|
|
||||||
// CreateBufferMappedAsync is unaffected by the MapWrite error.
|
// CreateBufferMappedAsync is unaffected by the MapWrite error.
|
||||||
result.buffer.Unmap();
|
UnmapBuffer(result.buffer);
|
||||||
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
EXPECT_BUFFER_U32_EQ(myData, result.buffer, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue