diff --git a/src/dawn/native/d3d12/TextureD3D12.cpp b/src/dawn/native/d3d12/TextureD3D12.cpp index d7fc90f236..a75482164a 100644 --- a/src/dawn/native/d3d12/TextureD3D12.cpp +++ b/src/dawn/native/d3d12/TextureD3D12.cpp @@ -739,6 +739,8 @@ MaybeError Texture::SynchronizeImportedTextureBeforeUse() { DAWN_TRY(CheckHRESULT(device->GetCommandQueue()->Wait(fence->GetD3D12Fence(), fence->GetFenceValue()), "D3D12 fence wait");); + // Keep D3D12 fence alive since we'll clear the waitFences list below. + device->ReferenceUntilUnused(fence->GetD3D12Fence()); } mWaitFences.clear(); return {};