Some WebGL demos spend substantial time waiting in rx::Buffer11::NativeBuffer11::resize

NEW
Unassigned

Status

()

Core
Canvas: WebGL
4 years ago
3 years ago

People

(Reporter: jrmuizel, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: gfx-noted)

I see this on intel hardware:

Here's a rough stack:

0, ntoskrnl.exe!_misaligned_access+0x17e7
1, ntoskrnl.exe!KeAcquireSpinLockAtDpcLevel+0x93d
2, ntoskrnl.exe!KeWaitForSingleObject+0x19f
3, dxgkrnl.sys+0x2453
4, dxgkrnl.sys+0x2535
5, dxgkrnl.sys!g_TdrForceTimeout+0x1d959
6, win32k.sys!EngUnlockDirectDrawSurface+0x28de
7, ntoskrnl.exe!KeSynchronizeExecution+0x3a23
8, wow64win.dll+0x413aa
9, wow64win.dll+0x25b64
10, wow64.dll!Wow64SystemServiceEx+0xd7
11, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x2d
12, wow64.dll!Wow64SystemServiceEx+0x1ce
13, wow64.dll!Wow64LdrpInitialize+0x42a
14, ntdll.dll!RtlUniform+0x6e6
15, ntdll.dll!RtlCreateTagHeap+0xa7
16, ntdll.dll!LdrInitializeThunk+0xe
17, gdi32.dll!D3DKMTCreateAllocation2+0x15
18, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x2f4c1
19, igd10iumd32.dll!OpenAdapter10_2+0x1c0fe
20, igd10iumd32.dll!OpenAdapter10_2+0x1b06a
21, igd10iumd32.dll!OpenAdapter10_2+0x1a082
22, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x47142
23, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x46db0
24, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x1cdf9
25, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x192c0
26, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x10685
27, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x929
28, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x329b3
29, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x32a15
30, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x2b64f
31, d3d11.dll!D3D11CreateDeviceAndSwapChain+0xa9c
32, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x3b135
33, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x3ad8f
34, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x3a668
35, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x17bd5
36, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x65bc
37, d3d11.dll!D3D11CreateDeviceAndSwapChain+0x644c
38, libGLESv2.dll!rx::Buffer11::NativeBuffer11::resize+0x47
I'm not certain this stack is correct though
This looks like a better stack:
0, ntoskrnl.exe!KiDeliverApc+0x1c7
1, ntoskrnl.exe!KiCommitThreadWait+0x3dd
2, ntoskrnl.exe!KeWaitForSingleObject+0x19f
3, dxgkrnl.sys!DXGFASTMUTEX::Acquire+0xb7
4, dxgkrnl.sys!DXGAUTOMUTEX::Acquire+0x59
5, dxgkrnl.sys!DxgkCreateAllocation+0xc1
6, win32k.sys!EngUnlockDirectDrawSurface+0x28de
7, ntoskrnl.exe!KiSystemServiceCopyEnd+0x13
8, wow64win.dll!NtGdiDdDDICreateAllocation+0xa
9, wow64win.dll!whNtGdiDdDDICreateAllocation+0x120
10, wow64.dll!Wow64SystemServiceEx+0xd7
11, wow64cpu.dll!ServiceNoTurbo+0x2d
12, wow64.dll!RunCpuSimulation+0xa
13, wow64.dll!Wow64LdrpInitialize+0x42a
14, ntdll.dll!LdrpInitializeProcess+0x17e3
15, ntdll.dll! ?? ::FNODOBFM::`string'+0x28ff0
16, ntdll.dll!LdrInitializeThunk+0xe
17, gdi32.dll!NtGdiDdDDICreateAllocation+0x15
18, gdi32.dll!D3DKMTCreateAllocation+0x4d
19, d3d11.dll!NDXGI::CDevice::AllocateCB+0x37c
20, igd10iumd32.dll!OpenAdapter10_2+0x1c0fe
21, igd10iumd32.dll!OpenAdapter10_2+0x1b06a
22, igd10iumd32.dll!OpenAdapter10_2+0x1a082
23, d3d11.dll!CResource<ID3D11Texture3D>::CLS::FinalConstruct+0x2d2
24, d3d11.dll!TCLSWrappers<CTexture3D>::CLSFinalConstructFn+0x44
25, d3d11.dll!CLayeredObjectWithCLS<CBuffer>::FinalConstruct+0x71
26, d3d11.dll!CLayeredObjectWithCLS<CBuffer>::CreateInstance+0xa6
27, d3d11.dll!CDevice::CreateLayeredChild+0xc7
28, d3d11.dll!CBridgeImpl<ID3D11LayeredDevice,ID3D11LayeredDevice,CLayeredObject<CDevice> >::CreateLayeredChild+0x20
29, d3d11.dll!CD3D11LayeredChild<ID3D11DeviceChild,NDXGI::CDevice,64>::FinalConstruct+0x27
30, d3d11.dll!NDXGI::CResource::FinalConstruct+0x2b
31, d3d11.dll!NDXGI::CDevice::CreateLayeredChild+0x1d8
32, d3d11.dll!CBridgeImpl<ID3D11LayeredDevice,ID3D11LayeredDevice,CLayeredObject<NDXGI::CDevice> >::CreateLayeredChild+0x22
33, d3d11.dll!NOutermost::CDeviceChild::FinalConstruct+0x1e
34, d3d11.dll!CUseCountedObject<NOutermost::CDeviceChild>::CUseCountedObject<NOutermost::CDeviceChild>+0x49
35, d3d11.dll!CUseCountedObject<NOutermost::CDeviceChild>::CreateInstance+0x66
36, d3d11.dll!NOutermost::CDevice::CreateLayeredChild+0xd0
37, d3d11.dll!CDevice::CreateAndRecreateLayeredChild<SD3D11LayeredBufferCreationArgs>+0x2b
38, d3d11.dll!CDevice::CreateBuffer_Worker+0x167
39, d3d11.dll!CDevice::CreateBuffer+0x1e
40, libGLESv2.dll!rx::Buffer11::NativeBuffer11::resize+0x47
41, libGLESv2.dll!rx::Buffer11::getBufferStorage+0xc6
42, libGLESv2.dll!rx::Buffer11::setSubData+0x82
43, libGLESv2.dll!rx::Buffer11::setData+0x42
44, libGLESv2.dll!gl::Buffer::bufferData+0x2e
45, libGLESv2.dll!glBufferData+0xc7
46, xul.dll!mozilla::gl::GLContext::fBufferData+0x1a
47, xul.dll!mozilla::WebGLContext::CheckedBufferData+0x67
48, xul.dll!mozilla::WebGLContext::BufferData+0x9b
49, xul.dll!mozilla::dom::WebGLRenderingContextBinding::bufferData+0x20f
A surface is still in flight and the driver is waiting for the GPU to finish with it before resizing?!
Whiteboard: gfx-noted
You need to log in before you can comment on or make changes to this bug.