Any way to have separate SamplerStates and Textures for Vulkan?

The Unity macros for UNITY_DECLARE_TEX2D_NOSAMPLER and UNITY_SAMPLE_TEX2D are using the sampler2D variants for Vulkan, since the keyword checks do not include Vulkan…

Is this a limitation of Vulkan, or will this be changed in the future? Porting a project from DX11 to Vulkan for a new platform, and not having the ability to do this makes some shaders tricky to port without removing functionality from them.

The only reason to use the macros is to more easily support OpenGLES. If you don’t need to support OpenGLES, there’s no reason to use the macro. Just use Direct3D 11 style HLSL which Unity will compile to the SPIR-V format needed by Vulkan.

Texture2D _MyTex;
SamplerState sampler_MyTex;

float4 col = _MyTex.Sample(sampler_MyTex, uv);