qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: Another SIGFPE in display code, now in cirrus


From: Stefano Stabellini
Subject: [Qemu-devel] Re: Another SIGFPE in display code, now in cirrus
Date: Wed, 12 May 2010 17:55:54 +0100
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)

On Wed, 12 May 2010, Avi Kivity wrote:
> > I guess even a src blt pitch of 0 could be useful there, however in
> > practice I think the only rop function that was written with this case in
> > mind has:
> >
> > dstpitch -= bltwidth;
> > srcpitch -= bltwidth;
> >
> > if (dstpitch<  0 || srcpitch<  0) {
> >      /* is 0 valid? srcpitch == 0 could be useful */
> >      return;
> > }
> >
> > at the beginning and the others probably just don't deal with the case
> > with possibly buggy consequences.
> > Also the documentation I have states:
> >
> > 3CEh index 26h W(R/W):  BLT Source Pitch                              (5426 
> > +)
> > bit 0-11  (5426-28) Number of bytes in a scanline at the source.
> >      0-12  (5429 +)  do
> >
> > if the source BLT is supposed to be the number of bytes in a scanline at
> > the source, then 0 is not a correct value for it.
> >    
> 
> It's useful if you have a one-line horizontal pattern you want to 
> propagate all over.
> 
 
It might be useful all right, but it is not entirely clear what the
hardware should do in this situation from the documentation we have, and
certainly the current state of the cirrus emulation code doesn't help.

Without any clear indication of what a Cirrus Logic graphic card would
have done here, I would choose the safest answer that is disregard the
"delicate" case (if it doesn't break Windows NT).

However I don't mind if we try to handle this case too, provided
that we handle it well, without SIGFPEs that is :)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]