From: Courtney Goeltzenleuchter <court...@lunarg.com> v2 (idr): Only enable the extension on GEN7+ w/core profile because it requires geometry shaders.
v3 (idr): Add some casting to fix setting of ViewportBounds.Min. Negating an unsigned value, then casting to float doesn't do what you might think it does. Signed-off-by: Courtney Goeltzenleuchter <court...@lunarg.com> Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_context.c | 11 +++++++++++ src/mesa/drivers/dri/i965/intel_extensions.c | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 51918b9..7227c58 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -474,6 +474,17 @@ brw_initialize_context_constants(struct brw_context *brw) } ctx->ShaderCompilerOptions[MESA_SHADER_VERTEX].PreferDP4 = true; + + /* ARB_viewport_array */ + if (brw->gen >= 7 && ctx->API == API_OPENGL_CORE) { + ctx->Const.MaxViewports = GEN7_NUM_VIEWPORTS; + ctx->Const.ViewportSubpixelBits = 0; + + /* Cast to float before negating becuase MaxViewportWidth is unsigned. + */ + ctx->Const.ViewportBounds.Min = -(float)ctx->Const.MaxViewportWidth; + ctx->Const.ViewportBounds.Max = ctx->Const.MaxViewportWidth; + } } /** diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c b/src/mesa/drivers/dri/i965/intel_extensions.c index f3dc823..ab73434 100644 --- a/src/mesa/drivers/dri/i965/intel_extensions.c +++ b/src/mesa/drivers/dri/i965/intel_extensions.c @@ -294,6 +294,12 @@ intelInitExtensions(struct gl_context *ctx) ctx->Extensions.ARB_transform_feedback_instanced = true; ctx->Extensions.ARB_draw_indirect = true; } + + /* Only enable this in core profile because other parts of Mesa behave + * slightly differently when the extension is enabled. + */ + if (ctx->API == API_OPENGL_CORE) + ctx->Extensions.ARB_viewport_array = true; } if (brw->gen == 5 || can_write_oacontrol(brw)) -- 1.8.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev