intel/compiler: Remove final_program_size from brw_compile_*
authorJordan Justen <jordan.l.justen@intel.com>
Sun, 22 Oct 2017 03:55:45 +0000 (20:55 -0700)
committerJordan Justen <jordan.l.justen@intel.com>
Wed, 1 Nov 2017 06:36:54 +0000 (23:36 -0700)
The caller can now use brw_stage_prog_data::program_size which is set
by the brw_compile_* functions.

Cc: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
17 files changed:
src/intel/blorp/blorp.c
src/intel/blorp/blorp_blit.c
src/intel/blorp/blorp_clear.c
src/intel/blorp/blorp_priv.h
src/intel/compiler/brw_compiler.h
src/intel/compiler/brw_fs.cpp
src/intel/compiler/brw_shader.cpp
src/intel/compiler/brw_vec4.cpp
src/intel/compiler/brw_vec4_gs_visitor.cpp
src/intel/compiler/brw_vec4_tcs.cpp
src/intel/vulkan/anv_pipeline.c
src/mesa/drivers/dri/i965/brw_cs.c
src/mesa/drivers/dri/i965/brw_gs.c
src/mesa/drivers/dri/i965/brw_tcs.c
src/mesa/drivers/dri/i965/brw_tes.c
src/mesa/drivers/dri/i965/brw_vs.c
src/mesa/drivers/dri/i965/brw_wm.c

index 7cc6335f2f692a59b4be997694522cbcd6777033..5faba75b8db9ae82aa8416bb51833e59dcbbcf5a 100644 (file)
@@ -162,8 +162,7 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
                  struct nir_shader *nir,
                  struct brw_wm_prog_key *wm_key,
                  bool use_repclear,
-                 struct brw_wm_prog_data *wm_prog_data,
-                 unsigned *program_size)
+                 struct brw_wm_prog_data *wm_prog_data)
 {
    const struct brw_compiler *compiler = blorp->compiler;
 
@@ -194,7 +193,7 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
    const unsigned *program =
       brw_compile_fs(compiler, blorp->driver_ctx, mem_ctx, wm_key,
                      wm_prog_data, nir, NULL, -1, -1, false, use_repclear,
-                     NULL, program_size, NULL);
+                     NULL, NULL);
 
    return program;
 }
@@ -202,8 +201,7 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
 const unsigned *
 blorp_compile_vs(struct blorp_context *blorp, void *mem_ctx,
                  struct nir_shader *nir,
-                 struct brw_vs_prog_data *vs_prog_data,
-                 unsigned *program_size)
+                 struct brw_vs_prog_data *vs_prog_data)
 {
    const struct brw_compiler *compiler = blorp->compiler;
 
@@ -225,7 +223,7 @@ blorp_compile_vs(struct blorp_context *blorp, void *mem_ctx,
    const unsigned *program =
       brw_compile_vs(compiler, blorp->driver_ctx, mem_ctx,
                      &vs_key, vs_prog_data, nir,
-                     false, -1, program_size, NULL);
+                     false, -1, NULL);
 
    return program;
 }
index 4507046dae5ba6b394a6c8fb58c0bf963004da3e..9b5c1f1f8c11d380065acda8050f7789dcf4c49d 100644 (file)
@@ -1308,7 +1308,6 @@ brw_blorp_get_blit_kernel(struct blorp_context *blorp,
    void *mem_ctx = ralloc_context(NULL);
 
    const unsigned *program;
-   unsigned program_size;
    struct brw_wm_prog_data prog_data;
 
    nir_shader *nir = brw_blorp_build_nir_shader(blorp, mem_ctx, prog_key);
@@ -1322,11 +1321,11 @@ brw_blorp_get_blit_kernel(struct blorp_context *blorp,
    wm_key.multisample_fbo = prog_key->rt_samples > 1;
 
    program = blorp_compile_fs(blorp, mem_ctx, nir, &wm_key, false,
-                              &prog_data, &program_size);
+                              &prog_data);
 
    bool result =
       blorp->upload_shader(blorp, prog_key, sizeof(*prog_key),
-                           program, program_size,
+                           program, prog_data.base.program_size,
                            &prog_data.base, sizeof(prog_data),
                            &params->wm_prog_kernel, &params->wm_prog_data);
 
index cd83fa13cafc1a9b84c7abde12b22da2b1c082b2..8d758df155f9ea705432e194727cbff05e4a2e83 100644 (file)
@@ -75,14 +75,13 @@ blorp_params_get_clear_kernel(struct blorp_context *blorp,
    brw_blorp_init_wm_prog_key(&wm_key);
 
    struct brw_wm_prog_data prog_data;
-   unsigned program_size;
    const unsigned *program =
       blorp_compile_fs(blorp, mem_ctx, b.shader, &wm_key, use_replicated_data,
-                       &prog_data, &program_size);
+                       &prog_data);
 
    bool result =
       blorp->upload_shader(blorp, &blorp_key, sizeof(blorp_key),
-                           program, program_size,
+                           program, prog_data.base.program_size,
                            &prog_data.base, sizeof(prog_data),
                            &params->wm_prog_kernel, &params->wm_prog_data);
 
@@ -167,13 +166,12 @@ blorp_params_get_layer_offset_vs(struct blorp_context *blorp,
    struct brw_vs_prog_data vs_prog_data;
    memset(&vs_prog_data, 0, sizeof(vs_prog_data));
 
-   unsigned program_size;
    const unsigned *program =
-      blorp_compile_vs(blorp, mem_ctx, b.shader, &vs_prog_data, &program_size);
+      blorp_compile_vs(blorp, mem_ctx, b.shader, &vs_prog_data);
 
    bool result =
       blorp->upload_shader(blorp, &blorp_key, sizeof(blorp_key),
-                           program, program_size,
+                           program, vs_prog_data.base.base.program_size,
                            &vs_prog_data.base.base, sizeof(vs_prog_data),
                            &params->vs_prog_kernel, &params->vs_prog_data);
 
@@ -864,14 +862,13 @@ blorp_params_get_mcs_partial_resolve_kernel(struct blorp_context *blorp,
    wm_key.multisample_fbo = true;
 
    struct brw_wm_prog_data prog_data;
-   unsigned program_size;
    const unsigned *program =
       blorp_compile_fs(blorp, mem_ctx, b.shader, &wm_key, false,
-                       &prog_data, &program_size);
+                       &prog_data);
 
    bool result =
       blorp->upload_shader(blorp, &blorp_key, sizeof(blorp_key),
-                           program, program_size,
+                           program, prog_data.base.program_size,
                            &prog_data.base, sizeof(prog_data),
                            &params->wm_prog_kernel, &params->wm_prog_data);
 
index c7d5d308da77bb69f23ef0012adb649245e9e8ac..d91e436c1c57144fc4b1711c6b7efacea99391b9 100644 (file)
@@ -342,14 +342,12 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
                  struct nir_shader *nir,
                  struct brw_wm_prog_key *wm_key,
                  bool use_repclear,
-                 struct brw_wm_prog_data *wm_prog_data,
-                 unsigned *program_size);
+                 struct brw_wm_prog_data *wm_prog_data);
 
 const unsigned *
 blorp_compile_vs(struct blorp_context *blorp, void *mem_ctx,
                  struct nir_shader *nir,
-                 struct brw_vs_prog_data *vs_prog_data,
-                 unsigned *program_size);
+                 struct brw_vs_prog_data *vs_prog_data);
 
 bool
 blorp_ensure_sf_program(struct blorp_context *blorp,
index fa5a3bf0274f441437c278a22f44e9202e47e78e..17fc4e1b17ce09674861abea6191f93ac97800ae 100644 (file)
@@ -1100,7 +1100,6 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,
                const struct nir_shader *shader,
                bool use_legacy_snorm_formula,
                int shader_time_index,
-               unsigned *final_assembly_size,
                char **error_str);
 
 /**
@@ -1116,7 +1115,6 @@ brw_compile_tcs(const struct brw_compiler *compiler,
                 struct brw_tcs_prog_data *prog_data,
                 const struct nir_shader *nir,
                 int shader_time_index,
-                unsigned *final_assembly_size,
                 char **error_str);
 
 /**
@@ -1133,7 +1131,6 @@ brw_compile_tes(const struct brw_compiler *compiler, void *log_data,
                 const struct nir_shader *shader,
                 struct gl_program *prog,
                 int shader_time_index,
-                unsigned *final_assembly_size,
                 char **error_str);
 
 /**
@@ -1149,7 +1146,6 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
                const struct nir_shader *shader,
                struct gl_program *prog,
                int shader_time_index,
-               unsigned *final_assembly_size,
                char **error_str);
 
 /**
@@ -1200,7 +1196,6 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
                int shader_time_index16,
                bool allow_spilling,
                bool use_rep_send, struct brw_vue_map *vue_map,
-               unsigned *final_assembly_size,
                char **error_str);
 
 /**
@@ -1215,7 +1210,6 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
                struct brw_cs_prog_data *prog_data,
                const struct nir_shader *shader,
                int shader_time_index,
-               unsigned *final_assembly_size,
                char **error_str);
 
 static inline uint32_t
index d355675b2b8b90ed1ced1cb08a7d75aba2ea51ba..814da8ad94da64b9d71c21951afe2e10262ac965 100644 (file)
@@ -6542,7 +6542,6 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
                int shader_time_index8, int shader_time_index16,
                bool allow_spilling,
                bool use_rep_send, struct brw_vue_map *vue_map,
-               unsigned *final_assembly_size,
                char **error_str)
 {
    const struct gen_device_info *devinfo = compiler->devinfo;
@@ -6691,9 +6690,7 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
       prog_data->reg_blocks_0 = brw_register_blocks(simd16_grf_used);
    }
 
-   const unsigned *assembly = g.get_assembly(final_assembly_size);
-   prog_data->base.program_size = *final_assembly_size;
-   return assembly;
+   return g.get_assembly(&prog_data->base.program_size);
 }
 
 fs_reg *
@@ -6780,7 +6777,6 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
                struct brw_cs_prog_data *prog_data,
                const nir_shader *src_shader,
                int shader_time_index,
-               unsigned *final_assembly_size,
                char **error_str)
 {
    nir_shader *shader = nir_shader_clone(mem_ctx, src_shader);
@@ -6892,9 +6888,7 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
 
    g.generate_code(cfg, prog_data->simd_size);
 
-   const unsigned *assembly = g.get_assembly(final_assembly_size);
-   prog_data->base.program_size = *final_assembly_size;
-   return assembly;
+   return g.get_assembly(&prog_data->base.program_size);
 }
 
 /**
index 7253f5d5531eb28a5fee0fc79cc8fda7127ad1c1..fe230cd7cc2f98c43e1511914e4fc8707122b41c 100644 (file)
@@ -1157,7 +1157,6 @@ brw_compile_tes(const struct brw_compiler *compiler,
                 const nir_shader *src_shader,
                 struct gl_program *prog,
                 int shader_time_index,
-                unsigned *final_assembly_size,
                 char **error_str)
 {
    const struct gen_device_info *devinfo = compiler->devinfo;
@@ -1271,7 +1270,7 @@ brw_compile_tes(const struct brw_compiler *compiler,
 
       g.generate_code(v.cfg, 8);
 
-      assembly = g.get_assembly(final_assembly_size);
+      assembly = g.get_assembly(&prog_data->base.base.program_size);
    } else {
       brw::vec4_tes_visitor v(compiler, log_data, key, prog_data,
                              nir, mem_ctx, shader_time_index);
@@ -1286,9 +1285,8 @@ brw_compile_tes(const struct brw_compiler *compiler,
 
       assembly = brw_vec4_generate_assembly(compiler, log_data, mem_ctx, nir,
                                             &prog_data->base, v.cfg,
-                                            final_assembly_size);
+                                            &prog_data->base.base.program_size);
    }
 
-   prog_data->base.base.program_size = *final_assembly_size;
    return assembly;
 }
index 7d8cdfa74a3ba956f388841b62aaf7c7b7550215..bbe4585e0c702760d3ba2a225b59a479e85b9b1e 100644 (file)
@@ -2741,7 +2741,6 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,
                const nir_shader *src_shader,
                bool use_legacy_snorm_formula,
                int shader_time_index,
-               unsigned *final_assembly_size,
                char **error_str)
 {
    const bool is_scalar = compiler->scalar_stage[MESA_SHADER_VERTEX];
@@ -2880,7 +2879,7 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,
          g.enable_debug(debug_name);
       }
       g.generate_code(v.cfg, 8);
-      assembly = g.get_assembly(final_assembly_size);
+      assembly = g.get_assembly(&prog_data->base.base.program_size);
    }
 
    if (!assembly) {
@@ -2898,10 +2897,9 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,
 
       assembly = brw_vec4_generate_assembly(compiler, log_data, mem_ctx,
                                             shader, &prog_data->base, v.cfg,
-                                            final_assembly_size);
+                                            &prog_data->base.base.program_size);
    }
 
-   prog_data->base.base.program_size = *final_assembly_size;
    return assembly;
 }
 
index 11b73f187cff1789366d7871a34d31c20c4ac122..7848832e4128c59e692c0e2bfaade31b2b032c4e 100644 (file)
@@ -618,7 +618,6 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
                const nir_shader *src_shader,
                struct gl_program *prog,
                int shader_time_index,
-               unsigned *final_assembly_size,
                char **error_str)
 {
    struct brw_gs_compile c;
@@ -868,9 +867,7 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
             g.enable_debug(name);
          }
          g.generate_code(v.cfg, 8);
-         const unsigned *ret = g.get_assembly(final_assembly_size);
-         prog_data->base.base.program_size = *final_assembly_size;
-         return ret;
+         return  g.get_assembly(&prog_data->base.base.program_size);
       }
    }
 
@@ -899,12 +896,10 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
          if (v.run()) {
             /* Success! Backup is not needed */
             ralloc_free(param);
-            const unsigned *ret =
-               brw_vec4_generate_assembly(compiler, log_data, mem_ctx, shader,
-                                          &prog_data->base, v.cfg,
-                                          final_assembly_size);
-            prog_data->base.base.program_size = *final_assembly_size;
-            return ret;
+            return brw_vec4_generate_assembly(compiler, log_data, mem_ctx,
+                                              shader, &prog_data->base, v.cfg,
+                                              &prog_data->base.base.
+                                                  program_size);
          } else {
             /* These variables could be modified by the execution of the GS
              * visitor if it packed the uniforms in the push constant buffer.
@@ -968,11 +963,10 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
    } else {
       ret = brw_vec4_generate_assembly(compiler, log_data, mem_ctx, shader,
                                        &prog_data->base, gs->cfg,
-                                       final_assembly_size);
+                                       &prog_data->base.base.program_size);
    }
 
    delete gs;
-   prog_data->base.base.program_size = *final_assembly_size;
    return ret;
 }
 
index 04feb6bdf17074d54e54543b254ef49aea265f0d..fdc44f1e5447c55060f9eb26c1126744d3fd9298 100644 (file)
@@ -382,7 +382,6 @@ brw_compile_tcs(const struct brw_compiler *compiler,
                 struct brw_tcs_prog_data *prog_data,
                 const nir_shader *src_shader,
                 int shader_time_index,
-                unsigned *final_assembly_size,
                 char **error_str)
 {
    const struct gen_device_info *devinfo = compiler->devinfo;
@@ -488,7 +487,7 @@ brw_compile_tcs(const struct brw_compiler *compiler,
 
       g.generate_code(v.cfg, 8);
 
-      assembly = g.get_assembly(final_assembly_size);
+      assembly = g.get_assembly(&prog_data->base.base.program_size);
    } else {
       vec4_tcs_visitor v(compiler, log_data, key, prog_data,
                          nir, mem_ctx, shader_time_index, &input_vue_map);
@@ -504,10 +503,9 @@ brw_compile_tcs(const struct brw_compiler *compiler,
 
       assembly = brw_vec4_generate_assembly(compiler, log_data, mem_ctx, nir,
                                             &prog_data->base, v.cfg,
-                                            final_assembly_size);
+                                            &prog_data->base.base.program_size);
    }
 
-   prog_data->base.base.program_size = *final_assembly_size;
    return assembly;
 }
 
index 8a2e4f83ca713780c0804b963242db97e8483fa3..907b24a758deb7181115318cc9bc01baf9dddc6c 100644 (file)
@@ -535,15 +535,15 @@ anv_pipeline_compile_vs(struct anv_pipeline *pipeline,
                           nir->info.outputs_written,
                           nir->info.separate_shader);
 
-      unsigned code_size;
       const unsigned *shader_code =
          brw_compile_vs(compiler, NULL, mem_ctx, &key, &prog_data, nir,
-                        false, -1, &code_size, NULL);
+                        false, -1, NULL);
       if (shader_code == NULL) {
          ralloc_free(mem_ctx);
          return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
       }
 
+      unsigned code_size = prog_data.base.base.program_size;
       bin = anv_pipeline_upload_kernel(pipeline, cache, sha1, 20,
                                        shader_code, code_size,
                                        &prog_data.base.base, sizeof(prog_data),
@@ -694,18 +694,18 @@ anv_pipeline_compile_tcs_tes(struct anv_pipeline *pipeline,
       tes_key.inputs_read = tcs_key.outputs_written;
       tes_key.patch_inputs_read = tcs_key.patch_outputs_written;
 
-      unsigned code_size;
       const int shader_time_index = -1;
       const unsigned *shader_code;
 
       shader_code =
          brw_compile_tcs(compiler, NULL, mem_ctx, &tcs_key, &tcs_prog_data,
-                         tcs_nir, shader_time_index, &code_size, NULL);
+                         tcs_nir, shader_time_index, NULL);
       if (shader_code == NULL) {
          ralloc_free(mem_ctx);
          return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
       }
 
+      unsigned code_size = tcs_prog_data.base.base.program_size;
       tcs_bin = anv_pipeline_upload_kernel(pipeline, cache,
                                            tcs_sha1, sizeof(tcs_sha1),
                                            shader_code, code_size,
@@ -720,12 +720,13 @@ anv_pipeline_compile_tcs_tes(struct anv_pipeline *pipeline,
       shader_code =
          brw_compile_tes(compiler, NULL, mem_ctx, &tes_key,
                          &tcs_prog_data.base.vue_map, &tes_prog_data, tes_nir,
-                         NULL, shader_time_index, &code_size, NULL);
+                         NULL, shader_time_index, NULL);
       if (shader_code == NULL) {
          ralloc_free(mem_ctx);
          return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
       }
 
+      code_size = tes_prog_data.base.base.program_size;
       tes_bin = anv_pipeline_upload_kernel(pipeline, cache,
                                            tes_sha1, sizeof(tes_sha1),
                                            shader_code, code_size,
@@ -797,16 +798,16 @@ anv_pipeline_compile_gs(struct anv_pipeline *pipeline,
                           nir->info.outputs_written,
                           nir->info.separate_shader);
 
-      unsigned code_size;
       const unsigned *shader_code =
          brw_compile_gs(compiler, NULL, mem_ctx, &key, &prog_data, nir,
-                        NULL, -1, &code_size, NULL);
+                        NULL, -1, NULL);
       if (shader_code == NULL) {
          ralloc_free(mem_ctx);
          return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
       }
 
       /* TODO: SIMD8 GS */
+      const unsigned code_size = prog_data.base.base.program_size;
       bin = anv_pipeline_upload_kernel(pipeline, cache, sha1, 20,
                                        shader_code, code_size,
                                        &prog_data.base.base, sizeof(prog_data),
@@ -921,15 +922,15 @@ anv_pipeline_compile_fs(struct anv_pipeline *pipeline,
 
       anv_fill_binding_table(&prog_data.base, num_rts);
 
-      unsigned code_size;
       const unsigned *shader_code =
          brw_compile_fs(compiler, NULL, mem_ctx, &key, &prog_data, nir,
-                        NULL, -1, -1, true, false, NULL, &code_size, NULL);
+                        NULL, -1, -1, true, false, NULL, NULL);
       if (shader_code == NULL) {
          ralloc_free(mem_ctx);
          return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
       }
 
+      unsigned code_size = prog_data.base.program_size;
       bin = anv_pipeline_upload_kernel(pipeline, cache, sha1, 20,
                                        shader_code, code_size,
                                        &prog_data.base, sizeof(prog_data),
@@ -993,15 +994,15 @@ anv_pipeline_compile_cs(struct anv_pipeline *pipeline,
 
       anv_fill_binding_table(&prog_data.base, 1);
 
-      unsigned code_size;
       const unsigned *shader_code =
          brw_compile_cs(compiler, NULL, mem_ctx, &key, &prog_data, nir,
-                        -1, &code_size, NULL);
+                        -1, NULL);
       if (shader_code == NULL) {
          ralloc_free(mem_ctx);
          return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
       }
 
+      const unsigned code_size = prog_data.base.program_size;
       bin = anv_pipeline_upload_kernel(pipeline, cache, sha1, 20,
                                        shader_code, code_size,
                                        &prog_data.base, sizeof(prog_data),
index be7680def7c0559c42d618ab20e395a0b6df528d..1a0e9f62c631e0556243f565780692b5a71d32f6 100644 (file)
@@ -55,7 +55,6 @@ brw_codegen_cs_prog(struct brw_context *brw,
    const struct gen_device_info *devinfo = &brw->screen->devinfo;
    const GLuint *program;
    void *mem_ctx = ralloc_context(NULL);
-   GLuint program_size;
    struct brw_cs_prog_data prog_data;
    bool start_busy = false;
    double start_time = 0;
@@ -93,7 +92,7 @@ brw_codegen_cs_prog(struct brw_context *brw,
    char *error_str;
    program = brw_compile_cs(brw->screen->compiler, brw, mem_ctx, key,
                             &prog_data, cp->program.nir, st_index,
-                            &program_size, &error_str);
+                            &error_str);
    if (program == NULL) {
       cp->program.sh.data->LinkStatus = linking_failure;
       ralloc_strcat(&cp->program.sh.data->InfoLog, error_str);
@@ -144,7 +143,7 @@ brw_codegen_cs_prog(struct brw_context *brw,
    ralloc_steal(NULL, prog_data.base.pull_param);
    brw_upload_cache(&brw->cache, BRW_CACHE_CS_PROG,
                     key, sizeof(*key),
-                    program, program_size,
+                    program, prog_data.base.program_size,
                     &prog_data, sizeof(prog_data),
                     &brw->cs.base.prog_offset, &brw->cs.base.prog_data);
    ralloc_free(mem_ctx);
index 007629cbbbe515ab3a1954a3268fe070630360a1..e6e757ce686a1faefdc67521857eb185789492af 100644 (file)
@@ -112,12 +112,11 @@ brw_codegen_gs_prog(struct brw_context *brw,
       start_time = get_time();
    }
 
-   unsigned program_size;
    char *error_str;
    const unsigned *program =
       brw_compile_gs(brw->screen->compiler, brw, mem_ctx, key,
                      &prog_data, gp->program.nir, &gp->program,
-                     st_index, &program_size, &error_str);
+                     st_index, &error_str);
    if (program == NULL) {
       ralloc_strcat(&gp->program.sh.data->InfoLog, error_str);
       _mesa_problem(NULL, "Failed to compile geometry shader: %s\n", error_str);
@@ -147,7 +146,7 @@ brw_codegen_gs_prog(struct brw_context *brw,
    ralloc_steal(NULL, prog_data.base.base.pull_param);
    brw_upload_cache(&brw->cache, BRW_CACHE_GS_PROG,
                     key, sizeof(*key),
-                    program, program_size,
+                    program, prog_data.base.base.program_size,
                     &prog_data, sizeof(prog_data),
                     &stage_state->prog_offset, &brw->gs.base.prog_data);
    ralloc_free(mem_ctx);
index 6c9cb153d31a697d0f7470851d10d62c5132ba61..5ac728ee68f90d139adfc2319a6116db49e082c8 100644 (file)
@@ -226,11 +226,10 @@ brw_codegen_tcs_prog(struct brw_context *brw, struct brw_program *tcp,
       start_time = get_time();
    }
 
-   unsigned program_size;
    char *error_str;
    const unsigned *program =
       brw_compile_tcs(compiler, brw, mem_ctx, key, &prog_data, nir, st_index,
-                      &program_size, &error_str);
+                      &error_str);
    if (program == NULL) {
       if (tep) {
          tep->program.sh.data->LinkStatus = linking_failure;
@@ -268,7 +267,7 @@ brw_codegen_tcs_prog(struct brw_context *brw, struct brw_program *tcp,
    ralloc_steal(NULL, prog_data.base.base.pull_param);
    brw_upload_cache(&brw->cache, BRW_CACHE_TCS_PROG,
                     key, sizeof(*key),
-                    program, program_size,
+                    program, prog_data.base.base.program_size,
                     &prog_data, sizeof(prog_data),
                     &stage_state->prog_offset, &brw->tcs.base.prog_data);
    ralloc_free(mem_ctx);
index 47f3b510a5466f2d072947238c08bce723ddb3ec..21f44ae74afde1f88d0741691742fda6a9c464f3 100644 (file)
@@ -101,11 +101,10 @@ brw_codegen_tes_prog(struct brw_context *brw,
    brw_compute_tess_vue_map(&input_vue_map, key->inputs_read,
                             key->patch_inputs_read);
 
-   unsigned program_size;
    char *error_str;
    const unsigned *program =
       brw_compile_tes(compiler, brw, mem_ctx, key, &input_vue_map, &prog_data,
-                      nir, &tep->program, st_index, &program_size, &error_str);
+                      nir, &tep->program, st_index, &error_str);
    if (program == NULL) {
       tep->program.sh.data->LinkStatus = linking_failure;
       ralloc_strcat(&tep->program.sh.data->InfoLog, error_str);
@@ -138,7 +137,7 @@ brw_codegen_tes_prog(struct brw_context *brw,
    ralloc_steal(NULL, prog_data.base.base.pull_param);
    brw_upload_cache(&brw->cache, BRW_CACHE_TES_PROG,
                     key, sizeof(*key),
-                    program, program_size,
+                    program, prog_data.base.base.program_size,
                     &prog_data, sizeof(prog_data),
                     &stage_state->prog_offset, &brw->tes.base.prog_data);
    ralloc_free(mem_ctx);
index fb5ea4e7ed1c532a4808f7ccbae1e3f8f2451831..d308bb83332b6ca4f2be804f5eddc7c4adc85354 100644 (file)
@@ -159,7 +159,6 @@ brw_codegen_vs_prog(struct brw_context *brw,
 {
    const struct brw_compiler *compiler = brw->screen->compiler;
    const struct gen_device_info *devinfo = &brw->screen->devinfo;
-   GLuint program_size;
    const GLuint *program;
    struct brw_vs_prog_data prog_data;
    struct brw_stage_prog_data *stage_prog_data = &prog_data.base.base;
@@ -223,7 +222,7 @@ brw_codegen_vs_prog(struct brw_context *brw,
    program = brw_compile_vs(compiler, brw, mem_ctx, key, &prog_data,
                             vp->program.nir,
                             !_mesa_is_gles3(&brw->ctx),
-                            st_index, &program_size, &error_str);
+                            st_index, &error_str);
    if (program == NULL) {
       if (!vp->program.is_arb_asm) {
          vp->program.sh.data->LinkStatus = linking_failure;
@@ -256,10 +255,10 @@ brw_codegen_vs_prog(struct brw_context *brw,
    ralloc_steal(NULL, prog_data.base.base.param);
    ralloc_steal(NULL, prog_data.base.base.pull_param);
    brw_upload_cache(&brw->cache, BRW_CACHE_VS_PROG,
-                   key, sizeof(struct brw_vs_prog_key),
-                   program, program_size,
-                   &prog_data, sizeof(prog_data),
-                   &brw->vs.base.prog_offset, &brw->vs.base.prog_data);
+                    key, sizeof(struct brw_vs_prog_key),
+                    program, prog_data.base.base.program_size,
+                    &prog_data, sizeof(prog_data),
+                    &brw->vs.base.prog_offset, &brw->vs.base.prog_data);
    ralloc_free(mem_ctx);
 
    return true;
index 2105d1a8f1e582700cddbda8f1a1b633117eb99b..4144cd11ee43f641ef33cb9702e278b6e8f74ccf 100644 (file)
@@ -141,7 +141,6 @@ brw_codegen_wm_prog(struct brw_context *brw,
    void *mem_ctx = ralloc_context(NULL);
    struct brw_wm_prog_data prog_data;
    const GLuint *program;
-   GLuint program_size;
    bool start_busy = false;
    double start_time = 0;
 
@@ -185,7 +184,7 @@ brw_codegen_wm_prog(struct brw_context *brw,
                             key, &prog_data, fp->program.nir,
                             &fp->program, st_index8, st_index16,
                             true, false, vue_map,
-                            &program_size, &error_str);
+                            &error_str);
 
    if (program == NULL) {
       if (!fp->program.is_arb_asm) {
@@ -222,7 +221,7 @@ brw_codegen_wm_prog(struct brw_context *brw,
    ralloc_steal(NULL, prog_data.base.pull_param);
    brw_upload_cache(&brw->cache, BRW_CACHE_FS_PROG,
                     key, sizeof(struct brw_wm_prog_key),
-                    program, program_size,
+                    program, prog_data.base.program_size,
                     &prog_data, sizeof(prog_data),
                     &brw->wm.base.prog_offset, &brw->wm.base.prog_data);