Some primitives can only work with certain shaders. In OpenGL this didn't lead to an error, but Metal and Vulkan could not render at all. The Vulkan backend is more specific on what it supports so we could detect incorrect usages and fix them. This was detected when investigating #126947. Pull Request: https://projects.blender.org/blender/blender/pulls/128013