BRW_MAX_TEX_UNIT is the static limit on the number of textures we support per-stage, not in total.
Core's `Unit` array is sized by MAX_COMBINED_TEXTURE_IMAGE_UNITS, which is significantly larger, and across the various shader stages, up to ctx->Const.MaxCombinedTextureImageUnits elements of it may be actually used. Fixes invisible bad behavior in piglit's max-samplers test (although this escalated to an assertion failure on HSW with texture_view, since non-immutable textures only have _Format set by validation.) Signed-off-by: Chris Forbes <chr...@ijw.co.nz> Cc: "9.2 10.0 10.1" <mesa-sta...@lists.freedesktop.org> Cc: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_draw.c | 2 +- src/mesa/drivers/dri/i965/brw_tex.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 540834c..bc887fe 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -317,7 +317,7 @@ brw_predraw_resolve_buffers(struct brw_context *brw) /* Resolve depth buffer of each enabled depth texture, and color buffer of * each fast-clear-enabled color texture. */ - for (int i = 0; i < BRW_MAX_TEX_UNIT; i++) { + for (int i = 0; i < ctx->Const.MaxCombinedTextureImageUnits; i++) { if (!ctx->Texture.Unit[i]._ReallyEnabled) continue; tex_obj = intel_texture_object(ctx->Texture.Unit[i]._Current); diff --git a/src/mesa/drivers/dri/i965/brw_tex.c b/src/mesa/drivers/dri/i965/brw_tex.c index 9234e3a..b1f4de0 100644 --- a/src/mesa/drivers/dri/i965/brw_tex.c +++ b/src/mesa/drivers/dri/i965/brw_tex.c @@ -47,7 +47,7 @@ void brw_validate_textures( struct brw_context *brw ) struct gl_context *ctx = &brw->ctx; int i; - for (i = 0; i < BRW_MAX_TEX_UNIT; i++) { + for (i = 0; i < ctx->Const.MaxCombinedTextureImageUnits; i++) { struct gl_texture_unit *texUnit = &ctx->Texture.Unit[i]; if (texUnit->_ReallyEnabled) { -- 1.9.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev