> 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 mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev