Thank you, this is very helpful, I'll start implementing some of this today.
Cheers, Mikey. On Wed, 2004-07-07 at 18:18, Denis Oliver Kropp wrote: > Quoting Michael McLellan: > > Hi, Thanks for the reply, here's a little more info about what I'm > > doing. > > > > The application is running full screen, and mostly loads png's with > > alpha channels, screen resolution is 640x480. I'm guessing the alpha > > blending functions can't be handled in hardware so this is the > > bottleneck. > > Blitting ARGB with DSBLIT_BLEND_ALPHACHANNEL onto ARGB (or others) > is not accelerated in the NSC driver. The software driver needs to > read from video memory for every pixel it blends with the image. > > You may try using DSCAPS_SYSTEMONLY for the primary surfaces caps. > It speeds up blending operations a lot, but disables acceleration > completely, because the back buffer is stored in memory which is not > accessable by the GPU. Depending on how much blending you are using > this might give you an overall performance boost or impact. > > I assumed that you are using DSCAPS_PRIMARY along with DSCAPS_DOUBLE. > > > Are there some tricks I can do with the images to speed up the loading? > > If I save some images without alpha channels when I blit them on a > > surface with an ARGB pixelformat will they draw quicker than images with > > an alpha channel? > > In general it's better to save images without an alpha channel if there's > no need for that. The image loading automatically chooses the pixel format > of the primary layer if no alpha channel is contained in the image, otherwise > it uses ARGB. > > For optimal performance I suggest using RGB16 for the primary surface, using > images without alpha channel where possible. Depending on the number of alpha > blended blits I would choose between video or system memory back buffer. -- -- Michael McLellan Software Developer SWS Australia Pty. Ltd. 832 Cooper Street Somerton Victoria 3062 Australia Ph : +61 3 9303 7512 Fax : +61 3 9303 7513 Mob : +61 421 056 240
