diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:38:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:38:23 +0000 |
commit | ff6e3c025658a5fa1affd094f220b623e7e1b24b (patch) | |
tree | 9faab72d69c92d24e349d184f5869b9796f17e0c /src/tests/d3d11.c | |
parent | Initial commit. (diff) | |
download | libplacebo-ff6e3c025658a5fa1affd094f220b623e7e1b24b.tar.xz libplacebo-ff6e3c025658a5fa1affd094f220b623e7e1b24b.zip |
Adding upstream version 6.338.2.upstream/6.338.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/tests/d3d11.c')
-rw-r--r-- | src/tests/d3d11.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/tests/d3d11.c b/src/tests/d3d11.c new file mode 100644 index 0000000..256af35 --- /dev/null +++ b/src/tests/d3d11.c @@ -0,0 +1,59 @@ +#include "gpu_tests.h" +#include "d3d11/gpu.h" +#include <dxgi1_2.h> + +#include <libplacebo/d3d11.h> + +int main() +{ + pl_log log = pl_test_logger(); + IDXGIFactory1 *factory = NULL; + IDXGIAdapter1 *adapter1 = NULL; + HRESULT hr; + + HMODULE dxgi = LoadLibraryW(L"dxgi.dll"); + if (!dxgi) + return SKIP; + + __typeof__(&CreateDXGIFactory1) pCreateDXGIFactory1 = + (void *) GetProcAddress(dxgi, "CreateDXGIFactory1"); + if (!pCreateDXGIFactory1) + return SKIP; + + hr = pCreateDXGIFactory1(&IID_IDXGIFactory1, (void **) &factory); + if (FAILED(hr)) { + printf("Failed to create DXGI factory\n"); + return SKIP; + } + + // Test all attached devices + for (int i = 0;; i++) { + hr = IDXGIFactory1_EnumAdapters1(factory, i, &adapter1); + if (hr == DXGI_ERROR_NOT_FOUND) + break; + if (FAILED(hr)) { + printf("Failed to enumerate adapters\n"); + return SKIP; + } + + DXGI_ADAPTER_DESC1 desc; + hr = IDXGIAdapter1_GetDesc1(adapter1, &desc); + if (FAILED(hr)) { + printf("Failed to enumerate adapters\n"); + return SKIP; + } + SAFE_RELEASE(adapter1); + + const struct pl_d3d11_t *d3d11 = pl_d3d11_create(log, pl_d3d11_params( + .debug = true, + .adapter_luid = desc.AdapterLuid, + )); + REQUIRE(d3d11); + + gpu_shader_tests(d3d11->gpu); + + pl_d3d11_destroy(&d3d11); + } + + SAFE_RELEASE(factory); +} |