iris: Move iris_debug_recompile calls before uploading.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 16 Apr 2019 05:58:17 +0000 (22:58 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 16 Apr 2019 16:01:20 +0000 (09:01 -0700)
Order of operations is important, otherwise we'll find the program we
just uploaded as the "old" compile and get confused why nothing is
different between the two keys.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/gallium/drivers/iris/iris_program.c

index 061d379ec298e90e0773e5b2a8098a75b9c3a9bf..eff7c77521256fda599a45f7b803a96f99fac031 100644 (file)
@@ -594,6 +594,12 @@ iris_compile_vs(struct iris_context *ice,
       return false;
    }
 
+   if (ish->compiled_once) {
+      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
+   } else {
+      ish->compiled_once = true;
+   }
+
    uint32_t *so_decls =
       ice->vtbl.create_so_decl_list(&ish->stream_output,
                                     &vue_prog_data->vue_map);
@@ -603,12 +609,6 @@ iris_compile_vs(struct iris_context *ice,
                          prog_data, so_decls, system_values, num_system_values,
                          num_cbufs);
 
-   if (ish->compiled_once) {
-      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
-   } else {
-      ish->compiled_once = true;
-   }
-
    ralloc_free(mem_ctx);
    return shader;
 }
@@ -787,11 +787,6 @@ iris_compile_tcs(struct iris_context *ice,
       return false;
    }
 
-   struct iris_compiled_shader *shader =
-      iris_upload_shader(ice, IRIS_CACHE_TCS, sizeof(*key), key, program,
-                         prog_data, NULL, system_values, num_system_values,
-                         num_cbufs);
-
    if (ish) {
       if (ish->compiled_once) {
          iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
@@ -800,6 +795,11 @@ iris_compile_tcs(struct iris_context *ice,
       }
    }
 
+   struct iris_compiled_shader *shader =
+      iris_upload_shader(ice, IRIS_CACHE_TCS, sizeof(*key), key, program,
+                         prog_data, NULL, system_values, num_system_values,
+                         num_cbufs);
+
    ralloc_free(mem_ctx);
    return shader;
 }
@@ -886,6 +886,12 @@ iris_compile_tes(struct iris_context *ice,
       return false;
    }
 
+   if (ish->compiled_once) {
+      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
+   } else {
+      ish->compiled_once = true;
+   }
+
    uint32_t *so_decls =
       ice->vtbl.create_so_decl_list(&ish->stream_output,
                                     &vue_prog_data->vue_map);
@@ -896,12 +902,6 @@ iris_compile_tes(struct iris_context *ice,
                          prog_data, so_decls, system_values, num_system_values,
                          num_cbufs);
 
-   if (ish->compiled_once) {
-      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
-   } else {
-      ish->compiled_once = true;
-   }
-
    ralloc_free(mem_ctx);
    return shader;
 }
@@ -987,6 +987,12 @@ iris_compile_gs(struct iris_context *ice,
       return false;
    }
 
+   if (ish->compiled_once) {
+      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
+   } else {
+      ish->compiled_once = true;
+   }
+
    uint32_t *so_decls =
       ice->vtbl.create_so_decl_list(&ish->stream_output,
                                     &vue_prog_data->vue_map);
@@ -996,12 +1002,6 @@ iris_compile_gs(struct iris_context *ice,
                          prog_data, so_decls, system_values, num_system_values,
                          num_cbufs);
 
-   if (ish->compiled_once) {
-      iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
-   } else {
-      ish->compiled_once = true;
-   }
-
    ralloc_free(mem_ctx);
    return shader;
 }
@@ -1081,17 +1081,17 @@ iris_compile_fs(struct iris_context *ice,
       return false;
    }
 
-   struct iris_compiled_shader *shader =
-      iris_upload_shader(ice, IRIS_CACHE_FS, sizeof(*key), key, program,
-                         prog_data, NULL, system_values, num_system_values,
-                         num_cbufs);
-
    if (ish->compiled_once) {
       iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
    } else {
       ish->compiled_once = true;
    }
 
+   struct iris_compiled_shader *shader =
+      iris_upload_shader(ice, IRIS_CACHE_FS, sizeof(*key), key, program,
+                         prog_data, NULL, system_values, num_system_values,
+                         num_cbufs);
+
    ralloc_free(mem_ctx);
    return shader;
 }
@@ -1315,17 +1315,17 @@ iris_compile_cs(struct iris_context *ice,
       return false;
    }
 
-   struct iris_compiled_shader *shader =
-      iris_upload_shader(ice, IRIS_CACHE_CS, sizeof(*key), key, program,
-                         prog_data, NULL, system_values, num_system_values,
-                         num_cbufs);
-
    if (ish->compiled_once) {
       iris_debug_recompile(ice, &nir->info, key->program_string_id, key);
    } else {
       ish->compiled_once = true;
    }
 
+   struct iris_compiled_shader *shader =
+      iris_upload_shader(ice, IRIS_CACHE_CS, sizeof(*key), key, program,
+                         prog_data, NULL, system_values, num_system_values,
+                         num_cbufs);
+
    ralloc_free(mem_ctx);
    return shader;
 }