Suppress MaxLimitTests.MaxBufferBindingSize on Linux/Vulkan/Nvidia.
- The test was failing on the google3 TAP bots.
- Also adjusts the size so that it is the aligned min given the limit,
not just the aligned limit since that can be larger than the limit.
Bug: dawn:1217
Change-Id: I02a68d14d61099dc5c1a2450cbaadc2320f5b8a9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/110760
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
diff --git a/src/dawn/tests/end2end/MaxLimitTests.cpp b/src/dawn/tests/end2end/MaxLimitTests.cpp
index 70964c7..6a81de6 100644
--- a/src/dawn/tests/end2end/MaxLimitTests.cpp
+++ b/src/dawn/tests/end2end/MaxLimitTests.cpp
@@ -110,6 +110,7 @@
// TODO(crbug.com/dawn/1217): Remove this suppression.
DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsNvidia());
+ DAWN_SUPPRESS_TEST_IF(IsLinux() && IsVulkan() && IsNvidia());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
@@ -192,7 +193,8 @@
device.PushErrorScope(wgpu::ErrorFilter::OutOfMemory);
wgpu::BufferDescriptor bufDesc;
- bufDesc.size = Align(maxBufferBindingSize, 4);
+ uint64_t bufferSize = Align(maxBufferBindingSize - 3u, 4);
+ bufDesc.size = bufferSize;
bufDesc.usage = usage | wgpu::BufferUsage::CopyDst;
wgpu::Buffer buffer = device.CreateBuffer(&bufDesc);
@@ -213,7 +215,7 @@
queue.WriteBuffer(buffer, 0, &value0, sizeof(value0));
uint32_t value1 = 234;
- uint64_t value1Offset = Align(maxBufferBindingSize - sizeof(value1), 4);
+ uint64_t value1Offset = Align(bufferSize - sizeof(value1), 4);
queue.WriteBuffer(buffer, value1Offset, &value1, sizeof(value1));
wgpu::ComputePipelineDescriptor csDesc;
@@ -234,10 +236,9 @@
queue.Submit(1, &commands);
EXPECT_BUFFER_U32_EQ(value0, resultBuffer, 0)
- << "maxBufferBindingSize=" << maxBufferBindingSize << "; offset=" << 0
- << "; usage=" << usage;
+ << "maxBufferBindingSize=" << bufferSize << "; offset=" << 0 << "; usage=" << usage;
EXPECT_BUFFER_U32_EQ(value1, resultBuffer, 4)
- << "maxBufferBindingSize=" << maxBufferBindingSize << "; offset=" << value1Offset
+ << "maxBufferBindingSize=" << bufferSize << "; offset=" << value1Offset
<< "; usage=" << usage;
}
}