uniform float4 _MainTex_TexelSize
where is the value of the float4 _MainTexelSize from?
It's set by the application if it's present in the shader - it is the size of a texel of the texture in question, in other words, if it's a 1k x 1k texture, both x and y will be 1.0/1024.0
_MainTex_TexelSize is set by magic sauce in the darkness of Unity's source code.
It follows the dimensions of the _MainTex sampler and has these contents:
Vector4(1 / width, 1 / height, width, height)
https://forum.unity3d.com/threads/_maintex_texelsize-whats-the-meaning.110278/
Texture size
{TextureName}_TexelSize
- a float4 property contains texture size information:
x
contains 1.0/widthy
contains 1.0/heightz
contains widthw
contains height
https://docs.unity3d.com/Manual/SL-PropertiesInPrograms.html