[PATCH 1/5] wined3d: Store PCI IDs in wined3d_driver_info instead of wined3d_gl_info.

Henri Verbeet hverbeet at codeweavers.com
Tue Oct 27 04:10:39 CDT 2009


---
 dlls/wined3d/directx.c         |   95 +++++++++++++++++++++++----------------
 dlls/wined3d/utils.c           |    8 ++--
 dlls/wined3d/wined3d_gl.h      |   79 ---------------------------------
 dlls/wined3d/wined3d_private.h |   83 ++++++++++++++++++++++++++++++++++-
 4 files changed, 142 insertions(+), 123 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index b7c0f8a..2367187 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -458,20 +458,22 @@ static DWORD ver_for_ext(GL_SupportedExt ext)
     return 0;
 }
 
-static BOOL match_ati_r300_to_500(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_ati_r300_to_500(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
-    if (gl_info->gl_vendor != VENDOR_ATI) return FALSE;
-    if (gl_info->gl_card == CARD_ATI_RADEON_9500) return TRUE;
-    if (gl_info->gl_card == CARD_ATI_RADEON_X700) return TRUE;
-    if (gl_info->gl_card == CARD_ATI_RADEON_X1600) return TRUE;
+    if (vendor != VENDOR_ATI) return FALSE;
+    if (device == CARD_ATI_RADEON_9500) return TRUE;
+    if (device == CARD_ATI_RADEON_X700) return TRUE;
+    if (device == CARD_ATI_RADEON_X1600) return TRUE;
     return FALSE;
 }
 
-static BOOL match_geforce5(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_geforce5(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
-    if (gl_info->gl_vendor == VENDOR_NVIDIA)
+    if (vendor == VENDOR_NVIDIA)
     {
-        if (gl_info->gl_card == CARD_NVIDIA_GEFORCEFX_5800 || gl_info->gl_card == CARD_NVIDIA_GEFORCEFX_5600)
+        if (device == CARD_NVIDIA_GEFORCEFX_5800 || device == CARD_NVIDIA_GEFORCEFX_5600)
         {
             return TRUE;
         }
@@ -479,7 +481,8 @@ static BOOL match_geforce5(const struct wined3d_gl_info *gl_info, const char *gl
     return FALSE;
 }
 
-static BOOL match_apple(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_apple(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
     /* MacOS has various specialities in the extensions it advertises. Some have to be loaded from
      * the opengl 1.2+ core, while other extensions are advertised, but software emulated. So try to
@@ -574,28 +577,32 @@ static void test_pbo_functionality(struct wined3d_gl_info *gl_info)
     }
 }
 
-static BOOL match_apple_intel(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_apple_intel(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
-    return gl_info->gl_vendor == VENDOR_INTEL && match_apple(gl_info, gl_renderer);
+    return vendor == VENDOR_INTEL && match_apple(gl_info, gl_renderer, vendor, device);
 }
 
-static BOOL match_apple_nonr500ati(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_apple_nonr500ati(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
-    if (!match_apple(gl_info, gl_renderer)) return FALSE;
-    if (gl_info->gl_vendor != VENDOR_ATI) return FALSE;
-    if (gl_info->gl_card == CARD_ATI_RADEON_X1600) return FALSE;
+    if (!match_apple(gl_info, gl_renderer, vendor, device)) return FALSE;
+    if (vendor != VENDOR_ATI) return FALSE;
+    if (device == CARD_ATI_RADEON_X1600) return FALSE;
     return TRUE;
 }
 
-static BOOL match_fglrx(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_fglrx(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
-    if (gl_info->gl_vendor != VENDOR_ATI) return FALSE;
-    if (match_apple(gl_info, gl_renderer)) return FALSE;
+    if (vendor != VENDOR_ATI) return FALSE;
+    if (match_apple(gl_info, gl_renderer, vendor, device)) return FALSE;
     if (strstr(gl_renderer, "DRI")) return FALSE; /* Filter out Mesa DRI drivers. */
     return TRUE;
 }
 
-static BOOL match_dx10_capable(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_dx10_capable(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
     /* DX9 cards support 40 single float varyings in hardware, most drivers report 32. ATI misreports
      * 44 varyings. So assume that if we have more than 44 varyings we have a dx10 card.
@@ -608,7 +615,8 @@ static BOOL match_dx10_capable(const struct wined3d_gl_info *gl_info, const char
 }
 
 /* A GL context is provided by the caller */
-static BOOL match_allows_spec_alpha(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_allows_spec_alpha(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
     GLenum error;
     DWORD data[16];
@@ -634,14 +642,16 @@ static BOOL match_allows_spec_alpha(const struct wined3d_gl_info *gl_info, const
     }
 }
 
-static BOOL match_apple_nvts(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_apple_nvts(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
-    if(!match_apple(gl_info, gl_renderer)) return FALSE;
+    if (!match_apple(gl_info, gl_renderer, vendor, device)) return FALSE;
     return GL_SUPPORT(NV_TEXTURE_SHADER);
 }
 
 /* A GL context is provided by the caller */
-static BOOL match_broken_nv_clip(const struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static BOOL match_broken_nv_clip(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
     GLuint prog;
     BOOL ret = FALSE;
@@ -817,7 +827,8 @@ static void quirk_disable_nvvp_clip(struct wined3d_gl_info *gl_info)
 
 struct driver_quirk
 {
-    BOOL (*match)(const struct wined3d_gl_info *gl_info, const char *gl_renderer);
+    BOOL (*match)(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+            enum wined3d_pci_vendor vendor, enum wined3d_pci_device device);
     void (*apply)(struct wined3d_gl_info *gl_info);
     const char *description;
 };
@@ -963,10 +974,13 @@ static const struct driver_version_information driver_version_table[] =
     /* TODO: Add information about legacy ATI hardware, Intel and other cards. */
 };
 
-static void init_driver_info(struct wined3d_driver_info *driver_info, WORD vendor, WORD device)
+static void init_driver_info(struct wined3d_driver_info *driver_info,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
     unsigned int i;
 
+    driver_info->vendor = vendor;
+    driver_info->device = device;
     driver_info->name = "Display";
     driver_info->description = "Direct3D HAL";
     driver_info->version_high = MAKEDWORD_VERSION(7, 1);
@@ -992,13 +1006,14 @@ static void init_driver_info(struct wined3d_driver_info *driver_info, WORD vendo
 }
 
 /* Context activation is done by the caller. */
-static void fixup_extensions(struct wined3d_gl_info *gl_info, const char *gl_renderer)
+static void fixup_extensions(struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
 {
     unsigned int i;
 
     for (i = 0; i < (sizeof(quirk_table) / sizeof(*quirk_table)); ++i)
     {
-        if (!quirk_table[i].match(gl_info, gl_renderer)) continue;
+        if (!quirk_table[i].match(gl_info, gl_renderer, vendor, device)) continue;
         TRACE_(d3d_caps)("Applying driver quirk \"%s\".\n", quirk_table[i].description);
         quirk_table[i].apply(gl_info);
     }
@@ -1025,7 +1040,7 @@ static DWORD wined3d_parse_gl_version(const char *gl_version)
     return MAKEDWORD_VERSION(major, minor);
 }
 
-static GL_Vendors wined3d_guess_vendor(const char *gl_vendor, const char *gl_renderer)
+static enum wined3d_pci_vendor wined3d_guess_vendor(const char *gl_vendor, const char *gl_renderer)
 {
     if (strstr(gl_vendor, "NVIDIA"))
         return VENDOR_NVIDIA;
@@ -1048,8 +1063,8 @@ static GL_Vendors wined3d_guess_vendor(const char *gl_vendor, const char *gl_ren
     return VENDOR_WINE;
 }
 
-static GL_Cards wined3d_guess_card(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
-        GL_Vendors *vendor, unsigned int *vidmem)
+static enum wined3d_pci_device wined3d_guess_card(const struct wined3d_gl_info *gl_info, const char *gl_renderer,
+        enum wined3d_pci_vendor *vendor, unsigned int *vidmem)
 {
     /* Below is a list of Nvidia and ATI GPUs. Both vendors have dozens of
      * different GPUs with roughly the same features. In most cases GPUs from a
@@ -1517,6 +1532,8 @@ static BOOL IWineD3DImpl_FillGLCaps(struct wined3d_driver_info *driver_info, str
     const char *GL_Extensions    = NULL;
     const char *WGL_Extensions   = NULL;
     const char *gl_string        = NULL;
+    enum wined3d_pci_vendor vendor;
+    enum wined3d_pci_device device;
     GLint       gl_max;
     GLfloat     gl_floatv[2];
     unsigned    i;
@@ -1558,8 +1575,8 @@ static BOOL IWineD3DImpl_FillGLCaps(struct wined3d_driver_info *driver_info, str
         HeapFree(GetProcessHeap(), 0, gl_renderer);
         return FALSE;
     }
-    gl_info->gl_vendor = wined3d_guess_vendor(gl_string, gl_renderer);
-    TRACE_(d3d_caps)("found GL_VENDOR (%s)->(0x%04x)\n", debugstr_a(gl_string), gl_info->gl_vendor);
+    vendor = wined3d_guess_vendor(gl_string, gl_renderer);
+    TRACE_(d3d_caps)("found GL_VENDOR (%s)->(0x%04x)\n", debugstr_a(gl_string), vendor);
 
     /* Parse the GL_VERSION field into major and minor information */
     gl_string = (const char *)glGetString(GL_VERSION);
@@ -1996,8 +2013,8 @@ static BOOL IWineD3DImpl_FillGLCaps(struct wined3d_driver_info *driver_info, str
         gl_info->max_buffers = 1;
     }
 
-    gl_info->gl_card = wined3d_guess_card(gl_info, gl_renderer, &gl_info->gl_vendor, &vidmem);
-    TRACE_(d3d_caps)("FOUND (fake) card: 0x%x (vendor id), 0x%x (device id)\n", gl_info->gl_vendor, gl_info->gl_card);
+    device = wined3d_guess_card(gl_info, gl_renderer, &vendor, &vidmem);
+    TRACE_(d3d_caps)("FOUND (fake) card: 0x%x (vendor id), 0x%x (device id)\n", vendor, device);
 
     /* If we have an estimate use it, else default to 64MB;  */
     if(vidmem)
@@ -2059,8 +2076,8 @@ static BOOL IWineD3DImpl_FillGLCaps(struct wined3d_driver_info *driver_info, str
         }
     }
 
-    fixup_extensions(gl_info, gl_renderer);
-    init_driver_info(driver_info, gl_info->gl_vendor, gl_info->gl_card);
+    fixup_extensions(gl_info, gl_renderer, vendor, device);
+    init_driver_info(driver_info, vendor, device);
     add_gl_compat_wrappers(gl_info);
 
     HeapFree(GetProcessHeap(), 0, gl_renderer);
@@ -2330,8 +2347,8 @@ static HRESULT WINAPI IWineD3DImpl_GetAdapterIdentifier(IWineD3D *iface, UINT Ad
 
     pIdentifier->driver_version.u.HighPart = adapter->driver_info.version_high;
     pIdentifier->driver_version.u.LowPart = adapter->driver_info.version_low;
-    pIdentifier->vendor_id = adapter->gl_info.gl_vendor;
-    pIdentifier->device_id = adapter->gl_info.gl_card;
+    pIdentifier->vendor_id = adapter->driver_info.vendor;
+    pIdentifier->device_id = adapter->driver_info.device;
     pIdentifier->subsystem_id = 0;
     pIdentifier->revision = 0;
     memcpy(&pIdentifier->device_identifier, &IID_D3DDEVICE_D3DUID, sizeof(pIdentifier->device_identifier));
@@ -4688,7 +4705,7 @@ BOOL InitAdapters(IWineD3DImpl *This)
             WineD3D_ReleaseFakeGLContext(&fake_gl_ctx);
             goto nogl_adapter;
         }
-        ret = initPixelFormats(&adapter->gl_info);
+        ret = initPixelFormats(&adapter->gl_info, adapter->driver_info.vendor);
         if(!ret) {
             ERR("Failed to init gl formats\n");
             WineD3D_ReleaseFakeGLContext(&fake_gl_ctx);
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index bbf9109..af780b5 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -897,7 +897,7 @@ static BOOL check_filter(const struct wined3d_gl_info *gl_info, GLenum internal)
     return ret;
 }
 
-static void init_format_filter_info(struct wined3d_gl_info *gl_info)
+static void init_format_filter_info(struct wined3d_gl_info *gl_info, enum wined3d_pci_vendor vendor)
 {
     unsigned int fmt_idx, i;
     WINED3DFORMAT fmts16[] = {
@@ -911,7 +911,7 @@ static void init_format_filter_info(struct wined3d_gl_info *gl_info)
     if(wined3d_settings.offscreen_rendering_mode != ORM_FBO)
     {
         WARN("No FBO support, or no FBO ORM, guessing filter info from GL caps\n");
-        if(gl_info->gl_vendor == VENDOR_NVIDIA && GL_SUPPORT(ARB_TEXTURE_FLOAT))
+        if (vendor == VENDOR_NVIDIA && GL_SUPPORT(ARB_TEXTURE_FLOAT))
         {
             TRACE("Nvidia card with texture_float support: Assuming float16 blending\n");
             filtered = TRUE;
@@ -1120,7 +1120,7 @@ BOOL initPixelFormatsNoGL(struct wined3d_gl_info *gl_info)
 }
 
 /* Context activation is done by the caller. */
-BOOL initPixelFormats(struct wined3d_gl_info *gl_info)
+BOOL initPixelFormats(struct wined3d_gl_info *gl_info, enum wined3d_pci_vendor vendor)
 {
     if (!init_format_base_info(gl_info)) return FALSE;
 
@@ -1130,7 +1130,7 @@ BOOL initPixelFormats(struct wined3d_gl_info *gl_info)
 
     apply_format_fixups(gl_info);
     init_format_fbo_compat_info(gl_info);
-    init_format_filter_info(gl_info);
+    init_format_filter_info(gl_info, vendor);
 
     return TRUE;
 
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index 7ad25d8..6536641 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -3461,83 +3461,6 @@ typedef void (WINE_GLAPI * PGLFNVERTEXATTRIBPOINTERPROC) (GLuint index, GLint si
 /****************************************************
  * Enumerated types
  ****************************************************/
-typedef enum _GL_Vendors {
-  VENDOR_WINE   = 0x0,
-  VENDOR_MESA   = 0x1,
-  VENDOR_ATI    = 0x1002,
-  VENDOR_NVIDIA = 0x10de,
-  VENDOR_INTEL  = 0x8086
-} GL_Vendors;
-
-typedef enum _GL_Cards {
-  CARD_WINE                       =    0x0,
-
-  CARD_ATI_RAGE_128PRO            = 0x5246,
-  CARD_ATI_RADEON_7200            = 0x5144,
-  CARD_ATI_RADEON_8500            = 0x514c,
-  CARD_ATI_RADEON_9500            = 0x4144,
-  CARD_ATI_RADEON_XPRESS_200M     = 0x5955,
-  CARD_ATI_RADEON_X700            = 0x5e4c,
-  CARD_ATI_RADEON_X1600           = 0x71c2,
-  CARD_ATI_RADEON_HD2300          = 0x7210,
-  CARD_ATI_RADEON_HD2600          = 0x9581,
-  CARD_ATI_RADEON_HD2900          = 0x9400,
-  CARD_ATI_RADEON_HD3200          = 0x9620,
-  CARD_ATI_RADEON_HD4350          = 0x954f,
-  CARD_ATI_RADEON_HD4550          = 0x9540,
-  CARD_ATI_RADEON_HD4600          = 0x9495,
-  CARD_ATI_RADEON_HD4650          = 0x9498,
-  CARD_ATI_RADEON_HD4670          = 0x9490,
-  CARD_ATI_RADEON_HD4700          = 0x944e,
-  CARD_ATI_RADEON_HD4770          = 0x94b3,
-  CARD_ATI_RADEON_HD4800          = 0x944c, /* picked one value between 9440,944c,9442,9460 */
-  CARD_ATI_RADEON_HD4830          = 0x944c,
-  CARD_ATI_RADEON_HD4850          = 0x9442,
-  CARD_ATI_RADEON_HD4870          = 0x9440,
-  CARD_ATI_RADEON_HD4890          = 0x9460,
-
-  CARD_NVIDIA_RIVA_128            = 0x0018,
-  CARD_NVIDIA_RIVA_TNT            = 0x0020,
-  CARD_NVIDIA_RIVA_TNT2           = 0x0028,
-  CARD_NVIDIA_GEFORCE             = 0x0100,
-  CARD_NVIDIA_GEFORCE2_MX         = 0x0110,
-  CARD_NVIDIA_GEFORCE2            = 0x0150,
-  CARD_NVIDIA_GEFORCE3            = 0x0200,
-  CARD_NVIDIA_GEFORCE4_MX         = 0x0170,
-  CARD_NVIDIA_GEFORCE4_TI4200     = 0x0253,
-  CARD_NVIDIA_GEFORCEFX_5200      = 0x0320,
-  CARD_NVIDIA_GEFORCEFX_5600      = 0x0312,
-  CARD_NVIDIA_GEFORCEFX_5800      = 0x0302,
-  CARD_NVIDIA_GEFORCE_6200        = 0x014f,
-  CARD_NVIDIA_GEFORCE_6600GT      = 0x0140,
-  CARD_NVIDIA_GEFORCE_6800        = 0x0041,
-  CARD_NVIDIA_GEFORCE_7400        = 0x01d8,
-  CARD_NVIDIA_GEFORCE_7300        = 0x01d7, /* GeForce Go 7300 */
-  CARD_NVIDIA_GEFORCE_7600        = 0x0391,
-  CARD_NVIDIA_GEFORCE_7800GT      = 0x0092,
-  CARD_NVIDIA_GEFORCE_8300GS      = 0x0423,
-  CARD_NVIDIA_GEFORCE_8600GT      = 0x0402,
-  CARD_NVIDIA_GEFORCE_8600MGT     = 0x0407,
-  CARD_NVIDIA_GEFORCE_8800GTS     = 0x0193,
-  CARD_NVIDIA_GEFORCE_9200        = 0x086d,
-  CARD_NVIDIA_GEFORCE_9400GT      = 0x042c,
-  CARD_NVIDIA_GEFORCE_9500GT      = 0x0640,
-  CARD_NVIDIA_GEFORCE_9600GT      = 0x0622,
-  CARD_NVIDIA_GEFORCE_9800GT      = 0x0614,
-  CARD_NVIDIA_GEFORCE_GTX260      = 0x05e2,
-  CARD_NVIDIA_GEFORCE_GTX275      = 0x05e6,
-  CARD_NVIDIA_GEFORCE_GTX280      = 0x05e1,
-
-  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 GMA 965? */
-} GL_Cards;
-
 #define WINE_DEFAULT_VIDMEM 64*1024*1024
 
 #define MAKEDWORD_VERSION(maj, min)  ((maj & 0x0000FFFF) << 16) | (min & 0x0000FFFF)
@@ -4138,8 +4061,6 @@ struct wined3d_fbo_ops
 
 struct wined3d_gl_info
 {
-    GL_Vendors gl_vendor;
-    GL_Cards gl_card;
     UINT vidmem;
 
     UINT max_buffers;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 98fea80..79bf95d 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1228,8 +1228,89 @@ typedef struct WineD3D_PixelFormat
     int numSamples;
 } WineD3D_PixelFormat;
 
+enum wined3d_pci_vendor
+{
+    VENDOR_WINE                     = 0x0000,
+    VENDOR_MESA                     = 0x0001,
+    VENDOR_ATI                      = 0x1002,
+    VENDOR_NVIDIA                   = 0x10de,
+    VENDOR_INTEL                    = 0x8086,
+};
+
+enum wined3d_pci_device
+{
+    CARD_WINE                       = 0x0000,
+
+    CARD_ATI_RAGE_128PRO            = 0x5246,
+    CARD_ATI_RADEON_7200            = 0x5144,
+    CARD_ATI_RADEON_8500            = 0x514c,
+    CARD_ATI_RADEON_9500            = 0x4144,
+    CARD_ATI_RADEON_XPRESS_200M     = 0x5955,
+    CARD_ATI_RADEON_X700            = 0x5e4c,
+    CARD_ATI_RADEON_X1600           = 0x71c2,
+    CARD_ATI_RADEON_HD2300          = 0x7210,
+    CARD_ATI_RADEON_HD2600          = 0x9581,
+    CARD_ATI_RADEON_HD2900          = 0x9400,
+    CARD_ATI_RADEON_HD3200          = 0x9620,
+    CARD_ATI_RADEON_HD4350          = 0x954f,
+    CARD_ATI_RADEON_HD4550          = 0x9540,
+    CARD_ATI_RADEON_HD4600          = 0x9495,
+    CARD_ATI_RADEON_HD4650          = 0x9498,
+    CARD_ATI_RADEON_HD4670          = 0x9490,
+    CARD_ATI_RADEON_HD4700          = 0x944e,
+    CARD_ATI_RADEON_HD4770          = 0x94b3,
+    CARD_ATI_RADEON_HD4800          = 0x944c, /* Picked one value between 9440, 944c, 9442, 9460 */
+    CARD_ATI_RADEON_HD4830          = 0x944c,
+    CARD_ATI_RADEON_HD4850          = 0x9442,
+    CARD_ATI_RADEON_HD4870          = 0x9440,
+    CARD_ATI_RADEON_HD4890          = 0x9460,
+
+    CARD_NVIDIA_RIVA_128            = 0x0018,
+    CARD_NVIDIA_RIVA_TNT            = 0x0020,
+    CARD_NVIDIA_RIVA_TNT2           = 0x0028,
+    CARD_NVIDIA_GEFORCE             = 0x0100,
+    CARD_NVIDIA_GEFORCE2_MX         = 0x0110,
+    CARD_NVIDIA_GEFORCE2            = 0x0150,
+    CARD_NVIDIA_GEFORCE3            = 0x0200,
+    CARD_NVIDIA_GEFORCE4_MX         = 0x0170,
+    CARD_NVIDIA_GEFORCE4_TI4200     = 0x0253,
+    CARD_NVIDIA_GEFORCEFX_5200      = 0x0320,
+    CARD_NVIDIA_GEFORCEFX_5600      = 0x0312,
+    CARD_NVIDIA_GEFORCEFX_5800      = 0x0302,
+    CARD_NVIDIA_GEFORCE_6200        = 0x014f,
+    CARD_NVIDIA_GEFORCE_6600GT      = 0x0140,
+    CARD_NVIDIA_GEFORCE_6800        = 0x0041,
+    CARD_NVIDIA_GEFORCE_7400        = 0x01d8,
+    CARD_NVIDIA_GEFORCE_7300        = 0x01d7, /* GeForce Go 7300 */
+    CARD_NVIDIA_GEFORCE_7600        = 0x0391,
+    CARD_NVIDIA_GEFORCE_7800GT      = 0x0092,
+    CARD_NVIDIA_GEFORCE_8300GS      = 0x0423,
+    CARD_NVIDIA_GEFORCE_8600GT      = 0x0402,
+    CARD_NVIDIA_GEFORCE_8600MGT     = 0x0407,
+    CARD_NVIDIA_GEFORCE_8800GTS     = 0x0193,
+    CARD_NVIDIA_GEFORCE_9200        = 0x086d,
+    CARD_NVIDIA_GEFORCE_9400GT      = 0x042c,
+    CARD_NVIDIA_GEFORCE_9500GT      = 0x0640,
+    CARD_NVIDIA_GEFORCE_9600GT      = 0x0622,
+    CARD_NVIDIA_GEFORCE_9800GT      = 0x0614,
+    CARD_NVIDIA_GEFORCE_GTX260      = 0x05e2,
+    CARD_NVIDIA_GEFORCE_GTX275      = 0x05e6,
+    CARD_NVIDIA_GEFORCE_GTX280      = 0x05e1,
+
+    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 GMA 965? */
+};
+
 struct wined3d_driver_info
 {
+    enum wined3d_pci_vendor vendor;
+    enum wined3d_pci_device device;
     const char *name;
     const char *description;
     DWORD version_high;
@@ -1252,7 +1333,7 @@ struct wined3d_adapter
     unsigned int            UsedTextureRam;
 };
 
-extern BOOL initPixelFormats(struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN;
+BOOL initPixelFormats(struct wined3d_gl_info *gl_info, enum wined3d_pci_vendor vendor) DECLSPEC_HIDDEN;
 BOOL initPixelFormatsNoGL(struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN;
 extern long WineD3DAdapterChangeGLRam(IWineD3DDeviceImpl *D3DDevice, long glram) DECLSPEC_HIDDEN;
 extern void add_gl_compat_wrappers(struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN;
-- 
1.6.4.4




More information about the wine-patches mailing list