i965/vs: Pass the brw_context pointer into vec4_visitor and do_vs_prog.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 27 Nov 2012 06:14:27 +0000 (22:14 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 29 Nov 2012 02:15:50 +0000 (18:15 -0800)
We used to steal it out of the brw_compile struct...but vec4_visitor
isn't going to have one of those in the future.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/drivers/dri/i965/brw_vec4.cpp
src/mesa/drivers/dri/i965/brw_vec4.h
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
src/mesa/drivers/dri/i965/brw_vs.c
src/mesa/drivers/dri/i965/brw_vs.h

index 227accae45f612dd0f6b24aae92ea5865f95cdb8..d203ca907656396512105c97a99bd02425537b14 100644 (file)
@@ -1128,10 +1128,11 @@ vec4_visitor::run()
 extern "C" {
 
 bool
-brw_vs_emit(struct gl_shader_program *prog, struct brw_vs_compile *c)
+brw_vs_emit(struct brw_context *brw,
+            struct gl_shader_program *prog,
+            struct brw_vs_compile *c)
 {
-   struct brw_context *brw = c->func.brw;
-   struct intel_context *intel = &c->func.brw->intel;
+   struct intel_context *intel = &brw->intel;
    bool start_busy = false;
    float start_time = 0;
 
@@ -1168,7 +1169,7 @@ brw_vs_emit(struct gl_shader_program *prog, struct brw_vs_compile *c)
       shader->compiled_once = true;
    }
 
-   vec4_visitor v(c, prog, shader);
+   vec4_visitor v(brw, c, prog, shader);
    if (!v.run()) {
       prog->LinkStatus = false;
       ralloc_strcat(&prog->InfoLog, v.fail_msg);
index 908d7d8825dab4cf66f54e14e6c179e5587209c8..f474b0f76213fb11a8b988b4c260b558a811834b 100644 (file)
@@ -198,7 +198,8 @@ public:
 class vec4_visitor : public backend_visitor
 {
 public:
-   vec4_visitor(struct brw_vs_compile *c,
+   vec4_visitor(struct brw_context *brw,
+                struct brw_vs_compile *c,
                struct gl_shader_program *prog, struct brw_shader *shader);
    ~vec4_visitor();
 
index edb66ea7d8ea313bd2590e36819d3a6d8538b907..982b74c19ec250e3d44f0fc3a416c55866c90b3e 100644 (file)
@@ -2806,13 +2806,14 @@ vec4_visitor::resolve_ud_negate(src_reg *reg)
    *reg = temp;
 }
 
-vec4_visitor::vec4_visitor(struct brw_vs_compile *c,
+vec4_visitor::vec4_visitor(struct brw_context *brw,
+                          struct brw_vs_compile *c,
                           struct gl_shader_program *prog,
                           struct brw_shader *shader)
 {
    this->c = c;
    this->p = &c->func;
-   this->brw = p->brw;
+   this->brw = brw;
    this->intel = &brw->intel;
    this->ctx = &intel->ctx;
    this->prog = prog;
index 232600aece737b43e3dd13a37ca3705f9c9fedb5..8cced4be7337b8f8a0e99a388535b2d25b9b4466 100644 (file)
@@ -280,7 +280,7 @@ do_vs_prog(struct brw_context *brw,
 
    /* Emit GEN4 code.
     */
-   if (!brw_vs_emit(prog, &c)) {
+   if (!brw_vs_emit(brw, prog, &c)) {
       ralloc_free(mem_ctx);
       return false;
    }
index 279c18fab0b19cca940c126b25d551f6c37a791d..2c085474733b40acda1a2db53c37a215fbe2561d 100644 (file)
@@ -103,7 +103,9 @@ struct brw_vs_compile {
    GLuint last_scratch; /**< measured in 32-byte (register size) units */
 };
 
-bool brw_vs_emit(struct gl_shader_program *prog, struct brw_vs_compile *c);
+bool brw_vs_emit(struct brw_context *brw,
+                 struct gl_shader_program *prog,
+                 struct brw_vs_compile *c);
 bool brw_vs_precompile(struct gl_context *ctx, struct gl_shader_program *prog);
 void brw_vs_debug_recompile(struct brw_context *brw,
                             struct gl_shader_program *prog,