svga: Clamp max cube texture levels to supported max 2d levels.
authorJosé Fonseca <jfonseca@vmware.com>
Fri, 12 Feb 2010 21:30:33 +0000 (21:30 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Fri, 12 Feb 2010 23:46:58 +0000 (23:46 +0000)
src/gallium/drivers/svga/svga_screen.c

index cad9b779ecbf61b2636e793ce2c0e48256114cb7..414ac52e1f6c7f8e9c923f2137642ad58163623a 100644 (file)
@@ -156,7 +156,12 @@ svga_get_paramf(struct pipe_screen *screen, int param)
       return MIN2(util_logbase2(result.u) + 1, SVGA_MAX_TEXTURE_LEVELS);
 
    case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
-      return 12 /* 2048x2048 */;
+      /*
+       * No mechanism to query the host, and at least limited to 2048x2048 on
+       * certain hardware.
+       */
+      return MIN2(screen->get_paramf(screen, PIPE_CAP_MAX_TEXTURE_2D_LEVELS),
+                  12.0 /* 2048x2048 */);
 
    case PIPE_CAP_TEXTURE_MIRROR_REPEAT: /* req. for GL 1.4 */
       return 1;