1 #include "gpu_tests.h" 2 #include "d3d11/gpu.h" 3 #include <dxgi1_2.h> 4 main()5int main() 6 { 7 pl_log log = pl_test_logger(); 8 IDXGIFactory1 *factory = NULL; 9 IDXGIAdapter1 *adapter1 = NULL; 10 HRESULT hr; 11 12 HMODULE dxgi = LoadLibraryW(L"dxgi.dll"); 13 if (!dxgi) 14 return SKIP; 15 16 PFN_CREATE_DXGI_FACTORY pCreateDXGIFactory1 = 17 (void *) GetProcAddress(dxgi, "CreateDXGIFactory1"); 18 if (!pCreateDXGIFactory1) 19 return SKIP; 20 21 pCreateDXGIFactory1(&IID_IDXGIFactory1, (void **) &factory); 22 23 // Test all attached devices 24 for (int i = 0;; i++) { 25 hr = IDXGIFactory1_EnumAdapters1(factory, i, &adapter1); 26 if (hr == DXGI_ERROR_NOT_FOUND) 27 break; 28 if (FAILED(hr)) { 29 printf("Failed to enumerate adapters\n"); 30 return SKIP; 31 } 32 33 DXGI_ADAPTER_DESC1 desc; 34 hr = IDXGIAdapter1_GetDesc1(adapter1, &desc); 35 if (FAILED(hr)) { 36 printf("Failed to enumerate adapters\n"); 37 return SKIP; 38 } 39 SAFE_RELEASE(adapter1); 40 41 const struct pl_d3d11 *d3d11; 42 struct pl_d3d11_params params = pl_d3d11_default_params; 43 params.debug = true; 44 params.adapter_luid = desc.AdapterLuid; 45 d3d11 = pl_d3d11_create(log, ¶ms); 46 REQUIRE(d3d11); 47 48 gpu_shader_tests(d3d11->gpu); 49 50 pl_d3d11_destroy(&d3d11); 51 } 52 53 SAFE_RELEASE(factory); 54 } 55