From 558599fc9ae3c24ba293e1a2df2334a908e89747 Mon Sep 17 00:00:00 2001 From: Carl Woffenden Date: Wed, 13 Jan 2021 12:25:45 +0000 Subject: [PATCH] Further fixes to build with with VS2019 (end2end tests) These fix the tests so that the entire of Dawn can now be built with VS2019. Some details: Multiples of "error C3493: 'X' cannot be implicitly captured because no default capture mode has been specified" in BufferTests.cpp. This appears to be a bug in VS whereby the constexprs need capturing; the workaround, rather than explicitly name them and change the function signature, is to make the vars also static. In DepthStencilSamplingTests.cpp we get "warning C4310: cast truncates constant value" for uint8_t(256). Rather than try to silence the warning the test was removed, since the cast will *always* result in zero, which is also the first in the test values. To successfully build two further third-party dependencies also require updating: https://dawn-review.googlesource.com/c/tint/+/37700 https://chromium-review.googlesource.com/c/angle/angle/+/2624888 Note: whilst this now builds the entire of Dawn with VS not yet all of the build arguments are supported. Yet to investigate is turning on optimisations (with is_official_build=true) which attempts to combine "/INCREMENTAL" with "/OPT:REF" and fails (to be addressed next). Bug: dawn:602 Change-Id: I37202992f16b999d5627022eeeb6b9fff0d4b60b Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/37701 Reviewed-by: Corentin Wallez Commit-Queue: Carl Woffenden --- src/tests/end2end/BufferTests.cpp | 10 +++++----- src/tests/end2end/DepthStencilSamplingTests.cpp | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/tests/end2end/BufferTests.cpp b/src/tests/end2end/BufferTests.cpp index 849da12e56..82b26ba745 100644 --- a/src/tests/end2end/BufferTests.cpp +++ b/src/tests/end2end/BufferTests.cpp @@ -154,7 +154,7 @@ TEST_P(BufferMappingTests, MapRead_InCallback) { wgpu::Buffer buffer = CreateMapReadBuffer(kBufferSize); uint32_t myData[3] = {0x01020304, 0x05060708, 0x090A0B0C}; - constexpr size_t kSize = sizeof(myData); + static constexpr size_t kSize = sizeof(myData); queue.WriteBuffer(buffer, 0, &myData, kSize); struct UserData { @@ -355,8 +355,8 @@ TEST_P(BufferMappingTests, OffsetNotUpdatedOnError) { TEST_P(BufferMappingTests, MapWrite_InCallbackDefault) { wgpu::Buffer buffer = CreateMapWriteBuffer(4); - constexpr uint32_t myData = 2934875; - constexpr size_t kSize = sizeof(myData); + static constexpr uint32_t myData = 2934875; + static constexpr size_t kSize = sizeof(myData); struct UserData { bool done; @@ -396,8 +396,8 @@ TEST_P(BufferMappingTests, MapWrite_InCallbackDefault) { TEST_P(BufferMappingTests, MapWrite_InCallbackRange) { wgpu::Buffer buffer = CreateMapWriteBuffer(4); - constexpr uint32_t myData = 2934875; - constexpr size_t kSize = sizeof(myData); + static constexpr uint32_t myData = 2934875; + static constexpr size_t kSize = sizeof(myData); struct UserData { bool done; diff --git a/src/tests/end2end/DepthStencilSamplingTests.cpp b/src/tests/end2end/DepthStencilSamplingTests.cpp index b4795ecfdb..35c2e7429d 100644 --- a/src/tests/end2end/DepthStencilSamplingTests.cpp +++ b/src/tests/end2end/DepthStencilSamplingTests.cpp @@ -43,8 +43,7 @@ namespace { const std::vector kNormalizedTextureValues = {0.0, 0.3, 0.4, 0.5, 1.0}; // Test the limits, and some values in between. - const std::vector kStencilValues = {uint8_t(0), uint8_t(1), uint8_t(38), uint8_t(255), - uint8_t(256)}; + const std::vector kStencilValues = {uint8_t(0), uint8_t(1), uint8_t(38), uint8_t(255)}; } // anonymous namespace