### 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
};
				shader_version = shader_version_table[k];
				if (!static_cast<SceneShaderForwardClustered *>(singleton)->shader.is_variant_enabled(shader_version)) {
					continue;
				}
				RD::PipelineRasterizationState raster_state;
				raster_state.cull_mode = cull_mode_rd;
				raster_state.wireframe = wireframe;
				if (k == PIPELINE_VERSION_COLOR_PASS) {
					for (int l = 0; l < PIPELINE_COLOR_PASS_FLAG_COUNT; l++) {
						if (!shader_singleton->valid_color_pass_pipelines.has(l)) {
							continue;
						}
						RD::PipelineDepthStencilState depth_stencil = depth_stencil_state;
						RD::PipelineColorBlendState blend_state;
						RD::PipelineMultisampleState multisample_state;
						int shader_flags = 0;
						if (l & PIPELINE_COLOR_PASS_FLAG_TRANSPARENT) {
							if (alpha_antialiasing_mode == ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE) {
								multisample_state.enable_alpha_to_coverage = true;
							} else if (alpha_antialiasing_mode == ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE) {
								multisample_state.enable_alpha_to_coverage = true;
								multisample_state.enable_alpha_to_one = true;
							}
							blend_state = blend_state_color_blend;
							if (depth_draw == DEPTH_DRAW_OPAQUE) {
								depth_stencil.enable_depth_write = false; 
							}
						} else {
							blend_state = blend_state_color_opaque;