svga: fix PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE value
authorBrian Paul <brianp@vmware.com>
Mon, 10 Jul 2017 14:36:15 +0000 (08:36 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 10 Jul 2017 17:11:26 +0000 (11:11 -0600)
This query is supposed to return the max texture buffer size/width in
texels, not size in bytes.  Divide by 16 (the largest format size) to
return texels.

Fixes Piglit arb_texture_buffer_object-max-size test.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by :Charmaine Lee <charmainel@vmware.com>

src/gallium/drivers/svga/svga_screen.c

index 0b63525aaf2698b1606dc42f293326ed241533e5..f40d151af5d696d6b94fd9bc9f1fd9fe0146b6c9 100644 (file)
@@ -312,7 +312,10 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)
       return svgascreen->ms_samples ? 1 : 0;
 
    case PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE:
-      return SVGA3D_DX_MAX_RESOURCE_SIZE;
+      /* convert bytes to texels for the case of the largest texel
+       * size: float[4].
+       */
+      return SVGA3D_DX_MAX_RESOURCE_SIZE / (4 * sizeof(float));
 
    case PIPE_CAP_MIN_TEXEL_OFFSET:
       return sws->have_vgpu10 ? VGPU10_MIN_TEXEL_FETCH_OFFSET : 0;