### Godot version

v4.0.3.stable.arch_linux

### System information

Arch linux  - OpenGL API 4.2 (Core Profile) Mesa 21.3.9 Amber - Compatibility - Using Device: Intel Open Source Technology Center - Mesa DRI Intel(R) HD Graphics 2500 (IVB GT1)

### Issue description

I wrote a simple colorize shader:
```
uniform sampler2D color_map;
void fragment()
{
	vec2 uv = COLOR.rg;
	COLOR.rgb = texture(color_map, uv).rgb;
}
```
![20230614_21h26m15s_grim](https://github.com/godotengine/godot/assets/68549456/636c00f8-09e3-4be4-9784-787a3c35ae63)

But when I change the uniform parameter in the editor, it turned into this
![20230614_21h07m45s_grim](https://github.com/godotengine/godot/assets/68549456/0ac2430d-33f5-4c4a-8cd0-bd2f76b575cf)

However, this issue does not appear on Vulkan renderer (Foward+ and Mobile) 

### Steps to reproduce

Change value in the gradient in the shader parameter.

### Minimal reproduction project

[shader-bug.zip](https://github.com/godotengine/godot/files/11746761/shader-bug.zip)

itemsv.resize(texture_atlas.textures.size());
		int base_size = 8;
		int idx = 0;
		for (const KeyValue<RID, TextureAtlas::Texture> &E : texture_atlas.textures) {
			TextureAtlas::SortItem &si = itemsv.write[idx];
			Texture *src_tex = get_texture(E.key);
			si.size.width = (src_tex->width / border) + 1;
			si.size.height = (src_tex->height / border) + 1;
			si.pixel_size = Size2i(src_tex->width, src_tex->height);
			if (base_size < si.size.width) {
				base_size = nearest_power_of_2_templated(si.size.width);
			}
			si.texture = E.key;
			idx++;
		}
		
		itemsv.sort();
		
		int item_count = itemsv.size();
		TextureAtlas::SortItem *items = itemsv.ptrw();
		int atlas_height = 0;
		while (true) {
			Vector<int> v_offsetsv;
			v_offsetsv.resize(base_size);
			int *v_offsets = v_offsetsv.ptrw();
			memset(v_offsets, 0, sizeof(int) * base_size);
			int max_height = 0;
			for (int i = 0; i < item_count; i++) {
				
				TextureAtlas::SortItem &si = items[i];