aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2013-01-18 11:11:10 -0800
committerKenneth Graunke <[email protected]>2013-01-22 15:41:30 -0800
commitcdd3f5496ad2d6a252bd7ad78f5034db549d4921 (patch)
tree14464b5fa29a719a2ce69012bf99258bd349fb35
parent0d108116bd80b757fb01a84a9f1946ef870b57b8 (diff)
i965: Implement the GL_ARB_base_instance extension.
Thanks to Fredrik Höglund, all the hard work was already done. Tested using a modified oglconform (that actually runs these tests on our driver); it looks like there may be some bugs when using client arrays. All applicable non-compatibility tests passed. For now, only enable it in core profiles. Reviewed-by: Eric Anholt <[email protected]> Tested-by: Ian Romanick <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_draw.c4
-rwxr-xr-xsrc/mesa/drivers/dri/intel/intel_extensions.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c
index faa29d124fc..2c2b826d196 100644
--- a/src/mesa/drivers/dri/i965/brw_draw.c
+++ b/src/mesa/drivers/dri/i965/brw_draw.c
@@ -193,7 +193,7 @@ static void brw_emit_prim(struct brw_context *brw,
OUT_BATCH(verts_per_instance);
OUT_BATCH(start_vertex_location);
OUT_BATCH(prim->num_instances);
- OUT_BATCH(0); // start instance location
+ OUT_BATCH(prim->base_instance);
OUT_BATCH(base_vertex_location);
ADVANCE_BATCH();
@@ -249,7 +249,7 @@ static void gen7_emit_prim(struct brw_context *brw,
OUT_BATCH(verts_per_instance);
OUT_BATCH(start_vertex_location);
OUT_BATCH(prim->num_instances);
- OUT_BATCH(0); // start instance location
+ OUT_BATCH(prim->base_instance);
OUT_BATCH(base_vertex_location);
ADVANCE_BATCH();
diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index 4e7b5da7acc..e237e022f26 100755
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -120,6 +120,8 @@ intelInitExtensions(struct gl_context *ctx)
}
if (intel->gen >= 4) {
+ if (ctx->API == API_OPENGL_CORE)
+ ctx->Extensions.ARB_base_instance = true;
ctx->Extensions.ARB_color_buffer_float = true;
ctx->Extensions.ARB_depth_buffer_float = true;
ctx->Extensions.ARB_depth_clamp = true;