2009/4/28 Massimo Del Fedele max@veneto.com:
My personal final thoughts....
- 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.
- 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.
- 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