17ec681f3SmrgThe resulting d3d10sw.dll implements D3D10's software rendering interface, like 27ec681f3SmrgWARP. 37ec681f3Smrg 47ec681f3Smrg 57ec681f3SmrgIt can be used directly from WLK 1.6 and WHCK 2.0 D3D10+ tests, via the -Src 67ec681f3Smrgand -SWDLL options. For example: 77ec681f3Smrg 87ec681f3Smrg wgf11blend.exe -Debug -DoNotCatchExceptions -DXGI:1.1 -FeatureLevel:10.0 -Src:SW -SWDLL:d3d10sw.dll -LogClean -LogVerbose 97ec681f3Smrg 107ec681f3SmrgHowever, as of WHCK version 2.1 this mechanism no longer works reliably. 117ec681f3SmrgEither you use WHCK 2.0 binaries, or you must use the alternative method 127ec681f3Smrgcribed below (of copying d3d10sw.dll into the executable directory and rename 137ec681f3Smrgit such that it matches the D3D10 UMD of the test machine). 147ec681f3Smrg 157ec681f3Smrg 167ec681f3SmrgExamples can be easily modified to load it too: 177ec681f3Smrg 187ec681f3Smrg D3D10CreateDeviceAndSwapChain(NULL, 197ec681f3Smrg D3D10_DRIVER_TYPE_SOFTWARE, 207ec681f3Smrg LoadLibraryA("d3d10sw"), /* Software */ 217ec681f3Smrg Flags, 227ec681f3Smrg D3D10_SDK_VERSION, 237ec681f3Smrg &SwapChainDesc, 247ec681f3Smrg &g_pSwapChain, 257ec681f3Smrg &g_pDevice); 267ec681f3Smrg 277ec681f3Smrg D3D11CreateDeviceAndSwapChain(NULL, /* pAdapter */ 287ec681f3Smrg D3D_DRIVER_TYPE_SOFTWARE, 297ec681f3Smrg LoadLibraryA("d3d10sw"), /* Software */ 307ec681f3Smrg Flags, 317ec681f3Smrg FeatureLevels, 327ec681f3Smrg sizeof FeatureLevels / sizeof FeatureLevels[0], 337ec681f3Smrg D3D11_SDK_VERSION, 347ec681f3Smrg &SwapChainDesc, 357ec681f3Smrg &g_pSwapChain, 367ec681f3Smrg &g_pDevice, 377ec681f3Smrg NULL, /* pFeatureLevel */ 387ec681f3Smrg &g_pDeviceContext); /* ppImmediateContext */ 397ec681f3Smrg 407ec681f3Smrg 417ec681f3SmrgAlternatively, it can be renamed into the system's D3D10 UMD driver (e.g., 427ec681f3Smrgvm3dum_10.dll for VMware vGPU, nvwgf2um.dll for NVIDIA GPU), and placed into 437ec681f3Smrgthe application directory, or system's directory, and used instead. 447ec681f3Smrg 457ec681f3SmrgFor the DLL to be picked from the application directory you'll need to do the 467ec681f3Smrgfollowing once: 477ec681f3Smrg 487ec681f3Smrg reg add "HKLM\System\CurrentControlSet\Control\Session Manager" /v "SafeDllSearchMode" /t REG_DWORD /d 0 /f 497ec681f3Smrg 507ec681f3SmrgSee also https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order 51