Hartmut Birr wrote:
Hi,
if I use the cirrus driver in qemu, I get always wrong colors. After the first double click to the cmd icon, ros crashs in DIB_16BPP_BitBltSrcCopy. I've add the following code:
Index: subsys/win32k/dib/dib16bpp.c
--- subsys/win32k/dib/dib16bpp.c (Revision 15885) +++ subsys/win32k/dib/dib16bpp.c (Arbeitskopie) @@ -228,6 +228,8 @@ } else {
DPRINT1("%d %d %d\n", BltInfo->SourceSurface->lDelta,BltInfo->SourcePoint.x, BltInfo->SourcePoint.y);
DPRINT1("%d %d %d %d %d\n", BltInfo->DestSurface->lDelta,BltInfo->DestRect.left, BltInfo->DestRect.top, BltInfo->DestRect.right, BltInfo->DestRect.bottom);
I see often negative values for the source surface:
... (subsys\win32k\dib\dib16bpp.c:231) -1120 -69 -69 (subsys\win32k\dib\dib16bpp.c:232) 1600 0 0 0 0 (subsys\win32k\dib\dib16bpp.c:231) -1120 -69 -69 (subsys\win32k\dib\dib16bpp.c:232) 1600 0 0 0 0 (subsys\win32k\dib\dib16bpp.c:231) -1120 0 13 (subsys\win32k\dib\dib16bpp.c:232) 1600 69 69 629 87 KeBugCheckWithTf at ntoskrnl\ke\catch.c:222 A problem has been detected and ReactOS has been shut down to prevent damage to your computer. ...
I seems that win32k doesn't handle the negative values. I doesn't know what they mean.
Have you tried having the code call KeRosDumpStackFrames() if it sees negative numbers?