summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_state_dump.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2011-04-22 15:30:42 -0700
committerEric Anholt <eric@anholt.net>2011-04-29 15:26:14 -0700
commit5c742ea1ee0cea031cb99651155d0c7521f42b4e (patch)
tree6d78835b77d83c17919644ed81fd3fb19636af2e /src/mesa/drivers/dri/i965/brw_state_dump.c
parent1a447749ed421db8eb6ba20012630785aef9bb12 (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.c27
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)