Mesa (master): llvmpipe: enable ARB_texture_gather

Roland Scheidegger sroland at kemper.freedesktop.org
Tue Mar 31 15:24:05 UTC 2015


Module: Mesa
Branch: master
Commit: 489866938f8bf85625f0f452006a3422a2585950
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=489866938f8bf85625f0f452006a3422a2585950

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Tue Mar 31 17:23:17 2015 +0200

llvmpipe: enable ARB_texture_gather

Just announce support for 4 components.
While here also increase the max/min texel offsets (the limit is completely
artificial, was chosen because that's what other hardware did, however there's
other drivers using larger limits).
Over a thousand little piglits skip->pass.

v2: update docs/GL3.txt

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>

---

 docs/GL3.txt                             |    2 +-
 src/gallium/drivers/llvmpipe/lp_screen.c |    5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/docs/GL3.txt b/docs/GL3.txt
index 3614260..94166e2 100644
--- a/docs/GL3.txt
+++ b/docs/GL3.txt
@@ -115,7 +115,7 @@ GL 4.0, GLSL 4.00:
   GL_ARB_tessellation_shader                           started (Chris, Ilia)
   GL_ARB_texture_buffer_object_rgb32                   DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
   GL_ARB_texture_cube_map_array                        DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
-  GL_ARB_texture_gather                                DONE (i965, nv50, nvc0, r600, radeonsi)
+  GL_ARB_texture_gather                                DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe)
   GL_ARB_texture_query_lod                             DONE (i965, nv50, nvc0, r600, radeonsi)
   GL_ARB_transform_feedback2                           DONE (i965, nv50, nvc0, r600, radeonsi)
   GL_ARB_transform_feedback3                           DONE (i965, nv50, nvc0, r600, radeonsi)
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index 4b45725..f4ba596 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -180,10 +180,10 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    /* this is a lie could support arbitrary large offsets */
    case PIPE_CAP_MIN_TEXTURE_GATHER_OFFSET:
    case PIPE_CAP_MIN_TEXEL_OFFSET:
-      return -8;
+      return -32;
    case PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET:
    case PIPE_CAP_MAX_TEXEL_OFFSET:
-      return 7;
+      return 31;
    case PIPE_CAP_CONDITIONAL_RENDER:
       return 1;
    case PIPE_CAP_TEXTURE_BARRIER:
@@ -249,6 +249,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
       return 1;
    case PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS:
+      return 4;
    case PIPE_CAP_TEXTURE_GATHER_SM5:
    case PIPE_CAP_TEXTURE_QUERY_LOD:
    case PIPE_CAP_SAMPLE_SHADING:




More information about the mesa-commit mailing list