[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