### Godot version

4.0.beta10.official [d0398f62f]

### System information

Windows 10, Vulkan, NVIDIA GeForce RTX 2060m (31.0.15.2698)

### Issue description

I'm getting some kind of clustering/blocky artifact when using spotlights, with no fog or any fancy rendering stuff whatsoever.
I've looked through a bunch of similar issues, but the only ones I could find were related to volumetric fog or other environment effects that I am not using.
Not sure if I'm just missing something, but I think I've played with every option in the spotlight and every option in a WorldEnvironment and nothing makes it go away.

The only lead I have is that the intensity of the artifact seems to be affected by the spot angle. It cycles in a sawtooth pattern every ~0.07 degrees.

![image](https://user-images.githubusercontent.com/13819558/209914720-77a637ea-8cc7-4cff-8216-363f9150885a.png)

Lmk if you need more info or need me to try anything.

### Steps to reproduce

1. New Project (Forward+)
2. Put down some MeshInstance3Ds as a backdrop
3. Put a SpotLight3D
4. Raise spotlight intensity, lower spot angle, and increase range to see it better
5. Slowly increase spot angle to see cycling effect

### Minimal reproduction project

[testspotlight.zip](https://github.com/godotengine/godot/files/10318069/testspotlight.zip)

#include "cluster_builder_rd.h"
#include "servers/rendering/rendering_device.h"
#include "servers/rendering/rendering_server_globals.h"
ClusterBuilderSharedDataRD::ClusterBuilderSharedDataRD() {
	RD::VertexFormatID vertex_format;
	{
		Vector<RD::VertexAttribute> attributes;
		{
			RD::VertexAttribute va;
			va.format = RD::DATA_FORMAT_R32G32B32_SFLOAT;
			va.stride = sizeof(float) * 3;
			attributes.push_back(va);
		}
		vertex_format = RD::get_singleton()->vertex_format_create(attributes);
	}
	{
		Vector<String> versions;
		versions.push_back("");
		cluster_render.cluster_render_shader.initialize(versions);
		cluster_render.shader_version = cluster_render.cluster_render_shader.version_create();
		cluster_render.shader = cluster_render.cluster_render_shader.version_get_shader(cluster_render.shader_version, 0);
		cluster_render.shader_pipelines[ClusterRender::PIPELINE_NORMAL] = RD::get_singleton()->render_pipeline_create(cluster_render.shader, RD::get_singleton()->framebuffer_format_create_empty(), vertex_format, RD::RENDER_PRIMITIVE_TRIANGLES, RD::PipelineRasterizationState(), RD::PipelineMultisampleState(), RD::PipelineDepthStencilState(), RD::PipelineColorBlendState(), 0);
		RD::PipelineMultisampleState ms;
		ms.sample_count = RD::TEXTURE_SAMPLES_4;
		cluster_render.shader_pipelines[ClusterRender::PIPELINE_MSAA] = RD::get_singleton()->render_pipeline_create(cluster_render.shader, RD::get_singleton()->framebuffer_format_create_empty(), vertex_format, RD::RENDER_PRIMITIVE_TRIANGLES, RD::PipelineRasterizationState(), ms, RD::PipelineDepthStencilState(), RD::PipelineColorBlendState(), 0);