[Mesa-dev] [PATCH 2/2] llvmpipe: Simplify vertex and geometry shaders.
Zack Rusin
zackr at vmware.com
Wed Mar 26 09:03:57 PDT 2014
> 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.
> 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