MSC build fix.

MSC doesn't like the use of sizeof(member) inside the same struct.
So hardcode the padding, and assert that the offset is 256.

Change-Id: I78bbca6871cf8227c90d00a03ccf8e3d955b7d21
Reviewed-on: https://dawn-review.googlesource.com/c/2160
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/src/tests/end2end/BindGroupTests.cpp b/src/tests/end2end/BindGroupTests.cpp
index a8a26c7..39cdcbe 100644
--- a/src/tests/end2end/BindGroupTests.cpp
+++ b/src/tests/end2end/BindGroupTests.cpp
@@ -12,6 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#include "common/Assert.h"
 #include "common/Constants.h"
 #include "tests/DawnTest.h"
 #include "utils/DawnHelpers.h"
@@ -124,9 +125,10 @@
         .GetResult();
     struct Data {
         float transform[8];
-        char padding[256 - sizeof(Data::transform)];
+        char padding[256 - 8 * sizeof(float)];
         float color[4];
     };
+    ASSERT(offsetof(Data, color) == 256);
     constexpr float dummy = 0.0f;
     Data data {
         { 1.f, 0.f, dummy, dummy, 0.f, 1.0f, dummy, dummy },
@@ -135,9 +137,9 @@
     };
     dawn::Buffer buffer = utils::CreateBufferFromData(device, &data, sizeof(data), dawn::BufferUsageBit::Uniform);
     dawn::BufferView vertUBOBufferView =
-        buffer.CreateBufferViewBuilder().SetExtent(offsetof(Data, transform), sizeof(Data::transform)).GetResult();
+        buffer.CreateBufferViewBuilder().SetExtent(0, sizeof(Data::transform)).GetResult();
     dawn::BufferView fragUBOBufferView =
-        buffer.CreateBufferViewBuilder().SetExtent(offsetof(Data, color), sizeof(Data::color)).GetResult();
+        buffer.CreateBufferViewBuilder().SetExtent(256, sizeof(Data::color)).GetResult();
     dawn::BindGroup bindGroup = device.CreateBindGroupBuilder()
         .SetLayout(bgl)
         .SetBufferViews(0, 1, &vertUBOBufferView)