OSDN Git Service

BDW+: disable SGVS
authorJoe Konno <joe.konno@intel.com>
Tue, 13 Jan 2015 22:29:21 +0000 (15:29 -0700)
committerZhao, Yakui <yakui.zhao@intel.com>
Wed, 14 Jan 2015 03:03:37 +0000 (11:03 +0800)
BDW introduces separate packets for controlling instancing and system
generated values (eg vertex id and instance id).  We don't use
instancing, but still need to disable sgvs to avoid undefined behaviour
when some other driver (mesa) uses it.

Signed-off-by: Joe Konno <joe.konno@intel.com>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Daniel Charles <daniel.charles@intel.com>
(cherry picked from commit 4caa37b895d39af754e2b2307879752130731f56)

src/gen8_render.c
src/gen9_render.c
src/i965_defines.h

index 8a8012d..c01d269 100644 (file)
@@ -1001,6 +1001,10 @@ gen8_emit_vertex_element_state(VADriverContextP ctx)
        OUT_BATCH(batch, i);
        OUT_BATCH(batch, 0);
     }
+
+    /* Disable system-generated values. */
+    OUT_BATCH(batch, GEN8_3DSTATE_VF_SGVS | (2 - 2));
+    OUT_BATCH(batch, 0);
 }
 
 static void
index 8823d33..ee7a4db 100644 (file)
@@ -936,6 +936,9 @@ gen9_emit_vertices(VADriverContextP ctx)
     OUT_BATCH(batch, 0);
     OUT_BATCH(batch, 0);
 
+    OUT_BATCH(batch, GEN8_3DSTATE_VF_SGVS | (2 - 2));
+    OUT_BATCH(batch, 0);
+
     BEGIN_BATCH(batch, 7);
     OUT_BATCH(batch, CMD_3DPRIMITIVE | (7 - 2));
     OUT_BATCH(batch,
index 949037e..aa5058f 100755 (executable)
 #define _3DPRIM_LINESTRIP_CONT_BF 0x14
 #define _3DPRIM_TRIFAN_NOSTIPPLE  0x15
 
+#define GEN8_3DSTATE_VF_INSTANCING     CMD(3, 0, 0x49)
+#define GEN8_3DSTATE_VF_SGVS           CMD(3, 0, 0x4a)
 #define GEN8_3DSTATE_VF_TOPOLOGY       CMD(3, 0, 0x4b)
 
 #define I965_TILEWALK_XMAJOR                 0