[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Hardware acceleration




Hi,

Running fullscreen has found a HW surface, but my frame rate is dead! I am not doing any reads from the hardware... so why so slow?

Casey Duncan wrote:
Please post the code you are using to init the display surface.
       #Hardware
       flags =  pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE
       #Software
       #flags =  pygame.NOFRAME
self.screen = pygame.display.set_mode((self.width, self.height), flags)

       print pygame.display.get_driver()
       print pygame.display.get_surface()

You may not in fact be getting a hardware surface, try printing the surface object to see what type it actually is.
On Ubuntu Linux:
x11
<Surface(1024x768x32 SW)>
FPS: 75

On WinXP with HW flags:
directx
<Surface(1024x768x32 HW)>
FPS: 4!!!!!

On WinXP with SW flags:
directx
<Surface(1024x768x32 SW)>
FPS: 75

Also, are you sure drawing is the thing making the framerate too slow? Also, what are you drawing that is slow?
I am not drawing much. A fullscreen surface to clear the display, then several sprites with per-pixel alpha (perhaps 30% of screen area). I've posted it here:
http://img246.imageshack.us/my.php?image=inflation20080226pc7.jpg

Without the per pixel alpha it looks like some sort of 8bit retro game! No can do!

Do I need to tell pygame to load the images into video memory? My theory is I have a HW surface to which I am copying images each frame from system memory.....