### Godot version

On top of 4.0 branch. https://github.com/godotengine/godot/commit/fd5dc25240c1537d90b80507683f78bcf574f547

### System information

Mac Mini, Apple Silicon on Firefox

### Issue description

Error message in log.

```
e[1;31mERROR:e[0;91m vkCreateGraphicsPipelines failed with error -3 for shader 'CanvasOcclusionShaderRD:0'.
e[0;90m   at: render_pipeline_create (drivers/vulkan/rendering_device_vulkan.cpp:6394)e[0m
[mvk-error] VK_ERROR_FORMAT_NOT_SUPPORTED: VkFormat VK_FORMAT_R64G64_SFLOAT is not supported for vertex buffers on this device.
```

### Steps to reproduce

Launching my project.

### Minimal reproduction project

I think it happens on all mac projects, but checking now.
to_screen.position = -sdf_rect.position * to_screen.size;
						}
						particles_storage->particles_set_canvas_sdf_collision(pt->particles, true, xform, to_screen, sdf_texture);
					} else {
						particles_storage->particles_set_canvas_sdf_collision(pt->particles, false, Transform2D(), Rect2(), RID());
					}
					
					r_sdf_used |= particles_storage->particles_has_collision(pt->particles);
				}
				if (mesh.is_null()) {
					break;
				}
				_bind_canvas_texture(p_draw_list, texture, current_filter, current_repeat, last_texture, push_constant, texpixel_size);
				uint32_t surf_count = mesh_storage->mesh_get_surface_count(mesh);
				static const PipelineVariant variant[RS::PRIMITIVE_MAX] = { PIPELINE_VARIANT_ATTRIBUTE_POINTS, PIPELINE_VARIANT_ATTRIBUTE_LINES, PIPELINE_VARIANT_ATTRIBUTE_LINES_STRIP, PIPELINE_VARIANT_ATTRIBUTE_TRIANGLES, PIPELINE_VARIANT_ATTRIBUTE_TRIANGLE_STRIP };
				Color modulated = modulate * base_color;
				if (use_linear_colors) {
					modulated = modulated.srgb_to_linear();
				}
				push_constant.modulation[0] = modulated.r;
				push_constant.modulation[1] = modulated.g;
				push_constant.modulation[2] = modulated.b;
				push_constant.modulation[3] = modulated.a;
				for (int j = 0; j < 4; j++) {
					push_constant.src_rect[j] = 0;
					push_constant.dst_rect[j] = 0;
					push_constant.ninepatch_margins[j] = 0;
				}
				for (uint32_t j = 0; j < surf_count; j++) {
					void *surface = mesh_storage->mesh_get_surface(mesh, j);