mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-14 15:46:28 +00:00
Update tests to use new mapping APIs
This CL updates all tests not specific to the old mapping API to use the new mapping APIs. (a couple old tests that caused difficult diffs were removed early). Also fix an issue where the mapAsync callback wasn't fired with Unknown when the buffer was destroyed. Bug: dawn:445 Change-Id: I0101f533ecb1fd995066742b60a833dc2ad522aa Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/26300 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
1aff02d444
commit
2088cdec66
@@ -1265,29 +1265,15 @@ TEST_F(BufferValidationTest, GetMappedRange_OnDestroyedBuffer) {
|
||||
}
|
||||
}
|
||||
|
||||
// Test that it is invalid to call GetMappedRange on a buffer after MapReadAsync
|
||||
TEST_F(BufferValidationTest, GetMappedRange_OnMappedForReading) {
|
||||
{
|
||||
wgpu::Buffer buf = CreateMapReadBuffer(4);
|
||||
// Test that it is invalid to call GetMappedRange on a buffer after MapAsync for reading
|
||||
TEST_F(BufferValidationTest, GetMappedRange_NonConstOnMappedForReading) {
|
||||
wgpu::Buffer buf = CreateMapReadBuffer(4);
|
||||
|
||||
buf.MapReadAsync(ToMockBufferMapReadCallback, nullptr);
|
||||
EXPECT_CALL(*mockBufferMapReadCallback,
|
||||
Call(WGPUBufferMapAsyncStatus_Success, Ne(nullptr), 4u, _))
|
||||
.Times(1);
|
||||
WaitForAllOperations(device);
|
||||
buf.MapAsync(wgpu::MapMode::Read, 0, 4, ToMockBufferMapAsyncCallback, nullptr);
|
||||
EXPECT_CALL(*mockBufferMapAsyncCallback, Call(WGPUBufferMapAsyncStatus_Success, _)).Times(1);
|
||||
WaitForAllOperations(device);
|
||||
|
||||
ASSERT_EQ(nullptr, buf.GetMappedRange());
|
||||
}
|
||||
{
|
||||
wgpu::Buffer buf = CreateMapReadBuffer(4);
|
||||
|
||||
buf.MapAsync(wgpu::MapMode::Read, 0, 4, ToMockBufferMapAsyncCallback, nullptr);
|
||||
EXPECT_CALL(*mockBufferMapAsyncCallback, Call(WGPUBufferMapAsyncStatus_Success, _))
|
||||
.Times(1);
|
||||
WaitForAllOperations(device);
|
||||
|
||||
ASSERT_EQ(nullptr, buf.GetMappedRange());
|
||||
}
|
||||
ASSERT_EQ(nullptr, buf.GetMappedRange());
|
||||
}
|
||||
|
||||
// Test valid cases to call GetMappedRange on a buffer.
|
||||
@@ -1307,38 +1293,25 @@ TEST_F(BufferValidationTest, GetMappedRange_ValidBufferStateCases) {
|
||||
ASSERT_EQ(buffer.GetConstMappedRange(), buffer.GetMappedRange());
|
||||
}
|
||||
|
||||
// GetMappedRange after MapReadAsync case.
|
||||
// GetMappedRange after MapAsync for reading case.
|
||||
{
|
||||
wgpu::Buffer buf = CreateMapReadBuffer(4);
|
||||
|
||||
buf.MapReadAsync(ToMockBufferMapReadCallback, nullptr);
|
||||
|
||||
const void* mappedPointer = nullptr;
|
||||
EXPECT_CALL(*mockBufferMapReadCallback,
|
||||
Call(WGPUBufferMapAsyncStatus_Success, Ne(nullptr), 4u, _))
|
||||
.WillOnce(SaveArg<1>(&mappedPointer));
|
||||
|
||||
buf.MapAsync(wgpu::MapMode::Read, 0, 4, nullptr, nullptr);
|
||||
WaitForAllOperations(device);
|
||||
|
||||
ASSERT_NE(buf.GetConstMappedRange(), nullptr);
|
||||
ASSERT_EQ(buf.GetConstMappedRange(), mappedPointer);
|
||||
}
|
||||
|
||||
// GetMappedRange after MapWriteAsync case.
|
||||
// GetMappedRange after MapAsync for writing case.
|
||||
{
|
||||
wgpu::Buffer buf = CreateMapWriteBuffer(4);
|
||||
buf.MapWriteAsync(ToMockBufferMapWriteCallback, nullptr);
|
||||
|
||||
const void* mappedPointer = nullptr;
|
||||
EXPECT_CALL(*mockBufferMapWriteCallback,
|
||||
Call(WGPUBufferMapAsyncStatus_Success, Ne(nullptr), 4u, _))
|
||||
.WillOnce(SaveArg<1>(&mappedPointer));
|
||||
|
||||
buf.MapAsync(wgpu::MapMode::Write, 0, 4, nullptr, nullptr);
|
||||
WaitForAllOperations(device);
|
||||
|
||||
ASSERT_NE(buf.GetConstMappedRange(), nullptr);
|
||||
ASSERT_EQ(buf.GetConstMappedRange(), buf.GetMappedRange());
|
||||
ASSERT_EQ(buf.GetConstMappedRange(), mappedPointer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -169,26 +169,14 @@ namespace {
|
||||
ASSERT_DEVICE_ERROR(queue.WriteBuffer(buffer, 0, &value, sizeof(value)));
|
||||
}
|
||||
|
||||
// MapReadAsync
|
||||
// MapAsync
|
||||
{
|
||||
wgpu::BufferDescriptor descriptor;
|
||||
descriptor.size = 4;
|
||||
descriptor.usage = wgpu::BufferUsage::CopyDst | wgpu::BufferUsage::MapRead;
|
||||
wgpu::Buffer buf = device.CreateBuffer(&descriptor);
|
||||
|
||||
buf.MapReadAsync(nullptr, nullptr);
|
||||
uint32_t value = 0;
|
||||
ASSERT_DEVICE_ERROR(queue.WriteBuffer(buf, 0, &value, sizeof(value)));
|
||||
}
|
||||
|
||||
// MapWriteAsync
|
||||
{
|
||||
wgpu::BufferDescriptor descriptor;
|
||||
descriptor.size = 4;
|
||||
descriptor.usage = wgpu::BufferUsage::CopySrc | wgpu::BufferUsage::MapWrite;
|
||||
wgpu::Buffer buf = device.CreateBuffer(&descriptor);
|
||||
|
||||
buf.MapWriteAsync(nullptr, nullptr);
|
||||
buf.MapAsync(wgpu::MapMode::Read, 0, 4, nullptr, nullptr);
|
||||
uint32_t value = 0;
|
||||
ASSERT_DEVICE_ERROR(queue.WriteBuffer(buf, 0, &value, sizeof(value)));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user