Bug 30776 - Wine expects GL_VENDOR to identify the card vendor
Summary: Wine expects GL_VENDOR to identify the card vendor
Status: RESOLVED NOTOURBUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/R600 (show other bugs)
Version: git
Hardware: Other All
: medium trivial
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-11 12:38 UTC by Seppo Yli-Olli
Modified: 2011-03-01 01:00 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Seppo Yli-Olli 2010-10-11 12:38:15 UTC
Not sure whose bug this is but Wine's logic for figuring out which card we have currently uses the following piece of code to figure out which "hw_vendor" we have:
   if (strstr(gl_vendor_string, "ATI")
            || strstr(gl_vendor_string, "Advanced Micro Devices, Inc.")
            || strstr(gl_vendor_string, "X.Org R300 Project")
	    || strstr(gl_renderer, "R100")
	    || strstr(gl_renderer, "R200")
            || strstr(gl_renderer, "R300")
            || strstr(gl_renderer, "R600")
	    || strstr(gl_renderer, "R700"))
	return HW_VENDOR_ATI;
Now, this wasn't such a problem with classic driver, eg with r600c we had even double positive match. With r600g, however, renderer string says the exact chip name (which Wine uses after it has found the right branch of chip id's to search from) and GL_VENDOR is "X.org". This causes Wine to fail detection (and end up fallbacking in a rather boring fashion through HW_VENDOR_NVIDIA finally to Nouveau since it already *did* manage to detect that we're running Mesa).
I'm not sure what exactly the GL_VENDOR string should say but I'm hoping something more distinguishing could be put there. The first two items in that list would imo be viable options but that's not to say something else couldn't be put in and make Wine detect "hw_vendor" based on that instead.
Comment 1 Jon Severinsson 2011-03-01 01:00:52 UTC
Fixed in Wine by checking for "AMD" in the renderer string.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.