Thanks for the patch. Reviewed-by: Yuanhan Liu <yuanhan....@linux.intel.com> On Jan 20, 2012 9:40 PM, "Kenneth Graunke" <kenn...@whitecape.org> wrote:
> While reading through the simulator, I found some interesting code that > looks like it checks the sampler default color pointer against the bound > set in STATE_BASE_ADDRESS. On failure, it appears to program it to the > base address itself. > > So I decided to try programming a legitimate bound, and lo and behold, > border color worked. Unfortunately, it's not entirely reliable: piglit > tests (such as tex-border-1) will still fail if you run them in a loop. > > +92 piglits on Sandybridge. Also fixes Lightsmark on Ivybridge. > > NOTE: This is a candidate for stable release branches. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=28924 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38868 > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/brw_misc_state.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > v2: OUT_RELOC is your friend. Thanks to ickle for pointing out my silly > mistake. Now regression free and fixing lots of tests. And demos! > > diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c > b/src/mesa/drivers/dri/i965/brw_misc_state.c > index 8e59a47..1a7d328 100644 > --- a/src/mesa/drivers/dri/i965/brw_misc_state.c > +++ b/src/mesa/drivers/dri/i965/brw_misc_state.c > @@ -769,7 +769,13 @@ static void upload_state_base_address( struct > brw_context *brw ) > 1); /* Instruction base address: shader kernels (incl. > SIP) */ > > OUT_BATCH(1); /* General state upper bound */ > - OUT_BATCH(1); /* Dynamic state upper bound */ > + /* Dynamic state upper bound. Although the documentation says that > + * programming it to zero will cause it to be ignored, that is a > lie. > + * If this isn't programmed to a real bound, the sampler border > color > + * pointer is rejected, causing border color to mysteriously fail. > + */ > + OUT_RELOC(intel->batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, > + intel->batch.bo->size | 1); > OUT_BATCH(1); /* Indirect object upper bound */ > OUT_BATCH(1); /* Instruction access upper bound */ > ADVANCE_BATCH(); > -- > 1.7.7.5 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev