[Bug 17437] ATI and EVE Premium: no models display / crashes on startup

wine-bugs at winehq.org wine-bugs at winehq.org
Tue May 12 09:03:50 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=17437


Florian Sievert <floriansievert at phobeus.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |floriansievert at phobeus.de

Willem Brosz <wbrosz at uvic.ca> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|wbrosz at uvic.ca              |

rig0r <krims0n32 at gmail.com> changed:

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

Dan Merillat <winehq at harik.welp.gs> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|winehq at harik.welp.gs        |

Vitaliy Margolen <vitaliy at kievinfo.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mah301s at hotmail.com

hpestilence <hpestilence at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #20746|0                           |1
        is obsolete|                            |

Mads <madsvibe at gmail.com> changed:

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

Joachim Rousseau <syrion.com at gmail.com> changed:

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




--- Comment #57 from Matthieu Bertin <bertinm at esiee.fr>  2009-04-09 03:54:14 ---
how do you remove the compiled version of wine then ? before i compile it
again...


--- Comment #58 from Eddy Y. <jeyoung at priscimon.com>  2009-04-09 04:19:17 ---
(In reply to comment #57)
> how do you remove the compiled version of wine then ? before i compile it
> again...

You just overwrite the current version with the one you will be compiling.

First, patch your source code, making sure that you have the corresponding code
version and patch (ie. do not apply a patch meant for wine 1.1.7 to wine
1.1.6).

Second, check where your existing wine is with 'whereis wine'. 

If it's in /usr/bin, then use 

$ ./configure --prefix=/usr

Otherwise, do

$ ./configure

Then,

$ make
$ sudo make install


--- Comment #59 from Matthieu Bertin <bertinm at esiee.fr>  2009-04-09 17:47:25 ---
Here it is. I did what you said, and it still doesn't work.
I downloaded 1.1.18 from sourceforge and i am using latest proprietary drivers
available on synaptic.

here is a short version:

brzhk at gauss:~/winecomp/wine-1.1.18$ patch -p1 < apocrypha.shaders.1.1.17.patch 
patching file dlls/wined3d/baseshader.c
patching file dlls/wined3d/directx.c
patching file dlls/wined3d/wined3d_main.c
patching file dlls/wined3d/wined3d_private.h
Hunk #1 succeeded at 290 (offset -8 lines).
brzhk at gauss:~/winecomp/wine-1.1.18$ ./configure 
(conf. trace)
brzhk at gauss:~/winecomp/wine-1.1.18$ make depend && make
(traces)
brzhk at gauss:~/winecomp/wine-1.1.18$ sudo make install



i also tried with --prefix=/usr/local as it was the path shown by whereis wine.


--- Comment #60 from Eddy Y. <jeyoung at priscimon.com>  2009-04-10 03:13:49 ---
(In reply to comment #59)
> Here it is. I did what you said, and it still doesn't work.
> I downloaded 1.1.18 from sourceforge and i am using latest proprietary drivers
> available on synaptic.

I use the latest drivers from ATI. Could you try with that please? Also, do you
have the user.reg settings specified earlier in the thread?

See http://bugs.winehq.org/show_bug.cgi?id=17437#c23

> brzhk at gauss:~/winecomp/wine-1.1.18$ sudo make install
> 
> i also tried with --prefix=/usr/local as it was the path shown by whereis wine.

I'm out of ideas. 

What error are you getting? Does EVE not run at all? Or, does it run with
graphics glitches?


--- Comment #61 from Matthieu Bertin <bertinm at esiee.fr>  2009-04-10 03:58:51 ---
(In reply to comment #60)
> (In reply to comment #59)
> > Here it is. I did what you said, and it still doesn't work.
> > I downloaded 1.1.18 from sourceforge and i am using latest proprietary drivers
> > available on synaptic.
> 
> I use the latest drivers from ATI. Could you try with that please? Also, do you
> have the user.reg settings specified earlier in the thread?
> 
> See http://bugs.winehq.org/show_bug.cgi?id=17437#c23
> 

IT JUST DID THE TRICK ! Thanks a lot.

everything works fine now !


--- Comment #62 from Florian Sievert <floriansievert at phobeus.de>  2009-04-10 15:27:01 ---
> IT JUST DID THE TRICK ! Thanks a lot.
I can confirm this. I tried for some days now to get the patch for my ati card.
However, everything seems to fail. Adding the options to the user.reg and the
patch seems to work fine for ati users. Thanks!


--- Comment #63 from Connor <connormcl at hotmail.com>  2009-04-12 18:11:29 ---
We need a new patch for wine 1.1.19.

Tried to use the 1.1.17 patch on wine-1.1.19 with ATI HD3850 and Catalyst 9.3.

Patched wine compiles, but too much has changed and models are gone again.

Cmd-line shows:

fixme:d3d_shader:shader_glsl_select >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION
(0x502) from glUseProgramObjectARB @ glsl_shader.c / 3757
fixme:d3d_shader:shader_glsl_load_constants >>>>>>>>>>>>>>>>>
GL_INVALID_OPERATION (0x502) from glUniform4fvARB @ glsl_shader.c / 573


--- Comment #64 from Mathieu Belanger <b747xx at gmail.com>  2009-04-12 22:12:13 ---
Created an attachment (id=20410)
 --> (http://bugs.winehq.org/attachment.cgi?id=20410)
Wine 1.1.19 patch for Apocrypha

Here the new patch for Wine 1.1.19!

Enjoy!


--- Comment #65 from Mathieu Belanger <b747xx at gmail.com>  2009-04-12 22:14:14 ---
Created an attachment (id=20411)
 --> (http://bugs.winehq.org/attachment.cgi?id=20411)
Wine 1.1.19 patch for Apocrypha

Here the new patch for Wine 1.1.19!

Enjoy!


--- Comment #66 from Mathieu Belanger <b747xx at gmail.com>  2009-04-12 22:16:22 ---
Created an attachment (id=20412)
 --> (http://bugs.winehq.org/attachment.cgi?id=20412)
Wine 1.1.19 patch for Apocrypha

Here the new patch for Wine 1.1.19!

Enjoy!


--- Comment #67 from Mathieu Belanger <b747xx at gmail.com>  2009-04-12 22:17:41 ---
Sorry for the triple post, got a Time out error from winehq....


--- Comment #68 from A.T. <xtcdj15 at yahoo.com>  2009-04-13 14:06:02 ---
author  Stefan Dösinger <stefan at codeweavers.com>

         Sun, 22 Mar 2009 11:24:28 +0000 (12:24 +0100)

committer       Alexandre Julliard <julliard at winehq.org>

         Fri, 10 Apr 2009 09:22:55 +0000 (11:22 +0200)

commit  754b5cf2adc73a917d7d60c35d5cad5897a5e92d

tree    fe1490bead9bf88cc15e0b6d58d17b9c1f35fafe        tree | snapshot

parent  0af0bafd6ae40f9832d9c630c24a6696ac284631        commit | diff



wined3d: Deal with reserved shader constants in the backend.



This moves the GLSL and ARB specific reserved constants out of directx.c into

the get_caps methods of the shader backends. That way the number of reserved

constants remains in the backend.



GL_LIMITS({v/p}shader_constantsF) now contains the real number of constants as

advertised by GL instead of some mixture of GL info and backend implementation

specifics. This makes it easier for backends to decide how many constants to

use.




===========================================================

from what i understand this is the (partial) patch already integrated by Stefan
in 1.1.19 (should work for nvidia 7xxx series ? ...i will test asap and post
results for 7600GT);

the only things missing seems to be the registry keys to force correct values
for buggy drivers ( ati 9.3 or older ???.... some people who tested 9.4 beta
reported on phoronix forum that 9.4 solved this issue, lets hope is true....9.4
for M$ WIN was released few days ago, so linux 9.4 final seems to be just
around the corner)


--- Comment #69 from H. Verbeet <hverbeet at gmail.com>  2009-04-13 14:25:18 ---
(In reply to comment #68)
> from what i understand this is the (partial) patch already integrated by Stefan
> in 1.1.19 (should work for nvidia 7xxx series ? ...i will test asap and post
> results for 7600GT);
> 
No, it's related, but doesn't solve this issue yet. You need
http://www.winehq.org/pipermail/wine-patches/2009-April/071698.html and (for
fglrx) the following patches for that. Those still need some work though.


--- Comment #70 from Mathieu Belanger <b747xx at gmail.com>  2009-04-13 15:03:06 ---
This patch (apocrypha.shaders.1.1.19.patch) is still needed for EVE on ATI card
and Nvidia 7xxx-

- The ATI Drivers are still buggy and still need overide via registery key for
uniform and varying.

- The max_constantsF = GL_LIMITS(vshader_constantsF) stuff moved but the patch
is still needed for that because the formula are the same : max_constantsF =
GL_LIMITS(vshader_constantsF) - (MAX_CONST_B / 4) - MAX_CONST_I - 1 and
MAX_CONST_B & MAX_CONST_I are still static constantes (16 and 16).... So
without the patch, ATI and Nvidia 7xxx don't have enough vec4 for EVE Shader.


--- Comment #71 from hpestilence <hpestilence at gmail.com>  2009-04-14 23:10:35 ---
I tested out the patches on the mailing list and the wine from git with my
HD4850 and here are the results:

Everything seems to render fine on medium and low shader settings, including
shadows and hdr.

On high shaders the title screen was black with hdr and bloom on, turning those
off gave me a normal title screen. When I logged on in the game the station /
models didn't render regardless if hdr or bloom was on or off. 

Looking through my logs it seems it's related to the original ati varyings bug
which is easily worked around by hardcoding a lower varying number. Only a
problem if you want to run in high settings though. :)

If your a nvidia card owner everything should work for you guys "out of the
box" if these patches get accepted.


--- Comment #72 from hpestilence <hpestilence at gmail.com>  2009-04-22 01:53:28 ---
Created an attachment (id=20605)
 --> (http://bugs.winehq.org/attachment.cgi?id=20605)
shader error from wine git

I found a few models that didn't render specifically the covetor (possibly
other mining ships) and the dreadnoughts. I found the error and it seems a
shader uses 246 uniforms and only 245 is defined.

This is with the current wine in the git and just a little patch to lower my
varyings to 52.


--- Comment #73 from Vitaliy Margolen <vitaliy at kievinfo.com>  2009-04-26 02:00:26 ---
*** Bug 18217 has been marked as a duplicate of this bug. ***


--- Comment #74 from hpestilence <hpestilence at gmail.com>  2009-04-27 02:58:03 ---
Created an attachment (id=20746)
 --> (http://bugs.winehq.org/attachment.cgi?id=20746)
wine-1.1.20 patch

This patch is a mix of Stefan's "official" fix for the uniforms issue and the
registry option to change the max varyings for ATI users.

This should allow all models to render on medium or low shader settings with
all other settings on high, but on high shaders the mining ships and
dreadnoughts don't render and maybe some other stuff.


--- Comment #75 from hpestilence <hpestilence at gmail.com>  2009-04-27 03:03:23 ---
oops looks like it copied a whole file into the patch, I'll fix it tomorrow :)


--- Comment #76 from H. Verbeet <hverbeet at gmail.com>  2009-04-27 03:07:17 ---
For what it's worth, "git apply" is better at applying patches than "patch".


--- Comment #77 from hpestilence <hpestilence at gmail.com>  2009-04-27 17:46:11 ---
Created an attachment (id=20762)
 --> (http://bugs.winehq.org/attachment.cgi?id=20762)
fixed wine-1.1.20 patch


--- Comment #78 from Mads <madsvibe at gmail.com>  2009-04-28 12:25:10 ---
still same problem here.. 7900GS - Ubuntu 9.04 - Wine 1.1.20 - tried the patch
above with no luck so far


--- Comment #79 from Connor <connormcl at hotmail.com>  2009-04-28 14:53:20 ---
(In reply to comment #78)
> still same problem here.. 7900GS - Ubuntu 9.04 - Wine 1.1.20 - tried the patch
> above with no luck so far
> 

Patch from post #70 for wine-1.1.19 work for wine-1.1.20 on ATI 3850/3870 with
Catalyst 9.4.

The patch from post #77 gives the usual errors and shows no models at all:

fixme:d3d_shader:shader_glsl_load_constants >>>>>>>>>>>>>>>>>
GL_INVALID_OPERATION (0x502) from glUniform4fvARB @ glsl_shader.c / 574
fixme:d3d_shader:shader_glsl_select >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION
(0x502) from glUseProgramObjectARB @ glsl_shader.c / 3757


--- Comment #80 from Joachim Rousseau <syrion.com at gmail.com>  2009-04-28 16:40:37 ---
(In reply to comment #79)

All patches until 1.1.19 solved the issue with my NVidia 6800GT. With last
patch for wine 1.1.20 I had a crash at first Eve run (between the charachter
choice end the station loading), but the second launch was fine. And this crash
may be unrelated, or due to some odd cache effect.
Not tested for a long time.


--- Comment #81 from Bozhan Boiadzhiev <bozhan at gmail.com>  2009-04-30 15:08:26 ---
why patch isn't accepted yet?
i hate to compile things... :((((


--- Comment #82 from Joachim Rousseau <syrion.com at gmail.com>  2009-04-30 17:59:58 ---
(In reply to comment #80)
> (In reply to comment #79)

Only one problem : salvaging effect is very slow (less than 0.5fps) though I
set shader quality to low. I may discover other issues like that I suppose.


--- Comment #83 from hpestilence <hpestilence at gmail.com>  2009-05-08 17:39:36 ---
Created an attachment (id=20974)
 --> (http://bugs.winehq.org/attachment.cgi?id=20974)
wine-1.1.21 ati varying patch

This is just the part of the previous patch that makes it optional to set the
varyings in the registry for dx10 ATI cards that have problems displaying
models when they're used in a shader.

[Software\\Wine\\Direct3D]
"MaxVaryings" = "52"  (multiple of 4, example of a 68 varying card)

This is an example of a card supporting 68 varyings, use glxinfo -l to find out
what fglrx is reporting. A lower value than 52 might be needed for some cards.


--- Comment #84 from Stefan Dösinger <stefandoesinger at gmx.at>  2009-05-08 18:31:32 ---
I recommend to define a driver quirk in the quirk table in directx.c for this
card/driver. I cannot do this because I do not have a dx10 ATI card to test
with.

Besides, I think this should be fixed in fglrx 9.4, or am I mistaken?


--- Comment #85 from hpestilence <hpestilence at gmail.com>  2009-05-08 20:04:38 ---
Nothing involving uniforms or varyings is fixed in the 9.4 drivers for my card
at least glxinfo -l seems to report the same as the previous drivers. One of
the people who beta tests the driver says 9.5 has more wine fixes, not sure
which ones specifically though.


--- Comment #86 from Connor <connormcl at hotmail.com>  2009-05-09 08:36:33 ---
(In reply to comment #83)
> Created an attachment (id=20974)
 --> (http://bugs.winehq.org/attachment.cgi?id=20974) [details]
> wine-1.1.21 ati varying patch
> 
> This is just the part of the previous patch that makes it optional to set the
> varyings in the registry for dx10 ATI cards that have problems displaying
> models when they're used in a shader.
> 
> [Software\\Wine\\Direct3D]
> "MaxVaryings" = "52"  (multiple of 4, example of a 68 varying card)
> 
> This is an example of a card supporting 68 varyings, use glxinfo -l to find out
> what fglrx is reporting. A lower value than 52 might be needed for some cards.
> 


wine-1.1.21 with the patch does not work for me on ATI 3870.

wine compiles fine but hangs on login.
Console says:

err:ntdll:RtlpWaitForCriticalSection section 0x110054 "heap.c: main process
heap section" wait timed out in thread 0024, blocked by 0021, retrying (60 sec)
err:ntdll:RtlpWaitForCriticalSection section 0x110054 "heap.c: main process
heap section" wait timed out in thread 0028, blocked by 0021, retrying (60 sec)
err:ntdll:RtlpWaitForCriticalSection section 0x110054 "heap.c: main process
heap section" wait timed out in thread 0025, blocked by 0021, retrying (60 sec)
err:ntdll:RtlpWaitForCriticalSection section 0x110054 "heap.c: main process
heap section" wait timed out in thread 0027, blocked by 0021, retrying (60 sec)
err:ntdll:RtlpWaitForCriticalSection section 0x110054 "heap.c: main process
heap section" wait timed out in thread 0026, blocked by 0021, retrying (60 sec)


--- Comment #87 from Connor <connormcl at hotmail.com>  2009-05-09 08:40:01 ---
(In reply to comment #86)
> (In reply to comment #83)

The above was wine-1.1.21 at log in into a station.

When i use another account to log into space wine crashes and closes:

wine: Unhandled page fault on write access to 0x6c666556 at address 0x7ef93ca5
(thread 0019), starting debugger...
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr
0x7ef93ca5


wine-1.1.19 and wine-1.1.20 work fine


--- Comment #88 from hpestilence <hpestilence at gmail.com>  2009-05-10 00:17:34 ---
Created an attachment (id=20998)
 --> (http://bugs.winehq.org/attachment.cgi?id=20998)
ati dx10 varying float fix patch

This patch should work for those with dx10 ATI cards and using fglrx, it
changes the max varying floats from 68 to 48 through the quirk table. I chose
48 to cover all hd2000 to hd4000 cards since it's been reported that 52 is too
high for some.


--- Comment #89 from Stefan Dösinger <stefandoesinger at gmx.at>  2009-05-10 04:47:40 ---
This patch looks good to me. If it works, go ahead and send it to wine-patches.


--- Comment #90 from Connor <connormcl at hotmail.com>  2009-05-11 17:09:41 ---
(In reply to comment #87)
> (In reply to comment #86)
> > (In reply to comment #83)
> 
> The above was wine-1.1.21 at log in into a station.
> 
> When i use another account to log into space wine crashes and closes:
> 
> wine: Unhandled page fault on write access to 0x6c666556 at address 0x7ef93ca5
> (thread 0019), starting debugger...
> err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr
> 0x7ef93ca5
> 
> 
> wine-1.1.19 and wine-1.1.20 work fine
> 

I did a git regression test and received this as the patch causing the crash:

f9276a64295e5fdff6e8b68958ed9ef0e9a29c31 is first bad commit
commit f9276a64295e5fdff6e8b68958ed9ef0e9a29c31
Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Thu May 7 17:31:20 2009 +0200

    wined3d: Keep track of used float constants.

:040000 040000 ae0082c6c1dfce84694ea90dcab94cdf2d67d107
3d6199e8e08684e6c71188ee40a8b9a41ad3d82a M      dlls


--- Comment #91 from Stefan Dösinger <stefandoesinger at gmx.at>  2009-05-12 04:46:09 ---
Maybe the crash is related to the incorrectly reported constants? Ie, if the
driver says 128 constants and the fixup code doesn't catch it, the code will
allocate a bitmap for 128 constants. If the shader uses 256 it will blow up
memory.

Maybe we need to change something there to prevent a driver bug from causing a
memory corruption in wined3d. The game will still not work, but at least we
don't corrupt memory.


--- Comment #92 from Stefan Dösinger <stefandoesinger at gmx.at>  2009-05-12 04:48:18 ---
    {
        match_ati_r300_to_500,
        quirk_ati_dx9,
        "ATI GLSL constant and normalized texrect quirk"
    },

Ah yeah, I limited the uniform fixup to <= r500 cards because (a) I expected a
fixed r600+ driver soon, and (b) I don't have an r600 card to test. So someone
may look into adding the uniform quirk for r600 cards too. (but don't do that
normalized texrect stuff on r600. It has real NP2 support)


--- Comment #93 from Connor <connormcl at hotmail.com>  2009-05-12 09:02:17 ---
(In reply to comment #91)
> Maybe the crash is related to the incorrectly reported constants? Ie, if the
> driver says 128 constants and the fixup code doesn't catch it, the code will
> allocate a bitmap for 128 constants. If the shader uses 256 it will blow up
> memory.

What i did notice is that my driver does not report any maxvalues when "glxinfo
-l" is issued.

I use opensuse 11.1 64bit, ATI 3850 and 3870 with Catalyst 9.4 and a "glxinfo
-l" reports no maxvaryings or uniforms.


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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