Client-side DIB copy optimization patch on Bugzilla

Damjan Jovanovic damjan.jov at
Sun Oct 8 12:57:06 CDT 2006

On 10/6/06, Willie Sippel <willie at> wrote:
> Hi there.
> A patch by Iulian Marinescu was posted on Bugzilla a few days ago to optimize
> client-side DIB copy operations. I tested it, and it definitely improves the
> performance of a few applications quite a bit (Propellerhead Reason for
> example). Even though I can't comment on the quality of the patch, it seems
> to work as advertised, and I didn't notice any regressions. Would be nice to
> see it in Wine, so I hope someone more competent could look into the patch
> and see if it's OK. It's available at:
> Since the patch wasn't posted on wine-patches AFAIK, I thought I should
> mention it here so it doesn't get overlooked.

You don't want that patch commited. I was the one that posted it to
bug 3902 (using Iulian's work), and it's broken. Open winecfg, go to
"Audio" -> crashes. A few other apps I tried crash too.

The patch is incomplete. It _only_ calculates a dirty rectangle for
BitBlt, as opposed to the dozens of other GDI functions that need to
be dealt with. It's working as fast as possible right now (AFAICT
further improvements are impossible) and it still isn't nearly fast
enough - Heroes 4 still lags terribly when you scroll the map.

What's needed is a proper DIB engine - copying a bitmap to the X
server, modifying it, and copying it back, is always going to be slow
- copying a smaller bitmap (what this patch does) is only marginally
faster, some of the time.

Sorry to get your hopes up.

> Ciao,
> Willie


> --
> Willie Sippel
>  ////////  |  Tritium Studios
>  //         |  ______________________________
> //// ///    |
> <willie at>

More information about the wine-devel mailing list