mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-20 10:25:28 +00:00
Deprecate fences.
The are replaced by Queue::OnSubmittedWorkDone. Only Queue::CreateFence is deprecated since all other fence-related calls require a fence to work. Also ports a number of uses of fences in test harness to use Queue::OnSubmittedWorkDone instead. Bug: chromium:1177476 Change-Id: I479415f72b08158a3484013e00db8facd11e6f33 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42660 Auto-Submit: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Brandon Jones <bajones@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
7124cc4e5d
commit
4165c1cd9c
@@ -149,7 +149,8 @@ TEST_F(ErrorScopeValidationTest, EnclosedQueueSubmit) {
|
||||
device.PushErrorScope(wgpu::ErrorFilter::OutOfMemory);
|
||||
|
||||
queue.Submit(0, nullptr);
|
||||
wgpu::Fence fence = queue.CreateFence();
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence());
|
||||
queue.Signal(fence, 1);
|
||||
|
||||
testing::Sequence seq;
|
||||
@@ -174,7 +175,8 @@ TEST_F(ErrorScopeValidationTest, EnclosedQueueSubmitNested) {
|
||||
device.PushErrorScope(wgpu::ErrorFilter::OutOfMemory);
|
||||
|
||||
queue.Submit(0, nullptr);
|
||||
wgpu::Fence fence = queue.CreateFence();
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence());
|
||||
queue.Signal(fence, 1);
|
||||
|
||||
testing::Sequence seq;
|
||||
|
||||
@@ -70,13 +70,14 @@ TEST_F(FenceValidationTest, CreationSuccess) {
|
||||
{
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 0;
|
||||
queue.CreateFence(&descriptor);
|
||||
EXPECT_DEPRECATION_WARNING(queue.CreateFence(&descriptor));
|
||||
}
|
||||
}
|
||||
|
||||
// Creation succeeds if no descriptor is provided
|
||||
TEST_F(FenceValidationTest, DefaultDescriptor) {
|
||||
wgpu::Fence fence = queue.CreateFence();
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence());
|
||||
EXPECT_EQ(fence.GetCompletedValue(), 0u);
|
||||
}
|
||||
|
||||
@@ -85,7 +86,8 @@ TEST_F(FenceValidationTest, GetCompletedValue) {
|
||||
{
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
EXPECT_EQ(fence.GetCompletedValue(), 1u);
|
||||
}
|
||||
}
|
||||
@@ -99,7 +101,8 @@ TEST_F(FenceValidationTest, OnCompletionImmediate) {
|
||||
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
|
||||
EXPECT_CALL(*mockFenceOnCompletionCallback, Call(WGPUFenceCompletionStatus_Success, this + 0))
|
||||
.Times(1);
|
||||
@@ -114,7 +117,8 @@ TEST_F(FenceValidationTest, OnCompletionImmediate) {
|
||||
TEST_F(FenceValidationTest, OnCompletionLargerThanSignaled) {
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
|
||||
// Cannot signal for values > signaled value
|
||||
EXPECT_CALL(*mockFenceOnCompletionCallback, Call(WGPUFenceCompletionStatus_Error, nullptr))
|
||||
@@ -137,7 +141,8 @@ TEST_F(FenceValidationTest, GetCompletedValueInsideCallback) {
|
||||
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
|
||||
queue.Signal(fence, 3);
|
||||
fence.OnCompletion(2u, ToMockFenceOnCompletion, nullptr);
|
||||
@@ -152,7 +157,8 @@ TEST_F(FenceValidationTest, GetCompletedValueInsideCallback) {
|
||||
TEST_F(FenceValidationTest, GetCompletedValueAfterCallback) {
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
|
||||
queue.Signal(fence, 2);
|
||||
fence.OnCompletion(2u, ToMockFenceOnCompletion, nullptr);
|
||||
@@ -166,7 +172,8 @@ TEST_F(FenceValidationTest, GetCompletedValueAfterCallback) {
|
||||
TEST_F(FenceValidationTest, SignalError) {
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
|
||||
// value < fence signaled value
|
||||
ASSERT_DEVICE_ERROR(queue.Signal(fence, 0));
|
||||
@@ -178,7 +185,8 @@ TEST_F(FenceValidationTest, SignalError) {
|
||||
TEST_F(FenceValidationTest, SignalSuccess) {
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
|
||||
// Success
|
||||
queue.Signal(fence, 2);
|
||||
@@ -198,7 +206,8 @@ TEST_F(FenceValidationTest, DISABLED_SignalWrongQueue) {
|
||||
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
|
||||
ASSERT_DEVICE_ERROR(queue2.Signal(fence, 2));
|
||||
}
|
||||
@@ -210,7 +219,8 @@ TEST_F(FenceValidationTest, DISABLED_SignalWrongQueueDoesNotUpdateValue) {
|
||||
|
||||
wgpu::FenceDescriptor descriptor;
|
||||
descriptor.initialValue = 1;
|
||||
wgpu::Fence fence = queue.CreateFence(&descriptor);
|
||||
wgpu::Fence fence;
|
||||
EXPECT_DEPRECATION_WARNING(fence = queue.CreateFence(&descriptor));
|
||||
|
||||
ASSERT_DEVICE_ERROR(queue2.Signal(fence, 2));
|
||||
|
||||
|
||||
@@ -131,12 +131,13 @@ void ValidationTest::FlushWire() {
|
||||
}
|
||||
|
||||
void ValidationTest::WaitForAllOperations(const wgpu::Device& device) {
|
||||
wgpu::Queue queue = device.GetQueue();
|
||||
wgpu::Fence fence = queue.CreateFence();
|
||||
bool done = false;
|
||||
device.GetQueue().OnSubmittedWorkDone(
|
||||
0u, [](WGPUQueueWorkDoneStatus, void* userdata) { *static_cast<bool*>(userdata) = true; },
|
||||
&done);
|
||||
|
||||
// Force the currently submitted operations to completed.
|
||||
queue.Signal(fence, 1);
|
||||
while (fence.GetCompletedValue() < 1) {
|
||||
while (!done) {
|
||||
device.Tick();
|
||||
FlushWire();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user