diff options
author | Chris Forbes <[email protected]> | 2014-02-22 18:09:31 +1300 |
---|---|---|
committer | Carl Worth <[email protected]> | 2014-03-11 11:49:51 -0700 |
commit | aba40445c25d01026ce29baabf2e4b24e176a55e (patch) | |
tree | 5e9525e982dce766f25b58b3eb967cb920a419c0 /src/mesa/drivers | |
parent | 6a81f2bc9b024c33fbcb15ea2215dd407dea8c9c (diff) |
i965: Validate (and resolve) all the bound textures.
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 <[email protected]>
Cc: "9.2 10.0 10.1" <[email protected]>
Cc: Kenneth Graunke <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
(cherry picked from commit befbda56a246f77797bdf13fc005353441db2879)
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_draw.c | 2 | ||||
-rw-r--r-- | 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 371df15f065..0a421eb1625 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -273,7 +273,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 1ddf1965b1c..b116435fc28 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) { |