diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-29 20:03:37 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-29 20:10:28 +0100 |
commit | 17ba07a7befc7f442ae1c917a087ac026516d886 (patch) | |
tree | 763927bce4925a4c942664c0b7f026da9450e558 | |
parent | 4835fe5b2e19ac456773565399f334845f7442c0 (diff) |
sna/gen3: Set the src flags for fill
A regression from c2040fb8e62076d87f7a5b407505ee3f3482945e (sna: Remove
the memset(0) of the fill op) left the flags for the source channel
uninitalised leaving the shader construction undefined and causing
visual glitches.
Reported-by: Paul Neumann <paul104x@yahoo.de>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42367
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/gen3_render.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c index a581c8a2..efd5d7a2 100644 --- a/src/sna/gen3_render.c +++ b/src/sna/gen3_render.c @@ -3738,9 +3738,13 @@ gen3_render_fill_boxes(struct sna *sna, tmp.dst.bo = dst_bo; tmp.floats_per_vertex = 2; tmp.floats_per_rect = 6; + tmp.rb_reversed = 0; tmp.src.u.gen3.type = op == PictOpClear ? SHADER_ZERO : SHADER_CONSTANT; tmp.src.u.gen3.mode = pixel; + tmp.src.is_affine = 0; + tmp.src.alpha_fixup = 0; + tmp.src.rb_reversed = 0; tmp.mask.u.gen3.type = SHADER_NONE; tmp.u.gen3.num_constants = 0; @@ -3891,10 +3895,14 @@ gen3_render_fill(struct sna *sna, uint8_t alu, tmp->base.floats_per_rect = 6; tmp->base.need_magic_ca_pass = 0; tmp->base.has_component_alpha = 0; + tmp->base.rb_reversed = 0; tmp->base.src.u.gen3.type = SHADER_CONSTANT; tmp->base.src.u.gen3.mode = sna_rgba_for_color(color, dst->drawable.depth); + tmp->base.src.is_affine = 0; + tmp->base.src.alpha_fixup = 0; + tmp->base.src.rb_reversed = 0; tmp->base.mask.u.gen3.type = SHADER_NONE; tmp->base.u.gen3.num_constants = 0; @@ -3967,6 +3975,9 @@ gen3_render_fill_one(struct sna *sna, PixmapPtr dst, struct kgem_bo *bo, tmp.dst.bo = bo; tmp.floats_per_vertex = 2; tmp.floats_per_rect = 6; + tmp.need_magic_ca_pass = 0; + tmp.has_component_alpha = 0; + tmp.rb_reversed = 0; color = sna_rgba_for_color(color, dst->drawable.depth); if (color == 0) @@ -3978,6 +3989,9 @@ gen3_render_fill_one(struct sna *sna, PixmapPtr dst, struct kgem_bo *bo, else tmp.src.u.gen3.type = SHADER_CONSTANT; tmp.src.u.gen3.mode = color; + tmp.src.is_affine = 0; + tmp.src.alpha_fixup = 0; + tmp.src.rb_reversed = 0; tmp.mask.u.gen3.type = SHADER_NONE; tmp.u.gen3.num_constants = 0; |