On Monday 28 April 2008 11:00:13 pm Roderick Colenbrander wrote:
IMHO adding a caps filter to dx8 is less risky than adding multisampling support, so I don't see a reason not to do that and avoid the dxVersion check
Personally I would prefer to the filtering the proper way. With this I mean to do it for all d3d8 caps and not just for this one. I think it is bad to spread the 'filtering' over wined3d and d3d8, d3d9. It should either all be in wined3d (bad) or in d3d8 / d3d9.
Something that has me concerned with applying all applicable flags in wined3d and filtering them out in d3d8/9 is, what happens if a newer d3d version has a flag with the same value as a different flag in the old version?
For instance, if wined3d applies a flag for an older cap, but it's used for the new version (which assumes that particular cap) and incorrectly reports an unsupported cap, or always filters out the cap even if it could work. Like:
wined3d: if(SomeReallyOldExtensionIsSupported || GauranteedByOpenGL) flags |= OLD_CAP; if(SomeReallyNewExtensionIsSupported) flags |= NEW_CAP;
d3d: flags &= NEW_CAP|...; // or flags &= ~(OLD_CAP|...);
...and Wine potentially reports bad caps.