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
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?
Royce Mitchell III wrote:
Have you tried having the code call KeRosDumpStackFrames() if it sees negative numbers?
It does always start from draw caption. I didn't see this with the vbe driver.
- Hartmut
(subsys\win32k\dib\dib16bpp.c:231) -1120 -69 -69 (subsys\win32k\dib\dib16bpp.c:232) 1600 0 0 0 0 Frames: <win32k.sys:b5d0 (subsys/win32k/dib/dib16bpp.c:235 (DIB_16BPP_BitBltSrcCopy))> <win32k.sys:15d42 (subsys/win32k/eng/bitblt.c:208 (CallDibBitBlt))> <win32k.sys:1668c (subsys/win32k/eng/bitblt.c:452 (EngBitBlt))> CL54XX.DLL:1388 CL54XX.DLL:1915 <win32k.sys:16a1e (subsys/win32k/eng/bitblt.c:573 (IntEngBitBlt))> <win32k.sys:52a1d (subsys/win32k/objects/bitmaps.c:216 (NtGdiBitBlt))> <ntoskrnl.exe:95232 ({standard input}:180 (KiSystemService))> <user32.dll:58a48 (lib/user32/windows/nonclient.c:1328 (DrawCaption))> (subsys\win32k\dib\dib16bpp.c:231) -1120 -69 -69 (subsys\win32k\dib\dib16bpp.c:232) 1600 0 0 0 0 Frames: <win32k.sys:b5d0 (subsys/win32k/dib/dib16bpp.c:235 (DIB_16BPP_BitBltSrcCopy))> <win32k.sys:15d42 (subsys/win32k/eng/bitblt.c:208 (CallDibBitBlt))> <win32k.sys:1668c (subsys/win32k/eng/bitblt.c:452 (EngBitBlt))> CL54XX.DLL:1388 CL54XX.DLL:1915 <win32k.sys:16a1e (subsys/win32k/eng/bitblt.c:573 (IntEngBitBlt))> <win32k.sys:52a1d (subsys/win32k/objects/bitmaps.c:216 (NtGdiBitBlt))> <ntoskrnl.exe:95232 ({standard input}:180 (KiSystemService))> <user32.dll:58a48 (lib/user32/windows/nonclient.c:1328 (DrawCaption))> (subsys\win32k\dib\dib16bpp.c:231) -1120 -69 -69 (subsys\win32k\dib\dib16bpp.c:232) 1600 0 0 0 0 Frames: <win32k.sys:b5d0 (subsys/win32k/dib/dib16bpp.c:235 (DIB_16BPP_BitBltSrcCopy))> <win32k.sys:15d42 (subsys/win32k/eng/bitblt.c:208 (CallDibBitBlt))> <win32k.sys:1668c (subsys/win32k/eng/bitblt.c:452 (EngBitBlt))> CL54XX.DLL:1388 CL54XX.DLL:1915 <win32k.sys:16a1e (subsys/win32k/eng/bitblt.c:573 (IntEngBitBlt))> <win32k.sys:52a1d (subsys/win32k/objects/bitmaps.c:216 (NtGdiBitBlt))> <ntoskrnl.exe:95232 ({standard input}:180 (KiSystemService))> <user32.dll:58a48 (lib/user32/windows/nonclient.c:1328 (DrawCaption))> (subsys\win32k\dib\dib16bpp.c:231) -1120 0 13 (subsys\win32k\dib\dib16bpp.c:232) 1600 69 69 629 87 Frames: <win32k.sys:b5d0 (subsys/win32k/dib/dib16bpp.c:235 (DIB_16BPP_BitBltSrcCopy))> <win32k.sys:15d42 (subsys/win32k/eng/bitblt.c:208 (CallDibBitBlt))> <win32k.sys:1668c (subsys/win32k/eng/bitblt.c:452 (EngBitBlt))> CL54XX.DLL:1388 CL54XX.DLL:1915 <win32k.sys:16a1e (subsys/win32k/eng/bitblt.c:573 (IntEngBitBlt))> <win32k.sys:52a1d (subsys/win32k/objects/bitmaps.c:216 (NtGdiBitBlt))> <ntoskrnl.exe:95232 ({standard input}:180 (KiSystemService))> <user32.dll:58a48 (lib/user32/windows/nonclient.c:1328 (DrawCaption))> KeBugCheckWithTf at ntoskrnl\ke\catch.c:222 A problem has been detected and ReactOS has been shut down to prevent damage to your computer.
From: Hartmut Birr
if I use the cirrus driver in qemu, I get always wrong colors.
r15878 fixed that, but it was reverted.
After the first double click to the cmd icon, ros crashs in DIB_16BPP_BitBltSrcCopy. I see often negative values for the source surface:
Yes, I've seen that too. No solution yet.
Gé van Geldorp.