On 09/08/2015 06:04 PM, Kenneth Graunke wrote: > Our old value of 16384 is the minimum value. DirectX apparently > requires 65536 at a minimum; that's also what nVidia and the Intel > Windows driver advertise. AMD advertises MAX_INT. > > Ilia Mirkin noticed that "Shadow Warrior" uses UBOs larger than 16k > on Nouveau, which advertises 65536 bytes for this limit. Traces > captured on Nouveau don't work on i965 because our lower limit causes > the GLSL linker to reject the captured shaders. While this isn't > important in and of itself, it does suggest that raising the limit > would be beneficial. > > We can read linear buffers up to 2^27 bytes in size, so raising this > should be safe; we could probably even go larger. For now, matching > nVidia and Intel/Windows seems like a good plan. > > We have to reinitialize MaxCombinedUniformComponents as core Mesa will > have set it based on a stale value for MaxUniformBlockSize. > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/brw_context.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/src/mesa/drivers/dri/i965/brw_context.c > b/src/mesa/drivers/dri/i965/brw_context.c > index 907b2a0..7c1c133 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.c > +++ b/src/mesa/drivers/dri/i965/brw_context.c > @@ -323,6 +323,15 @@ brw_initialize_context_constants(struct brw_context *brw) > > ctx->Const.StripTextureBorder = true; > > + ctx->Const.MaxUniformBlockSize = 65536; > + for (int i = 0; i < MESA_SHADER_STAGES; i++) { > + struct gl_program_constants *prog = &ctx->Const.Program[i]; > + prog->MaxUniformBlocks = 12;
Is this actually necessary? It looks like this is that value already set in init_program_limits. Either way, this patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> > + prog->MaxCombinedUniformComponents = > + prog->MaxUniformComponents + > + ctx->Const.MaxUniformBlockSize / 4 * prog->MaxUniformBlocks; > + } > + > ctx->Const.MaxDualSourceDrawBuffers = 1; > ctx->Const.MaxDrawBuffers = BRW_MAX_DRAW_BUFFERS; > ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits = > max_samplers; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev