summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/eg_asm.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2014-01-13 10:19:00 +1000
committerDave Airlie <airlied@redhat.com>2014-02-05 10:40:33 +1000
commitae29a098eaaa9f061cc82a28b8e258e44f03902b (patch)
tree2761bb8600712bd275926300a60e5bc33d20a67e /src/gallium/drivers/r600/eg_asm.c
parent552aae7e47e93ada58649a92ae9e7da37afb05c3 (diff)
downloadexternal_mesa3d-ae29a098eaaa9f061cc82a28b8e258e44f03902b.zip
external_mesa3d-ae29a098eaaa9f061cc82a28b8e258e44f03902b.tar.gz
external_mesa3d-ae29a098eaaa9f061cc82a28b8e258e44f03902b.tar.bz2
r600g/bc: add support for indexed memory writes.
It looks like we need these for geom shaders in the future. Signed-off-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/gallium/drivers/r600/eg_asm.c')
-rw-r--r--src/gallium/drivers/r600/eg_asm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/eg_asm.c b/src/gallium/drivers/r600/eg_asm.c
index 42e78c0..5ad3d77 100644
--- a/src/gallium/drivers/r600/eg_asm.c
+++ b/src/gallium/drivers/r600/eg_asm.c
@@ -79,7 +79,8 @@ int eg_bytecode_cf_build(struct r600_bytecode *bc, struct r600_bytecode_cf *cf)
bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(cf->output.gpr) |
S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(cf->output.elem_size) |
S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(cf->output.array_base) |
- S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(cf->output.type);
+ S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(cf->output.type) |
+ S_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(cf->output.index_gpr);
bc->bytecode[id] =
S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(cf->output.burst_count - 1) |
S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(cf->output.swizzle_x) |
@@ -97,7 +98,8 @@ int eg_bytecode_cf_build(struct r600_bytecode *bc, struct r600_bytecode_cf *cf)
bc->bytecode[id++] = S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(cf->output.gpr) |
S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(cf->output.elem_size) |
S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(cf->output.array_base) |
- S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(cf->output.type);
+ S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(cf->output.type) |
+ S_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(cf->output.index_gpr);
bc->bytecode[id] = S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(cf->output.burst_count - 1) |
S_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(cf->barrier) |
S_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(opcode) |