Remove TINT_EXPECTS_UBOS_TO_BE_MULTIPLE_OF_16 macro usage

This was a temporary measure to be able to roll Tint into Dawn with this
change. The macro will be removed in Tint once this lands.

Bug: tint:984
Change-Id: If599e92b16b5edd96b357ce5ee57143a2c00e22d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58365
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/dawn_native/metal/CommandBufferMTL.mm b/src/dawn_native/metal/CommandBufferMTL.mm
index 176186d..65a2178 100644
--- a/src/dawn_native/metal/CommandBufferMTL.mm
+++ b/src/dawn_native/metal/CommandBufferMTL.mm
@@ -274,7 +274,9 @@
 
             // The lengths of buffers are stored as 32bit integers because that is the width the
             // MSL code generated by SPIRV-Cross expects.
-            PerStage<std::array<uint32_t, ((kGenericMetalBufferSlots / 4) + 1) * 4>> data;
+            // UBOs require we align the max buffer count to 4 elements (16 bytes).
+            static constexpr size_t MaxBufferCount = ((kGenericMetalBufferSlots + 3) / 4) * 4;
+            PerStage<std::array<uint32_t, MaxBufferCount>> data;
 
             void Apply(id<MTLRenderCommandEncoder> render,
                        RenderPipeline* pipeline,
@@ -294,10 +296,9 @@
                         bufferCount += pipeline->GetVertexBufferCount();
                     }
 
-#ifdef TINT_EXPECTS_UBOS_TO_BE_MULTIPLE_OF_16
                     bufferCount = Align(bufferCount, 4);
                     ASSERT(bufferCount <= data[SingleShaderStage::Vertex].size());
-#endif
+
                     [render setVertexBytes:data[SingleShaderStage::Vertex].data()
                                     length:sizeof(uint32_t) * bufferCount
                                    atIndex:kBufferLengthBufferSlot];
@@ -306,10 +307,9 @@
                 if (stagesToApply & wgpu::ShaderStage::Fragment) {
                     uint32_t bufferCount = ToBackend(pipeline->GetLayout())
                                                ->GetBufferBindingCount(SingleShaderStage::Fragment);
-#ifdef TINT_EXPECTS_UBOS_TO_BE_MULTIPLE_OF_16
                     bufferCount = Align(bufferCount, 4);
                     ASSERT(bufferCount <= data[SingleShaderStage::Fragment].size());
-#endif
+
                     [render setFragmentBytes:data[SingleShaderStage::Fragment].data()
                                       length:sizeof(uint32_t) * bufferCount
                                      atIndex:kBufferLengthBufferSlot];
@@ -330,10 +330,9 @@
 
                 uint32_t bufferCount = ToBackend(pipeline->GetLayout())
                                            ->GetBufferBindingCount(SingleShaderStage::Compute);
-#ifdef TINT_EXPECTS_UBOS_TO_BE_MULTIPLE_OF_16
                 bufferCount = Align(bufferCount, 4);
                 ASSERT(bufferCount <= data[SingleShaderStage::Compute].size());
-#endif
+
                 [compute setBytes:data[SingleShaderStage::Compute].data()
                            length:sizeof(uint32_t) * bufferCount
                           atIndex:kBufferLengthBufferSlot];