> 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
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev