diff --git a/src/tests/DawnTest.cpp b/src/tests/DawnTest.cpp index e01d1672c4..530b464ccc 100644 --- a/src/tests/DawnTest.cpp +++ b/src/tests/DawnTest.cpp @@ -819,6 +819,10 @@ bool DawnTestBase::RunSuppressedTests() const { return gTestEnv->RunSuppressedTests(); } +bool DawnTestBase::IsDXC() const { + return HasToggleEnabled("use_dxc"); +} + bool DawnTestBase::IsAsan() const { #if defined(ADDRESS_SANITIZER) return true; diff --git a/src/tests/DawnTest.h b/src/tests/DawnTest.h index 911b8c4c7c..b3afb7d21b 100644 --- a/src/tests/DawnTest.h +++ b/src/tests/DawnTest.h @@ -295,6 +295,8 @@ class DawnTestBase { bool IsBackendValidationEnabled() const; bool RunSuppressedTests() const; + bool IsDXC() const; + bool IsAsan() const; bool HasToggleEnabled(const char* workaround) const; diff --git a/src/tests/end2end/VertexFormatTests.cpp b/src/tests/end2end/VertexFormatTests.cpp index 68f39ec6a2..f885c57e78 100644 --- a/src/tests/end2end/VertexFormatTests.cpp +++ b/src/tests/end2end/VertexFormatTests.cpp @@ -692,6 +692,9 @@ TEST_P(VertexFormatTest, Float16x2) { // Fails on NVIDIA's Vulkan drivers on CQ but passes locally. DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsNvidia()); + // TODO(crbug.com/tint/904): FXC emits bad output for this test + DAWN_SUPPRESS_TEST_IF(IsD3D12() && !IsDXC()); + std::vector vertexData = Float32ToFloat16(std::vector({14.8f, -0.0f, 22.5f, 1.3f, +0.0f, -24.8f}));