http://bugs.winehq.org/show_bug.cgi?id=21515
--- Comment #108 from P.Panon ppanon@shaw.ca 2010-03-03 19:12:43 --- That's interesting. It looks like it's setting gl_vendor correctly to GL_VENDOR_MESA, but card_vendor is being set to HW_VENDOR_WINE instead of HW_VENDOR_ATI. According to http://source.winehq.org/git/wine.git/?a=tree;f=dlls/wined3d;h=efa79e974c711... the git head for directx.c contains
static enum wined3d_pci_vendor wined3d_guess_card_vendor(const char *gl_vendor_string, const char *gl_renderer) { if (strstr(gl_vendor_string, "NVIDIA")) return HW_VENDOR_NVIDIA;
if (strstr(gl_vendor_string, "ATI") || strstr(gl_vendor_string, "Advanced Micro Devices, Inc.") || strstr(gl_vendor_string, "DRI R300 Project")) return HW_VENDOR_ATI;
if (strstr(gl_vendor_string, "Intel(R)") || strstr(gl_renderer, "Intel(R)") || strstr(gl_vendor_string, "Intel Inc.")) return HW_VENDOR_INTEL;
if (strstr(gl_vendor_string, "Mesa") || strstr(gl_vendor_string, "Tungsten Graphics, Inc") || strstr(gl_vendor_string, "VMware, Inc.")) return HW_VENDOR_WINE;
FIXME_(d3d_caps)("Received unrecognized GL_VENDOR %s. Returning HW_VENDOR_NVIDIA.\n", debugstr_a(gl_vendor_string));
return HW_VENDOR_NVIDIA; }
so it should be matching "Advanced Micro Devices, Inc." in the vendor string and using HW_VENDOR_ATI. You could confirm that with a d3d_caps trace and see what "found GL_VENDOR ("... shows. If it doesn't show (Advanced Micro Devices, Inc.)->(0x0004/0x1002) then maybe there's been a source update error somehow. In that case check the code above against the same procedure on your copy of directx.c