"Ian Romanick" <i...@freedesktop.org> writes:

> From: Ian Romanick <ian.d.roman...@intel.com>
>
> Core Mesa already does the dispatch offset remapping for every
> function that could possibly ever be supported.  There's no need to
> continue using that cruft in the driver.
>
> Since the call to _mesa_enable_imaging_extensions (via
> driInitExtensions) is removed, EXT_blend_color, EXT_blend_logic_op,
> EXT_blend_minmax, and EXT_blend_subtract are explicitly added to the
> list.
>
> Cc: Ben Skeggs <bske...@redhat.com>
> Cc: Francisco Jerez <curroje...@riseup.net>
> Cc: Viktor Novotný <novik...@seznam.cz>

Reviewed-by: Francisco Jerez <curroje...@riseup.net>

> ---
>  src/mesa/drivers/dri/nouveau/nouveau_context.c |   44 ++++++++++-------------
>  src/mesa/drivers/dri/nouveau/nv10_context.c    |   14 +++-----
>  src/mesa/drivers/dri/nouveau/nv20_context.c    |   14 +++-----
>  3 files changed, 29 insertions(+), 43 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.c 
> b/src/mesa/drivers/dri/nouveau/nouveau_context.c
> index 22b9957..1c35578 100644
> --- a/src/mesa/drivers/dri/nouveau/nouveau_context.c
> +++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c
> @@ -24,6 +24,7 @@
>   *
>   */
>  
> +#include <stdbool.h>
>  #include "nouveau_driver.h"
>  #include "nouveau_context.h"
>  #include "nouveau_bufferobj.h"
> @@ -41,30 +42,6 @@
>  #include "tnl/tnl.h"
>  #include "tnl/t_context.h"
>  
> -#define need_GL_EXT_framebuffer_object
> -#define need_GL_EXT_fog_coord
> -#define need_GL_EXT_secondary_color
> -
> -#include "main/remap_helper.h"
> -
> -static const struct dri_extension nouveau_extensions[] = {
> -     { "GL_ARB_multitexture",        NULL },
> -     { "GL_ARB_texture_env_add",     NULL },
> -     { "GL_ARB_texture_mirrored_repeat", NULL },
> -     { "GL_EXT_fog_coord",           GL_EXT_fog_coord_functions },
> -     { "GL_EXT_framebuffer_blit",    NULL },
> -     { "GL_EXT_framebuffer_object",  GL_EXT_framebuffer_object_functions },
> -     { "GL_EXT_packed_depth_stencil", NULL},
> -     { "GL_EXT_secondary_color",     GL_EXT_secondary_color_functions },
> -     { "GL_EXT_stencil_wrap",        NULL },
> -     { "GL_EXT_texture_env_combine", NULL },
> -     { "GL_EXT_texture_filter_anisotropic", NULL },
> -     { "GL_EXT_texture_lod_bias",    NULL },
> -     { "GL_NV_blend_square",         NULL },
> -     { "GL_NV_texture_env_combine4", NULL },
> -     { NULL,                         NULL }
> -};
> -
>  static void
>  nouveau_channel_flush_notify(struct nouveau_channel *chan)
>  {
> @@ -140,7 +117,24 @@ nouveau_context_init(struct gl_context *ctx, struct 
> nouveau_screen *screen,
>       nctx->hw.chan->user_private = nctx;
>  
>       /* Enable any supported extensions. */
> -     driInitExtensions(ctx, nouveau_extensions, GL_TRUE);
> +     ctx->Extensions.ARB_multitexture = true;
> +     ctx->Extensions.ARB_texture_mirrored_repeat = true;
> +     ctx->Extensions.EXT_blend_color = true;
> +     ctx->Extensions.EXT_blend_logic_op = true;
> +     ctx->Extensions.EXT_blend_minmax = true;
> +     ctx->Extensions.EXT_blend_subtract = true;
> +     ctx->Extensions.EXT_fog_coord = true;
> +     ctx->Extensions.EXT_framebuffer_blit = true;
> +     ctx->Extensions.EXT_framebuffer_object = true;
> +     ctx->Extensions.EXT_packed_depth_stencil = true;
> +     ctx->Extensions.EXT_secondary_color = true;
> +     ctx->Extensions.EXT_stencil_wrap = true;
> +     ctx->Extensions.EXT_texture_env_add = true;
> +     ctx->Extensions.EXT_texture_env_combine = true;
> +     ctx->Extensions.EXT_texture_filter_anisotropic = true;
> +     ctx->Extensions.EXT_texture_lod_bias = true;
> +     ctx->Extensions.NV_blend_square = true;
> +     ctx->Extensions.NV_texture_env_combine4 = true;
>  
>       return GL_TRUE;
>  }
> diff --git a/src/mesa/drivers/dri/nouveau/nv10_context.c 
> b/src/mesa/drivers/dri/nouveau/nv10_context.c
> index 8074b4b..da0ef2b 100644
> --- a/src/mesa/drivers/dri/nouveau/nv10_context.c
> +++ b/src/mesa/drivers/dri/nouveau/nv10_context.c
> @@ -24,6 +24,7 @@
>   *
>   */
>  
> +#include <stdbool.h>
>  #include "main/state.h"
>  #include "nouveau_driver.h"
>  #include "nouveau_context.h"
> @@ -34,14 +35,6 @@
>  #include "nv04_driver.h"
>  #include "nv10_driver.h"
>  
> -static const struct dri_extension nv10_extensions[] = {
> -     { "GL_ARB_texture_env_crossbar", NULL },
> -     { "GL_EXT_texture_rectangle",   NULL },
> -     { "GL_ARB_texture_env_combine", NULL },
> -     { "GL_ARB_texture_env_dot3",    NULL },
> -     { NULL,                         NULL }
> -};
> -
>  static GLboolean
>  use_fast_zclear(struct gl_context *ctx, GLbitfield buffers)
>  {
> @@ -439,7 +432,10 @@ nv10_context_create(struct nouveau_screen *screen, const 
> struct gl_config *visua
>       if (!nouveau_context_init(ctx, screen, visual, share_ctx))
>               goto fail;
>  
> -     driInitExtensions(ctx, nv10_extensions, GL_FALSE);
> +     ctx->Extensions.ARB_texture_env_crossbar = true;
> +     ctx->Extensions.ARB_texture_env_combine = true;
> +     ctx->Extensions.ARB_texture_env_dot3 = true;
> +     ctx->Extensions.NV_texture_rectangle = true;
>  
>       /* GL constants. */
>       ctx->Const.MaxTextureLevels = 12;
> diff --git a/src/mesa/drivers/dri/nouveau/nv20_context.c 
> b/src/mesa/drivers/dri/nouveau/nv20_context.c
> index e0483b2..2766851 100644
> --- a/src/mesa/drivers/dri/nouveau/nv20_context.c
> +++ b/src/mesa/drivers/dri/nouveau/nv20_context.c
> @@ -24,6 +24,7 @@
>   *
>   */
>  
> +#include <stdbool.h>
>  #include "nouveau_driver.h"
>  #include "nouveau_context.h"
>  #include "nouveau_fbo.h"
> @@ -34,14 +35,6 @@
>  #include "nv10_driver.h"
>  #include "nv20_driver.h"
>  
> -static const struct dri_extension nv20_extensions[] = {
> -     { "GL_ARB_texture_env_crossbar", NULL },
> -     { "GL_EXT_texture_rectangle",   NULL },
> -     { "GL_ARB_texture_env_combine", NULL },
> -     { "GL_ARB_texture_env_dot3",    NULL },
> -     { NULL,                         NULL }
> -};
> -
>  static void
>  nv20_clear(struct gl_context *ctx, GLbitfield buffers)
>  {
> @@ -453,7 +446,10 @@ nv20_context_create(struct nouveau_screen *screen, const 
> struct gl_config *visua
>       if (!nouveau_context_init(ctx, screen, visual, share_ctx))
>               goto fail;
>  
> -     driInitExtensions(ctx, nv20_extensions, GL_FALSE);
> +     ctx->Extensions.ARB_texture_env_crossbar = true;
> +     ctx->Extensions.ARB_texture_env_combine = true;
> +     ctx->Extensions.ARB_texture_env_dot3 = true;
> +     ctx->Extensions.NV_texture_rectangle = true;
>  
>       /* GL constants. */
>       ctx->Const.MaxTextureCoordUnits = NV20_TEXTURE_UNITS;

Attachment: pgpw0YH03t4GH.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to