[PATCH 2/5] wined3d: Recognize some more Intel GPUs.
Henri Verbeet
hverbeet at codeweavers.com
Mon Jan 2 14:45:27 CST 2012
Unfortunately I don't have most of the description strings for the Windows
drivers, so those are probably wrong. If anyone has the correct strings,
please update the table.
---
dlls/wined3d/directx.c | 113 ++++++++++++++++++++++++++++++++--------
dlls/wined3d/wined3d_private.h | 39 +++++++++++---
2 files changed, 123 insertions(+), 29 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 4c8a7ad..6dc43d0 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1158,14 +1158,40 @@ static const struct gpu_description gpu_description_table[] =
{HW_VENDOR_AMD, CARD_AMD_RADEON_HD6800, "AMD Radeon HD 6800 Series", DRIVER_AMD_R600, 1024},
{HW_VENDOR_AMD, CARD_AMD_RADEON_HD6900, "AMD Radeon HD 6900 Series", DRIVER_AMD_R600, 2048},
/* Intel cards */
- {HW_VENDOR_INTEL, CARD_INTEL_I830G, "Intel(R) 82830M Graphics Controller", DRIVER_INTEL_GMA800, 32 },
- {HW_VENDOR_INTEL, CARD_INTEL_I855G, "Intel(R) 82852/82855 GM/GME Graphics Controller", DRIVER_INTEL_GMA800, 32 },
- {HW_VENDOR_INTEL, CARD_INTEL_I865G, "Intel(R) 82865G Graphics Controller", DRIVER_INTEL_GMA800, 32 },
- {HW_VENDOR_INTEL, CARD_INTEL_I915G, "Intel(R) 82915G/GV/910GL Express Chipset Family", DRIVER_INTEL_GMA900, 64 },
- {HW_VENDOR_INTEL, CARD_INTEL_I915GM, "Mobile Intel(R) 915GM/GMS,910GML Express Chipset Family", DRIVER_INTEL_GMA900, 64 },
- {HW_VENDOR_INTEL, CARD_INTEL_I945GM, "Mobile Intel(R) 945GM Express Chipset Family", DRIVER_INTEL_GMA950, 64 },
- {HW_VENDOR_INTEL, CARD_INTEL_X3100, "Mobile Intel(R) 965 Express Chipset Family", DRIVER_INTEL_GMA3000, 128},
- {HW_VENDOR_INTEL, CARD_INTEL_GM45, "Mobile Intel(R) GM45 Express Chipset Family", DRIVER_INTEL_GMA3000, 512}
+ {HW_VENDOR_INTEL, CARD_INTEL_830M, "Intel(R) 82830M Graphics Controller", DRIVER_INTEL_GMA800, 32 },
+ {HW_VENDOR_INTEL, CARD_INTEL_855GM, "Intel(R) 82852/82855 GM/GME Graphics Controller", DRIVER_INTEL_GMA800, 32 },
+ {HW_VENDOR_INTEL, CARD_INTEL_845G, "Intel(R) 845G", DRIVER_INTEL_GMA800, 32 },
+ {HW_VENDOR_INTEL, CARD_INTEL_865G, "Intel(R) 82865G Graphics Controller", DRIVER_INTEL_GMA800, 32 },
+ {HW_VENDOR_INTEL, CARD_INTEL_915G, "Intel(R) 82915G/GV/910GL Express Chipset Family", DRIVER_INTEL_GMA900, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_E7221G, "Intel(R) E7221G", DRIVER_INTEL_GMA900, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_915GM, "Mobile Intel(R) 915GM/GMS,910GML Express Chipset Family", DRIVER_INTEL_GMA900, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_945G, "Intel(R) 945G", DRIVER_INTEL_GMA950, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_945GM, "Mobile Intel(R) 945GM Express Chipset Family", DRIVER_INTEL_GMA950, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_945GME, "Intel(R) 945GME", DRIVER_INTEL_GMA950, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_Q35, "Intel(R) Q35", DRIVER_INTEL_GMA950, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_G33, "Intel(R) G33", DRIVER_INTEL_GMA950, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_Q33, "Intel(R) Q33", DRIVER_INTEL_GMA950, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_PNVG, "Intel(R) IGD", DRIVER_INTEL_GMA950, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_PNVM, "Intel(R) IGD", DRIVER_INTEL_GMA950, 64 },
+ {HW_VENDOR_INTEL, CARD_INTEL_965Q, "Intel(R) 965Q", DRIVER_INTEL_GMA3000, 128},
+ {HW_VENDOR_INTEL, CARD_INTEL_965G, "Intel(R) 965G", DRIVER_INTEL_GMA3000, 128},
+ {HW_VENDOR_INTEL, CARD_INTEL_946GZ, "Intel(R) 946GZ", DRIVER_INTEL_GMA3000, 128},
+ {HW_VENDOR_INTEL, CARD_INTEL_965GM, "Mobile Intel(R) 965 Express Chipset Family", DRIVER_INTEL_GMA3000, 128},
+ {HW_VENDOR_INTEL, CARD_INTEL_965GME, "Intel(R) 965GME", DRIVER_INTEL_GMA3000, 128},
+ {HW_VENDOR_INTEL, CARD_INTEL_GM45, "Mobile Intel(R) GM45 Express Chipset Family", DRIVER_INTEL_GMA3000, 512},
+ {HW_VENDOR_INTEL, CARD_INTEL_IGD, "Intel(R) Integrated Graphics Device", DRIVER_INTEL_GMA3000, 512},
+ {HW_VENDOR_INTEL, CARD_INTEL_G45, "Intel(R) G45/G43", DRIVER_INTEL_GMA3000, 512},
+ {HW_VENDOR_INTEL, CARD_INTEL_Q45, "Intel(R) Q45/Q43", DRIVER_INTEL_GMA3000, 512},
+ {HW_VENDOR_INTEL, CARD_INTEL_G41, "Intel(R) G41", DRIVER_INTEL_GMA3000, 512},
+ {HW_VENDOR_INTEL, CARD_INTEL_B43, "Intel(R) B43", DRIVER_INTEL_GMA3000, 512},
+ {HW_VENDOR_INTEL, CARD_INTEL_ILKD, "Intel(R) Ironlake Desktop", DRIVER_INTEL_GMA3000, 1024},
+ {HW_VENDOR_INTEL, CARD_INTEL_ILKM, "Intel(R) Ironlake Mobile", DRIVER_INTEL_GMA3000, 1024},
+ {HW_VENDOR_INTEL, CARD_INTEL_SNBD, "Intel(R) Sandybridge Desktop", DRIVER_INTEL_GMA3000, 1024},
+ {HW_VENDOR_INTEL, CARD_INTEL_SNBM, "Intel(R) Sandybridge Mobile", DRIVER_INTEL_GMA3000, 1024},
+ {HW_VENDOR_INTEL, CARD_INTEL_SNBS, "Intel(R) Sandybridge Server", DRIVER_INTEL_GMA3000, 1024},
+ {HW_VENDOR_INTEL, CARD_INTEL_IVBD, "Intel(R) Ivybridge Desktop", DRIVER_INTEL_GMA3000, 1024},
+ {HW_VENDOR_INTEL, CARD_INTEL_IVBM, "Intel(R) Ivybridge Mobile", DRIVER_INTEL_GMA3000, 1024},
+ {HW_VENDOR_INTEL, CARD_INTEL_IVBS, "Intel(R) Ivybridge Server", DRIVER_INTEL_GMA3000, 1024},
};
static const struct driver_version_information *get_driver_version_info(enum wined3d_display_driver driver,
@@ -1794,26 +1820,69 @@ static enum wined3d_pci_device select_card_amd_binary(const struct wined3d_gl_in
static enum wined3d_pci_device select_card_intel(const struct wined3d_gl_info *gl_info,
const char *gl_renderer)
{
- if (strstr(gl_renderer, "GM45")) return CARD_INTEL_GM45;
- if (strstr(gl_renderer, "X3100") || strstr(gl_renderer, "965GM"))
- {
- /* MacOS calls the card GMA X3100, otherwise known as GM965/GL960 */
- return CARD_INTEL_X3100;
- }
+ unsigned int i;
- if (strstr(gl_renderer, "GMA 950") || strstr(gl_renderer, "945GM"))
+ static const struct
+ {
+ const char *renderer;
+ enum wined3d_pci_device id;
+ }
+ cards[] =
+ {
+ /* Ivybridge */
+ {"Ivybridge Server", CARD_INTEL_IVBS},
+ {"Ivybridge Mobile", CARD_INTEL_IVBM},
+ {"Ivybridge Desktop", CARD_INTEL_IVBD},
+ /* Sandybridge */
+ {"Sandybridge Server", CARD_INTEL_SNBS},
+ {"Sandybridge Mobile", CARD_INTEL_SNBM},
+ {"Sandybridge Desktop", CARD_INTEL_SNBD},
+ /* Ironlake */
+ {"Ironlake Mobile", CARD_INTEL_ILKM},
+ {"Ironlake Desktop", CARD_INTEL_ILKD},
+ /* G4x */
+ {"B43", CARD_INTEL_B43},
+ {"G41", CARD_INTEL_G41},
+ {"G45", CARD_INTEL_G45},
+ {"Q45", CARD_INTEL_Q45},
+ {"Integrated Graphics Device", CARD_INTEL_IGD},
+ {"GM45", CARD_INTEL_GM45},
+ /* i965 */
+ {"965GME", CARD_INTEL_965GME},
+ {"965GM", CARD_INTEL_965GM},
+ {"X3100", CARD_INTEL_965GM}, /* MacOS */
+ {"946GZ", CARD_INTEL_946GZ},
+ {"965G", CARD_INTEL_965G},
+ {"965Q", CARD_INTEL_965Q},
+ /* i945 */
+ {"Pineview M", CARD_INTEL_PNVM},
+ {"Pineview G", CARD_INTEL_PNVG},
+ {"IGD", CARD_INTEL_PNVG},
+ {"Q33", CARD_INTEL_Q33},
+ {"G33", CARD_INTEL_G33},
+ {"Q35", CARD_INTEL_Q35},
+ {"945GME", CARD_INTEL_945GME},
+ {"945GM", CARD_INTEL_945GM},
+ {"GMA 950", CARD_INTEL_945GM}, /* MacOS */
+ {"945G", CARD_INTEL_945G},
+ /* i915 */
+ {"915GM", CARD_INTEL_915GM},
+ {"E7221G", CARD_INTEL_E7221G},
+ {"915G", CARD_INTEL_915G},
+ /* i8xx */
+ {"865G", CARD_INTEL_865G},
+ {"845G", CARD_INTEL_845G},
+ {"855GM", CARD_INTEL_855GM},
+ {"830M", CARD_INTEL_830M},
+ };
+
+ for (i = 0; i < sizeof(cards) / sizeof(*cards); ++i)
{
- /* MacOS calls the card GMA 950, but everywhere else the PCI ID is named 945GM */
- return CARD_INTEL_I945GM;
+ if (strstr(gl_renderer, cards[i].renderer))
+ return cards[i].id;
}
- if (strstr(gl_renderer, "915GM")) return CARD_INTEL_I915GM;
- if (strstr(gl_renderer, "915G")) return CARD_INTEL_I915G;
- if (strstr(gl_renderer, "865G")) return CARD_INTEL_I865G;
- if (strstr(gl_renderer, "855G")) return CARD_INTEL_I855G;
- if (strstr(gl_renderer, "830G")) return CARD_INTEL_I830G;
- return CARD_INTEL_I915G;
-
+ return CARD_INTEL_915G;
}
static enum wined3d_pci_device select_card_amd_mesa(const struct wined3d_gl_info *gl_info,
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index dd83d1f..1602bdd 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1415,15 +1415,40 @@ enum wined3d_pci_device
CARD_NVIDIA_GEFORCE_GTX570 = 0x1081,
CARD_NVIDIA_GEFORCE_GTX580 = 0x1080,
+ CARD_INTEL_830M = 0x3577,
+ CARD_INTEL_855GM = 0x3582,
CARD_INTEL_845G = 0x2562,
- CARD_INTEL_I830G = 0x3577,
- CARD_INTEL_I855G = 0x3582,
- CARD_INTEL_I865G = 0x2572,
- CARD_INTEL_I915G = 0x2582,
- CARD_INTEL_I915GM = 0x2592,
- CARD_INTEL_I945GM = 0x27a2, /* Same as GMA 950? */
- CARD_INTEL_X3100 = 0x2a02, /* Found in Macs. Same as GM965/GL960 */
+ CARD_INTEL_865G = 0x2572,
+ CARD_INTEL_915G = 0x2582,
+ CARD_INTEL_E7221G = 0x258a,
+ CARD_INTEL_915GM = 0x2592,
+ CARD_INTEL_945G = 0x2772,
+ CARD_INTEL_945GM = 0x27a2,
+ CARD_INTEL_945GME = 0x27ae,
+ CARD_INTEL_Q35 = 0x29b2,
+ CARD_INTEL_G33 = 0x29c2,
+ CARD_INTEL_Q33 = 0x29d2,
+ CARD_INTEL_PNVG = 0xa001,
+ CARD_INTEL_PNVM = 0xa011,
+ CARD_INTEL_965Q = 0x2992,
+ CARD_INTEL_965G = 0x2982,
+ CARD_INTEL_946GZ = 0x2972,
+ CARD_INTEL_965GM = 0x2a02,
+ CARD_INTEL_965GME = 0x2a12,
CARD_INTEL_GM45 = 0x2a42,
+ CARD_INTEL_IGD = 0x2e02,
+ CARD_INTEL_Q45 = 0x2e12,
+ CARD_INTEL_G45 = 0x2e22,
+ CARD_INTEL_G41 = 0x2e32,
+ CARD_INTEL_B43 = 0x2e92,
+ CARD_INTEL_ILKD = 0x0042,
+ CARD_INTEL_ILKM = 0x0046,
+ CARD_INTEL_SNBD = 0x0122,
+ CARD_INTEL_SNBM = 0x0126,
+ CARD_INTEL_SNBS = 0x010a,
+ CARD_INTEL_IVBD = 0x0162,
+ CARD_INTEL_IVBM = 0x0166,
+ CARD_INTEL_IVBS = 0x015a,
};
struct wined3d_fbo_ops
--
1.7.3.4
More information about the wine-patches
mailing list