u_blitter: create basic fs shaders in util_blitter_cache_all_shaders()
authorBrian Paul <brianp@vmware.com>
Tue, 21 Oct 2014 18:14:06 +0000 (12:14 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 22 Oct 2014 23:33:40 +0000 (17:33 -0600)
We need to create all fs shaders in this function.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/auxiliary/util/u_blitter.c

index abcacffa41e9782969d3828a88d6d8732aad0e8f..830d82fc3c074334dbdedbc299982ba154752837 100644 (file)
@@ -1012,7 +1012,8 @@ void *blitter_get_fs_texfetch_stencil(struct blitter_context_priv *ctx,
 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;
+   struct pipe_context *pipe = blitter->pipe;
+   struct pipe_screen *screen = pipe->screen;
    unsigned samples, j, f, target, max_samples;
    boolean has_arraytex, has_cubearraytex;
 
@@ -1073,6 +1074,16 @@ void util_blitter_cache_all_shaders(struct blitter_context *blitter)
       }
    }
 
+   ctx->fs_empty = util_make_empty_fragment_shader(pipe);
+
+   ctx->fs_write_one_cbuf =
+      util_make_fragment_passthrough_shader(pipe, TGSI_SEMANTIC_GENERIC,
+                                            TGSI_INTERPOLATE_CONSTANT, FALSE);
+
+   ctx->fs_write_all_cbufs =
+      util_make_fragment_passthrough_shader(pipe, TGSI_SEMANTIC_GENERIC,
+                                            TGSI_INTERPOLATE_CONSTANT, TRUE);
+
    ctx->cached_all_shaders = TRUE;
 }