﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
159	DIVE modes crash on 24bit (BGR3) screen surface	rudi		"Testing the new QWindowSurfaces on an ATI Rage128 (SNAP forced to 24bit color depth) causes a crash. Actually there are two problems that lead to this:


1.) Direct frame buffer mode is not enabled.

Fix:  Change line 770 in qwindowsurface_pm.cpp to:

FOURCC bestBufFormat = fourccScreenToBuffer(diveCaps.fccColorEncoding, diveUseFB);

and redetermine d->setup.fccSrcColorFormat in the constructor of QPMDiveWindowSurfaceFB (the parent class calls fourccScreenToBuffer() with isFB = false).

I suggest to remove the default value for ""isFB"" from fourccScreenToBuffer(), so that it's easier to see what is wanted when using this function. Also Q_UNUSED(isFB); can be removed.

After applying this change, direct frame buffer mode works. For performance test results see ticket #101.


2.) DIVE blit mode doesn't work

QT_PM_DIVE=BLIT still crashes on that particular setup. This appears to be a DIVE bug. The crash occurs in DiveBlitImage (RGB3 -> BGR3) and looks very similar to our attempts to use 32bit source buffers. I have not found an easy fix for that - can Qt be forced to use an BGR3 surface instead of RGB3 ?

"	defect	closed	major	Qt Enhanced	QtGui	4.6.2	low	fixed		
