I have an AMD Ryzen 7 5700U, which when my system was running Mesa 22.0.4 identified itself in `glxinfo` as: ``` Vendor: AMD (0x1002) Device: AMD RENOIR (LLVM 13.0.1, DRM 3.47, 5.19.17) (0x164c) ```
After a recent system upgrade that took Mesa to 22.2.3, `glxinfo` now gives: ``` Vendor: AMD (0x1002) Device: RENOIR (renoir, LLVM 14.0.6, DRM 3.48, 6.0.12) (0x164c) ```
Wine programs also started reliably crashing on me, with the following message that did not appear before:
``` 0130:fixme:d3d:wined3d_guess_card_vendor Received unrecognized GL_VENDOR "AMD". Returning HW_VENDOR_NVIDIA. ```
I don't really know what I'm doing but that message suggested this patch to me, which does resolve the crashes and doesn't seem obviously wrong. Maybe there's some other table to which the new identifying information of this APU needs to be added, but keeping this check for future-proofing might still be a good idea in that case?
From: Ryan Hendrickson ryan.hendrickson@alum.mit.edu
--- dlls/wined3d/adapter_gl.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index f3810bad440..8cd8a883975 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -1216,6 +1216,7 @@ static enum wined3d_pci_vendor wined3d_guess_card_vendor(const char *gl_vendor_s if (strstr(gl_vendor_string, "ATI") || strstr(gl_vendor_string, "Advanced Micro Devices, Inc.") || strstr(gl_vendor_string, "X.Org R300 Project") + || strstr(gl_vendor_string, "AMD") || strstr(gl_renderer, "AMD") || strstr(gl_renderer, "FirePro") || strstr(gl_renderer, "Radeon")
This merge request was approved by Zebediah Figura.
This was also discussed in merge request 826 [1], which is basically the same patch. That one got lost (sorry about that), but this one has a better subject line anyway.
This is probably safe for 8.0, but there shouldn't be harm in deferring it either.
I think there are ways we can be matching and reporting the vendor better, but this fixes a bug and doesn't make the code worse, so I think it's fine.
[1] https://gitlab.winehq.org/wine/wine/-/merge_requests/826
I closed !826 it got broken and fixed in mesa-git (after they moved from 22.3 to 23 development), but I probably should have kept it open since not everybody is using mesa-git
I closed !826 since the original issue was broken and fixed in mesa-git (immediately after they moved from 22.3 to 23 development), but I probably should have kept it open since not everybody is using mesa-git and since the GPU will still report as RENOIR on 22.3.
It's a bit more subtle than that in general; this issue would now be present for any card which doesn't have the marketing name added to Mesa's database (or is it libdrm? I forget).
but it's still broken with the vulkan backend based on what I saw :/, i will investigate that later
How is it reported with the Vulkan backend? According to my reading of the code we should rely on the PCI ID reported by Vulkan, which would yield HW_VENDOR_AMD. (We should really do that with the GL backend too, if we can.)