[Bug 35444] Wayward Terran Frontier Open Alpha (.NET 4.0/XNA 4 game) reports 'Could not find a Direct3D device that supports the XNA Framework HiDef profile'

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Apr 11 16:01:25 CDT 2014


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

--- Comment #3 from Anastasius Focht <focht at gmx.net> ---
Hello Henri and Stefan,

I figured out what seems to be missing using the 'Graphics Profile Checker'
tool:

http://xbox.create.msdn.com/en-US/education/catalog/utility/graphics_profile_checker

--- quote ---
The XNA Framework GraphicsAdapter.IsProfileSupported API enables you to check
whether the current hardware supports the Reach or HiDef graphics profiles, but
this only returns a simple boolean, with no details of why a failing profile
isn't supported.

This utility provides more information about hardware capabilities, by
performing the same checks that are used internally by the XNA Framework and by
displaying their results as a detailed failure report. This can be useful for
investigating driver compatibility problems, and also to see exactly what
hardware capabilities are required for each profile.
--- quote ---

Tool report when run under Wine:

--- snip ---
...

Reach
Supported

HiDef
Yikes! I think this profile should not be supported, but XNA says it is
No DestBlendCaps.D3DPBLENDCAPS_SRCALPHASAT
No VertexTextureFilterCaps.D3DPTFILTERCAPS_MAGFPOINT
No VertexTextureFilterCaps.D3DPTFILTERCAPS_MINFPOINT
--- snip ---

DestBlendCaps.D3DPBLENDCAPS_SRCALPHASAT:

Wine:
http://source.winehq.org/git/wine.git/blob/a69c488f087b5a09599b841c929ec2531888d279:/dlls/wined3d/directx.c#l4256

--- snip ---
4256     caps->DestBlendCaps = WINED3DPBLENDCAPS_DESTALPHA |
4257                           WINED3DPBLENDCAPS_DESTCOLOR |
4258                           WINED3DPBLENDCAPS_INVDESTALPHA |
4259                           WINED3DPBLENDCAPS_INVDESTCOLOR |
4260                           WINED3DPBLENDCAPS_INVSRCALPHA |
4261                           WINED3DPBLENDCAPS_INVSRCCOLOR |
4262                           WINED3DPBLENDCAPS_ONE |
4263                           WINED3DPBLENDCAPS_SRCALPHA |
4264                           WINED3DPBLENDCAPS_SRCCOLOR |
4265                           WINED3DPBLENDCAPS_ZERO;
4266     /* NOTE: WINED3DPBLENDCAPS_SRCALPHASAT is not supported as dest blend
factor,
4267      * according to the glBlendFunc manpage
4268      *
4269      * WINED3DPBLENDCAPS_BOTHINVSRCALPHA and
WINED3DPBLENDCAPS_BOTHSRCALPHA are
4270      * legacy settings for srcblend only
4271      */
--- snip ---

Hmm, looking at Wine version history this cap was indeed present at some point
and later removed.

MSDN:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff569252%28v=vs.85%29.aspx

--- quote ---
Reporting Capabilities for Shader 3 Support

The DirectX 9.0 version driver for a display device that supports pixel or
vertex shader version 3.0 and later must indicate that it supports the
following capabilities:
Vertex shader 3.0 and later

If a device supports vertex shader 3.0 and later, its driver must set the
members of the D3DCAPS9 structure to the following values:
...

SrcBlendCaps, DestBlendCaps

    Set the following source and destination blending modes except where noted:

    D3DPBLENDCAPS_ZERO

    D3DPBLENDCAPS_ONE

    D3DPBLENDCAPS_SRCCOLOR

    D3DPBLENDCAPS_INVSRCCOLOR

    D3DPBLENDCAPS_SRCALPHA

    D3DPBLENDCAPS_INVSRCALPHA

    D3DPBLENDCAPS_DESTALPHA

    D3DPBLENDCAPS_INVDESTALPHA

    D3DPBLENDCAPS_DESTCOLOR

    D3DPBLENDCAPS_INVDESTCOLOR

    D3DPBLENDCAPS_SRCALPHASAT (not set for DestBlendCaps)
--- quote ---

VertexTextureFilterCaps:

Wine:
http://source.winehq.org/git/wine.git/blob/a69c488f087b5a09599b841c929ec2531888d279:/dlls/wined3d/directx.c#l4503

--- snip ---
4503 caps->VertexTextureFilterCaps = 0;
--- snip ---

MSDN:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff569252%28v=vs.85%29.aspx

--- quote ---
Reporting Capabilities for Shader 3 Support

The DirectX 9.0 version driver for a display device that supports pixel or
vertex shader version 3.0 and later must indicate that it supports the
following capabilities:
Vertex shader 3.0 and later

If a device supports vertex shader 3.0 and later, its driver must set the
members of the D3DCAPS9 structure to the following values:
...

VertexTextureFilterCaps

    Set the following filter capabilities:

    D3DPTFILTERCAPS_MINFPOINT

    D3DPTFILTERCAPS_MAGFPOINT
--- quote ---

After adding all three requested/missing caps XNA is happy (=HiDef support) and
the games do indeed start.

$ wine --version
wine-1.7.16-133-gd8ca8c2

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