diff options
author | Ben Widawsky <ben@bwidawsk.net> | 2012-06-30 19:26:59 -0700 |
---|---|---|
committer | Ben Widawsky <ben@bwidawsk.net> | 2012-06-30 19:32:33 -0700 |
commit | cbb3c685b59aeb41a6ce94bc47f0bf255c87df60 (patch) | |
tree | 1fa3414767ed9d865aeadd39bf232e91afc73f75 /lib/rendercopy_gen7.c | |
parent | afcffe783a12472e60d4cd0f2ebdc89e2f5b2def (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.c | 19 |
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 |