[v2 PATCH] dxgi: Translate DXGI_USAGE_UNORDERED_ACCESS to corresponding wined3d bind flag.

Henri Verbeet hverbeet at gmail.com
Fri May 8 12:40:58 CDT 2020


On Fri, 8 May 2020 at 00:45, Nikolay Sivov <nsivov at 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.)



More information about the wine-devel mailing list