On Tue, Jan 10, 2012 at 12:49 PM, Dave Airlie <airl...@gmail.com> wrote: > From: Dave Airlie <airl...@redhat.com> > > This just fixes up the enables for native integers and EXT_texture_integer > support in st/mesa. > > It also set the MaxClipPlanes to 8. > > We should consider exposing caps for MCP vs MCD, but since core > mesa doesn't care yet maybe we can wait for now. > > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/mesa/state_tracker/st_extensions.c | 31 +++++++++++++++++++++++++------ > 1 files changed, 25 insertions(+), 6 deletions(-) > > diff --git a/src/mesa/state_tracker/st_extensions.c > b/src/mesa/state_tracker/st_extensions.c > index a9d4054..d583c88 100644 > --- a/src/mesa/state_tracker/st_extensions.c > +++ b/src/mesa/state_tracker/st_extensions.c > @@ -263,12 +263,6 @@ void st_init_extensions(struct st_context *st) > ctx->Const.GLSLVersion = 120; > _mesa_override_glsl_version(st->ctx); > > - /* Extensions that only depend on the GLSL version: > - */ > - if (ctx->Const.GLSLVersion >= 130) { > - ctx->Extensions.ARB_conservative_depth = GL_TRUE; > - } > - > /* > * Extensions that are supported by all Gallium drivers: > */ > @@ -587,6 +581,23 @@ void st_init_extensions(struct st_context *st) > #endif > } > > + if (screen->get_shader_param(screen, PIPE_SHADER_VERTEX, > + PIPE_SHADER_CAP_INTEGERS) && > + screen->get_shader_param(screen, PIPE_SHADER_FRAGMENT, > + PIPE_SHADER_CAP_INTEGERS)) { > + ctx->Const.NativeIntegers = GL_TRUE; > + } > + > + if (ctx->Const.NativeIntegers) > + ctx->Const.GLSLVersion = 130; > + > + /* Extensions that only depend on the GLSL version: > + */ > + if (ctx->Const.GLSLVersion >= 130) { > + ctx->Extensions.ARB_conservative_depth = GL_TRUE; > + ctx->Const.MaxClipPlanes = 8; > + } > + > ctx->Extensions.NV_primitive_restart = GL_TRUE; > if (!screen->get_param(screen, PIPE_CAP_PRIMITIVE_RESTART)) { > st->sw_primitive_restart = GL_TRUE; > @@ -703,4 +714,12 @@ void st_init_extensions(struct st_context *st) > ctx->Extensions.ARB_transform_feedback2 = GL_TRUE; > } > } > + > + if (ctx->Const.NativeIntegers && > + screen->is_format_supported(screen, PIPE_FORMAT_R8G8B8A8_UINT, > PIPE_TEXTURE_2D, 0, > + PIPE_BIND_SAMPLER_VIEW | > PIPE_BIND_RENDER_TARGET) && > + screen->is_format_supported(screen, PIPE_FORMAT_R8G8B8A8_SINT, > PIPE_TEXTURE_2D, 0, > + PIPE_BIND_SAMPLER_VIEW | > PIPE_BIND_RENDER_TARGET)) > + ctx->Extensions.EXT_texture_integer = GL_TRUE;
I think it would be better to require 32_32_32_32, because it may not be correct to fallback into a lower-precision format. (imagine somebody creates GL_RGBA32UI and wants to store 0x8000000 in it) Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev