Skip to content

Commit efa1cd9

Browse files
committed
add external validation option explicitly
1 parent b98c00f commit efa1cd9

5 files changed

Lines changed: 163 additions & 71 deletions

File tree

tools/clang/test/LitDXILValidation/load-store-validation.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
; REQUIRES: dxil-1-9
12
; RUN: not %dxv %s 2>&1 | FileCheck %s
23

34
; Ensure proper validation errors are produced for invalid parameters to load and store operations.

tools/clang/test/LitDXILValidation/vector-validation.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
; REQUIRES: dxil-1-9
12
; RUN: not %dxv %s 2>&1 | FileCheck %s
23

34
; Confirm that 6.9 specific LLVM operations and DXIL intrinsics fail in 6.8

tools/clang/unittests/HLSL/CompilerTest.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3712,7 +3712,7 @@ TEST_F(CompilerTest, CompileWhenODumpThenOptimizerMatch) {
37123712
LPCWSTR Target = L"ps_6_0";
37133713
CreateBlobFromText("float4 main() : SV_Target { return 0; }", &pSource);
37143714

3715-
LPCWSTR Args[2] = {OptLevel, L"/Odump"};
3715+
LPCWSTR Args[3] = {OptLevel, L"-select-validater external", L"/Odump"};
37163716

37173717
// Get the passes for this optimization level.
37183718
VERIFY_SUCCEEDED(pCompiler->Compile(pSource, L"source.hlsl", L"main",

tools/clang/unittests/HLSL/DxilModuleTest.cpp

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -514,51 +514,67 @@ TEST_F(DxilModuleTest, SetValidatorVersion) {
514514
return;
515515

516516
// Current version
517-
VerifyValidatorVersionMatches(L"ps_6_2", {});
518-
VerifyValidatorVersionMatches(L"lib_6_3", {});
517+
VerifyValidatorVersionMatches(L"ps_6_2", {L"-select-validator external"});
518+
VerifyValidatorVersionMatches(L"lib_6_3", {L"-select-validator external"});
519519

520520
// Current version, with validation disabled
521-
VerifyValidatorVersionMatches(L"ps_6_2", {L"-Vd"});
522-
VerifyValidatorVersionMatches(L"lib_6_3", {L"-Vd"});
521+
VerifyValidatorVersionMatches(L"ps_6_2",
522+
{L"-Vd", L"-select-validator external"});
523+
VerifyValidatorVersionMatches(L"lib_6_3",
524+
{L"-Vd", L"-select-validator external"});
523525

524526
// Override validator version
525-
VerifyValidatorVersionMatches(L"ps_6_2", {L"-validator-version", L"1.2"}, 1,
526-
2);
527-
VerifyValidatorVersionMatches(L"lib_6_3", {L"-validator-version", L"1.3"}, 1,
528-
3);
527+
VerifyValidatorVersionMatches(
528+
L"ps_6_2", {L"-validator-version", L"1.2", L"-select-validator external"},
529+
1, 2);
530+
VerifyValidatorVersionMatches(
531+
L"lib_6_3",
532+
{L"-validator-version", L"1.3", L"-select-validator external"}, 1, 3);
529533

530534
// Override validator version, with validation disabled
531-
VerifyValidatorVersionMatches(L"ps_6_2",
532-
{L"-Vd", L"-validator-version", L"1.2"}, 1, 2);
533-
VerifyValidatorVersionMatches(L"lib_6_3",
534-
{L"-Vd", L"-validator-version", L"1.3"}, 1, 3);
535+
VerifyValidatorVersionMatches(
536+
L"ps_6_2",
537+
{L"-Vd", L"-validator-version", L"1.2", L"-select-validator external"}, 1,
538+
2);
539+
VerifyValidatorVersionMatches(
540+
L"lib_6_3",
541+
{L"-Vd", L"-validator-version", L"1.3", L"-select-validator external"}, 1,
542+
3);
535543

536544
// Never can validate (version 0,0):
537-
VerifyValidatorVersionMatches(L"lib_6_1", {L"-Vd"}, 0, 0);
538-
VerifyValidatorVersionMatches(L"lib_6_2", {L"-Vd"}, 0, 0);
545+
VerifyValidatorVersionMatches(L"lib_6_1",
546+
{L"-Vd", L"-select-validator external"}, 0, 0);
539547
VerifyValidatorVersionMatches(L"lib_6_2",
540-
{L"-Vd", L"-validator-version", L"0.0"}, 0, 0);
548+
{L"-Vd", L"-select-validator external"}, 0, 0);
549+
VerifyValidatorVersionMatches(
550+
L"lib_6_2",
551+
{L"-Vd", L"-validator-version", L"0.0", L"-select-validator external"}, 0,
552+
0);
541553
VerifyValidatorVersionMatches(L"lib_6_x", {}, 0, 0);
542-
VerifyValidatorVersionMatches(L"lib_6_x", {L"-validator-version", L"0.0"}, 0,
543-
0);
554+
VerifyValidatorVersionMatches(
555+
L"lib_6_x",
556+
{L"-validator-version", L"0.0", L"-select-validator external"}, 0, 0);
544557

545558
// Failure cases:
546559
VerifyValidatorVersionFails(
547-
L"ps_6_2", {L"-validator-version", L"1.1"},
560+
L"ps_6_2", {L"-validator-version", L"1.1", L"-select-validator external"},
548561
{"validator version 1,1 does not support target profile."});
549562

550563
VerifyValidatorVersionFails(
551-
L"lib_6_2", {L"-Tlib_6_2"},
564+
L"lib_6_2", {L"-Tlib_6_2", L"-select-validator external"},
552565
{"Must disable validation for unsupported lib_6_1 or lib_6_2 targets"});
553566

554-
VerifyValidatorVersionFails(L"lib_6_2",
555-
{L"-Vd", L"-validator-version", L"1.2"},
556-
{"-validator-version cannot be used with library "
557-
"profiles lib_6_1 or lib_6_2."});
567+
VerifyValidatorVersionFails(
568+
L"lib_6_2",
569+
{L"-Vd", L"-validator-version", L"1.2", L"-select-validator external"},
570+
{"-validator-version cannot be used with library "
571+
"profiles lib_6_1 or lib_6_2."});
558572

559-
VerifyValidatorVersionFails(L"lib_6_x", {L"-validator-version", L"1.3"},
560-
{"Offline library profile cannot be used with "
561-
"non-zero -validator-version."});
573+
VerifyValidatorVersionFails(
574+
L"lib_6_x",
575+
{L"-validator-version", L"1.3", L"-select-validator external"},
576+
{"Offline library profile cannot be used with "
577+
"non-zero -validator-version."});
562578
}
563579

564580
TEST_F(DxilModuleTest, PayloadQualifier) {

0 commit comments

Comments
 (0)