This PR introduces support for the extension `VK_KHR_fragment_shader_barycentric`, and includes a few miscellaneous improvements related to it. 1. Add support for `VK_KHR_fragment_shader_barycentric`, if the physical device supports it. Otherwise, gpu_BaryCoord is generated through an injected geom shader, like it was previously. 2. Simplify the logic of checking has_geometry_stage in vert shader. 3. Fix a potential issue of location mismatch in an injected geom shader. Related to #127687 Resolves #126228 Pull Request: https://projects.blender.org/blender/blender/pulls/127995