[Mesa-dev] [PATCH] Revert "i965: get PrimitiveMode from the program rather than the shader struct"

Andres Gomez agomez at igalia.com
Wed Jun 29 14:23:34 UTC 2016


On Thu, 2016-06-30 at 00:09 +1000, Timothy Arceri wrote:
> 
> On 29 June 2016 11:29:17 pm AEST, Andres Gomez <agomez at igalia.com>
> wrote:
> > This reverts commit 644e015f0b9236e955d679cac4bcc7a1523fc475.
> > 
> > PrimitiveMode from the program doesn't hold the proper value when
> > reaching this code. We rather take it from the linked shader.
> 
> Usually when reverting you should say what the commit broke or what
> you are fixing.

Yes, I should probably have been more verbose here. The original patch
caused regressions in the following CTS tests:
 * GL44-CTS.stencil_texturing.functional
 * GL44-CTS.shading_language_420pack.binding_images
 * GL44-CTS.shading_language_420pack.binding_samplers
 * GL44-CTS.shading_language_420pack.binding_uniform_single_block
 * GL44-CTS.shading_language_420pack.implicit_conversions
 * GL44-CTS.shading_language_420pack.initializer_list
 * GL44-CTS.shading_language_420pack.length_of_vector_and_matrix
 * GL44-CTS.shading_language_420pack.line_continuation

All were SIGABRTing with something like:
glcts: brw_shader.cpp:613: unsigned int
tesslevel_outer_components(GLenum): Assertion `!"Bogus tessellation
domain"' failed.

The reason is that the PrimitiveMode used holds a value that is neither
of GL_TRIANGLES, GL_QUADS nor GL_ISOLINES.

> I'll take another look tomorrow but my feeling is program should have
> the correct value here. In my testing it seemed to be ok. Can you
> explain why the value is different? 

The patch is a quick revert to the original behavior, I didn't invest
enough time to know why brw->tess_eval_program->PrimitiveMode didn't
have the expected value by the time that code is reached.

Thanks for taking a look at this.

Br.

> 
> Thanks.
> > 
> > Signed-off-by: Andres Gomez <agomez at igalia.com>
> > ---
> > src/mesa/drivers/dri/i965/brw_tcs.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/brw_tcs.c
> > b/src/mesa/drivers/dri/i965/brw_tcs.c
> > index d488715..2029ea5 100644
> > --- a/src/mesa/drivers/dri/i965/brw_tcs.c
> > +++ b/src/mesa/drivers/dri/i965/brw_tcs.c
> > @@ -395,8 +395,9 @@ brw_tcs_precompile(struct gl_context *ctx,
> >          _LinkedShaders[MESA_SHADER_TESS_CTRL]-
> > >TessCtrl.VerticesOut;
> >    }
> > 
> > -   key.tes_primitive_mode = brw->tess_eval_program ?
> > -      brw->tess_eval_program->PrimitiveMode : GL_TRIANGLES;
> > +   key.tes_primitive_mode =
> > shader_prog->_LinkedShaders[MESA_SHADER_TESS_EVAL]
> > +      ?
> > shader_prog->_LinkedShaders[MESA_SHADER_TESS_EVAL]-
> > >TessEval.PrimitiveMode
> > +      : GL_TRIANGLES;
> > 
> >    key.outputs_written = prog->OutputsWritten;
> >    key.patch_outputs_written = prog->PatchOutputsWritten;
> > -- 
> > 2.8.1
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
-- 

Br,

Andres


More information about the mesa-dev mailing list