summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/svga/svga_screen.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c
index cad9b779ec..414ac52e1f 100644
--- a/src/gallium/drivers/svga/svga_screen.c
+++ b/src/gallium/drivers/svga/svga_screen.c
@@ -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;