The sg_shader_desc needs to provide a mapping from those unified "sokol-gfx bindslots" to shader stages and (probably backend-API specific) concrete bind slots (typically generated by sokol-shdc).
Q: also get rid of the 'implicit' backend-specific bind slot indices? This means the sg_shader_desc bind slot-mapping needs backend-specific slot indices (which is probably more transparent to the user)
while at it also get rid of the stage param in sg_apply_uniforms() (and provide a mapping in sg_shader_desc instead for backends which need this)
TL;DR: SG_SHADERSTAGE_VS/FS should only show up in sg_shader_desc.
This would make sense after the storage-buffer update:
General idea is to allow more flexibility when mapping the sokol-gfx 'bind slot convention' to the backend API bind slots.
sg_bindings
:The
sg_shader_desc
needs to provide a mapping from those unified "sokol-gfx bindslots" to shader stages and (probably backend-API specific) concrete bind slots (typically generated by sokol-shdc).Q: also get rid of the 'implicit' backend-specific bind slot indices? This means the sg_shader_desc bind slot-mapping needs backend-specific slot indices (which is probably more transparent to the user)
while at it also get rid of the stage param in
sg_apply_uniforms()
(and provide a mapping in sg_shader_desc instead for backends which need this)TL;DR: SG_SHADERSTAGE_VS/FS should only show up in sg_shader_desc.