From: Marek Olšák <marek.ol...@amd.com>

The combined limits should only include shader stages that can be active
at the same time.
---
 src/mesa/state_tracker/st_extensions.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/mesa/state_tracker/st_extensions.c 
b/src/mesa/state_tracker/st_extensions.c
index 5287dff6703..5e580aad2e4 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -315,22 +315,21 @@ void st_init_limits(struct pipe_screen *screen,
    c->LowerTessLevel = true;
    c->LowerCsDerivedVariables = true;
    c->PrimitiveRestartForPatches =
       screen->get_param(screen, PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES);
 
    c->MaxCombinedTextureImageUnits =
          _min(c->Program[MESA_SHADER_VERTEX].MaxTextureImageUnits +
               c->Program[MESA_SHADER_TESS_CTRL].MaxTextureImageUnits +
               c->Program[MESA_SHADER_TESS_EVAL].MaxTextureImageUnits +
               c->Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits +
-              c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits +
-              c->Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits,
+              c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits,
               MAX_COMBINED_TEXTURE_IMAGE_UNITS);
 
    /* This depends on program constants. */
    c->MaxTextureCoordUnits
       = _min(c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits,
              MAX_TEXTURE_COORD_UNITS);
 
    c->MaxTextureUnits =
       _min(c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits,
            c->MaxTextureCoordUnits);
@@ -389,22 +388,21 @@ void st_init_limits(struct pipe_screen *screen,
    c->UniformBufferOffsetAlignment =
       screen->get_param(screen, PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT);
 
    if (can_ubo) {
       extensions->ARB_uniform_buffer_object = GL_TRUE;
       c->MaxCombinedUniformBlocks = c->MaxUniformBufferBindings =
          c->Program[MESA_SHADER_VERTEX].MaxUniformBlocks +
          c->Program[MESA_SHADER_TESS_CTRL].MaxUniformBlocks +
          c->Program[MESA_SHADER_TESS_EVAL].MaxUniformBlocks +
          c->Program[MESA_SHADER_GEOMETRY].MaxUniformBlocks +
-         c->Program[MESA_SHADER_FRAGMENT].MaxUniformBlocks +
-         c->Program[MESA_SHADER_COMPUTE].MaxUniformBlocks;
+         c->Program[MESA_SHADER_FRAGMENT].MaxUniformBlocks,
       assert(c->MaxCombinedUniformBlocks <= MAX_COMBINED_UNIFORM_BUFFERS);
    }
 
    c->GLSLFragCoordIsSysVal =
       screen->get_param(screen, PIPE_CAP_TGSI_FS_POSITION_IS_SYSVAL);
    c->GLSLFrontFacingIsSysVal =
       screen->get_param(screen, PIPE_CAP_TGSI_FS_FACE_IS_INTEGER_SYSVAL);
 
    /* GL_ARB_get_program_binary
     *
@@ -455,22 +453,21 @@ void st_init_limits(struct pipe_screen *screen,
          c->MaxCombinedShaderStorageBlocks;
       c->MaxShaderStorageBlockSize = 1 << 27;
       extensions->ARB_shader_storage_buffer_object = GL_TRUE;
    }
 
    c->MaxCombinedImageUniforms =
          c->Program[MESA_SHADER_VERTEX].MaxImageUniforms +
          c->Program[MESA_SHADER_TESS_CTRL].MaxImageUniforms +
          c->Program[MESA_SHADER_TESS_EVAL].MaxImageUniforms +
          c->Program[MESA_SHADER_GEOMETRY].MaxImageUniforms +
-         c->Program[MESA_SHADER_FRAGMENT].MaxImageUniforms +
-         c->Program[MESA_SHADER_COMPUTE].MaxImageUniforms;
+         c->Program[MESA_SHADER_FRAGMENT].MaxImageUniforms;
    c->MaxCombinedShaderOutputResources += c->MaxCombinedImageUniforms;
    c->MaxImageUnits = MAX_IMAGE_UNITS;
    if (c->MaxCombinedImageUniforms) {
       extensions->ARB_shader_image_load_store = GL_TRUE;
       extensions->ARB_shader_image_size = GL_TRUE;
    }
 
    /* ARB_framebuffer_no_attachments */
    c->MaxFramebufferWidth   = c->MaxViewportWidth;
    c->MaxFramebufferHeight  = c->MaxViewportHeight;
-- 
2.17.1

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

Reply via email to