svga: Add a new winsys entry point to query the hw version.
authorJosé Fonseca <jfonseca@vmware.com>
Wed, 23 Feb 2011 18:30:27 +0000 (18:30 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Wed, 9 Mar 2011 13:34:21 +0000 (13:34 +0000)
src/gallium/drivers/svga/svga_screen.c
src/gallium/drivers/svga/svga_screen.h
src/gallium/drivers/svga/svga_winsys.h

index f4029c7e36381d75f184fa175dc7d3e7ddfecb92..0dee8b1bec1772ba4c4ab49e5766abbdae519886 100644 (file)
@@ -499,6 +499,12 @@ svga_screen_create(struct svga_winsys_screen *sws)
 
    svga_init_screen_resource_functions(svgascreen);
 
+   if (sws->get_hw_version) {
+      svgascreen->hw_version = sws->get_hw_version(sws);
+   } else {
+      svgascreen->hw_version = SVGA3D_HWVERSION_WS65_B1;
+   }
+
    svgascreen->use_ps30 =
       sws->get_cap(sws, SVGA3D_DEVCAP_FRAGMENT_SHADER_VERSION, &result) &&
       result.u >= SVGA3DPSVERSION_30 ? TRUE : FALSE;
index 86ec89d88c1fc2ce0c00962463b2b2ab54070bfb..7ef627f928d6ef5851dbf4a1f08156eeea799acb 100644 (file)
@@ -49,6 +49,8 @@ struct svga_screen
    struct pipe_screen screen;
    struct svga_winsys_screen *sws;
 
+   SVGA3dHardwareVersion hw_version;
+
    unsigned use_ps30;
    unsigned use_vs30;
    
index 5e4bdeff2ee275eff595cb876d956620c5a249a1..269659ed4c4cf9a1bb5b0c6cef2a598d43d20ce1 100644 (file)
@@ -136,6 +136,9 @@ struct svga_winsys_screen
    void
    (*destroy)(struct svga_winsys_screen *sws);
    
+   SVGA3dHardwareVersion
+   (*get_hw_version)(struct svga_winsys_screen *sws);
+
    boolean
    (*get_cap)(struct svga_winsys_screen *sws,
               SVGA3dDevCapIndex index,