[Mesa-dev] [PATCH 2/2] llvmpipe: Simplify vertex and geometry shaders.

Jose Fonseca jfonseca at vmware.com
Wed Mar 26 09:06:36 PDT 2014


----- Original Message -----
> > I see the crashes you're referring to.
> > 
> > I don't quite understand why though: concerning the geometry shader, other
> > than cosmetic changes, in theory I should just have replaced a
> > null/non-null
> > `tokens` pointer with a boolean `no_tokens`, though obviously I missed
> > something.
> 
> Yea, you missed the entire draw pipeline because you replaced:
> if (templ->tokens) {
> ...
>     state->draw_data = draw_create_geometry_shader(llvmpipe->draw, templ);
> }
> 
> with unconditional:
> state->dgs = draw_create_geometry_shader(llvmpipe->draw, templ);
> 
> i.e. draw gs is /always/ created whether tokens are there or not. So the
> draw_bind_geometry_shader will always bind gs's with null tokens. And that's
> what draw can't handle. I think that replacing that with:
> if (!state->no_tokens) {
>   state->dgs = draw_create_geometry_shader(...);
>   ...
> }
> 
> should work.

Ah, yes.  That was indeed unintentional.

Thanks Zack, and sorry for not noticing the regression earlier.

Jose

> 
> > I should also had broken this in two separate changes: vs portion, and gs
> > portion.
> 
> vs's are fine because they're never created with null tokens.
> 
> z
> 


More information about the mesa-dev mailing list