mesa: consolidate definitions of max texture image units
authorMarek Olšák <maraeo@gmail.com>
Wed, 1 May 2013 23:22:48 +0000 (01:22 +0200)
committerMarek Olšák <maraeo@gmail.com>
Sat, 11 May 2013 21:44:55 +0000 (23:44 +0200)
Shaders are unified on most hardware (= same limits in all stages).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/config.h
src/mesa/main/context.c
src/mesa/state_tracker/st_extensions.c

index 33b5ab057d9ba35a2871718efa05fe101f6ca463..76863bf75b4b1655907dca7e9829a7a7c26ee630 100644 (file)
 /** For GL_ARB_vertex_shader */
 /*@{*/
 #define MAX_VERTEX_GENERIC_ATTRIBS 16
-#define MAX_VERTEX_TEXTURE_IMAGE_UNITS MAX_TEXTURE_IMAGE_UNITS
-#define MAX_COMBINED_TEXTURE_IMAGE_UNITS (MAX_VERTEX_TEXTURE_IMAGE_UNITS + \
-                                         MAX_TEXTURE_IMAGE_UNITS)
+/* 6 is for vertex, hull, domain, geometry, fragment, and compute shader. */
+#define MAX_COMBINED_TEXTURE_IMAGE_UNITS (MAX_TEXTURE_IMAGE_UNITS * 6)
 /*@}*/
 
 
 
 /** For GL_ARB_geometry_shader4 */
 /*@{*/
-#define MAX_GEOMETRY_TEXTURE_IMAGE_UNITS             8
 #define MAX_GEOMETRY_VARYING_COMPONENTS              32
 #define MAX_VERTEX_VARYING_COMPONENTS                32
 #define MAX_GEOMETRY_UNIFORM_COMPONENTS              512
index 2c05f6dc920c2d84667fc625ded51baca5f6592b..2cc8f36c53b407c7a831a9095de9b9f57b31c1b0 100644 (file)
@@ -601,10 +601,10 @@ _mesa_init_constants(struct gl_context *ctx)
    ctx->Const.MaxColorAttachments = MAX_COLOR_ATTACHMENTS;
    ctx->Const.MaxRenderbufferSize = MAX_RENDERBUFFER_SIZE;
 
-   ctx->Const.MaxVertexTextureImageUnits = MAX_VERTEX_TEXTURE_IMAGE_UNITS;
+   ctx->Const.MaxVertexTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
    ctx->Const.MaxCombinedTextureImageUnits = MAX_COMBINED_TEXTURE_IMAGE_UNITS;
    ctx->Const.MaxVarying = 16; /* old limit not to break tnl and swrast */
-   ctx->Const.MaxGeometryTextureImageUnits = MAX_GEOMETRY_TEXTURE_IMAGE_UNITS;
+   ctx->Const.MaxGeometryTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
    ctx->Const.MaxVertexVaryingComponents = MAX_VERTEX_VARYING_COMPONENTS;
    ctx->Const.MaxGeometryVaryingComponents = MAX_GEOMETRY_VARYING_COMPONENTS;
    ctx->Const.MaxGeometryOutputVertices = MAX_GEOMETRY_OUTPUT_VERTICES;
@@ -676,8 +676,6 @@ check_context_limits(struct gl_context *ctx)
    assert(VARYING_SLOT_MAX <=
          (8 * sizeof(ctx->FragmentProgram._Current->Base.InputsRead)));
 
-   assert(MAX_COMBINED_TEXTURE_IMAGE_UNITS <= 8 * sizeof(GLbitfield));
-
    /* shader-related checks */
    assert(ctx->Const.FragmentProgram.MaxLocalParams <= MAX_PROGRAM_LOCAL_PARAMS);
    assert(ctx->Const.VertexProgram.MaxLocalParams <= MAX_PROGRAM_LOCAL_PARAMS);
index 662645b371620d8ad00aaa357a5ef3a21860f41b..a72728c1a824008bcf38ba3b8aa8a7fc0d1bba94 100644 (file)
@@ -98,7 +98,7 @@ void st_init_limits(struct st_context *st)
    c->MaxVertexTextureImageUnits
       = _min(screen->get_shader_param(screen, PIPE_SHADER_VERTEX,
                                       PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS),
-             MAX_VERTEX_TEXTURE_IMAGE_UNITS);
+             MAX_TEXTURE_IMAGE_UNITS);
 
    c->MaxCombinedTextureImageUnits
       = _min(screen->get_param(screen, PIPE_CAP_MAX_COMBINED_SAMPLERS),