-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
After further research, it looks as if the lock-up in Baldur's Gate is being triggered by an unsupported API Call.
Here is the pertinent error message from Wine:
fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or DDBLT_ASYNC: can't handle right now.
This fixme is only encountered during game 'movies' (including resting and death scenes).
I have a full logfile if anyone is interested.
Ian
Ian D. Stewart wrote:
After further research, it looks as if the lock-up in Baldur's Gate is being triggered by an unsupported API Call.
Here is the pertinent error message from Wine:
fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or DDBLT_ASYNC: can't handle right now.
This fixme is only encountered during game 'movies' (including resting and death scenes).
I have a full logfile if anyone is interested.
I am inclined to think that what is causing Baldur's Gate is not this but something else. The way that DDBLT_WAIT and DDBLT_ASYNC are handled is unlikely to cause a crash. However in order to determine if it is related I would be interested in the last 1000 lines of the trace. (for now).
Tony Lambregts
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sunday 30 June 2002 20:02, Tony Lambregts wrote:
Ian D. Stewart wrote:
After further research, it looks as if the lock-up in Baldur's Gate is being triggered by an unsupported API Call.
Here is the pertinent error message from Wine:
fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or DDBLT_ASYNC: can't handle right now.
This fixme is only encountered during game 'movies' (including resting and death scenes).
I have a full logfile if anyone is interested.
I am inclined to think that what is causing Baldur's Gate is not this but something else. The way that DDBLT_WAIT and DDBLT_ASYNC are handled is unlikely to cause a crash. However in order to determine if it is related I would be interested in the last 1000 lines of the trace. (for now).
Tony,
Thanx for looking at this. I've attached the last 1000 lines from the log file. The log file was generated by running wine --debugmsg warn+ddraw. I can also generate a trace+relay for you if you think it will help, but as I mentioned in a previous e-mail, this particular combination hides the bug.
Ian
Ian D. Stewart wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sunday 30 June 2002 20:02, Tony Lambregts wrote:
Ian D. Stewart wrote:
After further research, it looks as if the lock-up in Baldur's Gate is being triggered by an unsupported API Call.
Here is the pertinent error message from Wine:
fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or DDBLT_ASYNC: can't handle right now.
This fixme is only encountered during game 'movies' (including resting and death scenes).
I have a full logfile if anyone is interested.
I am inclined to think that what is causing Baldur's Gate is not this but something else. The way that DDBLT_WAIT and DDBLT_ASYNC are handled is unlikely to cause a crash. However in order to determine if it is related I would be interested in the last 1000 lines of the trace. (for now).
Tony,
Thanx for looking at this. I've attached the last 1000 lines from the log file. The log file was generated by running wine --debugmsg warn+ddraw. I can also generate a trace+relay for you if you think it will help, but as I mentioned in a previous e-mail, this particular combination hides the bug.
Ian
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE9H75oAjpHQQmBAUMRAtt5AKDGgXaTPyA1qgSTxzqH/F1onjDvUgCfYnIk AFEq8qZ/Yq07MuvZg0SXaPs= =buKS -----END PGP SIGNATURE-----
err:ddraw:Main_DirectDrawSurface_Lock Negative values in LPRECT !!! err:ddraw:Main_DirectDrawSurface_Lock Negative values in LPRECT !!!
[snip] I don't know for sure that direct draw is what is locking it up, but this is not good. and could very well be why the program lock up. Why don't you start a bug report in bugzilla for this error and we can see if we can fix this first. Please include the steps to recreate the bug what you see/happens as well as what you expected to see/happen.
fixme:ddraw:DIB_DirectDrawSurface_Blt Unsupported flags: DDBLT_DDFX fixme:ddraw:DIB_DirectDrawSurface_Blt Unsupported flags: DDBLT_DDFX
While we are at it we need to fix this too. So if you could be so kind as to make a bug report for this one for this too. I will see what I can do msdn has this to say about DD_BLT_DDFX
DDBLT_DDFX Uses the *dwDDFX* member of the *DDBLTFX* http://msdn.microsoft.com/archive/en-us/ddraw7/directdraw7/ddref_0xmf.asp structure to specify the effects to use for this blit.
and these are the possible effects that need to be covered. of course we can only fix what we can test so it probably is only a subset of this .
*dwDDFX* Type of FX operations. The following types are defined:
DDBLTFX_ARITHSTRETCHY Uses arithmetic stretching <http://msdn.microsoft.com/archive/en-us/ddraw7/directdraw7/glossary_459v.asp#_dx_stretching_glos> along the y-axis for this blit. DDBLTFX_MIRRORLEFTRIGHT Turns the surface on its y-axis. This blit mirrors the surface from left to right. DDBLTFX_MIRRORUPDOWN Turns the surface on its x-axis. This blit mirrors the surface from top to bottom. DDBLTFX_NOTEARING Schedules this blit to avoid tearing <http://msdn.microsoft.com/archive/en-us/ddraw7/directdraw7/glossary_85rn.asp#_dx_tearing_glos>. DDBLTFX_ROTATE180 Rotates the surface 180 degrees clockwise during this blit. DDBLTFX_ROTATE270 Rotates the surface 270 degrees clockwise during this blit. DDBLTFX_ROTATE90 Rotates the surface 90 degrees clockwise during this blit. DDBLTFX_ZBUFFERBASEDEST Adds the *dwZBufferBaseDest* member to each of the source z-values before comparing them with the destination z-values during this z-blit. DDBLTFX_ZBUFFERRANGE Uses the *dwZBufferLow* and *dwZBufferHigh* members as range values to specify limits to the bits copied from a source surface during this z-blit.
Submit the bugs and lets see what can be done.
Tony Lambregts
err:ddraw:Main_DirectDrawSurface_Lock Negative values in LPRECT !!! err:ddraw:Main_DirectDrawSurface_Lock Negative values in LPRECT !!!
[snip] I don't know for sure that direct draw is what is locking it up, but this is not good. and could very well be why the program lock up. Why don't you start a bug report in bugzilla for this error and we can see if we can fix this first. Please include the steps to recreate the bug what you see/happens as well as what you expected to see/happen.
Well, this is an age old 'error' in Baldur's Gate. I never was able to know if this is a : 1) Wine bug that triggers this feature 2) a Baldur's Gate 'feature' that works also with MS's DirectX (ie that their drivers are doing the same checks than us for the size of the RECT).
But it should be pretty harmless.
Raise a bug report only if you plan to seriously investigate it (ie by doing a Windows program with a negative LPRECT and checking if it works or fails). Otherwise, I would say not to bother.
fixme:ddraw:DIB_DirectDrawSurface_Blt Unsupported flags: DDBLT_DDFX fixme:ddraw:DIB_DirectDrawSurface_Blt Unsupported flags: DDBLT_DDFX
While we are at it we need to fix this too. So if you could be so kind as to make a bug report for this one for this too. I will see what I can do msdn has this to say about DD_BLT_DDFX
Well, that should not lock the game up... At worst, you will have some screen corruption (that is the case when choosing all the hardware accelerations on), but it should not lock up.
Lionel
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sunday 30 June 2002 23:14, Tony Lambregts wrote:
err:ddraw:Main_DirectDrawSurface_Lock Negative values in LPRECT !!! err:ddraw:Main_DirectDrawSurface_Lock Negative values in LPRECT !!!
[snip] I don't know for sure that direct draw is what is locking it up, but this is not good. and could very well be why the program lock up. Why don't you start a bug report in bugzilla for this error and we can see if we can fix this first. Please include the steps to recreate the bug what you see/happens as well as what you expected to see/happen.
fixme:ddraw:DIB_DirectDrawSurface_Blt Unsupported flags: DDBLT_DDFX fixme:ddraw:DIB_DirectDrawSurface_Blt Unsupported flags: DDBLT_DDFX
While we are at it we need to fix this too. So if you could be so kind as to make a bug report for this one for this too. I will see what I can do msdn has this to say about DD_BLT_DDFX
As noted by Lionel Ulmer, neither of these bugs appear to have any (non-cosmetic) effect on the game and appear regularly without causing a lock-up so long as you don't play any movies.
I will go ahead and file bug reports regardless. Can't hurt having something on record.
Thanx Again, Ian
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Monday 01 July 2002 06:21, Ian D. Stewart wrote:
On Sunday 30 June 2002 23:14, Tony Lambregts wrote:
err:ddraw:Main_DirectDrawSurface_Lock Negative values in LPRECT !!! err:ddraw:Main_DirectDrawSurface_Lock Negative values in LPRECT !!!
[snip] I don't know for sure that direct draw is what is locking it up, but this is not good. and could very well be why the program lock up. Why don't you start a bug report in bugzilla for this error and we can see if we can fix this first. Please include the steps to recreate the bug what you see/happens as well as what you expected to see/happen.
fixme:ddraw:DIB_DirectDrawSurface_Blt Unsupported flags: DDBLT_DDFX fixme:ddraw:DIB_DirectDrawSurface_Blt Unsupported flags: DDBLT_DDFX
While we are at it we need to fix this too. So if you could be so kind as to make a bug report for this one for this too. I will see what I can do msdn has this to say about DD_BLT_DDFX
As noted by Lionel Ulmer, neither of these bugs appear to have any (non-cosmetic) effect on the game and appear regularly without causing a lock-up so long as you don't play any movies.
I will go ahead and file bug reports regardless. Can't hurt having something on record.
Ok. I've filed these as Bug #840 and Bug #841 respectively.
Ian