[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