Bug 1910990 - Don't use ID3D11Query to wait for video copy complete for remote canvas. with AMD GPUs r=gfx-reviewers,lsalzman

With AMD GPUs, crash happened when  ID3D11Query was used for video rendering to remote canvas. Then the ID3D11Query usage needs to be limited only for video overlay with AMD GPUs. To do it, video rendering optimization to remove canvas is disabled when the ID3D11Query usage is detected with AMD GPUs.

GpuProcessQueryId.mOnlyForOverlay is added to deliver the information.

Differential Revision: https://phabricator.services.mozilla.com/D218390
This commit is contained in:
sotaro
2024-08-02 23:51:44 +00:00
parent 87db63d458
commit 82d6b46605
6 changed files with 18 additions and 4 deletions

View File

@@ -5446,6 +5446,10 @@ MaybeGetSurfaceDescriptorForRemoteCanvas(
if (subdescType ==
layers::RemoteDecoderVideoSubDescriptor::TSurfaceDescriptorD3D10) {
auto& descD3D10 = subdesc.get_SurfaceDescriptorD3D10();
if (descD3D10.gpuProcessQueryId().isSome() &&
descD3D10.gpuProcessQueryId().ref().mOnlyForOverlay) {
return Nothing();
}
// Clear FileHandleWrapper, since FileHandleWrapper::mHandle could not be
// cross process delivered by using Shmem. Cross-process delivery of
// FileHandleWrapper::mHandle is not possible simply by using shmen. When