Mesa (master): u_blitter: don' t create fragment program for cube maps unless supported.

Dave Airlie airlied at kemper.freedesktop.org
Fri Nov 9 10:40:24 UTC 2012


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Fri Nov  9 20:31:00 2012 +1000

u_blitter: don't create fragment program for cube maps unless supported.

should fix http://bugs.freedesktop.org/56906

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/gallium/auxiliary/util/u_blitter.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c
index 5ea6aca..0c1430e 100644
--- a/src/gallium/auxiliary/util/u_blitter.c
+++ b/src/gallium/auxiliary/util/u_blitter.c
@@ -877,13 +877,15 @@ void util_blitter_cache_all_shaders(struct blitter_context *blitter)
    struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter;
    struct pipe_screen *screen = blitter->pipe->screen;
    unsigned num_cbufs, i, target, max_samples;
-   boolean has_arraytex;
+   boolean has_arraytex, has_cubearraytex;
 
    num_cbufs = MAX2(screen->get_param(screen,
                                       PIPE_CAP_MAX_RENDER_TARGETS), 1);
    max_samples = ctx->has_texture_multisample ? 2 : 1;
    has_arraytex = screen->get_param(screen,
                                     PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS) != 0;
+   has_cubearraytex = screen->get_param(screen,
+                                    PIPE_CAP_CUBE_MAP_ARRAY) != 0;
 
    for (i = 0; i < num_cbufs; i++) {
       blitter_get_fs_col(ctx, i, FALSE);
@@ -898,6 +900,9 @@ void util_blitter_cache_all_shaders(struct blitter_context *blitter)
               target == PIPE_TEXTURE_2D_ARRAY)) {
             continue;
          }
+         if (!has_arraytex &&
+             (target == PIPE_TEXTURE_CUBE_ARRAY))
+            continue;
 
          blitter_get_fs_texfetch_col(ctx, target, i);
          blitter_get_fs_texfetch_depth(ctx, target, i);




More information about the mesa-commit mailing list