On 5/8/20 8:40 PM, Henri Verbeet wrote:
On Fri, 8 May 2020 at 00:45, Nikolay Sivov <nsivov(a)codeweavers.com> wrote:
+static IDXGIDevice *create_d3d11_device(void) +{ + static const D3D_FEATURE_LEVEL feature_level[] = + { + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + }; + unsigned int feature_level_count = ARRAY_SIZE(feature_level); + ID3D11Device *d3d_device; + IDXGIDevice *device = NULL; + HRESULT hr; + + if (!pD3D11CreateDevice) + return NULL; + + hr = pD3D11CreateDevice(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, feature_level, feature_level_count, + D3D11_SDK_VERSION, &d3d_device, NULL, NULL); + if (FAILED(hr)) + hr = pD3D11CreateDevice(NULL, D3D_DRIVER_TYPE_WARP, NULL, 0, feature_level, feature_level_count, + D3D11_SDK_VERSION, &d3d_device, NULL, NULL); + if (FAILED(hr)) + hr = pD3D11CreateDevice(NULL, D3D_DRIVER_TYPE_REFERENCE, NULL, 0, feature_level, feature_level_count, + D3D11_SDK_VERSION, &d3d_device, NULL, NULL); + + if (SUCCEEDED(hr)) + { + hr = ID3D11Device_QueryInterface(d3d_device, &IID_IDXGIDevice, (void **)&device); + ID3D11Device_Release(d3d_device); + } + + return device; +} Does DXGI_USAGE_UNORDERED_ACCESS really need a device created with D3D11CreateDevice()? (As opposed to e.g. just D3D_FEATURE_LEVEL_11_0.) D3D10CreateDevice1() doesn't work for me with feature level 11, both with 10_1 sdk and 11 sdk flag.How do I create this without d3d11 functions?