[Bug 35129] Cloning Clyde refuses to start with built-in d3dx9_36

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Mar 24 10:12:38 CDT 2016


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

Paul Gofman <gofmanp at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gofmanp at gmail.com

--- Comment #6 from Paul Gofman <gofmanp at gmail.com> ---
(In reply to super_man from comment #5)
> (In reply to super_man from comment #4)
> > The default console output isn't very verbose, but the error seem to have
> > changed.
> > 
> > fixme:d3d:wined3d_check_device_format_conversion wined3d 0x6ab8e18,
> > adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format
> > WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
> > fixme:d3d_surface:surface_init Trying to create a render target that isn't
> > in the default pool.
> > 
> > It just hangs without doing anything,
> > 
> > wine 1.7.50
> 
> the same 1.9.6 and staging 1.9.6

The messages above are unrelated. Game trial works fine for me with native
d3dcompiler_43.dll, and does not work with the builtin. The relevant log can be
seen with WINEDEBUG=+d3dcompiler.

When using native compiler, game displays a window with Try/Buy buttons. When
starting it by 'Try' it exits silently.

The first problem comes in D3DAssemble shader preprocessing. Preprocessor gets
messed up by single quote chars inside comments (e. g. "; ... it's ..."), it
thinks they are unterminated strings and fails. I made a quick fix for that,
but it will allow just to pass one screen further. If to fix that, the game
displays splash screen, and then fails again silently.
Now when it is done with verbose assembly shaders it wants to compile HLSL
shader with D3DCompile, and fails on the first shader (the code follows below).
This is harder, Wine compiler does not understands LHS swizzles and seemingly
something else (there is a probably distinct syntax error which I did not track
down).

float4x4 matWVP : register(c0);
struct VS_IN
{
    float4 Pos            : POSITION;
    float2 Tex            : TEXCOORD0;
    float4 Color            : COLOR;
};
struct VS_OUT
{
    float4 Position       : POSITION;
    float4 Diffuse        : COLOR0;
    float2 TexCoord0      : TEXCOORD0;
};
VS_OUT VertexShaderSprite( VS_IN In )
{
    VS_OUT Out;

    float4 temppos = In.Pos;
    temppos.x -= 0.5;
    temppos.y -= 0.5;
    Out.Position = mul(matWVP, temppos);
    Out.Diffuse     = In.Color;
    Out.TexCoord0.x = In.Tex.x;
    Out.TexCoord0.y = In.Tex.y;
    return Out;
}
sampler Texture : register(s0);

float4 PixelShaderSprite( VS_OUT In ) : COLOR0
{
    float4 FontTexel = tex2D( Texture, In.TexCoord0 );
    float4 Color = FontTexel * In.Diffuse;
    return Color;
}

-- 
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