xf86-video-intel: src/sna/gen2_render.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Oct 3 15:45:25 PDT 2012


 src/sna/gen2_render.c |   29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

New commits:
commit 83b8669abc7415202f9e0c764de675ffbcf45dac
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Oct 3 23:45:28 2012 +0100

    sna/gen2: Setup invariant blend arguments
    
    I thought these were completely specified via the LOAD_STATE_IMMEDIATE
    commands we used whilst seting up the render pipeline. I was wrong.
    
    Reported-by: Timo Kamph <timo at kamph.org>
    References: https://bugs.freedesktop.org/show_bug.cgi?id=55455
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index d7980d4..cf3088b 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -505,6 +505,31 @@ static void gen2_emit_invariant(struct sna *sna)
 
 	BATCH(_3DSTATE_STIPPLE);
 
+	BATCH(_3DSTATE_MAP_BLEND_OP_CMD(0) |
+	      TEXPIPE_COLOR |
+	      ENABLE_TEXOUTPUT_WRT_SEL |
+	      TEXOP_OUTPUT_CURRENT |
+	      DISABLE_TEX_CNTRL_STAGE |
+	      TEXOP_SCALE_1X |
+	      TEXOP_MODIFY_PARMS | TEXOP_LAST_STAGE |
+	      TEXBLENDOP_ARG1);
+	BATCH(_3DSTATE_MAP_BLEND_OP_CMD(0) |
+	      TEXPIPE_ALPHA |
+	      ENABLE_TEXOUTPUT_WRT_SEL |
+	      TEXOP_OUTPUT_CURRENT |
+	      TEXOP_SCALE_1X | TEXOP_MODIFY_PARMS |
+	      TEXBLENDOP_ARG1);
+	BATCH(_3DSTATE_MAP_BLEND_ARG_CMD(0) |
+	      TEXPIPE_COLOR |
+	      TEXBLEND_ARG1 |
+	      TEXBLENDARG_MODIFY_PARMS |
+	      TEXBLENDARG_DIFFUSE);
+	BATCH(_3DSTATE_MAP_BLEND_ARG_CMD(0) |
+	      TEXPIPE_ALPHA |
+	      TEXBLEND_ARG1 |
+	      TEXBLENDARG_MODIFY_PARMS |
+	      TEXBLENDARG_DIFFUSE);
+
 	sna->render_state.gen2.need_invariant = false;
 }
 
@@ -513,9 +538,9 @@ gen2_get_batch(struct sna *sna)
 {
 	kgem_set_mode(&sna->kgem, KGEM_RENDER);
 
-	if (!kgem_check_batch(&sna->kgem, 30+40)) {
+	if (!kgem_check_batch(&sna->kgem, 40+40)) {
 		DBG(("%s: flushing batch: size %d > %d\n",
-		     __FUNCTION__, 30+40,
+		     __FUNCTION__, 40+40,
 		     sna->kgem.surface-sna->kgem.nbatch));
 		kgem_submit(&sna->kgem);
 		_kgem_set_mode(&sna->kgem, KGEM_RENDER);


More information about the xorg-commit mailing list