Skip to content

Commit ad778f2

Browse files
authored
Remove all WARP skips (microsoft#6602)
Now that WARP is actually getting bugfixes and features, and has a way for folks to get new versions without waiting years for an OS update, stop hiding the places where it's failing. Having these hardcoded skips in place makes it impossible to run the tests to see if it's still failing. If we really need these skips, we at least need some kind of command line option to override them for debugging and fixing the failures.
1 parent 9fae255 commit ad778f2

File tree

1 file changed

+0
-121
lines changed

1 file changed

+0
-121
lines changed

tools/clang/unittests/HLSLExec/ExecutionTest.cpp

Lines changed: 0 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -224,37 +224,6 @@ static void SavePixelsToFile(LPCVOID pPixels, DXGI_FORMAT format,
224224
VERIFY_SUCCEEDED(pStream->Commit(STGC_DEFAULT));
225225
}
226226

227-
// Checks if the given warp version supports the given operation.
228-
bool IsValidWarpDllVersion(unsigned int minBuildNumber) {
229-
HMODULE pLibrary = LoadLibrary("D3D10Warp.dll");
230-
if (pLibrary) {
231-
char path[MAX_PATH];
232-
DWORD length = GetModuleFileName(pLibrary, path, MAX_PATH);
233-
if (length) {
234-
DWORD dwVerHnd = 0;
235-
DWORD dwVersionInfoSize = GetFileVersionInfoSize(path, &dwVerHnd);
236-
std::unique_ptr<int[]> VffInfo(new int[dwVersionInfoSize]);
237-
if (GetFileVersionInfo(path, NULL, dwVersionInfoSize, VffInfo.get())) {
238-
LPVOID versionInfo;
239-
UINT size;
240-
if (VerQueryValue(VffInfo.get(), "\\", &versionInfo, &size)) {
241-
if (size) {
242-
VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)versionInfo;
243-
unsigned int warpBuildNumber =
244-
verInfo->dwFileVersionLS >> 16 & 0xffff;
245-
if (verInfo->dwSignature == 0xFEEF04BD &&
246-
warpBuildNumber >= minBuildNumber) {
247-
return true;
248-
}
249-
}
250-
}
251-
}
252-
}
253-
FreeLibrary(pLibrary);
254-
}
255-
return false;
256-
}
257-
258227
#if WDK_NTDDI_VERSION <= NTDDI_WIN10_RS2
259228
#define D3D12_FEATURE_D3D12_OPTIONS3 ((D3D12_FEATURE)21)
260229
#define NTDDI_WIN10_RS3 0x0A000004 /* ABRACADABRA_WIN10_RS2 */
@@ -2458,14 +2427,6 @@ TEST_F(ExecutionTest, LifetimeIntrinsicTest) {
24582427
bool bDXRSupported =
24592428
bSM_6_3_Supported && DoesDeviceSupportRayTracing(pDevice);
24602429

2461-
if (GetTestParamUseWARP(UseWarpByDefault()) ||
2462-
IsDeviceBasicAdapter(pDevice)) {
2463-
WEX::Logging::Log::Comment(
2464-
L"WARP has a known issue with LifetimeIntrinsicTest.");
2465-
WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
2466-
return;
2467-
}
2468-
24692430
if (!bSM_6_6_Supported) {
24702431
WEX::Logging::Log::Comment(
24712432
L"Native lifetime markers skipped, device does not support SM 6.6");
@@ -4088,14 +4049,6 @@ TEST_F(ExecutionTest, QuadReadTest) {
40884049
if (!CreateDevice(&pDevice))
40894050
return;
40904051

4091-
if (GetTestParamUseWARP(UseWarpByDefault()) ||
4092-
IsDeviceBasicAdapter(pDevice)) {
4093-
WEX::Logging::Log::Comment(
4094-
L"WARP does not support QuadRead in compute shaders.");
4095-
WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
4096-
return;
4097-
}
4098-
40994052
if (!DoesDeviceSupportWaveOps(pDevice)) {
41004053
WEX::Logging::Log::Comment(L"Device does not support wave operations.");
41014054
return;
@@ -7162,12 +7115,6 @@ TEST_F(ExecutionTest, UnaryFloatOpTest) {
71627115
CW2A Target(handler.GetTableParamByName(L"ShaderOp.Target")->m_str);
71637116
CW2A Text(handler.GetTableParamByName(L"ShaderOp.Text")->m_str);
71647117

7165-
unsigned int WarpVersion =
7166-
handler.GetTableParamByName(L"Warp.Version")->m_uint;
7167-
if (GetTestParamUseWARP(true) && !IsValidWarpDllVersion(WarpVersion)) {
7168-
return;
7169-
}
7170-
71717118
std::vector<float> *Validation_Input =
71727119
&(handler.GetTableParamByName(L"Validation.Input1")->m_floatTable);
71737120
std::vector<float> *Validation_Expected =
@@ -7403,12 +7350,6 @@ TEST_F(ExecutionTest, UnaryHalfOpTest) {
74037350
CW2A Text(handler.GetTableParamByName(L"ShaderOp.Text")->m_str);
74047351
CW2A Arguments(handler.GetTableParamByName(L"ShaderOp.Arguments")->m_str);
74057352

7406-
unsigned int WarpVersion =
7407-
handler.GetTableParamByName(L"Warp.Version")->m_uint;
7408-
if (GetTestParamUseWARP(true) && !IsValidWarpDllVersion(WarpVersion)) {
7409-
return;
7410-
}
7411-
74127353
std::vector<uint16_t> *Validation_Input =
74137354
&(handler.GetTableParamByName(L"Validation.Input1")->m_halfTable);
74147355
std::vector<uint16_t> *Validation_Expected =
@@ -10982,18 +10923,6 @@ TEST_F(ExecutionTest, DenormBinaryFloatOpTest) {
1098210923
"must have same number of expected values");
1098310924
}
1098410925

10985-
#if defined(_M_ARM64) || defined(_M_ARM64EC)
10986-
if ((GetTestParamUseWARP(UseWarpByDefault()) ||
10987-
IsDeviceBasicAdapter(pDevice)) &&
10988-
mode == Float32DenormMode::Preserve) {
10989-
WEX::Logging::Log::Comment(
10990-
L"WARP has an issue with DenormBinaryFloatOpTest with '-denorm "
10991-
L"preserve' on ARM64.");
10992-
WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
10993-
return;
10994-
}
10995-
#endif // defined(_M_ARM64) || defined(_M_ARM64EC)
10996-
1099710926
std::shared_ptr<ShaderOpTestResult> test = RunShaderOpTest(
1099810927
pDevice, m_support, pStream, "BinaryFPOp",
1099910928
// this callbacked is called when the test
@@ -11107,18 +11036,6 @@ TEST_F(ExecutionTest, DenormTertiaryFloatOpTest) {
1110711036
"must have same number of expected values");
1110811037
}
1110911038

11110-
#if defined(_M_ARM64) || defined(_M_ARM64EC)
11111-
if ((GetTestParamUseWARP(UseWarpByDefault()) ||
11112-
IsDeviceBasicAdapter(pDevice)) &&
11113-
mode == Float32DenormMode::Preserve) {
11114-
WEX::Logging::Log::Comment(
11115-
L"WARP has an issue with DenormTertiaryFloatOpTest with '-denorm "
11116-
L"preserve' on ARM64.");
11117-
WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
11118-
return;
11119-
}
11120-
#endif // defined(_M_ARM64) || defined(_M_ARM64EC)
11121-
1112211039
std::shared_ptr<ShaderOpTestResult> test = RunShaderOpTest(
1112311040
pDevice, m_support, pStream, "TertiaryFPOp",
1112411041
// this callbacked is called when the test
@@ -11666,46 +11583,28 @@ void ExecutionTest::WaveIntrinsicsActivePrefixTest(
1166611583
}
1166711584
}
1166811585

11669-
static const unsigned int MinWarpVersionForWaveIntrinsics = 16202;
11670-
1167111586
TEST_F(ExecutionTest, WaveIntrinsicsActiveIntTest) {
11672-
if (GetTestParamUseWARP(true) &&
11673-
!IsValidWarpDllVersion(MinWarpVersionForWaveIntrinsics)) {
11674-
return;
11675-
}
1167611587
WaveIntrinsicsActivePrefixTest<int, int>(
1167711588
WaveIntrinsicsActiveIntParameters,
1167811589
sizeof(WaveIntrinsicsActiveIntParameters) / sizeof(TableParameter),
1167911590
/*isPrefix*/ false);
1168011591
}
1168111592

1168211593
TEST_F(ExecutionTest, WaveIntrinsicsActiveUintTest) {
11683-
if (GetTestParamUseWARP(true) &&
11684-
!IsValidWarpDllVersion(MinWarpVersionForWaveIntrinsics)) {
11685-
return;
11686-
}
1168711594
WaveIntrinsicsActivePrefixTest<unsigned int, unsigned int>(
1168811595
WaveIntrinsicsActiveUintParameters,
1168911596
sizeof(WaveIntrinsicsActiveUintParameters) / sizeof(TableParameter),
1169011597
/*isPrefix*/ false);
1169111598
}
1169211599

1169311600
TEST_F(ExecutionTest, WaveIntrinsicsPrefixIntTest) {
11694-
if (GetTestParamUseWARP(true) &&
11695-
!IsValidWarpDllVersion(MinWarpVersionForWaveIntrinsics)) {
11696-
return;
11697-
}
1169811601
WaveIntrinsicsActivePrefixTest<int, int>(
1169911602
WaveIntrinsicsPrefixIntParameters,
1170011603
sizeof(WaveIntrinsicsPrefixIntParameters) / sizeof(TableParameter),
1170111604
/*isPrefix*/ true);
1170211605
}
1170311606

1170411607
TEST_F(ExecutionTest, WaveIntrinsicsPrefixUintTest) {
11705-
if (GetTestParamUseWARP(true) &&
11706-
!IsValidWarpDllVersion(MinWarpVersionForWaveIntrinsics)) {
11707-
return;
11708-
}
1170911608
WaveIntrinsicsActivePrefixTest<unsigned int, unsigned int>(
1171011609
WaveIntrinsicsPrefixUintParameters,
1171111610
sizeof(WaveIntrinsicsPrefixUintParameters) / sizeof(TableParameter),
@@ -14698,14 +14597,6 @@ TEST_F(ExecutionTest, HelperLaneTestWave) {
1469814597
continue;
1469914598
}
1470014599

14701-
if (GetTestParamUseWARP(UseWarpByDefault()) ||
14702-
IsDeviceBasicAdapter(pDevice)) {
14703-
WEX::Logging::Log::Comment(
14704-
L"WARP has a known issue with HelperLaneTestWave.");
14705-
WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
14706-
return;
14707-
}
14708-
1470914600
if (!DoesDeviceSupportWaveOps(pDevice)) {
1471014601
LogCommentFmt(
1471114602
L"Device does not support wave operations in shader model 6.%1u",
@@ -14859,11 +14750,6 @@ TEST_F(ExecutionTest, QuadAnyAll) {
1485914750
continue;
1486014751
}
1486114752

14862-
if (IsDeviceBasicAdapter(pDevice)) {
14863-
WEX::Logging::Log::Comment(L"QuadAny/All fails on basic render driver.");
14864-
continue;
14865-
}
14866-
1486714753
if (!DoesDeviceSupportWaveOps(pDevice)) {
1486814754
LogCommentFmt(
1486914755
L"Device does not support wave operations in shader model 6.%1u",
@@ -15037,13 +14923,6 @@ TEST_F(ExecutionTest, IsNormalTest) {
1503714923
VERIFY_IS_TRUE(CreateDevice(&pDevice, D3D_SHADER_MODEL_6_0,
1503814924
false /* skipUnsupported */));
1503914925

15040-
if (GetTestParamUseWARP(UseWarpByDefault()) ||
15041-
IsDeviceBasicAdapter(pDevice)) {
15042-
WEX::Logging::Log::Comment(L"WARP has a known issue with IsNormalTest.");
15043-
WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
15044-
return;
15045-
}
15046-
1504714926
// The input is -Zero, Zero, -Denormal, Denormal, -Infinity, Infinity, -NaN,
1504814927
// Nan, and then 4 normal float numbers. Only the last 4 floats are normal, so
1504914928
// we expect the first 8 results to be 0, and the last 4 to be 1, as defined

0 commit comments

Comments
 (0)