[Mesa-dev] [PATCH 07/12] i965/fs: Pass the brw_context pointer into fs_visitor explicitly.

Kenneth Graunke kenneth at whitecape.org
Tue Nov 20 21:40:15 PST 2012


We used to steal it out of the brw_compile struct...but fs_visitor
isn't going to have one of those in the future.
---
 src/mesa/drivers/dri/i965/brw_fs.cpp         | 4 ++--
 src/mesa/drivers/dri/i965/brw_fs.h           | 3 ++-
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 5 +++--
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 638fbed..6b19d1b 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2178,7 +2178,7 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c,
 
    /* Now the main event: Visit the shader IR and generate our FS IR for it.
     */
-   fs_visitor v(c, prog, fp, 8);
+   fs_visitor v(brw, c, prog, fp, 8);
    if (!v.run()) {
       prog->LinkStatus = false;
       ralloc_strcat(&prog->InfoLog, v.fail_msg);
@@ -2190,7 +2190,7 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c,
    }
 
    if (intel->gen >= 5 && c->prog_data.nr_pull_params == 0) {
-      fs_visitor v2(c, prog, fp, 16);
+      fs_visitor v2(brw, c, prog, fp, 16);
       v2.import_uniforms(&v);
       if (!v2.run()) {
          perf_debug("16-wide shader failed to compile, falling back to "
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 2e49ca1..cd3b4ca 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -184,7 +184,8 @@ class fs_visitor : public backend_visitor
 {
 public:
 
-   fs_visitor(struct brw_wm_compile *c,
+   fs_visitor(struct brw_context *brw,
+              struct brw_wm_compile *c,
               struct gl_shader_program *prog,
               struct gl_fragment_program *fp,
               unsigned dispatch_width);
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 69a9cca..e21c2f9 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -2174,14 +2174,15 @@ fs_visitor::resolve_bool_comparison(ir_rvalue *rvalue, fs_reg *reg)
    *reg = temp;
 }
 
-fs_visitor::fs_visitor(struct brw_wm_compile *c,
+fs_visitor::fs_visitor(struct brw_context *brw,
+                       struct brw_wm_compile *c,
                        struct gl_shader_program *prog,
                        struct gl_fragment_program *fp,
                        unsigned dispatch_width)
 {
    this->c = c;
    this->p = &c->func;
-   this->brw = p->brw;
+   this->brw = brw;
    this->fp = fp;
    this->prog = prog;
    this->intel = &brw->intel;
-- 
1.8.0



More information about the mesa-dev mailing list