summaryrefslogtreecommitdiff
path: root/src/sna/gen4_render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-12-31 17:30:40 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-12-31 17:51:00 +0000
commit48a5797c0f227204d0723de0ef34b046964c571e (patch)
tree82706160f8f07575fa305eda9f26a4261bd6ae8b /src/sna/gen4_render.c
parente4f6ba6b47c41645a40e314f14047ba0b5f93a01 (diff)
sna/gen4: Tweak single-thread SF w/a for solids
Allow multiple threads for the rare case of compositing with a solid color. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/gen4_render.c')
-rw-r--r--src/sna/gen4_render.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 3486e086..5b137f0f 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -1997,7 +1997,6 @@ gen4_render_composite(struct sna *sna,
tmp->is_affine = tmp->src.is_affine;
tmp->has_component_alpha = false;
tmp->need_magic_ca_pass = false;
- tmp->u.gen4.sf = 0;
if (mask) {
if (mask->componentAlpha && PICT_FORMAT_RGB(mask->format)) {
@@ -2046,9 +2045,10 @@ gen4_render_composite(struct sna *sna,
}
gen4_choose_composite_emitter(tmp);
- if (tmp->mask.bo == NULL && tmp->src.transform == NULL)
- /* XXX using more then one thread causes corruption? */
- tmp->u.gen4.sf = 1;
+ /* XXX using more then one thread causes corruption? */
+ tmp->u.gen4.sf = (tmp->mask.bo == NULL &&
+ tmp->src.transform == NULL &&
+ !tmp->src.is_solid);
tmp->u.gen4.wm_kernel =
gen4_choose_composite_kernel(tmp->op,