i965: Totally switch around how we handle nonzero baselevel-first_level.
authorEric Anholt <eric@anholt.net>
Tue, 17 Sep 2013 23:47:30 +0000 (16:47 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 30 Sep 2013 21:35:42 +0000 (14:35 -0700)
commit7de88ac38004e68b5a0a94c881cc1da1ee4371d7
tree67dbb1e6751c994eebcf41b5f07e19f94f93dec3
parent9c116d5eacf286cd8548d64ba8ce6528edb889c9
i965: Totally switch around how we handle nonzero baselevel-first_level.

This has no effect currently, because intel_finalize_mipmap_tree() always
makes mt->first_level == tObj->BaseLevel.

The change I made before to handle it
(b1080cfbdb0a084122fcd662cd27b4748c5598fd) got very close to working, but
after fixing some unrelated bugs in the series, it still left
tex-miplevel-selection producing errors when testing textureLod().  The
problem is that for explicit LODs, the sampler's LOD clamping is ignored,
and only the surface's MIP clamping is respected.  So we need to use
surface mip clamping, which applies on top of the sampler's mip clamping,
so the sampler change gets backed out.

Now actually tested with a non-regressing series producing a non-zero
computed baselevel.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
src/mesa/drivers/dri/i965/brw_wm_sampler_state.c
src/mesa/drivers/dri/i965/brw_wm_surface_state.c
src/mesa/drivers/dri/i965/gen7_sampler_state.c
src/mesa/drivers/dri/i965/gen7_wm_surface_state.c