Handle Device Lost for Command Encoder Finish
Bug: dawn:68 Change-Id: I3449cdd9e69f3ae44a30f113fd88bd2fce2c94d7 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15602 Commit-Queue: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This commit is contained in:
parent
f44a809f9a
commit
2dd9ed0776
src
|
@ -763,6 +763,7 @@ namespace dawn_native {
|
||||||
// state of the encoding context. The internal state is set to finished, and subsequent
|
// state of the encoding context. The internal state is set to finished, and subsequent
|
||||||
// calls to encode commands will generate errors.
|
// calls to encode commands will generate errors.
|
||||||
if (device->ConsumedError(mEncodingContext.Finish()) ||
|
if (device->ConsumedError(mEncodingContext.Finish()) ||
|
||||||
|
device->ConsumedError(device->ValidateIsAlive()) ||
|
||||||
(device->IsValidationEnabled() &&
|
(device->IsValidationEnabled() &&
|
||||||
device->ConsumedError(ValidateFinish(mEncodingContext.GetIterator(),
|
device->ConsumedError(ValidateFinish(mEncodingContext.GetIterator(),
|
||||||
mEncodingContext.GetPassUsages())))) {
|
mEncodingContext.GetPassUsages())))) {
|
||||||
|
|
|
@ -357,4 +357,13 @@ TEST_P(DeviceLostTest, SetSubDataFails) {
|
||||||
ASSERT_DEVICE_ERROR(buffer.SetSubData(0, sizeof(float), data.data()));
|
ASSERT_DEVICE_ERROR(buffer.SetSubData(0, sizeof(float), data.data()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test that Command Encoder Finish fails when device lost
|
||||||
|
TEST_P(DeviceLostTest, CommandEncoderFinishFails) {
|
||||||
|
wgpu::CommandBuffer commands;
|
||||||
|
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||||
|
|
||||||
|
SetCallbackAndLoseForTesting();
|
||||||
|
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||||
|
}
|
||||||
|
|
||||||
DAWN_INSTANTIATE_TEST(DeviceLostTest, D3D12Backend, VulkanBackend);
|
DAWN_INSTANTIATE_TEST(DeviceLostTest, D3D12Backend, VulkanBackend);
|
Loading…
Reference in New Issue