### Godot version

4.0.beta16

### System information

Windows 10 Pro x64, GLES3, RTX 3080 Ti (528.02)

### Issue description

In Compatibility/GLES3 back-end, shaders which use a uniform to get the normal roughness buffer cannot compile. For example, the shader:
```glsl
shader_type spatial;

uniform sampler2D normal_roughness_texture : hint_normal_roughness_texture;

void fragment() {
    vec4 sample = texture(normal_roughness_texture, UV);
}
```
results in an error in the output:
```
  drivers/gles3/shader_gles3.cpp:242 - SceneShaderGLES3: Fragment shader compilation failed:
  0(890) : error C1503: undefined variable "normal_roughness_buffer"
  
  drivers/gles3/shader_gles3.cpp:342 - Method/function failed.
```

If I switch over to the Mobile or Forward+ backends, there is no shader compilation error.

### Steps to reproduce

Open the attached reproduction in the 4.0.beta16 editor.

When the scene is opened, the error is produced automatically:
1. Open `scene.tscn`
2. Open Output to review error

When the scene is saved with any changes made to the shader, the same error is also produced:
1. Open `scene.tscn`
2. Open `example.gdshader` in the shader editor.
3. Make a compile-able change to the shader.
4. Save the scene
5. Open Output to review the error

### Minimal reproduction project

[NormalRoughnessTexture_GLES3_Error.zip](https://github.com/godotengine/godot/files/10534253/NormalRoughnessTexture_GLES3_Error.zip)

{ TK_TYPE_IVEC2, "ivec2", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_IVEC3, "ivec3", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_IVEC4, "ivec4", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_UINT, "uint", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_UVEC2, "uvec2", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_UVEC3, "uvec3", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_UVEC4, "uvec4", KCF_DATATYPE, {}, {} },
	{ TK_TYPE_FLOAT, "float", KCF_DATATYPE | CF_VARYING_TYPE, {}, {} },
	{ TK_TYPE_VEC2, "vec2", KCF_DATATYPE | CF_VARYING_TYPE, {}, {} },
	{ TK_TYPE_VEC3, "vec3", KCF_DATATYPE | CF_VARYING_TYPE, {}, {} },
	{ TK_TYPE_VEC4, "vec4", KCF_DATATYPE | CF_VARYING_TYPE, {}, {} },
	{ TK_TYPE_MAT2, "mat2", KCF_DATATYPE | CF_VARYING_TYPE, {}, {} },
	{ TK_TYPE_MAT3, "mat3", KCF_DATATYPE | CF_VARYING_TYPE, {}, {} },
	{ TK_TYPE_MAT4, "mat4", KCF_DATATYPE | CF_VARYING_TYPE, {}, {} },
	{ TK_TYPE_SAMPLER2D, "sampler2D", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_ISAMPLER2D, "isampler2D", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_USAMPLER2D, "usampler2D", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_SAMPLER2DARRAY, "sampler2DArray", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_ISAMPLER2DARRAY, "isampler2DArray", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_USAMPLER2DARRAY, "usampler2DArray", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_SAMPLER3D, "sampler3D", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_ISAMPLER3D, "isampler3D", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_USAMPLER3D, "usampler3D", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_SAMPLERCUBE, "samplerCube", KCF_SAMPLER_DATATYPE, {}, {} },
	{ TK_TYPE_SAMPLERCUBEARRAY, "samplerCubeArray", KCF_SAMPLER_DATATYPE, {}, {} },
	
	{ TK_INTERPOLATION_FLAT, "flat", CF_INTERPOLATION_QUALIFIER, {}, {} },
	{ TK_INTERPOLATION_SMOOTH, "smooth", CF_INTERPOLATION_QUALIFIER, {}, {} },
	
	{ TK_PRECISION_LOW, "lowp", CF_BLOCK | CF_PRECISION_MODIFIER, {}, {} },