### Godot version

4.0.2.stable

### System information

Windows 11, Vulkan, RTX2070 Super

### Issue description

Reading from `VIEWPORT_SIZE` in the `light()` function causes spatial shader to break and renders as default white.

### Steps to reproduce

![image](https://user-images.githubusercontent.com/20043270/236914345-ccd12e83-4431-4a53-b67b-028c8ef5719b.png)

when line 51 is present the fails to compile with the following message in the output log but no compilation errors.

```
servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp:171 - Condition "!shader_singleton->shader.version_is_valid(version)" is true.
  drivers/vulkan/rendering_device_vulkan.cpp:5361 - Condition "!shader" is true. Returning: RID()
  drivers/vulkan/rendering_device_vulkan.cpp:5835 - Condition "!us" is true.
```

commenting out line 51 solves this issue.

[The documentation](https://docs.godotengine.org/en/stable/tutorials/shaders/shader_reference/spatial_shader.html#light-built-ins) states that `VIEWPORT_SIZE` should be available to the `light()` function.

### Minimal reproduction project

N/A
actions.render_mode_defines["diffuse_toon"] = "#define DIFFUSE_TOON\n";
		actions.render_mode_defines["sss_mode_skin"] = "#define SSS_MODE_SKIN\n";
		actions.render_mode_defines["specular_schlick_ggx"] = "#define SPECULAR_SCHLICK_GGX\n";
		actions.render_mode_defines["specular_toon"] = "#define SPECULAR_TOON\n";
		actions.render_mode_defines["specular_disabled"] = "#define SPECULAR_DISABLED\n";
		actions.render_mode_defines["shadows_disabled"] = "#define SHADOWS_DISABLED\n";
		actions.render_mode_defines["ambient_light_disabled"] = "#define AMBIENT_LIGHT_DISABLED\n";
		actions.render_mode_defines["shadow_to_opacity"] = "#define USE_SHADOW_TO_OPACITY\n";
		actions.render_mode_defines["unshaded"] = "#define MODE_UNSHADED\n";
		actions.render_mode_defines["debug_shadow_splits"] = "#define DEBUG_DRAW_PSSM_SPLITS\n";
		actions.sampler_array_name = "material_samplers";
		actions.base_texture_binding_index = 1;
		actions.texture_layout_set = RenderForwardClustered::MATERIAL_UNIFORM_SET;
		actions.base_uniform_string = "material.";
		actions.base_varying_index = 11;
		actions.default_filter = ShaderLanguage::FILTER_LINEAR_MIPMAP;
		actions.default_repeat = ShaderLanguage::REPEAT_ENABLE;
		actions.global_buffer_array_variable = "global_shader_uniforms.data";
		actions.instance_uniform_index_variable = "instances.data[instance_index_interp].instance_uniforms_ofs";
		actions.check_multiview_samplers = RendererCompositorRD::get_singleton()->is_xr_enabled(); 
		compiler.initialize(actions);
	}
	{
		
		default_shader = material_storage->shader_allocate();
		material_storage->shader_initialize(default_shader);
		material_storage->shader_set_code(default_shader, R"(
// Default 3D material shader (clustered).
shader_type spatial;
void vertex() {