diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2013-11-10 16:10:06 +0000 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2013-11-10 16:10:06 +0000 |
commit | d677baccd0f746ddf1296d194bd3eb42e60459d5 (patch) | |
tree | b9b0db56ecc973be061bd8066058df614e4cbb46 | |
parent | 33d3141a288b5f30c32f3f7f0da6d6cb358ec3b4 (diff) |
rs: rework etna_submit_rs_state for gc2000
-rw-r--r-- | src/etnaviv/etna_rs.c | 66 |
1 files changed, 34 insertions, 32 deletions
diff --git a/src/etnaviv/etna_rs.c b/src/etnaviv/etna_rs.c index 873bd59..a03662a 100644 --- a/src/etnaviv/etna_rs.c +++ b/src/etnaviv/etna_rs.c @@ -126,39 +126,41 @@ void etna_submit_rs_state(struct etna_ctx *restrict ctx, const struct compiled_r } else if (ctx->conn->chip.pixel_pipes == 2) { - etna_reserve(ctx, 32); - /*0 */ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_CONFIG>>2, 5, 0); + etna_reserve(ctx, 34); + /*0 */ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_CONFIG>>2, 1, 0); /*1 */ ETNA_EMIT(ctx, cs->RS_CONFIG); - /*2 */ ETNA_EMIT(ctx, cs->RS_SOURCE_STRIDE); - /*3 */ ETNA_EMIT(ctx, cs->RS_DEST_ADDR); - /*4 */ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_PIPE_SOURCE_ADDR(0)>>2, 2, 0); - /*5 */ ETNA_EMIT(ctx, cs->RS_PIPE_SOURCE_ADDR[0]); - /*6 */ ETNA_EMIT(ctx, cs->RS_PIPE_SOURCE_ADDR[1]); - /*7 */ ETNA_EMIT(ctx, 0x00000000); /* pad */ - /*8 */ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_PIPE_DEST_ADDR(0)>>2, 2, 0); - /*9 */ ETNA_EMIT(ctx, cs->RS_PIPE_DEST_ADDR[0]); - /*10*/ ETNA_EMIT(ctx, cs->RS_PIPE_DEST_ADDR[1]); - /*11*/ ETNA_EMIT(ctx, 0x00000000); /* pad */ - /*12*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_PIPE_OFFSET(0)>>2, 2, 0); - /*13*/ ETNA_EMIT(ctx, cs->RS_PIPE_OFFSET[0]); - /*14*/ ETNA_EMIT(ctx, cs->RS_PIPE_OFFSET[1]); - /*15*/ ETNA_EMIT(ctx, 0x00000000); /* pad */ - /*16*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_WINDOW_SIZE>>2, 1, 0); - /*17*/ ETNA_EMIT(ctx, cs->RS_WINDOW_SIZE); - /*18*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_DITHER(0)>>2, 2, 0); - /*19*/ ETNA_EMIT(ctx, cs->RS_DITHER[0]); - /*20*/ ETNA_EMIT(ctx, cs->RS_DITHER[1]); - /*21*/ ETNA_EMIT(ctx, 0xbabb1e); /* pad */ - /*22*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_CLEAR_CONTROL>>2, 5, 0); - /*23*/ ETNA_EMIT(ctx, cs->RS_CLEAR_CONTROL); - /*24*/ ETNA_EMIT(ctx, cs->RS_FILL_VALUE[0]); - /*25*/ ETNA_EMIT(ctx, cs->RS_FILL_VALUE[1]); - /*26*/ ETNA_EMIT(ctx, cs->RS_FILL_VALUE[2]); - /*27*/ ETNA_EMIT(ctx, cs->RS_FILL_VALUE[3]); - /*28*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_EXTRA_CONFIG>>2, 1, 0); - /*29*/ ETNA_EMIT(ctx, cs->RS_EXTRA_CONFIG); - /*30*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_KICKER>>2, 1, 0); - /*31*/ ETNA_EMIT(ctx, 0xbeebbeeb); + /*2 */ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_SOURCE_STRIDE>>2, 1, 0); + /*3 */ ETNA_EMIT(ctx, cs->RS_SOURCE_STRIDE); + /*4 */ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_DEST_STRIDE>>2, 1, 0); + /*5 */ ETNA_EMIT(ctx, cs->RS_DEST_STRIDE); + /*6 */ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_PIPE_SOURCE_ADDR(0)>>2, 2, 0); + /*7 */ ETNA_EMIT(ctx, cs->RS_PIPE_SOURCE_ADDR[0]); + /*8 */ ETNA_EMIT(ctx, cs->RS_PIPE_SOURCE_ADDR[1]); + /*9 */ ETNA_EMIT(ctx, 0x00000000); /* pad */ + /*10*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_PIPE_DEST_ADDR(0)>>2, 2, 0); + /*11*/ ETNA_EMIT(ctx, cs->RS_PIPE_DEST_ADDR[0]); + /*12*/ ETNA_EMIT(ctx, cs->RS_PIPE_DEST_ADDR[1]); + /*13*/ ETNA_EMIT(ctx, 0x00000000); /* pad */ + /*14*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_PIPE_OFFSET(0)>>2, 2, 0); + /*15*/ ETNA_EMIT(ctx, cs->RS_PIPE_OFFSET[0]); + /*16*/ ETNA_EMIT(ctx, cs->RS_PIPE_OFFSET[1]); + /*17*/ ETNA_EMIT(ctx, 0x00000000); /* pad */ + /*18*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_WINDOW_SIZE>>2, 1, 0); + /*19*/ ETNA_EMIT(ctx, cs->RS_WINDOW_SIZE); + /*20*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_DITHER(0)>>2, 2, 0); + /*21*/ ETNA_EMIT(ctx, cs->RS_DITHER[0]); + /*22*/ ETNA_EMIT(ctx, cs->RS_DITHER[1]); + /*23*/ ETNA_EMIT(ctx, 0xbabb1e); /* pad */ + /*24*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_CLEAR_CONTROL>>2, 5, 0); + /*25*/ ETNA_EMIT(ctx, cs->RS_CLEAR_CONTROL); + /*26*/ ETNA_EMIT(ctx, cs->RS_FILL_VALUE[0]); + /*27*/ ETNA_EMIT(ctx, cs->RS_FILL_VALUE[1]); + /*28*/ ETNA_EMIT(ctx, cs->RS_FILL_VALUE[2]); + /*29*/ ETNA_EMIT(ctx, cs->RS_FILL_VALUE[3]); + /*30*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_EXTRA_CONFIG>>2, 1, 0); + /*31*/ ETNA_EMIT(ctx, cs->RS_EXTRA_CONFIG); + /*32*/ ETNA_EMIT_LOAD_STATE(ctx, VIVS_RS_KICKER>>2, 1, 0); + /*33*/ ETNA_EMIT(ctx, 0xbeebbeeb); } } |