The DIB engine... does anyone know how to get it into Wine?

Reece Dunn msclrhd at googlemail.com
Tue Apr 28 15:29:14 CDT 2009


2009/4/28 Massimo Del Fedele <max at veneto.com>:
> My personal final thoughts....
>
> 1) It's obvious (but then, why we're repeating it forever ?) that
> final result is : DIB inside gdi32 and DDBs inside X11, with
> probably DIB cached to DDBs in x11 for performance reasons.

Agreed.

> 2) Assuming point 1, the *only* problem is to decide how get
> to it, so choose the best solution.

There are probably other problems/issues/considerations, but that is
the big one.

> 3) the "best" solution depends on zillions of personal factors.
> Here we say "you can't have full wine bottle and drunken bride".

I would say that there are a lot of factors (forget the personal part).

> So, can we afford months of regression bugs ? Perfect, just
> start adding/replacing code to gdi32 AND winex11.drv and it's
> all ok. But then I guess I'll stay with wine-1.1.20 forever,
> resorting to wine-1.1.5 when I need something that
> mshtml regressions broke...

The rationale behind small incremental changes is that it makes it
easier to bisect. If there is one big bang patch, and there are a
hundred regressions, it is harder to identify where they are. Also,
smaller patches make it easier to review and to verify correct.

> We can't afford that ? so there's no other way than fork
> display driver and let people who needs it to test the
> new one up it becomes stable enough to replace the old one.
>
> I guess we could speak about it for years, but I really don't see
> another path that the 2 above. And, btw, I still don't know which
> would be the preferred one. The rest are simple implementation
> details.

The two things to get right are (1) the correct architecture and (2)
an incremental migration strategy (i.e. a way to incrementally
refactor the existing code to the new "DIB engine/support" code). Look
at what is being done for the Direct3D 10 implementation, for example.

Another benefit to the small incremental, always functional approach
is that the code will be tested by everyone who uses Wine and not just
people who are testing the side-line patches.

The DIB engine is a huge undertaking. It is probably several years
worth of effort to get right and requires a lot of knowledge to get
right (both of Windows and Wine).

- Reece



More information about the wine-devel mailing list