summaryrefslogtreecommitdiff
path: root/src/i965_exa_render.c
diff options
context:
space:
mode:
authorWang Zhenyu <zhenyu.z.wang@intel.com>2006-11-29 16:40:15 +0800
committerKeith Packard <keithp@neko.keithp.com>2007-01-06 14:37:30 -0800
commitb7c1e1656f45e43ea2f9a47f1a487050c0884c22 (patch)
tree2b26d5b4dc5300b9eb44c5dc13ee8e7c3d92a98a /src/i965_exa_render.c
parentdb9cfaa35adaf79ea57bc06b27c7e37935d3e1a7 (diff)
[PATCH] WM kernel needs scratch space
Signed-off-by: Keith Packard <keithp@neko.keithp.com>
Diffstat (limited to 'src/i965_exa_render.c')
-rw-r--r--src/i965_exa_render.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/i965_exa_render.c b/src/i965_exa_render.c
index 51c20061..51b2c600 100644
--- a/src/i965_exa_render.c
+++ b/src/i965_exa_render.c
@@ -297,6 +297,7 @@ int dest_surf_offset, src_surf_offset, mask_surf_offset;
int src_sampler_offset, mask_sampler_offset,vs_offset;
int sf_offset, wm_offset, cc_offset, vb_offset, cc_viewport_offset;
int sf_kernel_offset, ps_kernel_offset, sip_kernel_offset;
+int wm_scratch_offset;
int binding_table_offset;
int default_color_offset;
int next_offset, total_state_size;
@@ -426,6 +427,9 @@ ErrorF("i965 prepareComposite\n");
wm_offset = ALIGN(next_offset, 32);
next_offset = wm_offset + sizeof(*wm_state);
+ wm_scratch_offset = ALIGN(next_offset, 1024);
+ next_offset = wm_scratch_offset + 1024 * PS_MAX_THREADS;
+
cc_offset = ALIGN(next_offset, 32);
next_offset = cc_offset + sizeof(*cc_state);
@@ -798,7 +802,8 @@ ErrorF("i965 prepareComposite\n");
else
wm_state->thread1.binding_table_entry_count = 3; /* 2 tex and fb */
- wm_state->thread2.scratch_space_base_pointer = 0;
+ wm_state->thread2.scratch_space_base_pointer = (state_base_offset +
+ wm_scratch_offset)>>10;
wm_state->thread2.per_thread_scratch_space = 0;
// XXX: urb allocation
wm_state->thread3.const_urb_entry_read_length = 0;