[Mesa-dev] [PATCH 4/5] i965: stop passing gl_shader_program to brw_compile_gs() and gen6_gs_visitor()

Timothy Arceri timothy.arceri at collabora.com
Fri Dec 30 22:31:00 UTC 2016


Instead we caan just use gl_program.
---
 src/mesa/drivers/dri/i965/brw_compiler.h          | 2 +-
 src/mesa/drivers/dri/i965/brw_gs.c                | 2 +-
 src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp | 7 +++----
 src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp     | 2 +-
 src/mesa/drivers/dri/i965/gen6_gs_visitor.h       | 3 ---
 5 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_compiler.h b/src/mesa/drivers/dri/i965/brw_compiler.h
index 4813f20..5e70601 100644
--- a/src/mesa/drivers/dri/i965/brw_compiler.h
+++ b/src/mesa/drivers/dri/i965/brw_compiler.h
@@ -819,7 +819,7 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
                const struct brw_gs_prog_key *key,
                struct brw_gs_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);
diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c
index 0df83e8..47b4e5c 100644
--- a/src/mesa/drivers/dri/i965/brw_gs.c
+++ b/src/mesa/drivers/dri/i965/brw_gs.c
@@ -152,7 +152,7 @@ brw_codegen_gs_prog(struct brw_context *brw,
    char *error_str;
    const unsigned *program =
       brw_compile_gs(brw->screen->compiler, brw, mem_ctx, key,
-                     &prog_data, gp->program.nir, prog,
+                     &prog_data, gp->program.nir, &gp->program,
                      st_index, &program_size, &error_str);
    if (program == NULL) {
       ralloc_strcat(&gp->program.sh.data->InfoLog, error_str);
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
index 657e1f0..18458ca 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
@@ -590,7 +590,7 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
                const struct brw_gs_prog_key *key,
                struct brw_gs_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)
@@ -643,7 +643,7 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
          prog_data->control_data_format = GEN7_GS_CONTROL_DATA_FORMAT_GSCTL_SID;
 
          /* We only have to emit control bits if we are using streams */
-         if (shader_prog && shader_prog->Geom.UsesStreams)
+         if (prog && prog->info.gs.uses_streams)
             c.control_data_bits_per_vertex = 2;
          else
             c.control_data_bits_per_vertex = 0;
@@ -893,8 +893,7 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
                                shader, mem_ctx, false /* no_spills */,
                                shader_time_index);
    else
-      gs = new gen6_gs_visitor(compiler, log_data, &c, prog_data, shader_prog,
-                               shader_prog->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program,
+      gs = new gen6_gs_visitor(compiler, log_data, &c, prog_data, prog,
                                shader, mem_ctx, false /* no_spills */,
                                shader_time_index);
 
diff --git a/src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp b/src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp
index f2739e3..075bc4a 100644
--- a/src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp
@@ -534,7 +534,7 @@ gen6_gs_visitor::xfb_setup()
    };
 
    const struct gl_transform_feedback_info *linked_xfb_info =
-      this->shader_prog->xfb_program->sh.LinkedTransformFeedback;
+      this->prog->sh.LinkedTransformFeedback;
    int i;
 
    /* Make sure that the VUE slots won't overflow the unsigned chars in
diff --git a/src/mesa/drivers/dri/i965/gen6_gs_visitor.h b/src/mesa/drivers/dri/i965/gen6_gs_visitor.h
index 556bd15..1bdcf92 100644
--- a/src/mesa/drivers/dri/i965/gen6_gs_visitor.h
+++ b/src/mesa/drivers/dri/i965/gen6_gs_visitor.h
@@ -39,7 +39,6 @@ public:
                    void *log_data,
                    struct brw_gs_compile *c,
                    struct brw_gs_prog_data *prog_data,
-                   struct gl_shader_program *sh_prog,
                    struct gl_program *prog,
                    const nir_shader *shader,
                    void *mem_ctx,
@@ -47,7 +46,6 @@ public:
                    int shader_time_index) :
       vec4_gs_visitor(comp, log_data, c, prog_data, shader, mem_ctx, no_spills,
                       shader_time_index),
-      shader_prog(sh_prog),
       prog(prog)
       {
       }
@@ -70,7 +68,6 @@ private:
    void xfb_setup();
    int get_vertex_output_offset_for_varying(int vertex, int varying);
 
-   const struct gl_shader_program *shader_prog;
    const struct gl_program *prog;
 
    src_reg vertex_output;
-- 
2.9.3



More information about the mesa-dev mailing list