Mesa (master): i965: don't spawn GS thread for LINELOOP on Sandybridge

Zhenyu Wang zhen at kemper.freedesktop.org
Mon Dec 27 09:06:23 UTC 2010


Module: Mesa
Branch: master
Commit: b832ae8a4a77563c50a6e82c49b4732f6a0dbf11
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b832ae8a4a77563c50a6e82c49b4732f6a0dbf11

Author: Xiang, Haihao <haihao.xiang at intel.com>
Date:   Mon Dec 27 16:39:08 2010 +0800

i965: don't spawn GS thread for LINELOOP on Sandybridge

LINELOOP is converted to LINESTRIP at the beginning of the 3D pipeline.
This fixes https://bugs.freedesktop.org/show_bug.cgi?id=32596

---

 src/mesa/drivers/dri/i965/brw_gs.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c
index 73b41fd..70c451d 100644
--- a/src/mesa/drivers/dri/i965/brw_gs.c
+++ b/src/mesa/drivers/dri/i965/brw_gs.c
@@ -96,6 +96,9 @@ static void compile_gs_prog( struct brw_context *brw,
       brw_gs_quad_strip( &c, key );
       break;
    case GL_LINE_LOOP:
+      /* Gen6: LINELOOP is converted to LINESTRIP at the beginning of the 3D pipeline */
+      if (intel->gen == 6)
+          return;
       brw_gs_lines( &c );
       break;
    case GL_LINES:
@@ -189,7 +192,7 @@ static void populate_key( struct brw_context *brw,
    }
 
    if (intel->gen == 6)
-       prim_gs_always = brw->primitive == GL_LINE_LOOP;
+       prim_gs_always = 0;
    else
        prim_gs_always = brw->primitive == GL_QUADS ||
 			brw->primitive == GL_QUAD_STRIP ||




More information about the mesa-commit mailing list