diff options
author | Eric Anholt <eric@anholt.net> | 2011-04-14 19:36:28 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2011-04-17 10:26:09 -0700 |
commit | 59c6b775a6aacfe03c84dae62c2fd45d4af9d70b (patch) | |
tree | 5391952408a854713bd069653e071061affd6aca /src/mesa/drivers/dri/i965/brw_wm_state.c | |
parent | 14eedf3028422e98ac05713a3e3c37e6c9b4cf37 (diff) | |
download | external_mesa3d-59c6b775a6aacfe03c84dae62c2fd45d4af9d70b.zip external_mesa3d-59c6b775a6aacfe03c84dae62c2fd45d4af9d70b.tar.gz external_mesa3d-59c6b775a6aacfe03c84dae62c2fd45d4af9d70b.tar.bz2 |
i965/fs: Add gen6 register spilling support.
Most of this is code movement to get the scratch space allocated in a
shared location. Other than that, the only real changes are that the
old oword block messages now operate on oword-aligned areas (with new
messages for unaligned access, which we don't do), and that the
caching control is in the SFID part of the descriptor instead of
message control.
Fixes glsl-fs-convolution-1.
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_wm_state.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm_state.c | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm_state.c b/src/mesa/drivers/dri/i965/brw_wm_state.c index 5b5afc4..be4b260 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_state.c @@ -278,30 +278,10 @@ wm_unit_create_from_key(struct brw_context *brw, struct brw_wm_unit_key *key, static void upload_wm_unit( struct brw_context *brw ) { - struct intel_context *intel = &brw->intel; struct brw_wm_unit_key key; drm_intel_bo *reloc_bufs[3]; wm_unit_populate_key(brw, &key); - /* Allocate the necessary scratch space if we haven't already. Don't - * bother reducing the allocation later, since we use scratch so - * rarely. - */ - if (key.total_scratch) { - GLuint total = key.total_scratch * brw->wm_max_threads; - - if (brw->wm.scratch_bo && total > brw->wm.scratch_bo->size) { - drm_intel_bo_unreference(brw->wm.scratch_bo); - brw->wm.scratch_bo = NULL; - } - if (brw->wm.scratch_bo == NULL) { - brw->wm.scratch_bo = drm_intel_bo_alloc(intel->bufmgr, - "wm scratch", - total, - 4096); - } - } - reloc_bufs[0] = brw->wm.prog_bo; reloc_bufs[1] = brw->wm.scratch_bo; reloc_bufs[2] = brw->wm.sampler_bo; |