summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2014-01-25 13:02:08 -0800
committerJordan Justen <jordan.l.justen@intel.com>2014-02-20 10:33:09 -0800
commit741782b5948bb3d01d699f062a37513c2e73b076 (patch)
tree0df03728e9f220ae339822654b215c6989b17d2d /src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
parent008338bc4e2d9cc5931b9968d019619c09392389 (diff)
downloadexternal_mesa3d-741782b5948bb3d01d699f062a37513c2e73b076.zip
external_mesa3d-741782b5948bb3d01d699f062a37513c2e73b076.tar.gz
external_mesa3d-741782b5948bb3d01d699f062a37513c2e73b076.tar.bz2
i965: support instanced GS on gen7
v3: * Properly prevent dual object mode execution when the invocation count > 1 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Paul Berry <stereotype441@gmail.com> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
index 1d00796..0a2d8ff 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_gs_visitor.cpp
@@ -595,9 +595,11 @@ brw_gs_emit(struct brw_context *brw,
}
/* Compile the geometry shader in DUAL_OBJECT dispatch mode, if we can do
- * so without spilling.
+ * so without spilling. If the GS invocations count > 1, then we can't use
+ * dual object mode.
*/
- if (likely(!(INTEL_DEBUG & DEBUG_NO_DUAL_OBJECT_GS))) {
+ if (c->prog_data.invocations <= 1 &&
+ likely(!(INTEL_DEBUG & DEBUG_NO_DUAL_OBJECT_GS))) {
c->prog_data.dual_instanced_dispatch = false;
vec4_gs_visitor v(brw, c, prog, shader, mem_ctx, true /* no_spills */);