xf86-video-intel: 2 commits - src/sna/gen3_render.c src/sna/sna_display.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Nov 4 18:03:35 PDT 2011
src/sna/gen3_render.c | 36 +++++++++++++-----------------------
src/sna/sna_display.c | 4 ++--
2 files changed, 15 insertions(+), 25 deletions(-)
New commits:
commit c25cf434d81ac1b4da29c9c75ca1d7c28be71d04
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Nov 5 01:04:54 2011 +0000
sna/gen3: Initiailse the op for fill_boxes()
After removing the memset(0), a couple of fields where left
uninitialised, causing potential rendering glitches.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index c326364..01007e9 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -870,7 +870,10 @@ gen3_composite_emit_shader(struct sna *sna,
gen3_fs_mov(FS_OC, gen3_fs_operand_zero());
goto done;
case SHADER_BLACK:
- gen3_fs_mov(FS_OC, gen3_fs_operand(FS_R0, ZERO, ZERO, ZERO, ONE));
+ if (dst_is_alpha)
+ gen3_fs_mov(FS_OC, gen3_fs_operand_one());
+ else
+ gen3_fs_mov(FS_OC, gen3_fs_operand(FS_R0, ZERO, ZERO, ZERO, ONE));
goto done;
case SHADER_WHITE:
gen3_fs_mov(FS_OC, gen3_fs_operand_one());
@@ -1844,8 +1847,11 @@ gen3_init_solid(struct sna_composite_channel *channel, uint32_t color)
channel->u.gen3.type = SHADER_BLACK;
else if (color == 0xffffffff)
channel->u.gen3.type = SHADER_WHITE;
- if ((color & 0xff000000) == 0xff000000)
- channel->is_opaque = true;
+
+ channel->is_opaque = (color & 0xff000000) == 0xff000000;
+ channel->is_affine = 1;
+ channel->alpha_fixup = 0;
+ channel->rb_reversed = 0;
/* for consistency */
channel->repeat = RepeatNormal;
@@ -3673,23 +3679,6 @@ static inline Bool prefer_fill_blt(struct sna *sna)
#endif
}
-static inline void set_fill_shader(struct sna_composite_channel *c,
- uint32_t pixel)
-{
- if (pixel == 0)
- c->u.gen3.type = SHADER_ZERO;
- else if (pixel == 0xff000000)
- c->u.gen3.type = SHADER_BLACK;
- else if (pixel == 0xffffffff)
- c->u.gen3.type = SHADER_WHITE;
- else
- c->u.gen3.type = SHADER_CONSTANT;
- c->u.gen3.mode = pixel;
- c->is_affine = 1;
- c->alpha_fixup = 0;
- c->rb_reversed = 0;
-}
-
static Bool
gen3_render_fill_boxes(struct sna *sna,
CARD8 op,
@@ -3754,8 +3743,9 @@ gen3_render_fill_boxes(struct sna *sna,
tmp.floats_per_vertex = 2;
tmp.floats_per_rect = 6;
tmp.rb_reversed = 0;
+ tmp.has_component_alpha = 0;
- set_fill_shader(&tmp.src, pixel);
+ gen3_init_solid(&tmp.src, pixel);
tmp.mask.u.gen3.type = SHADER_NONE;
tmp.u.gen3.num_constants = 0;
@@ -3908,7 +3898,7 @@ gen3_render_fill(struct sna *sna, uint8_t alu,
tmp->base.has_component_alpha = 0;
tmp->base.rb_reversed = 0;
- set_fill_shader(&tmp->base.src,
+ gen3_init_solid(&tmp->base.src,
sna_rgba_for_color(color, dst->drawable.depth));
tmp->base.mask.u.gen3.type = SHADER_NONE;
tmp->base.u.gen3.num_constants = 0;
@@ -3986,7 +3976,7 @@ gen3_render_fill_one(struct sna *sna, PixmapPtr dst, struct kgem_bo *bo,
tmp.has_component_alpha = 0;
tmp.rb_reversed = 0;
- set_fill_shader(&tmp.src,
+ gen3_init_solid(&tmp.src,
sna_rgba_for_color(color, dst->drawable.depth));
tmp.mask.u.gen3.type = SHADER_NONE;
tmp.u.gen3.num_constants = 0;
commit 96e760ea7589cbe953bd0a6f2f41980a7f1c4795
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Nov 5 01:04:24 2011 +0000
sna: s/flush/vblank/ fixes for DBG()
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 66f9667..d44d6f8 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -602,8 +602,8 @@ static void update_flush_interval(struct sna *sna)
max_vrefresh = 40;
sna->vblank_interval = 1000 * 1000 * 1000 / max_vrefresh; /* Hz -> ns */
- DBG(("max_vrefresh=%d, flush_interval=%d ns\n",
- max_vrefresh, sna->flush_interval));
+ DBG(("max_vrefresh=%d, vblank_interval=%d ns\n",
+ max_vrefresh, sna->vblank_interval));
}
static Bool
More information about the xorg-commit
mailing list