[Mesa-dev] [PATCH 08/14] st/mesa: don't include compute resources in "Combined" limits
Marek Olšák
maraeo at gmail.com
Wed Aug 8 23:55:17 UTC 2018
From: Marek Olšák <marek.olsak at 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
More information about the mesa-dev
mailing list