### 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.
RS::PrimitiveType primitive = mesh_storage->mesh_surface_get_primitive(surface);
					ERR_CONTINUE(primitive < 0 || primitive >= RS::PRIMITIVE_MAX);
					uint64_t input_mask = pipeline_variants->variants[light_mode][variant[primitive]].get_vertex_input_mask();
					RID vertex_array;
					RD::VertexFormatID vertex_format = RD::INVALID_FORMAT_ID;
					if (mesh_instance.is_valid()) {
						mesh_storage->mesh_instance_surface_get_vertex_arrays_and_format(mesh_instance, j, input_mask, false, vertex_array, vertex_format);
					} else {
						mesh_storage->mesh_surface_get_vertex_arrays_and_format(surface, input_mask, false, vertex_array, vertex_format);
					}
					RID pipeline = pipeline_variants->variants[light_mode][variant[primitive]].get_render_pipeline(vertex_format, p_framebuffer_format);
					RD::get_singleton()->draw_list_bind_render_pipeline(p_draw_list, pipeline);
					RID index_array = mesh_storage->mesh_surface_get_index_array(surface, 0);
					if (index_array.is_valid()) {
						RD::get_singleton()->draw_list_bind_index_array(p_draw_list, index_array);
					}
					RD::get_singleton()->draw_list_bind_vertex_array(p_draw_list, vertex_array);
					RD::get_singleton()->draw_list_set_push_constant(p_draw_list, &push_constant, sizeof(PushConstant));
					RD::get_singleton()->draw_list_draw(p_draw_list, index_array.is_valid(), instance_count);
				}
				for (int j = 0; j < 6; j++) {
					push_constant.world[j] = world_backup[j];
				}
			} break;
			case Item::Command::TYPE_TRANSFORM: {
				const Item::CommandTransform *transform = static_cast<const Item::CommandTransform *>(c);
				draw_transform = transform->xform;
				_update_transform_2d_to_mat2x3(base_transform * transform->xform, push_constant.world);
			} break;
			case Item::Command::TYPE_CLIP_IGNORE: {