Re: [AD] Direct3D bug

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


That's what I meant by "in a loop". I could be called from anywhere in the
game loop I suppose, such as al_flip_display. Right now it's literally doing
nothing (before I reverted it.) If you want I can test a patch that puts it
in al_flip_display or during any drawing calls.

Thanks,
Trent

-----Original Message-----
From: SiegeLord [mailto:slabode@xxxxxxxxxx] 
Sent: April 6, 2014 7:11 PM
To: alleg-developers@xxxxxxxxxx
Subject: Re: [AD] Direct3D bug

On 04/06/2014 08:33 PM, Trent Gamblin wrote:
> Around January 25th Paul changed the D3D code so that it doesn't call
> TestCooperativeLevel 1000 times per second. This breaks non-trivial games
> that use D3D and can lose the display frequently such as fullscreen window
> toggles. According to my reading of the documentation (this was a while
> ago), you're supposed to call TestCooperativeLevel in a loop like the code
> was doing before. As it was changed it's pointless to even call it at all.
I
> don't know if it needs to be 1000 times per second but I think that was
what
> seemed to work, and still does if put back. I'm going to revert the change
> until something else that works can be done.
>
> Thanks,
> Trent

It's not clear to me why the check in al_flip_display is insufficient to 
detect lost displays in those games, as it was in my testing of that 
commit. Is there a test case for this?  Neither Irrlicht or Ogre3D have 
a loop like that, and they created far more commercially successful 
games than Allegro ever has or will, with the correspondingly greater 
number of greater number of testers. Irrlicht calls that function in the 
equivalent of their flip display. Ogre3D calls it whenever there is a 
check for whether driver is lost (looks like most drawing commands 
trigger it).

The input lag generated by that function call makes the D3D driver 
unusable for some game types, and unless you're planning on fixing it in 
the near future, then we need to switch away from D3D as a default, as 
it is broken.

-SL

----------------------------------------------------------------------------
--
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees_APR
-- 
https://lists.sourceforge.net/lists/listinfo/alleg-developers





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/