Set the Tint MSL emit_vertex_point_size option when necessary

If [[point_size]] is not emitted, it is undefined. Set the option for
Tint to explicitly set it to 1.0 when necessary.

Bug: dawn:1059
Change-Id: I27c19e88cda30aef0a8f31b213c58d5bf87feabd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/61280
Commit-Queue: Austin Eng <enga@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Auto-Submit: Austin Eng <enga@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
diff --git a/src/dawn_native/metal/ShaderModuleMTL.mm b/src/dawn_native/metal/ShaderModuleMTL.mm
index 141229d..800a3be 100644
--- a/src/dawn_native/metal/ShaderModuleMTL.mm
+++ b/src/dawn_native/metal/ShaderModuleMTL.mm
@@ -153,6 +153,9 @@
         options.buffer_size_ubo_index = kBufferLengthBufferSlot;
         options.fixed_sample_mask = sampleMask;
         options.disable_workgroup_init = GetDevice()->IsToggleEnabled(Toggle::DisableWorkgroupInit);
+        options.emit_vertex_point_size =
+            stage == SingleShaderStage::Vertex &&
+            renderPipeline->GetPrimitiveTopology() == wgpu::PrimitiveTopology::PointList;
         auto result = tint::writer::msl::Generate(&program, options);
         if (!result.success) {
             errorStream << "Generator: " << result.error << std::endl;