On 8/18/06, Roderick Colenbrander thunderbird2k@gmx.net wrote:
Hi,
In case of Direct3D each device exports the pci device/vendor ids of the videocard. Lots of programs use these ids to get an idea about the capabilities of the card, enable/disable features based on the detected card or sometimes they are used for evil purposes aswell (working around bugs).
....
Compared to the first method which I described which solely relied on the parsing of renderer strings this method is better because it takes into account the opengl capabilities of the videocard. So when a new card is out which isn't in our list, we won't fallback to a very basic card but can still return a 'close match' because of the opengl extension checks.
This patch is a nice idea. Some games query pci ids and do stupid things with it if it gets one it doesn't recognize. Using fake ids of a common card will help some. This potentially means that Wine will have better compatability with older games on newer hardware. For me this fixes a problem with battlefront under wine where battlefront sees CARD_WINE and turns everything to low and disables use of programmable shaders completely. It was very annoying because there was no way to force shaders back on in the game. I wrote a hack to fix it, but now I'm glad there is a patch that does this lots better!
Thanks Roderick, Jesse