etnaviv: split link_shader
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Mon, 12 Aug 2019 13:18:20 +0000 (15:18 +0200)
committerChristian Gmeiner <christian.gmeiner@gmail.com>
Wed, 14 Aug 2019 13:10:07 +0000 (15:10 +0200)
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
src/gallium/drivers/etnaviv/etnaviv_compiler_tgsi.c
src/gallium/drivers/etnaviv/etnaviv_shader.c

index 72fab578a1e9dcb209eabe7a5faf819cc6ec3dcf..3b8f43c5c2bbcfba9d64deee1962dfa8b4c38ff0 100644 (file)
@@ -2561,9 +2561,6 @@ bool
 etna_link_shader(struct etna_shader_link_info *info,
                  const struct etna_shader_variant *vs, const struct etna_shader_variant *fs)
 {
-   if (DBG_ENABLED(ETNA_DBG_NIR))
-      return etna_link_shader_nir(info, vs, fs);
-
    int comp_ofs = 0;
    /* For each fragment input we need to find the associated vertex shader
     * output, which can be found by matching on semantic name and index. A
index a87e94b2b013d8525b693b36b4b1e3cf32adb05f..1f0d117eac193cdbd0a96fe3edb355cf23abc263 100644 (file)
@@ -67,6 +67,7 @@ etna_link_shaders(struct etna_context *ctx, struct compiled_shader_state *cs,
                   struct etna_shader_variant *vs, struct etna_shader_variant *fs)
 {
    struct etna_shader_link_info link = { };
+   bool failed;
 
    assert(vs->stage == MESA_SHADER_VERTEX);
    assert(fs->stage == MESA_SHADER_FRAGMENT);
@@ -83,7 +84,12 @@ etna_link_shaders(struct etna_context *ctx, struct compiled_shader_state *cs,
    }
 #endif
 
-   if (etna_link_shader(&link, vs, fs)) {
+   if (DBG_ENABLED(ETNA_DBG_NIR))
+      failed = etna_link_shader_nir(&link, vs, fs);
+   else
+      failed = etna_link_shader(&link, vs, fs);
+
+   if (failed) {
       /* linking failed: some fs inputs do not have corresponding
        * vs outputs */
       assert(0);