mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-15 08:06:19 +00:00
Adds/refactors destroy handling for Buffer and QuerySet.
The changes should pass through the destroy changes such that when the device is destroyed, the respective destroy functionality currently existing in the backends should be called. For buffers, destroy no longer causes validation errors since even error buffers may need to be destroyed in the case of mappedAtCreation. Bug: dawn:628, dawn:1002 Change-Id: I42a475af5d67cc60f86d95ac53c2b377a9fd2e82 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/65863 Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Loko Kung <lokokung@google.com>
This commit is contained in:
@@ -467,7 +467,18 @@ TEST_F(BufferValidationTest, MappedAtCreationSizeAlignment) {
|
||||
ASSERT_DEVICE_ERROR(BufferMappedAtCreation(2, wgpu::BufferUsage::MapWrite));
|
||||
}
|
||||
|
||||
// Test that it is valid to destroy an unmapped buffer
|
||||
// Test that it is valid to destroy an error buffer
|
||||
TEST_F(BufferValidationTest, DestroyErrorBuffer) {
|
||||
wgpu::BufferDescriptor desc;
|
||||
desc.size = 4;
|
||||
desc.usage = wgpu::BufferUsage::MapRead | wgpu::BufferUsage::MapWrite;
|
||||
wgpu::Buffer buf;
|
||||
ASSERT_DEVICE_ERROR(buf = device.CreateBuffer(&desc));
|
||||
|
||||
buf.Destroy();
|
||||
}
|
||||
|
||||
// Test that it is valid to Destroy an unmapped buffer
|
||||
TEST_F(BufferValidationTest, DestroyUnmappedBuffer) {
|
||||
{
|
||||
wgpu::Buffer buf = CreateMapReadBuffer(4);
|
||||
@@ -486,6 +497,17 @@ TEST_F(BufferValidationTest, DestroyDestroyedBuffer) {
|
||||
buf.Destroy();
|
||||
}
|
||||
|
||||
// Test that it is invalid to Unmap an error buffer
|
||||
TEST_F(BufferValidationTest, UnmapErrorBuffer) {
|
||||
wgpu::BufferDescriptor desc;
|
||||
desc.size = 4;
|
||||
desc.usage = wgpu::BufferUsage::MapRead | wgpu::BufferUsage::MapWrite;
|
||||
wgpu::Buffer buf;
|
||||
ASSERT_DEVICE_ERROR(buf = device.CreateBuffer(&desc));
|
||||
|
||||
ASSERT_DEVICE_ERROR(buf.Unmap());
|
||||
}
|
||||
|
||||
// Test that it is invalid to Unmap a destroyed buffer
|
||||
TEST_F(BufferValidationTest, UnmapDestroyedBuffer) {
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user