svga: Add a comment about depth format selection.
authorJosé Fonseca <jfonseca@vmware.com>
Fri, 8 Apr 2011 14:21:10 +0000 (15:21 +0100)
committerBrian Paul <brianp@vmware.com>
Fri, 23 Sep 2011 13:58:45 +0000 (07:58 -0600)
src/gallium/drivers/svga/svga_screen.c

index 5b759627f7380c92376fc48db1da4a430165ba5b..e8f17ba30b0553c048906558bcc608a7ead71786 100644 (file)
@@ -519,6 +519,15 @@ svga_screen_create(struct svga_winsys_screen *sws)
       sws->get_cap(sws, SVGA3D_DEVCAP_VERTEX_SHADER_VERSION, &result) &&
       result.u >= SVGA3DVSVERSION_30 ? TRUE : FALSE;
 
+   /*
+    * The D16, D24X8, and D24S8 formats always do an implicit shadow compare
+    * when sampled from, where as the DF16, DF24, and D24S8_INT do not.  So
+    * we prefer the later when available.
+    *
+    * This mimics hardware vendors extensions for D3D depth sampling. See also
+    * http://aras-p.info/texts/D3D9GPUHacks.html
+    */
+
    {
       SVGA3dSurfaceFormatCaps mask;
       mask.value = 0;
@@ -551,7 +560,7 @@ svga_screen_create(struct svga_winsys_screen *sws)
          sws->get_cap(sws, SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8_INT, &result) &&
          (result.u & mask.value) == mask.value ?
             SVGA3D_Z_D24S8_INT : svgascreen->depth.s8z24;
-    }
+   }
 
 
 #if 1