[SDL] SDL_BlitSurface and getpixel(): Windows Vs Linux

Stephen Anthony stephena at roadrunner.nf.net
Tue Jul 30 14:46:01 PDT 2002


On July 29, 2002 11:19 pm, Chris Thielen wrote:

> On Mon, 2002-07-29 at 15:58, George wrote:
> > Mandrake 8.2 with nvidia 2960 drivers
> > 	getpixels test -> time needed = 8 seconds
> > 	SDL_Blit test -> speed = almost good (constant at window/fullscreen
> > mode!)
> >
> > Windows ME with nvidia 29.42 drivers + direct X 8.1
> > 	getpixels test -> not tested
> > 	SDL_Blit test -> speed = unbelievably SLOW
> >
> > Windows XP with nvidia 29.42 drivers + direct X 8.1
> > 	getpixels test -> time needed = 22 seconds !!!
> > 	SDL_Blit test -> speed = almost good (at window mode)
> > 			 	SUPERFAST at fullscreen mode
>
> I'm no expert w/ SDL, but I think I can partially answer this. I assume
> that with Mandrake your getpixel test is accessing pixels on a software
> surface, and your Windows XP getpixel test is accessing pixels on a
> hardware surface, that would explain the differences in those times.
> Somebody correct me if I'm wrong. Is that what's going on? Do you have
> software surfaces in Mandrake and hardware surfaces in Windows XP?
> Because as far as I understand it, accessing pixels, like a getpixel
> test would do, is much quicker to a software surface than to a hardware
> surface, since it has to go through the PCI/AGI bus. Right?

Also, I think in Linux, fullscreen mode is created by simply taking a 
window and putting a black border around it, then restricting the mouse 
to that area.  That would explain why windowed and fullscreen are the 
same.  Both are windows, and neither has hardware access.  There are no 
hardware surfaces (except for the one explained below).

Unless of course you use the DGA backend, where fullscreen is actually 
hardware access.

Steve





More information about the SDL mailing list