summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2014-01-29 10:36:18 +0100
committerChristian Gmeiner <christian.gmeiner@gmail.com>2014-02-08 09:24:30 +0000
commite248c02727d658843d7ea2c8c420b2589e7f1fed (patch)
tree8f6ddc7fe3a983f238293c37f98d06a26ffa6177
parent53f9e5786c00485d7bbaadedc28ca35b4f4dd9cc (diff)
pe: keep the state updates in order of address
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
-rw-r--r--src/driver/etna_pipe.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/driver/etna_pipe.c b/src/driver/etna_pipe.c
index 96acf82..5d94ee6 100644
--- a/src/driver/etna_pipe.c
+++ b/src/driver/etna_pipe.c
@@ -195,6 +195,10 @@ static void reset_context(struct pipe_context *restrict pipe)
/*01404*/ EMIT_STATE(PE_DEPTH_NEAR, PE_DEPTH_NEAR);
/*01408*/ EMIT_STATE(PE_DEPTH_FAR, PE_DEPTH_FAR);
/*0140C*/ EMIT_STATE(PE_DEPTH_NORMALIZE, PE_DEPTH_NORMALIZE);
+ if (ctx->conn->chip.pixel_pipes == 1)
+ {
+ /*01410*/ EMIT_STATE(PE_DEPTH_ADDR, PE_DEPTH_ADDR);
+ }
/*01414*/ EMIT_STATE(PE_DEPTH_STRIDE, PE_DEPTH_STRIDE);
/*01418*/ EMIT_STATE(PE_STENCIL_OP, PE_STENCIL_OP);
/*0141C*/ EMIT_STATE(PE_STENCIL_CONFIG, PE_STENCIL_CONFIG);
@@ -202,14 +206,13 @@ static void reset_context(struct pipe_context *restrict pipe)
/*01424*/ EMIT_STATE(PE_ALPHA_BLEND_COLOR, PE_ALPHA_BLEND_COLOR);
/*01428*/ EMIT_STATE(PE_ALPHA_CONFIG, PE_ALPHA_CONFIG);
/*0142C*/ EMIT_STATE(PE_COLOR_FORMAT, PE_COLOR_FORMAT);
- /*01434*/ EMIT_STATE(PE_COLOR_STRIDE, PE_COLOR_STRIDE);
- /*01454*/ EMIT_STATE(PE_HDEPTH_CONTROL, PE_HDEPTH_CONTROL);
if (ctx->conn->chip.pixel_pipes == 1)
{
/*01430*/ EMIT_STATE(PE_COLOR_ADDR, PE_COLOR_ADDR);
- /*01410*/ EMIT_STATE(PE_DEPTH_ADDR, PE_DEPTH_ADDR);
}
- else
+ /*01434*/ EMIT_STATE(PE_COLOR_STRIDE, PE_COLOR_STRIDE);
+ /*01454*/ EMIT_STATE(PE_HDEPTH_CONTROL, PE_HDEPTH_CONTROL);
+ if (ctx->conn->chip.pixel_pipes != 1)
{
for(int x=0; x<ctx->conn->chip.pixel_pipes; ++x)
{