From: Roland Scheidegger <srol...@vmware.com> So, gallium doesn't yet expose basevertex shader semantic. Neither does it really handle the different vertexID options (GL-style including basevertex and d3d10-style not including it). draw currently implements the latter (on purpose) whereas most drivers probably actually wanted the former, though I can't tell if they are succesful in that or not.
Hence this is an attempt of fixing this, however I wasn't sure how exactly this should be exposed. I thought just following core mesa and expose two different vertexID semantics was easiest, but I guess other options would be doable. Also, I'm not sure what cap bits are needed - I'd guess one for being able to handle basevertex, but if there's both vertexid and vertexid_zerobase semantics, do they each need their own cap bit for drivers (the former right now doesn't actually have its own cap bit, tied to something else apparently). glsl could do lowering of vertexid to vertexid_zerobase for us for drivers requiring it. I've attached what I've got so far but obviously this isn't complete. Roland Scheidegger (1): gallium: add basevertex and vertexid_zerobase semantics src/gallium/auxiliary/draw/draw_llvm.c | 8 +++++- src/gallium/auxiliary/gallivm/lp_bld_tgsi.h | 1 + src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 5 ++++ src/gallium/auxiliary/tgsi/tgsi_strings.c | 2 ++ src/gallium/docs/source/tgsi.rst | 36 +++++++++++++++++++++++++ src/gallium/include/pipe/p_shader_tokens.h | 4 ++- src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 8 ++++-- 7 files changed, 60 insertions(+), 4 deletions(-) -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev