diff options
author | Eric Anholt <eric@anholt.net> | 2011-04-22 15:30:42 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2011-04-29 15:26:14 -0700 |
commit | 5c742ea1ee0cea031cb99651155d0c7521f42b4e (patch) | |
tree | 6d78835b77d83c17919644ed81fd3fb19636af2e /src/mesa/drivers/dri/i965/brw_state_dump.c | |
parent | 1a447749ed421db8eb6ba20012630785aef9bb12 (diff) |
i965: Move sampler state to state streaming.
Overall, across this series since the last set of numbers, gen6 3DMMES
taiji performance has dropped 0.8% +/- 0.3% (n=15), probably due to
the increased reissuing of state from some of the state objects that
otherwise never changed, and increased occurrence of the per-batch
overhead as we've increased how much we put in the batch BO without
increasing the batch BO's size.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_state_dump.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_state_dump.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_state_dump.c b/src/mesa/drivers/dri/i965/brw_state_dump.c index 06cf97519ad..930eb5155db 100644 --- a/src/mesa/drivers/dri/i965/brw_state_dump.c +++ b/src/mesa/drivers/dri/i965/brw_state_dump.c @@ -144,12 +144,7 @@ static void dump_wm_sampler_state(struct brw_context *brw) struct gl_context *ctx = &brw->intel.ctx; int i; - if (!brw->wm.sampler_bo) { - fprintf(stderr, "WM_SAMPLER: NULL\n"); - return; - } - - drm_intel_bo_map(brw->wm.sampler_bo, GL_FALSE); + drm_intel_bo_map(intel->batch.bo, GL_FALSE); for (i = 0; i < BRW_MAX_TEX_UNIT; i++) { unsigned int offset; uint32_t sdc_offset; @@ -161,9 +156,11 @@ static void dump_wm_sampler_state(struct brw_context *brw) continue; } - offset = brw->wm.sampler_bo->offset + - i * sizeof(struct brw_sampler_state); - samp = (struct brw_sampler_state *)(brw->wm.sampler_bo->virtual + + offset = (intel->batch.bo->offset + + brw->wm.sampler_offset + + i * sizeof(struct brw_sampler_state)); + samp = (struct brw_sampler_state *)(intel->batch.bo->virtual + + brw->wm.sampler_offset + i * sizeof(struct brw_sampler_state)); sprintf(name, "WM SAMP%d", i); @@ -174,10 +171,10 @@ static void dump_wm_sampler_state(struct brw_context *brw) sprintf(name, " WM SDC%d", i); - drm_intel_bo_map(brw->wm.sdc_bo[i], GL_FALSE); - sdc_offset = brw->wm.sdc_bo[i]->offset; + sdc_offset = intel->batch.bo->offset + brw->wm.sdc_offset[i]; if (intel->gen >= 5) { - struct gen5_sampler_default_color *sdc = brw->wm.sdc_bo[i]->virtual; + struct gen5_sampler_default_color *sdc = (intel->batch.bo->virtual + + brw->wm.sdc_offset[i]); state_out(name, sdc, sdc_offset, 0, "unorm rgba\n"); state_out(name, sdc, sdc_offset, 1, "r %f\n", sdc->f[0]); state_out(name, sdc, sdc_offset, 2, "b %f\n", sdc->f[1]); @@ -191,15 +188,15 @@ static void dump_wm_sampler_state(struct brw_context *brw) state_out(name, sdc, sdc_offset, 10, "s16 ba\n"); state_out(name, sdc, sdc_offset, 11, "s8 rgba\n"); } else { - struct brw_sampler_default_color *sdc = brw->wm.sdc_bo[i]->virtual; + struct brw_sampler_default_color *sdc = (intel->batch.bo->virtual + + brw->wm.sdc_offset[i]); state_out(name, sdc, sdc_offset, 0, "r %f\n", sdc->color[0]); state_out(name, sdc, sdc_offset, 1, "g %f\n", sdc->color[1]); state_out(name, sdc, sdc_offset, 2, "b %f\n", sdc->color[2]); state_out(name, sdc, sdc_offset, 3, "a %f\n", sdc->color[3]); } - drm_intel_bo_unmap(brw->wm.sdc_bo[i]); } - drm_intel_bo_unmap(brw->wm.sampler_bo); + drm_intel_bo_unmap(intel->batch.bo); } static void dump_sf_viewport_state(struct brw_context *brw) |