[Mesa-dev] [PATCH 1/9] i915: Only use TEXCOORDTYPE_VECTOR with cube maps on gen2
Ville Syrjälä
ville.syrjala at linux.intel.com
Thu Nov 20 11:13:13 PST 2014
On Thu, Nov 20, 2014 at 09:59:00AM -0800, Ian Romanick wrote:
> On 08/06/2014 11:56 AM, ville.syrjala at linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> > Check that the target is GL_TEXTURE_CUBE_MAP before emitting
> > TEXCOORDTYPE_VECTOR texture coordinates.
> >
> > I'm not sure if the hardware would like CARTESIAN coordinates
> > with cube maps, and as I'm too lazy to find out just emit the
> > VECTOR coordinates for cube maps always. For other targets use
> > CARTESIAN or HOMOGENOUS depending on the number of texture
> > coordinates provided.
> >
> > Fixes rendering of the "electric" background texture in chromium-bsu
> > main menu. We appear to be provided with three texture coordinates
> > there (I'm guessing due to the funky texture matrix rotation it does).
> > So the code would decide to use TEXCOORDTYPE_VECTOR instead of
> > TEXCOORDTYPE_CARTESIAN even though we're dealing with a 2D texure.
> > The results weren't what one might expect.
> >
> > demos/cubemap still works, which hopefully indicates that this doesn't
> > break things.
>
> I won't dare ask about a full piglit run on that hardware,
I did actually try to run piglit on the 830, but it always
seemed to die in some X blit batch after a while :(
There have been some recent blt TLB workaround fixes in the
kernel though, so perhaps things are better now. And if not,
I do have a 855 that ought to be a bit less fragile. So
maybe I'll give it another go just for kicks :P
> but how about
>
> bin/glean -o -v -v -v -t +texCube --quick
>
> and
>
> bin/cubemap -auto
>
> from piglit?
pass->pass on both counts.
>
> These changes seem reasonable, and assuming those tests aren't made worse,
>
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
>
> If you're excited about GEN2 bugs, wanna take a look at 79841? >:)
I'm thinking it should be fixed by:
commit dafae910d4fc791ba49f20e937cb918669f42944
Author: Ville Syrjälä <ville.syrjala at linux.intel.com>
Date: Thu Jul 3 15:38:07 2014 +0300
i915: Accept GL_DEPTH_STENCIL GL_DEPTH_COMPONENT formats for
renderbuffers
I'll note it in the bug.
>
> > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > ---
> > src/mesa/drivers/dri/i915/i830_vtbl.c | 37 ++++++++++++++++++-----------------
> > 1 file changed, 19 insertions(+), 18 deletions(-)
> >
> > diff --git a/src/mesa/drivers/dri/i915/i830_vtbl.c b/src/mesa/drivers/dri/i915/i830_vtbl.c
> > index 53d408b..0f22d86 100644
> > --- a/src/mesa/drivers/dri/i915/i830_vtbl.c
> > +++ b/src/mesa/drivers/dri/i915/i830_vtbl.c
> > @@ -134,27 +134,28 @@ i830_render_start(struct intel_context *intel)
> > GLuint mcs = (i830->state.Tex[i][I830_TEXREG_MCS] &
> > ~TEXCOORDTYPE_MASK);
> >
> > - switch (sz) {
> > - case 1:
> > - case 2:
> > - emit = EMIT_2F;
> > - sz = 2;
> > - mcs |= TEXCOORDTYPE_CARTESIAN;
> > - break;
> > - case 3:
> > + if (intel->ctx.Texture.Unit[i]._Current->Target == GL_TEXTURE_CUBE_MAP) {
> > emit = EMIT_3F;
> > sz = 3;
> > mcs |= TEXCOORDTYPE_VECTOR;
> > - break;
> > - case 4:
> > - emit = EMIT_3F_XYW;
> > - sz = 3;
> > - mcs |= TEXCOORDTYPE_HOMOGENEOUS;
> > - break;
> > - default:
> > - continue;
> > - };
> > -
> > + } else {
> > + switch (sz) {
> > + case 1:
> > + case 2:
> > + case 3:
> > + emit = EMIT_2F;
> > + sz = 2;
> > + mcs |= TEXCOORDTYPE_CARTESIAN;
> > + break;
> > + case 4:
> > + emit = EMIT_3F_XYW;
> > + sz = 3;
> > + mcs |= TEXCOORDTYPE_HOMOGENEOUS;
> > + break;
> > + default:
> > + continue;
> > + }
> > + }
> >
> > EMIT_ATTR(_TNL_ATTRIB_TEX0 + i, emit, 0);
> > v2 |= VRTX_TEX_SET_FMT(count, SZ_TO_HW(sz));
> >
--
Ville Syrjälä
Intel OTC
More information about the mesa-dev
mailing list