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.
- Hartmut