OSDN Git Service

i965/fs: Move c->last_scratch into fs_visitor.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 14 May 2014 04:00:35 +0000 (21:00 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 19 May 2014 06:35:18 +0000 (23:35 -0700)
Nothing outside of fs_visitor uses it, so we may as well keep it
internal.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
src/mesa/drivers/dri/i965/brw_wm.h

index ea3c8de..7db5a45 100644 (file)
@@ -3093,8 +3093,8 @@ fs_visitor::run()
    if (!allocated_without_spills)
       schedule_instructions(SCHEDULE_POST);
 
-   if (c->last_scratch > 0) {
-      c->prog_data.total_scratch = brw_get_scratch_size(c->last_scratch);
+   if (last_scratch > 0) {
+      c->prog_data.total_scratch = brw_get_scratch_size(last_scratch);
    }
 
    if (dispatch_width == 8)
index 053046b..4c8ed72 100644 (file)
@@ -511,6 +511,9 @@ public:
    /** Number of uniform variable components visited. */
    unsigned uniforms;
 
+   /** Byte-offset for the next available spot in the scratch space buffer. */
+   unsigned last_scratch;
+
    /**
     * Array mapping UNIFORM register numbers to the pull parameter index,
     * or -1 if this uniform register isn't being uploaded as a pull constant.
index f2f158e..f51f0b8 100644 (file)
@@ -647,7 +647,7 @@ fs_visitor::spill_reg(int spill_reg)
 {
    int reg_size = dispatch_width * sizeof(float);
    int size = virtual_grf_sizes[spill_reg];
-   unsigned int spill_offset = c->last_scratch;
+   unsigned int spill_offset = last_scratch;
    assert(ALIGN(spill_offset, 16) == spill_offset); /* oword read/write req. */
    int spill_base_mrf = dispatch_width > 8 ? 13 : 14;
 
@@ -672,7 +672,7 @@ fs_visitor::spill_reg(int spill_reg)
       spilled_any_registers = true;
    }
 
-   c->last_scratch += size * reg_size;
+   last_scratch += size * reg_size;
 
    /* Generate spill/unspill instructions for the objects being
     * spilled.  Right now, we spill or unspill the whole thing to a
index d2dc5fa..307d07b 100644 (file)
@@ -2986,6 +2986,7 @@ fs_visitor::fs_visitor(struct brw_context *brw,
    this->regs_live_at_ip = NULL;
 
    this->uniforms = 0;
+   this->last_scratch = 0;
    this->pull_constant_loc = NULL;
    this->push_constant_loc = NULL;
 
index 9dfb23b..871e34e 100644 (file)
@@ -94,8 +94,6 @@ struct brw_wm_compile {
    uint8_t nr_payload_regs;
    GLuint source_depth_to_render_target:1;
    GLuint runtime_check_aads_emit:1;
-
-   GLuint last_scratch;
 };
 
 /**