summaryrefslogtreecommitdiff
path: root/lib/rendercopy_gen7.c
diff options
context:
space:
mode:
authorBen Widawsky <ben@bwidawsk.net>2012-06-30 19:26:59 -0700
committerBen Widawsky <ben@bwidawsk.net>2012-06-30 19:32:33 -0700
commitcbb3c685b59aeb41a6ce94bc47f0bf255c87df60 (patch)
tree1fa3414767ed9d865aeadd39bf232e91afc73f75 /lib/rendercopy_gen7.c
parentafcffe783a12472e60d4cd0f2ebdc89e2f5b2def (diff)
rendercopy_gen7: add support for haswell
Only compile tested. Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Diffstat (limited to 'lib/rendercopy_gen7.c')
-rw-r--r--lib/rendercopy_gen7.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/rendercopy_gen7.c b/lib/rendercopy_gen7.c
index ffd00d4e..56181abf 100644
--- a/lib/rendercopy_gen7.c
+++ b/lib/rendercopy_gen7.c
@@ -128,6 +128,13 @@ gen7_bind_buf(struct intel_batchbuffer *batch, struct scratch_buf *buf,
ss->ss2.width = buf_width(buf) - 1;
ss->ss3.pitch = buf->stride - 1;
+ if (IS_HASWELL(batch->devid)) {
+ ss->ss7.shader_chanel_select_a = 4;
+ ss->ss7.shader_chanel_select_g = 5;
+ ss->ss7.shader_chanel_select_b = 6;
+ ss->ss7.shader_chanel_select_a = 7;
+ }
+
return batch_offset(batch, ss);
}
@@ -595,9 +602,15 @@ gen7_emit_ps(struct intel_batchbuffer *batch, uint32_t kernel) {
OUT_BATCH(1 << GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF |
2 << GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT);
OUT_BATCH(0); /* scratch space stuff */
- OUT_BATCH((max_threads - 1) << GEN7_3DSTATE_WM_MAX_THREADS_SHIFT | // needs HSW change
- GEN7_3DSTATE_PS_ATTRIBUTE_ENABLED |
- GEN6_3DSTATE_WM_16_DISPATCH_ENABLE);
+ if (IS_HASWELL(batch->devid)) {
+ OUT_BATCH((max_threads - 1) << GEN7_3DSTATE_WM_MAX_THREADS_SHIFT |
+ GEN7_3DSTATE_PS_ATTRIBUTE_ENABLED |
+ GEN6_3DSTATE_WM_16_DISPATCH_ENABLE);
+ } else {
+ OUT_BATCH((max_threads - 1) << HSW_3DSTATE_WM_MAX_THREADS_SHIFT |
+ GEN7_3DSTATE_PS_ATTRIBUTE_ENABLED |
+ GEN6_3DSTATE_WM_16_DISPATCH_ENABLE);
+ }
OUT_BATCH(6 << GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT);
OUT_BATCH(0); // kernel 1
OUT_BATCH(0); // kernel 2