From d80a89888349a8fb47c20d0f0f020b484d75fd1f Mon Sep 17 00:00:00 2001 From: Joao Saffran Date: Mon, 9 Nov 2026 17:03:25 -0800 Subject: [PATCH 1/4] [HLSLExec] Make execution tests directly consumable by the HLK Embed the HLK metadata that the DXCBuild conversion scripts used to inject, so ExecutionTest.cpp and ShaderOpArithTable.xml can be built into the HLK as-is. The test class is renamed from ExecutionTest to DxilConfTest so existing HLK waivers keep matching, and the TAEF name filters in hcttest.cmd are updated to match. To match the former gen_DxilConf.cpp template under _HLK_CONF: - Drop the TAEF Parallel/Priority class properties, which the HLK class did not have. - Exclude the non-HLK-only ReportLiveObjects/WriteInfoQueueMessages helpers, which do not compile with UNICODE. The template's DriverVerifier toggle and skipped IsNormalTest stub are intentionally not carried over: the former is no longer used, and the latter's HLK references were removed when #7768 was resolved. DxilConfTestUtils.h is no longer needed: dxc/Support/Global.h provides its macros, and ExecutionTest.cpp already defines contains(). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../unittests/HLSLExec/ExecutionTest.cpp | 890 +++++++++++++---- .../unittests/HLSLExec/ShaderOpArithTable.xml | 918 +++++++++++++++--- .../HLSLExec/TableParameterHandler.h | 4 - utils/hct/hcttest.cmd | 8 +- 4 files changed, 1456 insertions(+), 364 deletions(-) diff --git a/tools/clang/unittests/HLSLExec/ExecutionTest.cpp b/tools/clang/unittests/HLSLExec/ExecutionTest.cpp index 5027f8daace..64efec445eb 100644 --- a/tools/clang/unittests/HLSLExec/ExecutionTest.cpp +++ b/tools/clang/unittests/HLSLExec/ExecutionTest.cpp @@ -28,8 +28,8 @@ #include #include #include -#include "dxc/Test/CompilationResult.h" -#include "dxc/Test/HLSLTestData.h" +#include +#include "dxc/Support/WinIncludes.h" #include #include #include @@ -38,12 +38,8 @@ #include #undef _read -#include "dxc/Test/DxcTestUtils.h" #include "dxc/Support/Global.h" -#include "dxc/Support/WinIncludes.h" #include "dxc/Test/HlslTestUtils.h" -#include "dxc/Support/FileIOHelper.h" -#include "dxc/Support/Unicode.h" // // d3d12.h and dxgi1_4.h are included in the Windows 10 SDK @@ -186,13 +182,15 @@ static void SavePixelsToFile(LPCVOID pPixels, DXGI_FORMAT format, VERIFY_SUCCEEDED(pStream->Commit(STGC_DEFAULT)); } -class ExecutionTest { +class DxilConfTest { public: - BEGIN_TEST_CLASS(ExecutionTest) + BEGIN_TEST_CLASS(DxilConfTest) TEST_CLASS_PROPERTY(L"Parallel", L"true") +#ifndef _HLK_CONF TEST_METHOD_PROPERTY(L"Priority", L"0") +#endif END_TEST_CLASS() - TEST_CLASS_SETUP(ExecutionTestClassSetup) + TEST_CLASS_SETUP(DxilConfTestClassSetup) TEST_METHOD(BasicComputeTest); TEST_METHOD(BasicTriangleTest); @@ -200,50 +198,394 @@ class ExecutionTest { TEST_METHOD(BasicTriangleOpTestHalf); - TEST_METHOD(OutOfBoundsTest); - TEST_METHOD(SaturateTest); - TEST_METHOD(SignTest); - TEST_METHOD(Int64Test); - TEST_METHOD(LifetimeIntrinsicTest) + BEGIN_TEST_METHOD(OutOfBoundsTest) + TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies basic OutOfBoundsTest.") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"3d8f4e73-d840-4582-8182-8996f717ebac") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Basic OutOfBoundsTest") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXILCore." + L"ShaderModel60.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(SaturateTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies the saturate instruction.") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"f1d6cd38-d89c-47d2-bfb4-2e17b94b4d0f") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Saturate instruction test") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXILCore." + L"ShaderModel60.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(SignTest) + TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies basic sign.") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"4827868d-b4c5-408a-841a-6f8336bb1605") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Sign instruction test") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXILCore." + L"ShaderModel60.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(Int64Test) + TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies basic 64-bit int usage.") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"969d000a-d972-43fb-abc5-9ed622bfb392") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Basic 64-bit int test") + TEST_METHOD_PROPERTY( + L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXIL.Int64.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(LifetimeIntrinsicTest) + TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies lifetime intrinrics") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"382d7ad4-cdf3-49cb-a622-3cb346b489f9") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Lifetime intrinsics markers") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXILCore." + L"ShaderModel60.CoreRequirement") + END_TEST_METHOD() TEST_METHOD(WaveIntrinsicsTest); TEST_METHOD(WaveIntrinsicsDDITest); - TEST_METHOD(WaveIntrinsicsInPSTest); - TEST_METHOD(WaveSizeTest); - TEST_METHOD(WaveSizeRangeTest); + BEGIN_TEST_METHOD(WaveIntrinsicsInPSTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies basic wave intrinsics under pixel shader.") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"d4b93ce1-0f21-41bd-9a00-0ad2772aac56") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Wave Op Test - WaveIntrinsicsInPSTest") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXIL." + L"WaveOps.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(WaveSizeTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.6 WaveSize attribute") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"a57f83a9-ddea-4b6d-a625-bac5642944d3") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - WaveSize") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(WaveSizeRangeTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.8 WaveSizeRange attribute") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"df933b47-3016-4362-b764-d98ff9eeb486") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.8 - WaveSizeRange") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel68.CoreRequirement") + END_TEST_METHOD() // TODO(#8661): Remove me when GroupSharedLimit is available in a released // Windows SDK. #if defined(HLSLEXEC_GROUPSHARED_LIMITS) - TEST_METHOD(GroupSharedLimitTest); - TEST_METHOD(GroupSharedLimitASTest); - TEST_METHOD(GroupSharedLimitMSTest); + BEGIN_TEST_METHOD(GroupSharedLimitTest) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies the GroupSharedLimit attribute in compute shaders") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"d2e96368-77f8-44db-a3dc-301e6ad08758") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.10 - " + L"GroupSharedLimit (compute)") + TEST_METHOD_PROPERTY( + L"Kits.Specification", + L"Device.Graphics.D3D12.DXILCore.ShaderModel610.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(GroupSharedLimitASTest) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies the GroupSharedLimit attribute in amplification shaders") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"736c4f87-0656-4cf6-ad6a-bc625053740d") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.10 - " + L"GroupSharedLimit (amplification)") + TEST_METHOD_PROPERTY( + L"Kits.Specification", + L"Device.Graphics.D3D12.DXILCore.ShaderModel610.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(GroupSharedLimitMSTest) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies the GroupSharedLimit attribute in mesh shaders") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"84616150-e5bc-4831-812d-96418457a0e6") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.10 - GroupSharedLimit (mesh)") + TEST_METHOD_PROPERTY( + L"Kits.Specification", + L"Device.Graphics.D3D12.DXILCore.ShaderModel610.CoreRequirement") + END_TEST_METHOD() #endif // defined(HLSLEXEC_GROUPSHARED_LIMITS) - TEST_METHOD(GroupWaveIndexTest); - TEST_METHOD(PartialDerivTest); - TEST_METHOD(DerivativesTest); - TEST_METHOD(ComputeSampleTest); - TEST_METHOD(ATOProgOffset); - TEST_METHOD(ATOSampleCmpLevelTest); - TEST_METHOD(ATOWriteMSAATest); - TEST_METHOD(ATORawGather); - TEST_METHOD(AtomicsTest); - TEST_METHOD(Atomics64Test); - TEST_METHOD(AtomicsRawHeap64Test); - TEST_METHOD(AtomicsTyped64Test); - TEST_METHOD(AtomicsShared64Test); - TEST_METHOD(AtomicsFloatTest); - TEST_METHOD(HelperLaneTest); - TEST_METHOD(HelperLaneTestWave); - TEST_METHOD(SignatureResourcesTest) - TEST_METHOD(DynamicResourcesTest) - TEST_METHOD(DynamicResourcesDynamicIndexingTest) - - TEST_METHOD(QuadReadTest) - TEST_METHOD(QuadAnyAll); - - TEST_METHOD(CBufferTestHalf); - - TEST_METHOD(BasicShaderModel61); - TEST_METHOD(BasicShaderModel63); + BEGIN_TEST_METHOD(GroupWaveIndexTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies the GetGroupWaveIndex and GetGroupWaveCount " + L"intrinsics in compute shaders") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"c3f60f00-8e91-4acb-b4be-9f483fbe836b") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.10 - GroupWaveIndex") + TEST_METHOD_PROPERTY( + L"Kits.Specification", + L"Device.Graphics.D3D12.DXILCore.ShaderModel610.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(PartialDerivTest) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies partial derivative intrinsics under pixel shader.") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"b190893f-ae70-4d34-85b9-a20248e76f40") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Basic partial derivative test") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXILCore." + L"ShaderModel60.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(DerivativesTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.6 derivative operations in " + L"compute, mesh and amplification shaders") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"c5e7c498-d3bd-4219-907e-e6d030bf59f7") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Derivatives") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(ComputeSampleTest) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies sample operations in compute and mesh shaders") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"2b74e0c5-839e-4327-b878-60d6de8341c6") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Sample in " + L"compute and mesh shaders") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(ATOProgOffset) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies Programmable Sample*/Load Offsets (Advanced Texture Ops)") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"2b81a42d-cb1b-42d4-84ea-c2bdd94a760c") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.7 - " + L"Programmable Sample Offsets ") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM31.AdapterRender.D3D12.DXILCore." + L"ShaderModel67.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(ATOSampleCmpLevelTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies SampleCmpLevel (Advanced Texture Ops)") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"485026f3-192e-4dd0-8965-1889929c3ebb") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.7 - SampleCmpLevel") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM31.AdapterRender.D3D12.DXILCore." + L"ShaderModel67.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(ATOWriteMSAATest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies Writable MSAA (Advanced Texture Ops)") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"e4841e1f-e969-41d0-bfb6-a53bb714df84") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.7 - Writable MSAA") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM31.AdapterRender.D3D12.DXILCore." + L"ShaderModel67.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(ATORawGather) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies GatherRaw (Advanced Texture Ops)") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"45999098-b007-4778-a574-c2d30c54a1aa") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.7 - GatherRaw") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM31.AdapterRender.D3D12.DXILCore." + L"ShaderModel67.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(AtomicsTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies 32-bit integer atomic operations") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"84eb9d7e-81d6-45b5-b967-c128862b0c56") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Atomics (32-bit integer)") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXILCore." + L"ShaderModel60.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(Atomics64Test) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies shader model 6.6 atomic operations on 64-bit integers") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"50a5ddb9-25ff-4c7b-b438-6cc6346a1531") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Atomics (64-bit integer)") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(AtomicsRawHeap64Test) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.6 atomics using raw buffers " + L"from the descriptor heap") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"38a50fa1-7611-435b-a199-78fd285db21e") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Atomics " + L"64-bit raw heap test") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(AtomicsTyped64Test) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies shader model 6.6 atomic operations on typed 64-bit resources") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"4b67b299-3c80-4301-b968-64022826782c") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Atomics " + L"(typed 64-bit resources)") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(AtomicsShared64Test) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.6 atomic operations on " + L"groupshared 64-bit variables") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"444c06ae-7957-496e-ae04-d668454e1d34") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Atomics " + L"(groupshared 64-bit variables)") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(AtomicsFloatTest) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies shader model 6.6 floating point atomic operations") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"23f41361-f8f5-4267-b948-b00e0bdab593") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Atomics (float)") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(HelperLaneTest) + TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies IsHelperLane intrinsic") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"d8b209a0-d976-48ca-bc9e-047d2a0075f2") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - IsHelperLane") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(HelperLaneTestWave) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies helper lanes in wave operations") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"b48c35c6-44cd-4f68-9a71-eb500fa585b8") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Helper " + L"Lanes in Wave Operations") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(SignatureResourcesTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.6 signature resources") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"44e432d8-52da-4309-b3e0-cf06048baac6") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Signature resources") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(DynamicResourcesTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.6 dynamic resources") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"b9ac94b3-a96e-412b-9101-ff731697823c") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Dynamic resources") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(DynamicResourcesDynamicIndexingTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies dynamic indexing of dynamic resources") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"cb131b0c-c2aa-4a7f-be38-dfa94c0556d3") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Dynamic " + L"indexing of dynamic resources") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") + END_TEST_METHOD() + + BEGIN_TEST_METHOD(QuadReadTest) + TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies QuadRead intrinsics") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"a9b504bb-f841-414e-bdda-ba948f18420f") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - QuadRead intrinsics") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXILCore." + L"ShaderModel60.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(QuadAnyAll) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies QuadAny/QuadAll intrinsic") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"86a4e6f0-fd73-487b-9d63-ec5a5bb2b803") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.7 - QuadAny QuadAll") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM31.AdapterRender.D3D12.DXILCore." + L"ShaderModel67.CoreRequirement") + END_TEST_METHOD() + + BEGIN_TEST_METHOD(CBufferTestHalf) + TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies float16 in CBuffer") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12." + L"Native16Bits.CoreRequirement") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"936cd44a-c4b1-4f9b-992f-76fe17d2bf60") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL 16bit Types Test - CBuffer Test") + END_TEST_METHOD() + + BEGIN_TEST_METHOD(BasicShaderModel61) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.1 support.") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"a53f923a-af31-4d2c-b6d9-b667281c52c0") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Basic shader model 6.1 test") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM23.AdapterRender.D3D12.DXILCore." + L"ShaderModel61.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(BasicShaderModel63) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.3 support.") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"d8918d1c-382f-491a-a1b2-3c1fcc994202") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Basic shader model 6.3 test") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM25.AdapterRender.D3D12.DXILCore." + L"ShaderModel63.CoreRequirement") + END_TEST_METHOD() BEGIN_TEST_METHOD(WaveIntrinsicsActiveIntTest) TEST_METHOD_PROPERTY( @@ -399,29 +741,179 @@ class ExecutionTest { L"DataSource", L"Table:ShaderOpArithTable.xml#DenormTertiaryFloatOpTable") END_TEST_METHOD() - TEST_METHOD(BarycentricsTest); + BEGIN_TEST_METHOD(BarycentricsTest) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies barycentrics functionality") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"13ea5ebf-ac10-4723-a9a0-a4fe1b9042a6") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Barycentrics test") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM23.AdapterRender.D3D12.DXILCore." + L"ShaderModel61.CoreRequirement") + END_TEST_METHOD() - TEST_METHOD(ComputeRawBufferLdStI32); - TEST_METHOD(ComputeRawBufferLdStFloat); + BEGIN_TEST_METHOD(ComputeRawBufferLdStI32) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies compute pipeline raw buffer load/store for int32_t datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"54dd1088-42e8-477e-93c5-87494f1231cc") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Compute pipeline - Raw " + L"Buffer Load Store Test - int32_t") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12.DXILCore." + L"ShaderModel62.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(ComputeRawBufferLdStFloat) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies compute pipeline raw buffer load/store for float datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"430c019f-ba13-42c7-bce6-3a9bd7905a30") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Compute pipeline - Raw " + L"Buffer Load Store Test - float") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12.DXILCore." + L"ShaderModel62.CoreRequirement") + END_TEST_METHOD() - TEST_METHOD(ComputeRawBufferLdStI64); - TEST_METHOD(ComputeRawBufferLdStDouble); + BEGIN_TEST_METHOD(ComputeRawBufferLdStI64) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies compute pipeline raw buffer load/store for int64_t datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"981b4460-073f-4255-ab7c-192adfff26fa") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Compute pipeline - Raw " + L"Buffer Load Store Test - int64_t") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM25.AdapterRender.D3D12.DXILCore." + L"ShaderModel63.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(ComputeRawBufferLdStDouble) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies compute pipeline raw buffer load/store for double datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"798cc50c-9018-4948-9cf7-857274aedf06") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Compute pipeline - Raw " + L"Buffer Load Store Test - double") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM25.AdapterRender.D3D12.DXILCore." + L"ShaderModel63.CoreRequirement") + END_TEST_METHOD() - TEST_METHOD(ComputeRawBufferLdStI16); - TEST_METHOD(ComputeRawBufferLdStHalf); + BEGIN_TEST_METHOD(ComputeRawBufferLdStI16) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies compute pipeline raw buffer load/store for int16_t datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"c6d11027-5ddb-4ff4-9bac-f5f0d74a4560") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Compute pipeline - Raw " + L"Buffer Load Store Test - int16_t") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12.DXILCore." + L"ShaderModel62.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(ComputeRawBufferLdStHalf) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies compute pipeline raw buffer load/store for float16_t datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"ec3f83e8-61ed-4f43-9b06-0f6b6ad323eb") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Compute pipeline - Raw " + L"Buffer Load Store Test - float16_t") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12.DXILCore." + L"ShaderModel62.CoreRequirement") + END_TEST_METHOD() - TEST_METHOD(GraphicsRawBufferLdStI32); - TEST_METHOD(GraphicsRawBufferLdStFloat); + BEGIN_TEST_METHOD(GraphicsRawBufferLdStI32) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies graphics pipeline raw buffer load/store for int32_t datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"969d01e7-db0e-4271-a136-9089f240e2e2") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Graphics pipeline - Raw " + L"Buffer Load Store Test - int32_t") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12.DXILCore." + L"ShaderModel62.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(GraphicsRawBufferLdStFloat) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies graphics pipeline raw buffer load/store for float datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"46141a5a-3a42-4906-bc96-a70c691f79da") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Graphics pipeline - Raw " + L"Buffer Load Store Test - float") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12.DXILCore." + L"ShaderModel62.CoreRequirement") + END_TEST_METHOD() - TEST_METHOD(GraphicsRawBufferLdStI64); - TEST_METHOD(GraphicsRawBufferLdStDouble); + BEGIN_TEST_METHOD(GraphicsRawBufferLdStI64) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies graphics pipeline raw buffer load/store for int64_t datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"59375291-95a5-4889-896b-c21e0ad11be9") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Graphics pipeline - Raw " + L"Buffer Load Store Test - int64_t") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM25.AdapterRender.D3D12.DXILCore." + L"ShaderModel63.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(GraphicsRawBufferLdStDouble) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies graphics pipeline raw buffer load/store for double datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"ba10ff74-2d0e-41aa-9539-c80106f770f2") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Graphics pipeline - Raw " + L"Buffer Load Store Test - double") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM25.AdapterRender.D3D12.DXILCore." + L"ShaderModel63.CoreRequirement") + END_TEST_METHOD() - TEST_METHOD(GraphicsRawBufferLdStI16); - TEST_METHOD(GraphicsRawBufferLdStHalf); + BEGIN_TEST_METHOD(GraphicsRawBufferLdStI16) + TEST_METHOD_PROPERTY( + L"Kits.Description", + L"Verifies graphics pipeline raw buffer load/store for int16_t datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"52697183-18a8-4096-8a43-5608b56b49e3") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Graphics pipeline - Raw " + L"Buffer Load Store Test - int16_t") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12.DXILCore." + L"ShaderModel62.CoreRequirement") + END_TEST_METHOD() + BEGIN_TEST_METHOD(GraphicsRawBufferLdStHalf) + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies graphics pipeline raw buffer load/store for " + L"float16_t datatype") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"a6178326-2175-4a29-a493-170f606755fb") + TEST_METHOD_PROPERTY(L"Kits.TestName", + L"D3D12 - DXIL Core Test - Graphics pipeline - Raw " + L"Buffer Load Store Test - float16_t") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM24.AdapterRender.D3D12.DXILCore." + L"ShaderModel62.CoreRequirement") + END_TEST_METHOD() BEGIN_TEST_METHOD(PackUnpackTest) TEST_METHOD_PROPERTY(L"DataSource", L"Table:ShaderOpArithTable.xml#PackUnpackOpTable") + TEST_METHOD_PROPERTY(L"Kits.Description", + L"Verifies shader model 6.6 pack unpack intrinsics") + TEST_METHOD_PROPERTY(L"Kits.TestId", L"d5a302c9-6e1f-4dfc-8b2d-73e41e8f0939") + TEST_METHOD_PROPERTY( + L"Kits.TestName", + L"D3D12 - DXIL Core Test - Shader Model 6.6 - Pack Unpack") + TEST_METHOD_PROPERTY(L"Kits.Specification", + L"Device.Graphics.WDDM30.AdapterRender.D3D12.DXILCore." + L"ShaderModel66.CoreRequirement") END_TEST_METHOD() dxc::DxCompilerDllLoader m_support; @@ -493,9 +985,6 @@ class ExecutionTest { throw std::runtime_error("Unsupported codepage."); } - // Do not remove the following line - it is used by TranslateExecutionTest.py - // MARKER: ExecutionTest/DxilConf Shared Implementation Start - bool SaveImages() { return GetTestParamBool(L"SaveImages"); } // Base class used by raw gather test for polymorphic assignments @@ -1314,11 +1803,11 @@ static void SetupComputeValuePattern(std::vector &values, } } -bool ExecutionTest::ExecutionTestClassSetup() { return DivergentClassSetup(); } +bool DxilConfTest::DxilConfTestClassSetup() { return DivergentClassSetup(); } -void ExecutionTest::RunRWByteBufferComputeTest(ID3D12Device *pDevice, - LPCSTR pShader, - std::vector &values) { +void DxilConfTest::RunRWByteBufferComputeTest(ID3D12Device *pDevice, + LPCSTR pShader, + std::vector &values) { static const int DispatchGroupX = 1; static const int DispatchGroupY = 1; static const int DispatchGroupZ = 1; @@ -1371,7 +1860,7 @@ void ExecutionTest::RunRWByteBufferComputeTest(ID3D12Device *pDevice, 0, D3D12_COMMAND_LIST_TYPE_COMPUTE, pCommandAllocator, pComputeState, IID_PPV_ARGS(&pCommandList))); pCommandList->SetName( - L"ExecutionTest::RunRWByteButterComputeTest Command List"); + L"DxilConfTest::RunRWByteButterComputeTest Command List"); // Set up UAV resource. CComPtr pUavResource; @@ -1428,7 +1917,7 @@ void ExecutionTest::RunRWByteBufferComputeTest(ID3D12Device *pDevice, WaitForSignal(pCommandQueue, FO); } -void ExecutionTest::RunLifetimeIntrinsicComputeTest( +void DxilConfTest::RunLifetimeIntrinsicComputeTest( ID3D12Device *pDevice, LPCSTR pShader, CComPtr &pUavHeap, CComPtr &pRootSignature, LPCWSTR pTargetProfile, @@ -1454,8 +1943,7 @@ void ExecutionTest::RunLifetimeIntrinsicComputeTest( VERIFY_SUCCEEDED(pDevice->CreateCommandList( 0, D3D12_COMMAND_LIST_TYPE_COMPUTE, pCommandAllocator, pComputeState, IID_PPV_ARGS(&pCommandList))); - pCommandList->SetName( - L"ExecutionTest::RunLifetimeIntrinsicTest Command List"); + pCommandList->SetName(L"DxilConfTest::RunLifetimeIntrinsicTest Command List"); // Set up UAV resource. const UINT valueSizeInBytes = (UINT)values.size() * sizeof(uint32_t); @@ -1517,7 +2005,7 @@ void ExecutionTest::RunLifetimeIntrinsicComputeTest( WaitForSignal(pCommandQueue, FO); } -void ExecutionTest::RunLifetimeIntrinsicLibTest( +void DxilConfTest::RunLifetimeIntrinsicLibTest( ID3D12Device *pDevice0, LPCSTR pShader, CComPtr &pRootSignature, LPCWSTR pTargetProfile, LPCWSTR *pOptions, int numOptions) { @@ -1576,8 +2064,7 @@ void ExecutionTest::RunLifetimeIntrinsicLibTest( pCommandAllocator, nullptr, IID_PPV_ARGS(&pCommandList))); pCommandList->SetPipelineState1(pStateObject); - pCommandList->SetName( - L"ExecutionTest::RunLifetimeIntrinsicTest Command List"); + pCommandList->SetName(L"DxilConfTest::RunLifetimeIntrinsicTest Command List"); // Close the command list and execute it to kick-off compilation in the // driver. NOTE: We don't care about anything else, so we're not setting up @@ -1587,12 +2074,12 @@ void ExecutionTest::RunLifetimeIntrinsicLibTest( WaitForSignal(pCommandQueue, FO); } -void ExecutionTest::RunLifetimeIntrinsicTest(ID3D12Device *pDevice, - LPCSTR pShader, - D3D_SHADER_MODEL shaderModel, - bool useLibTarget, - LPCWSTR *pOptions, int numOptions, - std::vector &values) { +void DxilConfTest::RunLifetimeIntrinsicTest(ID3D12Device *pDevice, + LPCSTR pShader, + D3D_SHADER_MODEL shaderModel, + bool useLibTarget, + LPCWSTR *pOptions, int numOptions, + std::vector &values) { LPCWSTR pTargetProfile; switch (shaderModel) { default: @@ -1653,7 +2140,7 @@ void ExecutionTest::RunLifetimeIntrinsicTest(ID3D12Device *pDevice, } } -TEST_F(ExecutionTest, LifetimeIntrinsicTest) { +TEST_F(DxilConfTest, LifetimeIntrinsicTest) { // The only thing we test here is that existence of lifetime intrinsics or // their fallback replacement (store undef or store zeroinitializer) do not // cause any issues in the runtime and driver stack. @@ -1792,7 +2279,7 @@ TEST_F(ExecutionTest, LifetimeIntrinsicTest) { } } -TEST_F(ExecutionTest, BasicComputeTest) { +TEST_F(DxilConfTest, BasicComputeTest) { #ifndef _HLK_CONF // // BasicComputeTest is a simple compute shader that can be used as the basis @@ -1826,7 +2313,7 @@ TEST_F(ExecutionTest, BasicComputeTest) { #endif } -TEST_F(ExecutionTest, BasicTriangleTest) { +TEST_F(DxilConfTest, BasicTriangleTest) { #ifndef _HLK_CONF static const UINT FrameCount = 2; static const UINT m_width = 320; @@ -2001,7 +2488,7 @@ TEST_F(ExecutionTest, BasicTriangleTest) { #endif } -TEST_F(ExecutionTest, Int64Test) { +TEST_F(DxilConfTest, Int64Test) { static const char pShader[] = "RWByteAddressBuffer g_bab : register(u0);\r\n" "[numthreads(8,8,1)]\r\n" "void main(uint GI : SV_GroupIndex) {" @@ -2033,7 +2520,7 @@ TEST_F(ExecutionTest, Int64Test) { VERIFY_ARE_EQUAL(values[0], (uint32_t)0); } -TEST_F(ExecutionTest, SignTest) { +TEST_F(DxilConfTest, SignTest) { static const char pShader[] = "RWByteAddressBuffer g_bab : register(u0);\r\n" "[numthreads(8,1,1)]\r\n" "void main(uint GI : SV_GroupIndex) {" @@ -2061,7 +2548,7 @@ TEST_F(ExecutionTest, SignTest) { VERIFY_ARE_EQUAL(values[7], (uint32_t)1); } -TEST_F(ExecutionTest, WaveIntrinsicsDDITest) { +TEST_F(DxilConfTest, WaveIntrinsicsDDITest) { #ifndef _HLK_CONF CComPtr pDevice; if (!createDevice(&pDevice)) @@ -2084,7 +2571,7 @@ TEST_F(ExecutionTest, WaveIntrinsicsDDITest) { #endif } -TEST_F(ExecutionTest, WaveIntrinsicsTest) { +TEST_F(DxilConfTest, WaveIntrinsicsTest) { #ifndef _HLK_CONF WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -2450,7 +2937,7 @@ TEST_F(ExecutionTest, WaveIntrinsicsTest) { } // This test is assuming that the adapter implements WaveReadLaneFirst correctly -TEST_F(ExecutionTest, WaveIntrinsicsInPSTest) { +TEST_F(DxilConfTest, WaveIntrinsicsInPSTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -2848,7 +3335,7 @@ struct SPrimitives { float f_float2_o; }; -TEST_F(ExecutionTest, OutOfBoundsTest) { +TEST_F(DxilConfTest, OutOfBoundsTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -2873,7 +3360,7 @@ TEST_F(ExecutionTest, OutOfBoundsTest) { } } -TEST_F(ExecutionTest, SaturateTest) { +TEST_F(DxilConfTest, SaturateTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -2901,9 +3388,8 @@ TEST_F(ExecutionTest, SaturateTest) { } } -void ExecutionTest::BasicTriangleTestSetup(LPCSTR ShaderOpName, - LPCWSTR FileName, - D3D_SHADER_MODEL testModel) { +void DxilConfTest::BasicTriangleTestSetup(LPCSTR ShaderOpName, LPCWSTR FileName, + D3D_SHADER_MODEL testModel) { #ifdef _HLK_CONF UNREFERENCED_PARAMETER(ShaderOpName); UNREFERENCED_PARAMETER(FileName); @@ -2953,12 +3439,12 @@ void ExecutionTest::BasicTriangleTestSetup(LPCSTR ShaderOpName, #endif } -TEST_F(ExecutionTest, BasicTriangleOpTest) { +TEST_F(DxilConfTest, BasicTriangleOpTest) { BasicTriangleTestSetup("Triangle", L"basic-triangle.bmp", D3D_SHADER_MODEL_6_0); } -TEST_F(ExecutionTest, BasicTriangleOpTestHalf) { +TEST_F(DxilConfTest, BasicTriangleOpTestHalf) { BasicTriangleTestSetup("TriangleHalf", L"basic-triangle-half.bmp", D3D_SHADER_MODEL_6_2); } @@ -3058,7 +3544,7 @@ void VerifyDerivResults_CS_AS_MS_66(const float *pPixels, UINT offsetCenter) { // Rendering two right triangles forming a square and assigning a texture value // for each pixel to calculate derivates. -TEST_F(ExecutionTest, PartialDerivTest) { +TEST_F(DxilConfTest, PartialDerivTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -3164,7 +3650,7 @@ void DerivativesTest_DebugOutput(Dispatch &D, #endif } -TEST_F(ExecutionTest, DerivativesTest) { +TEST_F(DxilConfTest, DerivativesTest) { const UINT pixelSize = 4; // always float4 WEX::TestExecution::SetVerifyOutput verifySettings( @@ -3249,7 +3735,7 @@ void VerifyQuadReadResults(const UINT *pPixels, UINT quadIndex) { } } -TEST_F(ExecutionTest, QuadReadTest) { +TEST_F(DxilConfTest, QuadReadTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -3397,7 +3883,7 @@ void VerifySampleResults(const UINT *pPixels, UINT width) { VERIFY_ARE_EQUAL(ylod, 6u); } -TEST_F(ExecutionTest, ComputeSampleTest) { +TEST_F(DxilConfTest, ComputeSampleTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -3516,7 +4002,7 @@ TEST_F(ExecutionTest, ComputeSampleTest) { } } -TEST_F(ExecutionTest, ATOWriteMSAATest) { +TEST_F(DxilConfTest, ATOWriteMSAATest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -3790,7 +4276,7 @@ void VerifyProgOffsetResults(unsigned *pPixels, bool bCheckDeriv) { // order The shader then uses non-immediate offsets extending from -9 to 8 to // access these using Load, Sample, SampleCmp and variants thereof. The test // verifies that the locations accessed correspond to where they should. -TEST_F(ExecutionTest, ATOProgOffset) { +TEST_F(DxilConfTest, ATOProgOffset) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -3927,7 +4413,7 @@ TEST_F(ExecutionTest, ATOProgOffset) { // A mipmapped texture containing the value of LOD at each location in each // level is used to sample at each level using SampleCmpLevel and confirm // that the correct level is used for the comparison. -TEST_F(ExecutionTest, ATOSampleCmpLevelTest) { +TEST_F(DxilConfTest, ATOSampleCmpLevelTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -4209,7 +4695,7 @@ struct FloatRGBE { }; template -struct RawFloatTexture : public ExecutionTest::RawGatherTexture { +struct RawFloatTexture : public DxilConfTest::RawGatherTexture { DXGI_FORMAT m_format; RGBAType RGBA[xdim * ydim]; RawFloatTexture(DXGI_FORMAT format) : m_format(format) {} @@ -4229,7 +4715,7 @@ struct RawFloatTexture : public ExecutionTest::RawGatherTexture { }; template -struct RawFloatR11G11B10ATexture : public ExecutionTest::RawGatherTexture { +struct RawFloatR11G11B10ATexture : public DxilConfTest::RawGatherTexture { FloatR11G11B10 RGBA[xdim * ydim]; // Set i'th element to floatified x,y and some derived values virtual void SetElement(int i, int x, int y) override { @@ -4245,7 +4731,7 @@ struct RawFloatR11G11B10ATexture : public ExecutionTest::RawGatherTexture { }; template -struct RawIntTexture : public ExecutionTest::RawGatherTexture { +struct RawIntTexture : public DxilConfTest::RawGatherTexture { bool m_isSigned; bool m_isNorm; unsigned m_maxVal; @@ -4293,7 +4779,7 @@ struct RawIntTexture : public ExecutionTest::RawGatherTexture { }; template -struct RawR10G10B10XRA2Texture : public ExecutionTest::RawGatherTexture { +struct RawR10G10B10XRA2Texture : public DxilConfTest::RawGatherTexture { unsigned m_maxVal; DXGI_FORMAT m_format; IntRGBA10XRA2UNORM RGBA[xdim * ydim]; @@ -4335,9 +4821,9 @@ struct RawR10G10B10XRA2Texture : public ExecutionTest::RawGatherTexture { // Then execute a shader that uses raw gather to copy the values // into a UAV Verify that the UAV has the same values as passed in. template -void ExecutionTest::DoRawGatherTest(ID3D12Device *pDevice, - RawGatherTexture *rawTex, - DXGI_FORMAT viewFormat) { +void DxilConfTest::DoRawGatherTest(ID3D12Device *pDevice, + RawGatherTexture *rawTex, + DXGI_FORMAT viewFormat) { DXGI_FORMAT resFormat = rawTex->GetFormat(); #ifdef RAWGATHER_FALLBACK @@ -4565,7 +5051,7 @@ void ExecutionTest::DoRawGatherTest(ID3D12Device *pDevice, // available 6.7 + Enh. Barriers - Same formats can be cast as in native, but // use new createcommittedresource3() 6.7 + Enh. Barriers + Relaxed Cast - All // format casting and raw gathering of all -TEST_F(ExecutionTest, ATORawGather) { +TEST_F(DxilConfTest, ATORawGather) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -4790,17 +5276,17 @@ TEST_F(ExecutionTest, ATORawGather) { // Executing a simple binop to verify shadel model 6.1 support; runs with // ShaderModel61.CoreRequirement -TEST_F(ExecutionTest, BasicShaderModel61) { +TEST_F(DxilConfTest, BasicShaderModel61) { RunBasicShaderModelTest(D3D_SHADER_MODEL_6_1); } // Executing a simple binop to verify shadel model 6.3 support; runs with // ShaderModel63.CoreRequirement -TEST_F(ExecutionTest, BasicShaderModel63) { +TEST_F(DxilConfTest, BasicShaderModel63) { RunBasicShaderModelTest(D3D_SHADER_MODEL_6_3); } -void ExecutionTest::RunBasicShaderModelTest(D3D_SHADER_MODEL shaderModel) { +void DxilConfTest::RunBasicShaderModelTest(D3D_SHADER_MODEL shaderModel) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -4871,34 +5357,34 @@ void ExecutionTest::RunBasicShaderModelTest(D3D_SHADER_MODEL shaderModel) { } template -const wchar_t *ExecutionTest::BasicShaderModelTest_GetFormatString() { +const wchar_t *DxilConfTest::BasicShaderModelTest_GetFormatString() { DXASSERT_NOMSG("Unsupported type"); return ""; } template <> -const wchar_t *ExecutionTest::BasicShaderModelTest_GetFormatString() { +const wchar_t *DxilConfTest::BasicShaderModelTest_GetFormatString() { return L"element #%u: input1 = %6.8f, input1 = %6.8f, output = %6.8f, " L"expected = %6.8f"; } template <> -const wchar_t *ExecutionTest::BasicShaderModelTest_GetFormatString() { +const wchar_t *DxilConfTest::BasicShaderModelTest_GetFormatString() { return BasicShaderModelTest_GetFormatString(); } template <> -const wchar_t *ExecutionTest::BasicShaderModelTest_GetFormatString() { +const wchar_t *DxilConfTest::BasicShaderModelTest_GetFormatString() { return L"element #%u: input1 = %ld, input1 = %ld, output = %ld, expected = " L"%ld"; } template -void ExecutionTest::RunBasicShaderModelTest(CComPtr pDevice, - const char *pShaderModelStr, - const char *pShader, - Ty *pInputDataPairs, - unsigned inputDataCount) { +void DxilConfTest::RunBasicShaderModelTest(CComPtr pDevice, + const char *pShaderModelStr, + const char *pShader, + Ty *pInputDataPairs, + unsigned inputDataCount) { struct SBinaryOp { Ty input1; Ty input2; @@ -5699,7 +6185,7 @@ bool VerifyArrayWithExpectedValue(T *arr, T *expected, size_t num_elements, return passed; }; -TEST_F(ExecutionTest, UnaryFloatOpTest) { +TEST_F(DxilConfTest, UnaryFloatOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -5762,7 +6248,7 @@ TEST_F(ExecutionTest, UnaryFloatOpTest) { } } -TEST_F(ExecutionTest, BinaryFloatOpTest) { +TEST_F(DxilConfTest, BinaryFloatOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -5852,7 +6338,7 @@ TEST_F(ExecutionTest, BinaryFloatOpTest) { } } -TEST_F(ExecutionTest, TertiaryFloatOpTest) { +TEST_F(DxilConfTest, TertiaryFloatOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -5925,7 +6411,7 @@ TEST_F(ExecutionTest, TertiaryFloatOpTest) { } } -TEST_F(ExecutionTest, UnaryHalfOpTest) { +TEST_F(DxilConfTest, UnaryHalfOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6000,7 +6486,7 @@ TEST_F(ExecutionTest, UnaryHalfOpTest) { } } -TEST_F(ExecutionTest, IsSpecialFloatHalfOpTest) { +TEST_F(DxilConfTest, IsSpecialFloatHalfOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6075,7 +6561,7 @@ TEST_F(ExecutionTest, IsSpecialFloatHalfOpTest) { } } -TEST_F(ExecutionTest, BinaryHalfOpTest) { +TEST_F(DxilConfTest, BinaryHalfOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6186,7 +6672,7 @@ TEST_F(ExecutionTest, BinaryHalfOpTest) { } } -TEST_F(ExecutionTest, TertiaryHalfOpTest) { +TEST_F(DxilConfTest, TertiaryHalfOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6272,7 +6758,7 @@ TEST_F(ExecutionTest, TertiaryHalfOpTest) { } } -TEST_F(ExecutionTest, UnaryIntOpTest) { +TEST_F(DxilConfTest, UnaryIntOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6332,7 +6818,7 @@ TEST_F(ExecutionTest, UnaryIntOpTest) { } } -TEST_F(ExecutionTest, UnaryUintOpTest) { +TEST_F(DxilConfTest, UnaryUintOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6392,7 +6878,7 @@ TEST_F(ExecutionTest, UnaryUintOpTest) { } } -TEST_F(ExecutionTest, BinaryIntOpTest) { +TEST_F(DxilConfTest, BinaryIntOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6482,7 +6968,7 @@ TEST_F(ExecutionTest, BinaryIntOpTest) { } } -TEST_F(ExecutionTest, TertiaryIntOpTest) { +TEST_F(DxilConfTest, TertiaryIntOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6552,7 +7038,7 @@ TEST_F(ExecutionTest, TertiaryIntOpTest) { } } -TEST_F(ExecutionTest, BinaryUintOpTest) { +TEST_F(DxilConfTest, BinaryUintOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6644,7 +7130,7 @@ TEST_F(ExecutionTest, BinaryUintOpTest) { } } -TEST_F(ExecutionTest, TertiaryUintOpTest) { +TEST_F(DxilConfTest, TertiaryUintOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6718,7 +7204,7 @@ TEST_F(ExecutionTest, TertiaryUintOpTest) { } // 16 bit integer type tests -TEST_F(ExecutionTest, UnaryInt16OpTest) { +TEST_F(DxilConfTest, UnaryInt16OpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6786,7 +7272,7 @@ TEST_F(ExecutionTest, UnaryInt16OpTest) { } } -TEST_F(ExecutionTest, UnaryUint16OpTest) { +TEST_F(DxilConfTest, UnaryUint16OpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6855,7 +7341,7 @@ TEST_F(ExecutionTest, UnaryUint16OpTest) { } } -TEST_F(ExecutionTest, BinaryInt16OpTest) { +TEST_F(DxilConfTest, BinaryInt16OpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -6953,7 +7439,7 @@ TEST_F(ExecutionTest, BinaryInt16OpTest) { } } -TEST_F(ExecutionTest, TertiaryInt16OpTest) { +TEST_F(DxilConfTest, TertiaryInt16OpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -7030,7 +7516,7 @@ TEST_F(ExecutionTest, TertiaryInt16OpTest) { } } -TEST_F(ExecutionTest, BinaryUint16OpTest) { +TEST_F(DxilConfTest, BinaryUint16OpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -7128,7 +7614,7 @@ TEST_F(ExecutionTest, BinaryUint16OpTest) { } } -TEST_F(ExecutionTest, TertiaryUint16OpTest) { +TEST_F(DxilConfTest, TertiaryUint16OpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -7718,7 +8204,7 @@ void LoadStoreMat(int M, int N, bool LEFT, int MEM_TYPE, uint32_t K, uint32_t k, } } -TEST_F(ExecutionTest, DotTest) { +TEST_F(DxilConfTest, DotTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -7802,7 +8288,7 @@ TEST_F(ExecutionTest, DotTest) { } } -TEST_F(ExecutionTest, Dot2AddHalfTest) { +TEST_F(DxilConfTest, Dot2AddHalfTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -7890,7 +8376,7 @@ TEST_F(ExecutionTest, Dot2AddHalfTest) { } } -TEST_F(ExecutionTest, Dot4AddI8PackedTest) { +TEST_F(DxilConfTest, Dot4AddI8PackedTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -7953,7 +8439,7 @@ TEST_F(ExecutionTest, Dot4AddI8PackedTest) { } } -TEST_F(ExecutionTest, Dot4AddU8PackedTest) { +TEST_F(DxilConfTest, Dot4AddU8PackedTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -8016,7 +8502,7 @@ TEST_F(ExecutionTest, Dot4AddU8PackedTest) { } } -TEST_F(ExecutionTest, Msad4Test) { +TEST_F(DxilConfTest, Msad4Test) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -8098,7 +8584,7 @@ TEST_F(ExecutionTest, Msad4Test) { } } -TEST_F(ExecutionTest, DenormBinaryFloatOpTest) { +TEST_F(DxilConfTest, DenormBinaryFloatOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -8209,7 +8695,7 @@ TEST_F(ExecutionTest, DenormBinaryFloatOpTest) { } } -TEST_F(ExecutionTest, DenormTertiaryFloatOpTest) { +TEST_F(DxilConfTest, DenormTertiaryFloatOpTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -8626,7 +9112,7 @@ static OutType computeExpectedWithShaderOp(const std::vector &inputs, // This test case is assuming that functions 1) WaveIsFirstLane and 2) // WaveGetLaneIndex are correct for all lanes. template -void ExecutionTest::WaveIntrinsicsActivePrefixTest( +void DxilConfTest::WaveIntrinsicsActivePrefixTest( TableParameter *pParameterList, size_t numParameter, bool isPrefix) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -8808,28 +9294,28 @@ void ExecutionTest::WaveIntrinsicsActivePrefixTest( } } -TEST_F(ExecutionTest, WaveIntrinsicsActiveIntTest) { +TEST_F(DxilConfTest, WaveIntrinsicsActiveIntTest) { WaveIntrinsicsActivePrefixTest( WaveIntrinsicsActiveIntParameters, sizeof(WaveIntrinsicsActiveIntParameters) / sizeof(TableParameter), /*isPrefix*/ false); } -TEST_F(ExecutionTest, WaveIntrinsicsActiveUintTest) { +TEST_F(DxilConfTest, WaveIntrinsicsActiveUintTest) { WaveIntrinsicsActivePrefixTest( WaveIntrinsicsActiveUintParameters, sizeof(WaveIntrinsicsActiveUintParameters) / sizeof(TableParameter), /*isPrefix*/ false); } -TEST_F(ExecutionTest, WaveIntrinsicsPrefixIntTest) { +TEST_F(DxilConfTest, WaveIntrinsicsPrefixIntTest) { WaveIntrinsicsActivePrefixTest( WaveIntrinsicsPrefixIntParameters, sizeof(WaveIntrinsicsPrefixIntParameters) / sizeof(TableParameter), /*isPrefix*/ true); } -TEST_F(ExecutionTest, WaveIntrinsicsPrefixUintTest) { +TEST_F(DxilConfTest, WaveIntrinsicsPrefixUintTest) { WaveIntrinsicsActivePrefixTest( WaveIntrinsicsPrefixUintParameters, sizeof(WaveIntrinsicsPrefixUintParameters) / sizeof(TableParameter), @@ -8891,7 +9377,7 @@ std::function GetWaveMultiPrefixReferenceFunction(LPCWSTR testName) { } template -void ExecutionTest::WaveIntrinsicsMultiPrefixOpTest( +void DxilConfTest::WaveIntrinsicsMultiPrefixOpTest( TableParameter *pParameterList, size_t numParameters) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -9027,19 +9513,19 @@ void ExecutionTest::WaveIntrinsicsMultiPrefixOpTest( } } -TEST_F(ExecutionTest, WaveIntrinsicsSM65IntTest) { +TEST_F(DxilConfTest, WaveIntrinsicsSM65IntTest) { WaveIntrinsicsMultiPrefixOpTest( WaveIntrinsicsMultiPrefixIntParameters, _countof(WaveIntrinsicsMultiPrefixIntParameters)); } -TEST_F(ExecutionTest, WaveIntrinsicsSM65UintTest) { +TEST_F(DxilConfTest, WaveIntrinsicsSM65UintTest) { WaveIntrinsicsMultiPrefixOpTest( WaveIntrinsicsMultiPrefixUintParameters, _countof(WaveIntrinsicsMultiPrefixUintParameters)); } -TEST_F(ExecutionTest, CBufferTestHalf) { +TEST_F(DxilConfTest, CBufferTestHalf) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -9169,7 +9655,7 @@ MakeBarycentricsResourceInitCallbackFn(int &vertexShift) { }; } -TEST_F(ExecutionTest, BarycentricsTest) { +TEST_F(DxilConfTest, BarycentricsTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -9327,7 +9813,7 @@ static const char RawBufferTestGraphicsPixelShaderTemplate[] = " return uint4(1, 2, 3, 4); \r\n" "};"; -TEST_F(ExecutionTest, ComputeRawBufferLdStI32) { +TEST_F(DxilConfTest, ComputeRawBufferLdStI32) { RawBufferLdStTestData data = { 1, {2, -1}, {256, -10517, 980}, {465, 13, -89, MAXUINT32 / 2}}; RunComputeRawBufferLdStTest(D3D_SHADER_MODEL_6_2, @@ -9335,7 +9821,7 @@ TEST_F(ExecutionTest, ComputeRawBufferLdStI32) { "ComputeRawBufferLdSt32Bit", data); } -TEST_F(ExecutionTest, ComputeRawBufferLdStFloat) { +TEST_F(DxilConfTest, ComputeRawBufferLdStFloat) { RawBufferLdStTestData data = { 3e-10f, {1.5f, -1.99988f}, @@ -9346,7 +9832,7 @@ TEST_F(ExecutionTest, ComputeRawBufferLdStFloat) { "ComputeRawBufferLdSt32Bit", data); } -TEST_F(ExecutionTest, ComputeRawBufferLdStI64) { +TEST_F(DxilConfTest, ComputeRawBufferLdStI64) { RawBufferLdStTestData data = { 1, {2, -1}, {256, -105171532, 980}, {465, 13, -89, MAXUINT64 / 2}}; RunComputeRawBufferLdStTest(D3D_SHADER_MODEL_6_3, @@ -9354,7 +9840,7 @@ TEST_F(ExecutionTest, ComputeRawBufferLdStI64) { "ComputeRawBufferLdSt64Bit", data); } -TEST_F(ExecutionTest, ComputeRawBufferLdStDouble) { +TEST_F(DxilConfTest, ComputeRawBufferLdStDouble) { RawBufferLdStTestData data = { 3e-10, {1.5, -1.99988}, @@ -9365,7 +9851,7 @@ TEST_F(ExecutionTest, ComputeRawBufferLdStDouble) { "ComputeRawBufferLdSt64Bit", data); } -TEST_F(ExecutionTest, ComputeRawBufferLdStI16) { +TEST_F(DxilConfTest, ComputeRawBufferLdStI16) { RawBufferLdStTestData data = { 1, {2, -1}, {256, -10517, 980}, {465, 13, -89, MAXUINT16 / 2}}; RunComputeRawBufferLdStTest(D3D_SHADER_MODEL_6_2, @@ -9373,7 +9859,7 @@ TEST_F(ExecutionTest, ComputeRawBufferLdStI16) { "ComputeRawBufferLdSt16Bit", data); } -TEST_F(ExecutionTest, ComputeRawBufferLdStHalf) { +TEST_F(DxilConfTest, ComputeRawBufferLdStHalf) { RawBufferLdStTestData floatData = { 3e-10f, {1.5f, -1.99988f}, @@ -9389,7 +9875,7 @@ TEST_F(ExecutionTest, ComputeRawBufferLdStHalf) { "ComputeRawBufferLdSt16Bit", halfData); } -TEST_F(ExecutionTest, GraphicsRawBufferLdStI32) { +TEST_F(DxilConfTest, GraphicsRawBufferLdStI32) { RawBufferLdStTestData data = { 1, {2, -1}, {256, -10517, 980}, {465, 13, -89, MAXUINT32 / 2}}; RunGraphicsRawBufferLdStTest(D3D_SHADER_MODEL_6_2, @@ -9397,7 +9883,7 @@ TEST_F(ExecutionTest, GraphicsRawBufferLdStI32) { "GraphicsRawBufferLdSt32Bit", data); } -TEST_F(ExecutionTest, GraphicsRawBufferLdStFloat) { +TEST_F(DxilConfTest, GraphicsRawBufferLdStFloat) { RawBufferLdStTestData data = { 3e-10f, {1.5f, -1.99988f}, @@ -9408,7 +9894,7 @@ TEST_F(ExecutionTest, GraphicsRawBufferLdStFloat) { "GraphicsRawBufferLdSt32Bit", data); } -TEST_F(ExecutionTest, GraphicsRawBufferLdStI64) { +TEST_F(DxilConfTest, GraphicsRawBufferLdStI64) { RawBufferLdStTestData data = { 1, {2, -1}, {256, -105171532, 980}, {465, 13, -89, MAXUINT64 / 2}}; RunGraphicsRawBufferLdStTest(D3D_SHADER_MODEL_6_3, @@ -9416,7 +9902,7 @@ TEST_F(ExecutionTest, GraphicsRawBufferLdStI64) { "GraphicsRawBufferLdSt64Bit", data); } -TEST_F(ExecutionTest, GraphicsRawBufferLdStDouble) { +TEST_F(DxilConfTest, GraphicsRawBufferLdStDouble) { RawBufferLdStTestData data = { 3e-10, {1.5, -1.99988}, @@ -9427,7 +9913,7 @@ TEST_F(ExecutionTest, GraphicsRawBufferLdStDouble) { "GraphicsRawBufferLdSt64Bit", data); } -TEST_F(ExecutionTest, GraphicsRawBufferLdStI16) { +TEST_F(DxilConfTest, GraphicsRawBufferLdStI16) { RawBufferLdStTestData data = { 1, {2, -1}, {256, -10517, 980}, {465, 13, -89, MAXUINT16 / 2}}; RunGraphicsRawBufferLdStTest(D3D_SHADER_MODEL_6_2, @@ -9435,7 +9921,7 @@ TEST_F(ExecutionTest, GraphicsRawBufferLdStI16) { "GraphicsRawBufferLdSt16Bit", data); } -TEST_F(ExecutionTest, GraphicsRawBufferLdStHalf) { +TEST_F(DxilConfTest, GraphicsRawBufferLdStHalf) { RawBufferLdStTestData floatData = { 3e-10f, {1.5f, -1.99988f}, @@ -9451,12 +9937,12 @@ TEST_F(ExecutionTest, GraphicsRawBufferLdStHalf) { "GraphicsRawBufferLdSt16Bit", halfData); } -bool ExecutionTest::SetupRawBufferLdStTest(D3D_SHADER_MODEL shaderModel, - RawBufferLdStType dataType, - CComPtr &pDevice, - CComPtr &pStream, - const char *&sTy, - const char *&additionalOptions) { +bool DxilConfTest::SetupRawBufferLdStTest(D3D_SHADER_MODEL shaderModel, + RawBufferLdStType dataType, + CComPtr &pDevice, + CComPtr &pStream, + const char *&sTy, + const char *&additionalOptions) { if (!createDevice(&pDevice, shaderModel)) { return false; } @@ -9508,7 +9994,7 @@ bool ExecutionTest::SetupRawBufferLdStTest(D3D_SHADER_MODEL shaderModel, } template -void ExecutionTest::VerifyRawBufferLdStTestResults( +void DxilConfTest::VerifyRawBufferLdStTestResults( const std::shared_ptr test, const RawBufferLdStTestData &testData) { // read buffers back & verify expected values @@ -9561,7 +10047,7 @@ void ExecutionTest::VerifyRawBufferLdStTestResults( } template -void ExecutionTest::RunComputeRawBufferLdStTest( +void DxilConfTest::RunComputeRawBufferLdStTest( D3D_SHADER_MODEL shaderModel, RawBufferLdStType dataType, const char *shaderOpName, const RawBufferLdStTestData &testData) { WEX::TestExecution::SetVerifyOutput verifySettings( @@ -9614,7 +10100,7 @@ void ExecutionTest::RunComputeRawBufferLdStTest( } template -void ExecutionTest::RunGraphicsRawBufferLdStTest( +void DxilConfTest::RunGraphicsRawBufferLdStTest( D3D_SHADER_MODEL shaderModel, RawBufferLdStType dataType, const char *shaderOpName, const RawBufferLdStTestData &testData) { @@ -9727,7 +10213,7 @@ template std::array unpack_s(uint32_t packedVal) { return ret; } -TEST_F(ExecutionTest, PackUnpackTest) { +TEST_F(DxilConfTest, PackUnpackTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -9910,8 +10396,8 @@ TEST_F(ExecutionTest, PackUnpackTest) { // few resources that are initialized here. determines if it uses // the 6.6 Dynamic Resources feature. Values are read back from the result UAV // and compared to the expected signals -void ExecutionTest::RunResourceTest(ID3D12Device *pDevice, const char *pShader, - const wchar_t *sm, bool isDynamic) { +void DxilConfTest::RunResourceTest(ID3D12Device *pDevice, const char *pShader, + const wchar_t *sm, bool isDynamic) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -10102,7 +10588,7 @@ void ExecutionTest::RunResourceTest(ID3D12Device *pDevice, const char *pShader, VERIFY_ARE_EQUAL(pData[7], 1); // samplecmp 1 means it matched 31 } -TEST_F(ExecutionTest, SignatureResourcesTest) { +TEST_F(DxilConfTest, SignatureResourcesTest) { std::string pShader = "ByteAddressBuffer g_rawBuf : register(t0);\n" "StructuredBuffer g_structBuf : register(t1);\n" @@ -10132,7 +10618,7 @@ TEST_F(ExecutionTest, SignatureResourcesTest) { RunResourceTest(pDevice, pShader.c_str(), L"cs_6_6", /*isDynamic*/ false); } -TEST_F(ExecutionTest, DynamicResourcesTest) { +TEST_F(DxilConfTest, DynamicResourcesTest) { static const char pShader[] = "static ByteAddressBuffer g_rawBuf = " "ResourceDescriptorHeap[0];\n" @@ -10184,7 +10670,7 @@ TEST_F(ExecutionTest, DynamicResourcesTest) { RunResourceTest(pDevice, pShader, L"cs_6_6", /*isDynamic*/ true); } -// void ExecutionTest::TestComputeShaderDynamicResourcesUniformIndexing() +// void DxilConfTest::TestComputeShaderDynamicResourcesUniformIndexing() void EnableShaderBasedValidation() { CComPtr spDebugController0; @@ -10203,7 +10689,7 @@ void VerifyFloatArraysAreEqual(const float *resultFloats, } } -TEST_F(ExecutionTest, DynamicResourcesDynamicIndexingTest) { +TEST_F(DxilConfTest, DynamicResourcesDynamicIndexingTest) { // EnableShaderBasedValidation(); WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -10545,7 +11031,7 @@ void RunWaveSizeRangeTest(UINT minWaveSize, UINT maxWaveSize, } } -void ExecutionTest::WaveSizeTest() { +void DxilConfTest::WaveSizeTest() { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -10585,7 +11071,7 @@ void ExecutionTest::WaveSizeTest() { RunWaveSizeTest(minWaveSize, maxWaveSize, ShaderOpSet, pDevice, m_support); } -void ExecutionTest::WaveSizeRangeTest() { +void DxilConfTest::WaveSizeRangeTest() { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -10678,7 +11164,7 @@ static void RunGSMLimitShaderAndVerify( } } -void ExecutionTest::GroupSharedLimitTest() { +void DxilConfTest::GroupSharedLimitTest() { WEX::TestExecution::SetVerifyOutput VerifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -10799,7 +11285,7 @@ void ExecutionTest::GroupSharedLimitTest() { } } -void ExecutionTest::GroupSharedLimitASTest() { +void DxilConfTest::GroupSharedLimitASTest() { WEX::TestExecution::SetVerifyOutput VerifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -10875,7 +11361,7 @@ void ExecutionTest::GroupSharedLimitASTest() { } } -void ExecutionTest::GroupSharedLimitMSTest() { +void DxilConfTest::GroupSharedLimitMSTest() { WEX::TestExecution::SetVerifyOutput VerifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -10943,7 +11429,7 @@ void ExecutionTest::GroupSharedLimitMSTest() { } #endif // defined(HLSLEXEC_GROUPSHARED_LIMITS) -void ExecutionTest::GroupWaveIndexTest() { +void DxilConfTest::GroupWaveIndexTest() { WEX::TestExecution::SetVerifyOutput VerifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); @@ -11487,7 +11973,7 @@ void VerifyAtomicsTest(std::shared_ptr test, VerifyAtomicsTypedTest(test, maxIdx, bitSize); } -TEST_F(ExecutionTest, AtomicsTest) { +TEST_F(DxilConfTest, AtomicsTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -11532,7 +12018,7 @@ TEST_F(ExecutionTest, AtomicsTest) { VerifyAtomicsTest(test, 64 * 64 + 6, 32); } -TEST_F(ExecutionTest, Atomics64Test) { +TEST_F(DxilConfTest, Atomics64Test) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -11588,7 +12074,7 @@ TEST_F(ExecutionTest, Atomics64Test) { VerifyAtomicsRawTest(test, 64 * 64 + 6, 64); } -TEST_F(ExecutionTest, AtomicsRawHeap64Test) { +TEST_F(DxilConfTest, AtomicsRawHeap64Test) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -11651,7 +12137,7 @@ TEST_F(ExecutionTest, AtomicsRawHeap64Test) { VerifyAtomicsRawTest(test, 64 * 64 + 6, 64); } -TEST_F(ExecutionTest, AtomicsTyped64Test) { +TEST_F(DxilConfTest, AtomicsTyped64Test) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -11714,7 +12200,7 @@ TEST_F(ExecutionTest, AtomicsTyped64Test) { VerifyAtomicsTypedTest(test, 64 * 64 + 6, 64); } -TEST_F(ExecutionTest, AtomicsShared64Test) { +TEST_F(DxilConfTest, AtomicsShared64Test) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -11846,7 +12332,7 @@ void VerifyAtomicsFloatTest(std::shared_ptr test) { VerifyAtomicFloatResults(pData); } -TEST_F(ExecutionTest, AtomicsFloatTest) { +TEST_F(DxilConfTest, AtomicsFloatTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -11911,7 +12397,7 @@ TEST_F(ExecutionTest, AtomicsFloatTest) { // IsHelperLane fallback function (sm <= 6.5) and the IsHelperLane intrisics (sm // >= 6.6). // -TEST_F(ExecutionTest, HelperLaneTest) { +TEST_F(DxilConfTest, HelperLaneTest) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -12312,7 +12798,7 @@ void CleanUAVBuffer0Buffer(LPCSTR BufferName, std::vector &Data, // operate correctly with 3 threads in a CS or 3 vertices in a VS where the rest // of the lanes in the wave are not active (dead lanes). // -TEST_F(ExecutionTest, HelperLaneTestWave) { +TEST_F(DxilConfTest, HelperLaneTestWave) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -12455,7 +12941,7 @@ bool VerifyQuadAnyAllResults(int2 *Res) { return true; } -TEST_F(ExecutionTest, QuadAnyAll) { +TEST_F(DxilConfTest, QuadAnyAll) { WEX::TestExecution::SetVerifyOutput verifySettings( WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures); CComPtr pStream; @@ -12879,5 +13365,3 @@ __declspec(dllexport) HRESULT WINAPI } } #endif -// MARKER: ExecutionTest/DxilConf Shared Implementation End -// Do not remove the line above - it is used by TranslateExecutionTest.py diff --git a/tools/clang/unittests/HLSLExec/ShaderOpArithTable.xml b/tools/clang/unittests/HLSLExec/ShaderOpArithTable.xml index 9f2425853cf..cedb72c08fe 100644 --- a/tools/clang/unittests/HLSLExec/ShaderOpArithTable.xml +++ b/tools/clang/unittests/HLSLExec/ShaderOpArithTable.xml @@ -11,7 +11,11 @@ String unsigned int - + Epsilon 0.0008 struct SUnaryFPOp { @@ -50,7 +54,11 @@ 16202 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -89,7 +97,11 @@ 16202 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -127,7 +139,11 @@ 0.000735 - + Epsilon 0 struct SUnaryFPOp { @@ -177,7 +193,11 @@ -11.0 - + Epsilon 0 struct SUnaryFPOp { @@ -229,7 +249,11 @@ -11.0 - + Epsilon 0 struct SUnaryFPOp { @@ -279,7 +303,11 @@ -10.0 - + Epsilon 0 struct SUnaryFPOp { @@ -320,7 +348,11 @@ 0 - + Relative 21 struct SUnaryFPOp { @@ -358,7 +390,11 @@ 22026.46579 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -400,7 +436,11 @@ 0.611 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -442,7 +482,11 @@ NaN - + Relative 21 struct SUnaryFPOp { @@ -484,7 +528,11 @@ 4.6051701 - + ulp 1 struct SUnaryFPOp { @@ -526,7 +574,11 @@ 16.0 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -564,7 +616,11 @@ 1.543081 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -606,7 +662,11 @@ NaN - + Epsilon 0 struct SUnaryFPOp { @@ -656,7 +716,11 @@ -10.0 - + Epsilon 0 struct SUnaryFPOp { @@ -698,7 +762,11 @@ 16202 - + Epsilon 0 struct SUnaryFPOp { @@ -739,7 +807,11 @@ 0 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -777,7 +849,11 @@ -1.175201 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -815,7 +891,11 @@ 0.0007346401 - + ulp 1 struct SUnaryFPOp { @@ -857,7 +937,11 @@ 0.00390625 - + Epsilon 0.0008 struct SUnaryFPOp { @@ -895,7 +979,11 @@ 0.99999973015 - + Epsilon 0 struct SUnaryFPOp { @@ -946,7 +1034,11 @@ String String - + ulp 1 struct SBinaryFPOp { @@ -979,7 +1071,11 @@ 2.0000002 - + ulp 1 struct SBinaryFPOp { @@ -1015,7 +1111,11 @@ 1.5000002000 - + ulp 1 struct SBinaryFPOp { @@ -1048,7 +1148,11 @@ 0.50000006 - + epsilon 0 struct SBinaryFPOp { @@ -1143,7 +1247,11 @@ 1.0 - + ulp 1 struct SBinaryFPOp { @@ -1192,7 +1300,11 @@ String String - + ulp 1 struct STertiaryFloatOp { @@ -1278,7 +1390,11 @@ String unsigned int - + Epsilon 0 struct SUnaryFPOp { @@ -1320,7 +1436,11 @@ -enable-16bit-types - + Epsilon 0 struct SUnaryFPOp { @@ -1363,7 +1483,11 @@ 16202 -enable-16bit-types - + Epsilon 0 struct SUnaryFPOp { @@ -1417,7 +1541,11 @@ String unsigned int - + Epsilon 0 struct SUnaryFPOp { @@ -1470,7 +1598,11 @@ -enable-16bit-types - + Epsilon 0.016 struct SUnaryFPOp { @@ -1523,7 +1655,11 @@ -enable-16bit-types - + Epsilon 0 struct SUnaryFPOp { @@ -1574,7 +1710,11 @@ -enable-16bit-types - + Epsilon 0.0008 struct SUnaryFPOp { @@ -1614,7 +1754,11 @@ 16202 -enable-16bit-types - + Epsilon 0.0010 struct SUnaryFPOp { @@ -1657,7 +1801,11 @@ -enable-16bit-types - + Epsilon 0 struct SUnaryFPOp { @@ -1708,7 +1856,11 @@ -enable-16bit-types - + Epsilon 0.003 struct SUnaryFPOp { @@ -1763,7 +1915,11 @@ -enable-16bit-types - + Epsilon 0.0008 struct SUnaryFPOp { @@ -1802,7 +1958,11 @@ -enable-16bit-types - + ulp 2 struct SUnaryFPOp { @@ -1841,7 +2001,11 @@ -enable-16bit-types - + Epsilon 0 struct SUnaryFPOp { @@ -1892,7 +2056,11 @@ -enable-16bit-types - + Epsilon 0.0008 struct SUnaryFPOp { @@ -1933,7 +2101,11 @@ -enable-16bit-types - + Epsilon 0 struct SUnaryFPOp { @@ -1972,7 +2144,11 @@ -enable-16bit-types - + Epsilon 0.0008 struct SUnaryFPOp { @@ -2015,7 +2191,11 @@ -enable-16bit-types - + Epsilon 0.003 struct SUnaryFPOp { @@ -2070,7 +2250,11 @@ -enable-16bit-types - + Epsilon 0.0008 struct SUnaryFPOp { @@ -2110,7 +2294,11 @@ 16202 -enable-16bit-types - + ulp 1 struct SUnaryFPOp { @@ -2153,7 +2341,11 @@ -enable-16bit-types - + ulp 1 struct SUnaryFPOp { @@ -2209,7 +2401,11 @@ String String - + ulp 1 struct SBinaryFPOp { @@ -2243,7 +2439,11 @@ -enable-16bit-types - + epsilon 0 struct SBinaryHalfOp { @@ -2339,7 +2539,11 @@ -enable-16bit-types - + ulp 1 struct SBinaryFPOp { @@ -2373,7 +2577,11 @@ -enable-16bit-types - + ulp 1 struct SBinaryFPOp { @@ -2410,7 +2618,11 @@ -enable-16bit-types - + ulp 1 struct SBinaryFPOp { @@ -2460,7 +2672,11 @@ String String - + ulp 1 struct STertiaryHalfOp { @@ -2542,7 +2758,11 @@ String String - + Epsilon 0 struct SUnaryIntOp { @@ -2580,7 +2800,11 @@ 0 - + Epsilon 0 struct SUnaryIntOp { @@ -2618,7 +2842,11 @@ 30 - + Epsilon 0 struct SUnaryIntOp { @@ -2656,7 +2884,11 @@ 31 - + Epsilon 0 struct SUnaryIntOp { @@ -2707,7 +2939,11 @@ String String - + Epsilon 0 struct SBinaryIntOp { @@ -2758,7 +2994,11 @@ 1 - + Epsilon 0 struct SBinaryIntOp { @@ -2803,7 +3043,11 @@ -8 - + Epsilon 0 struct SBinaryIntOp { @@ -2854,7 +3098,11 @@ -1 - + Epsilon 0 struct SBinaryIntOp { @@ -2899,7 +3147,11 @@ 0x3fffffff - + Epsilon 0 struct SBinaryIntOp { @@ -2944,7 +3196,11 @@ -53752 - + Epsilon 0 struct SBinaryIntOp { @@ -2999,7 +3255,11 @@ 0 - + Epsilon 0 struct SBinaryIntOp { @@ -3044,7 +3304,11 @@ 54724 - + Epsilon 0 struct SBinaryIntOp { @@ -3092,7 +3356,11 @@ -1 - + Epsilon 0 struct SBinaryIntOp { @@ -3134,7 +3402,11 @@ 0 - + Epsilon 0 struct SBinaryIntOp { @@ -3176,7 +3448,11 @@ 2147483647 - + Epsilon 0 struct SBinaryIntOp { @@ -3240,7 +3516,11 @@ String String - + epsilon 0 struct STertiaryIntOp { @@ -3325,7 +3605,11 @@ String String - + Epsilon 0 struct SUnaryInt16Op { @@ -3364,7 +3648,11 @@ -enable-16bit-types - + Epsilon 0 struct SUnaryInt16Op { @@ -3403,7 +3691,11 @@ -enable-16bit-types - + Epsilon 0 struct SUnaryInt16Op { @@ -3455,7 +3747,11 @@ String String - + Epsilon 0 struct SBinaryInt16Op { @@ -3507,7 +3803,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -3556,7 +3856,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryUint16Op { @@ -3596,7 +3900,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -3639,7 +3947,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryUint16Op { @@ -3685,7 +3997,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -3728,7 +4044,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryUint16Op { @@ -3774,7 +4094,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -3820,7 +4144,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -3857,7 +4185,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -3900,7 +4232,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -3943,7 +4279,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -3989,7 +4329,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryInt16Op { @@ -4051,7 +4395,11 @@ String String - + epsilon 0 struct STertiaryInt16Op { @@ -4121,7 +4469,11 @@ String String - + Epsilon 0 struct SUnaryUintOp { @@ -4166,7 +4518,11 @@ String String - + Epsilon 0 struct SBinaryUintOp { @@ -4211,7 +4567,11 @@ 486 - + Epsilon 0 struct SBinaryUintOp { @@ -4250,7 +4610,11 @@ 0 - + Epsilon 0 struct SBinaryUintOp { @@ -4303,7 +4667,11 @@ 0xffffffff - + Epsilon 0 struct SBinaryUintOp { @@ -4345,7 +4713,11 @@ 4294967295 - + Epsilon 0 struct SBinaryUintOp { @@ -4387,7 +4759,11 @@ 4294967295 - + Epsilon 0 struct SBinaryUintOp { @@ -4432,7 +4808,11 @@ 54724 - + Epsilon 0 struct SBinaryUintOp { @@ -4500,7 +4880,11 @@ String String - + epsilon 0 struct STertiaryUintOp { @@ -4565,7 +4949,11 @@ String String - + Epsilon 0 struct SUnaryUint16Op { @@ -4607,7 +4995,11 @@ String String - + Epsilon 0 struct SBinaryUint16Op { @@ -4650,7 +5042,11 @@ -enable-16bit-types - + Epsilon 0 struct SBinaryUint16Op { @@ -4706,7 +5102,11 @@ String String - + epsilon 0 struct STertiaryUint16Op { @@ -4775,7 +5175,11 @@ String String - + epsilon 0.008 struct SDotOp { @@ -4869,7 +5273,11 @@ String String - + epsilon 0.008 struct SDot2AddHalfOp { @@ -4973,7 +5381,11 @@ String String - + epsilon 0 struct SDot4AddI8PackedOp { @@ -5052,7 +5464,11 @@ String String - + epsilon 0 struct SDot4AddU8PackedOp { @@ -5108,7 +5524,11 @@ String String - + epsilon 0 struct SMsad4 { @@ -5161,7 +5581,11 @@ String String - + WaveActiveSum struct PerThreadData { uint firstLaneId; @@ -5201,7 +5625,11 @@ -64 - + WaveActiveAllEqual struct PerThreadData { uint firstLaneId; @@ -5242,7 +5670,11 @@ -10 - + WaveActiveAnyTrue struct PerThreadData { uint firstLaneId; @@ -5280,7 +5712,11 @@ 0 - + WaveActiveMax struct PerThreadData { uint firstLaneId; @@ -5325,7 +5761,11 @@ 300 - + WaveActiveMin struct PerThreadData { uint firstLaneId; @@ -5376,7 +5816,11 @@ 300 - + WaveActiveAllTrue struct PerThreadData { uint firstLaneId; @@ -5414,7 +5858,11 @@ 1 - + WaveActiveCountBits struct PerThreadData { uint firstLaneId; @@ -5459,7 +5907,11 @@ 300 - + WaveActiveProduct struct PerThreadData { uint firstLaneId; @@ -5510,7 +5962,11 @@ String String - + WaveActiveUMax struct PerThreadData { uint firstLaneId; @@ -5550,7 +6006,11 @@ 64 - + WaveActiveBitOr struct PerThreadData { uint firstLaneId; @@ -5601,7 +6061,11 @@ 0xffffffff - + WaveActiveBitAnd struct PerThreadData { uint firstLaneId; @@ -5652,7 +6116,11 @@ 0xffffffff - + WaveActiveUMin struct PerThreadData { uint firstLaneId; @@ -5698,7 +6166,11 @@ 64 - + WaveActiveUSum struct PerThreadData { uint firstLaneId; @@ -5738,7 +6210,11 @@ 64 - + WaveActiveBitXor struct PerThreadData { uint firstLaneId; @@ -5789,7 +6265,11 @@ 0xffffffff - + WaveActiveUProduct struct PerThreadData { uint firstLaneId; @@ -5840,7 +6320,11 @@ String String - + WavePrefixProduct struct PerThreadData { uint firstLaneId; @@ -5883,7 +6367,11 @@ 128 - + WavePrefixSum struct PerThreadData { uint firstLaneId; @@ -5926,7 +6414,11 @@ 128 - + WavePrefixCountBits struct PerThreadData { uint firstLaneId; @@ -5983,7 +6475,11 @@ String String - + WavePrefixUSum struct PerThreadData { uint firstLaneId; @@ -6025,7 +6521,11 @@ 128 - + WavePrefixUProduct struct PerThreadData { uint firstLaneId; @@ -6075,7 +6575,11 @@ String String - + WaveMultiPrefixBitXor cs_6_5 struct ThreadData { @@ -6123,7 +6627,11 @@ 34 - + WaveMultiPrefixCountBits cs_6_5 struct ThreadData { @@ -6171,7 +6679,11 @@ 34 - + WaveMultiPrefixSum cs_6_5 struct ThreadData { @@ -6219,7 +6731,11 @@ 34 - + WaveMultiPrefixBitAnd cs_6_5 struct ThreadData { @@ -6267,7 +6783,11 @@ 34 - + WaveMultiPrefixBitOr cs_6_5 struct ThreadData { @@ -6315,7 +6835,11 @@ 34 - + WaveMultiPrefixProduct cs_6_5 struct ThreadData { @@ -6371,7 +6895,11 @@ String String - + WaveMultiPrefixUBitAnd cs_6_5 struct ThreadData { @@ -6419,7 +6947,11 @@ 34 - + WaveMultiPrefixUBitOr cs_6_5 struct ThreadData { @@ -6467,7 +6999,11 @@ 34 - + WaveMultiPrefixUSum cs_6_5 struct ThreadData { @@ -6515,7 +7051,11 @@ 34 - + WaveMultiPrefixUProduct cs_6_5 struct ThreadData { @@ -6563,7 +7103,11 @@ 34 - + WaveMultiPrefixUBitXor cs_6_5 struct ThreadData { @@ -6611,7 +7155,11 @@ 34 - + WaveMultiPrefixUCountBits cs_6_5 struct ThreadData { @@ -6672,7 +7220,11 @@ String String - + ulp 1 struct SBinaryFPOp { @@ -6709,7 +7261,11 @@ -denorm ftz - + ulp 1 struct SBinaryFPOp { @@ -6752,7 +7308,11 @@ -denorm any - + ulp 1 struct SBinaryFPOp { @@ -6799,7 +7359,11 @@ -denorm any - + ulp 1 struct SBinaryFPOp { @@ -6842,7 +7406,11 @@ -denorm any - + ulp 1 struct SBinaryFPOp { @@ -6882,7 +7450,11 @@ -denorm ftz - + ulp 1 struct SBinaryFPOp { @@ -6919,7 +7491,11 @@ -denorm ftz - + ulp 1 struct SBinaryFPOp { @@ -6956,7 +7532,11 @@ -denorm preserve - + ulp 1 struct SBinaryFPOp { @@ -6993,7 +7573,11 @@ -denorm ftz - + ulp 1 struct SBinaryFPOp { @@ -7030,7 +7614,11 @@ -denorm preserve - + ulp 1 struct SBinaryFPOp { @@ -7073,7 +7661,11 @@ -denorm any - + ulp 1 struct SBinaryFPOp { @@ -7110,7 +7702,11 @@ -denorm preserve - + ulp 1 struct SBinaryFPOp { @@ -7164,7 +7760,11 @@ String String - + ulp 1 struct STertiaryFloatOp { @@ -7203,7 +7803,11 @@ -denorm preserve - + ulp 1 struct STertiaryFloatOp { @@ -7247,7 +7851,11 @@ -denorm any - + ulp 1 struct STertiaryFloatOp { @@ -7294,7 +7902,11 @@ uint String - + ulp 0 diff --git a/tools/clang/unittests/HLSLExec/TableParameterHandler.h b/tools/clang/unittests/HLSLExec/TableParameterHandler.h index ad99187ebbd..7871fe964c5 100644 --- a/tools/clang/unittests/HLSLExec/TableParameterHandler.h +++ b/tools/clang/unittests/HLSLExec/TableParameterHandler.h @@ -2,12 +2,8 @@ #define TABLE_PARAMETER_HANDLER_H #include -#ifdef _HLK_CONF -#include "DxilConfTestUtils.h" -#else #include "HlslTestUtils.h" #include "dxc/Support/Global.h" -#endif // Parameter representation for taef data-driven tests struct TableParameter { diff --git a/utils/hct/hcttest.cmd b/utils/hct/hcttest.cmd index eebc531c915..36dc9fc6bfd 100644 --- a/utils/hct/hcttest.cmd +++ b/utils/hct/hcttest.cmd @@ -29,7 +29,7 @@ set TEST_EXTRAS=0 set TEST_EXEC_REQUIRED=0 set TEST_USE_LIT=1 set TEST_CLANG_FILTER= -set TEST_EXEC_FILTER=ExecutionTest::* +set TEST_EXEC_FILTER=DxilConfTest::* set LOG_FILTER=/logOutput:LowWithConsoleBuffering set TEST_COMPAT_SUITE=0 set MANUAL_FILE_CHECK_PATH= @@ -145,7 +145,7 @@ if "%1"=="-clean" ( set TEST_EXEC=1 set TEST_USE_LIT=0 echo Fallback to taef when use taef only options. - set TEST_EXEC_FILTER=ExecutionTest::%2 + set TEST_EXEC_FILTER=DxilConfTest::%2 set TEST_EXEC_REQUIRED=1 shift /1 ) else if "%1"=="exec-future" ( @@ -161,7 +161,7 @@ if "%1"=="-clean" ( set TEST_USE_LIT=0 echo Fallback to taef when use taef only options. set TEST_EXEC_FUTURE=1 - set TEST_EXEC_FILTER=ExecutionTest::%2 + set TEST_EXEC_FILTER=DxilConfTest::%2 set TEST_EXEC_REQUIRED=1 shift /1 ) else if "%1"=="extras" ( @@ -457,7 +457,7 @@ if "%TEST_EXEC%"=="1" ( set EXEC_COMMON_ARGS=/p:"ExperimentalShaders=*" %TEST_ADAPTER% %USE_AGILITY_SDK% if "%TEST_EXEC%"=="1" ( echo Sniffing for D3D12 configuration ... - call :runte ExecHLSLTests.dll /select:"@Name='ExecutionTest::BasicTriangleTest' AND @Architecture='%TEST_ARCH%'" %EXEC_COMMON_ARGS% + call :runte ExecHLSLTests.dll /select:"@Name='DxilConfTest::BasicTriangleTest' AND @Architecture='%TEST_ARCH%'" %EXEC_COMMON_ARGS% set RES_EXEC=!ERRORLEVEL! if errorlevel 1 ( if not "%TEST_EXEC_REQUIRED%"=="1" ( From 71df25935d35233d64a1a9ed45aac0bdf6d1f7a5 Mon Sep 17 00:00:00 2001 From: Joao Saffran Date: Fri, 13 Nov 2026 10:49:12 -0800 Subject: [PATCH 2/4] fix typos --- tools/clang/unittests/HLSLExec/ExecutionTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/clang/unittests/HLSLExec/ExecutionTest.cpp b/tools/clang/unittests/HLSLExec/ExecutionTest.cpp index 64efec445eb..cbe62008a9a 100644 --- a/tools/clang/unittests/HLSLExec/ExecutionTest.cpp +++ b/tools/clang/unittests/HLSLExec/ExecutionTest.cpp @@ -236,7 +236,7 @@ class DxilConfTest { L"Device.Graphics.WDDM22.AdapterRender.D3D12.DXIL.Int64.CoreRequirement") END_TEST_METHOD() BEGIN_TEST_METHOD(LifetimeIntrinsicTest) - TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies lifetime intrinrics") + TEST_METHOD_PROPERTY(L"Kits.Description", L"Verifies lifetime intrinsics") TEST_METHOD_PROPERTY(L"Kits.TestId", L"382d7ad4-cdf3-49cb-a622-3cb346b489f9") TEST_METHOD_PROPERTY(L"Kits.TestName", L"D3D12 - DXIL Core Test - Lifetime intrinsics markers") From a1f086fc1775e0ca96eb8f65c85de023369aa1d7 Mon Sep 17 00:00:00 2001 From: Joao Saffran Date: Fri, 13 Nov 2026 10:52:27 -0800 Subject: [PATCH 3/4] format --- tools/clang/unittests/HLSLExec/TableParameterHandler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/clang/unittests/HLSLExec/TableParameterHandler.h b/tools/clang/unittests/HLSLExec/TableParameterHandler.h index 7871fe964c5..00a0b675bbd 100644 --- a/tools/clang/unittests/HLSLExec/TableParameterHandler.h +++ b/tools/clang/unittests/HLSLExec/TableParameterHandler.h @@ -1,9 +1,9 @@ #ifndef TABLE_PARAMETER_HANDLER_H #define TABLE_PARAMETER_HANDLER_H -#include #include "HlslTestUtils.h" #include "dxc/Support/Global.h" +#include // Parameter representation for taef data-driven tests struct TableParameter { From 4fa246bbf5ea76a9e7ae3ac18e9f59ddcc9060e4 Mon Sep 17 00:00:00 2001 From: Joao Saffran Date: Fri, 13 Nov 2026 13:30:57 -0800 Subject: [PATCH 4/4] fix ci error? --- tools/clang/unittests/HLSLExec/TableParameterHandler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/clang/unittests/HLSLExec/TableParameterHandler.h b/tools/clang/unittests/HLSLExec/TableParameterHandler.h index 00a0b675bbd..7871fe964c5 100644 --- a/tools/clang/unittests/HLSLExec/TableParameterHandler.h +++ b/tools/clang/unittests/HLSLExec/TableParameterHandler.h @@ -1,9 +1,9 @@ #ifndef TABLE_PARAMETER_HANDLER_H #define TABLE_PARAMETER_HANDLER_H +#include #include "HlslTestUtils.h" #include "dxc/Support/Global.h" -#include // Parameter representation for taef data-driven tests struct TableParameter {