i965: Implement GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN with non-zero streams.
authorIago Toral Quiroga <itoral@igalia.com>
Tue, 10 Jun 2014 11:29:40 +0000 (13:29 +0200)
committerIago Toral Quiroga <itoral@igalia.com>
Mon, 30 Jun 2014 06:08:50 +0000 (08:08 +0200)
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/mesa/drivers/dri/i965/gen6_queryobj.c

index 06ac64592507df6b2f66b5cf5a3f13e0065fac19..0cb64ca684351afbfe428f6232d495e38a228d4e 100644 (file)
@@ -93,12 +93,12 @@ write_primitives_generated(struct brw_context *brw,
 
 static void
 write_xfb_primitives_written(struct brw_context *brw,
-                             drm_intel_bo *bo, int idx)
+                             drm_intel_bo *bo, int stream, int idx)
 {
    intel_batchbuffer_emit_mi_flush(brw);
 
    if (brw->gen >= 7) {
-      brw_store_register_mem64(brw, bo, GEN7_SO_NUM_PRIMS_WRITTEN(0), idx);
+      brw_store_register_mem64(brw, bo, GEN7_SO_NUM_PRIMS_WRITTEN(stream), idx);
    } else {
       brw_store_register_mem64(brw, bo, GEN6_SO_NUM_PRIMS_WRITTEN, idx);
    }
@@ -244,7 +244,7 @@ gen6_begin_query(struct gl_context *ctx, struct gl_query_object *q)
       break;
 
    case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
-      write_xfb_primitives_written(brw, query->bo, 0);
+      write_xfb_primitives_written(brw, query->bo, query->Base.Stream, 0);
       break;
 
    default:
@@ -283,7 +283,7 @@ gen6_end_query(struct gl_context *ctx, struct gl_query_object *q)
       break;
 
    case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
-      write_xfb_primitives_written(brw, query->bo, 1);
+      write_xfb_primitives_written(brw, query->bo, query->Base.Stream, 1);
       break;
 
    default: