[Bug 45430] New: Improve diagnostics of 'D3DxxCreateDevice' failures for warp driver type ( D3D10_DRIVER_TYPE_WARP or D3D_DRIVER_TYPE_WARP)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Jul 8 10:14:01 CDT 2018


https://bugs.winehq.org/show_bug.cgi?id=45430

            Bug ID: 45430
           Summary: Improve diagnostics of 'D3DxxCreateDevice' failures
                    for warp driver type (D3D10_DRIVER_TYPE_WARP or
                    D3D_DRIVER_TYPE_WARP)
           Product: Wine
           Version: 3.11
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: directx-d3d
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

for improving diagnostics of unsupported drivers with 'D3DxxCreateDevice'.

While trying out some games which support the DX11 Warp software renderer on
Windows platforms
(https://docs.microsoft.com/en-us/windows/desktop/direct3darticles/directx-warp)
using command line, the output was not super useful. In fact it's a bit
inconsistent.

'D3D10CreateDevice1' -> handles 'D3D10_DRIVER_TYPE_WARP' explicitly in fixme
trace

https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/d3d10_1/d3d10_1_main.c#l66

'D3D11CreateDevice' -> default (error) case, only enum value printed

https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/d3d11/d3d11_main.c#l155

'D3D10CreateDevice' -> default (error) case, only enum value printed

https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/d3d10/d3d10_main.c#l30

--- snip ---
...
0030:Ret  ucrtbase.memcpy() retval=0022ea88 ret=140e19601
0030:Call
d3d11.D3D11CreateDeviceAndSwapChain(00000000,00000005,00000000,00000000,0022f3d8,00000003,00000007,0022f3f0,2127fb38,2127fb30,2127fb40,0022f3d0)
ret=140b91f80
0030:Call dxgi.CreateDXGIFactory1(7f270d9df180,0022edf0) ret=7f270d975d1e
0030:trace:dxgi:CreateDXGIFactory1 iid {7b7166ec-21c7-44ae-b21a-c9ae321ae369},
factory 0x22edf0. 
...
0030:trace:d3d:wined3d_create Created wined3d object 0xc6c620.
0030:Ret  wined3d.wined3d_create() retval=00c6c620 ret=7f270d905c55
0030:Call wined3d.wined3d_mutex_unlock() ret=7f270d905c74
0030:Ret  wined3d.wined3d_mutex_unlock() retval=00000000 ret=7f270d905c74
0030:trace:dxgi:dxgi_factory_create Created factory 0xc6c5d0.
0030:trace:dxgi:dxgi_factory_QueryInterface iface 0xc6c5d0, iid
{7b7166ec-21c7-44ae-b21a-c9ae321ae369}, out 0x22edf0.
0030:trace:dxgi:dxgi_factory_AddRef 0xc6c5d0 increasing refcount to 2.
0030:trace:dxgi:dxgi_factory_Release 0xc6c5d0 decreasing refcount to 1.
0030:Ret  dxgi.CreateDXGIFactory1() retval=00000000 ret=7f270d975d1e
0030:fixme:d3d11:D3D11CreateDevice Unhandled driver type 0x5.
...
0030:Ret  d3d11.D3D11CreateDeviceAndSwapChain() retval=80004005 ret=140b91f80 
...
--- snip ---

It later crashes, likely due to missing WARP driver support.

Having the unhandled WARP driver type explicitly "stringified" could improve
the situation of diagnosing end user problems. I actually had to look up the
enum value.

Might be a bit off-topic to this ticket: Is Direct3D 11 WARP driver support
ever considered in Wine? I guess getting DX11+ feature support with hardware
drivers to work perfectly (tm) is much higher priority. The MS website
(https://docs.microsoft.com/en-us/windows/desktop/direct3darticles/directx-warp)
lists some interesting use-cases though.

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list