Hi,
StretchBlt/StretchDIBits operation doesn't appear to be getting done in hardware. In fact performance is slightly improved if I scale the image prior myself and call BitBlt/SetDiBitsToDevice.
If I'm correct in my understanding of the x11drv source code (bitblt.c) it appears to be scaling it in software and sending this image to the hardware using XPutImage - only looked briefly. Scaling it myself might be quicker because wine is having to prepare buffers for the scaling it itself each time.
Is anyone aware of this problem or am I misinterpreting the problem. If this is what's happening, is there an equivalent to XPutImage that requests that the stretching operation be done in the graphics hardware which is going to be considerably faster and almost instantaneous I would guess.
I noticed that painting very large dialogs can be slow - might this be caused by the same thing?
Thanks
Patrick
Is anyone aware of this problem or am I misinterpreting the problem. If this is what's happening, is there an equivalent to XPutImage that requests that the stretching operation be done in the graphics hardware which is going to be considerably faster and almost instantaneous I would guess.
No, you're right. And such an API does not exist in 'standard' X AFAIK. Maybe in the Render extension used by Wine do to fonts, but I never really investigated it.
Lionel
I think XV (xvideo) might have stuff for hardware scaling, it might be worth asking on the xpert list. I was talking to somebody the other night who reckoned Director was 4x slower under Wine than Windows, potentially because Director thought it couldn't use hardware acceleration and was doing all the rendering in software?
Something to investigate at some point
On Tue, 2002-12-10 at 23:03, Lionel Ulmer wrote:
Is anyone aware of this problem or am I misinterpreting the problem. If this is what's happening, is there an equivalent to XPutImage that requests that the stretching operation be done in the graphics hardware which is going to be considerably faster and almost instantaneous I would guess.
No, you're right. And such an API does not exist in 'standard' X AFAIK. Maybe in the Render extension used by Wine do to fonts, but I never really investigated it.
Lionel
On Wed, Dec 11, 2002 at 08:50:24AM +0000, Mike Hearn wrote:
I think XV (xvideo) might have stuff for hardware scaling, it might be worth asking on the xpert list. I was talking to somebody the other night who reckoned Director was 4x slower under Wine than Windows, potentially because Director thought it couldn't use hardware acceleration and was doing all the rendering in software?
Well, Xv certainly supports hardware scaling... But AFAIK only the NVIDIA binary driver advertizes an RGB pixel format (last time I checked, on G400 or Radeon, you only had YUV pixel formats supported by Xv).
If you speak about video scaling (and not bitmap scaling), that's of course a whole other story :-)
Lionel