i965: pass gl_program directly to brw_compile_tes()
authorTimothy Arceri <timothy.arceri@collabora.com>
Tue, 8 Nov 2016 01:07:12 +0000 (12:07 +1100)
committerTimothy Arceri <timothy.arceri@collabora.com>
Fri, 6 Jan 2017 00:21:41 +0000 (11:21 +1100)
This is the only thing we use from gl_shader_program so pass it directly.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/mesa/drivers/dri/i965/brw_compiler.h
src/mesa/drivers/dri/i965/brw_shader.cpp
src/mesa/drivers/dri/i965/brw_tes.c

index 5e706014045b01cf7fa6fa50bd383eebcc9404ce..db8f39ce77623940b6b92da82273f2e7f87354bc 100644 (file)
@@ -803,7 +803,7 @@ brw_compile_tes(const struct brw_compiler *compiler, void *log_data,
                 const struct brw_tes_prog_key *key,
                 struct brw_tes_prog_data *prog_data,
                 const struct nir_shader *shader,
-                struct gl_shader_program *shader_prog,
+                struct gl_program *prog,
                 int shader_time_index,
                 unsigned *final_assembly_size,
                 char **error_str);
index a07084364c333adf05f6f8ccfebba2553cb53992..af8a4e501f7223a9c798911228d2e689cdfebfff 100644 (file)
@@ -1352,14 +1352,12 @@ brw_compile_tes(const struct brw_compiler *compiler,
                 const struct brw_tes_prog_key *key,
                 struct brw_tes_prog_data *prog_data,
                 const nir_shader *src_shader,
-                struct gl_shader_program *shader_prog,
+                struct gl_program *prog,
                 int shader_time_index,
                 unsigned *final_assembly_size,
                 char **error_str)
 {
    const struct gen_device_info *devinfo = compiler->devinfo;
-   struct gl_linked_shader *shader =
-      shader_prog->_LinkedShaders[MESA_SHADER_TESS_EVAL];
    const bool is_scalar = compiler->scalar_stage[MESA_SHADER_TESS_EVAL];
 
    nir_shader *nir = nir_shader_clone(mem_ctx, src_shader);
@@ -1417,7 +1415,7 @@ brw_compile_tes(const struct brw_compiler *compiler,
 
    if (is_scalar) {
       fs_visitor v(compiler, log_data, mem_ctx, (void *) key,
-                   &prog_data->base.base, shader->Program, nir, 8,
+                   &prog_data->base.base, prog, nir, 8,
                    shader_time_index, &input_vue_map);
       if (!v.run_tes()) {
          if (error_str)
index fbd6081464a0ff94f8118bfa3911a027052b23e4..43a8c3f325e9e5cf87b4c9340dd0946327a577a6 100644 (file)
@@ -177,7 +177,7 @@ brw_codegen_tes_prog(struct brw_context *brw,
    char *error_str;
    const unsigned *program =
       brw_compile_tes(compiler, brw, mem_ctx, key, &prog_data, nir,
-                      shader_prog, st_index, &program_size, &error_str);
+                      &tep->program, st_index, &program_size, &error_str);
    if (program == NULL) {
       tep->program.sh.data->LinkStatus = false;
       ralloc_strcat(&tep->program.sh.data->InfoLog, error_str);