@@ -143,16 +143,27 @@ void CHW::CreateDevice(SDL_Window* m_sdlWnd)
143143#endif
144144 HRESULT R;
145145#ifdef USE_DX11
146- D3D_FEATURE_LEVEL pFeatureLevels[] = {
146+ D3D_FEATURE_LEVEL featureLevels[] =
147+ {
148+ D3D_FEATURE_LEVEL_11_1 ,
147149 D3D_FEATURE_LEVEL_11_0 ,
148- // D3D_FEATURE_LEVEL_10_1,
149- // D3D_FEATURE_LEVEL_10_0,
150+ D3D_FEATURE_LEVEL_10_1 ,
151+ D3D_FEATURE_LEVEL_10_0 ,
152+ D3D_FEATURE_LEVEL_9_3 ,
153+ D3D_FEATURE_LEVEL_9_2 ,
154+ D3D_FEATURE_LEVEL_9_1 ,
150155 };
151156
152157 R = D3D11CreateDevice (m_pAdapter,
153158 D3D_DRIVER_TYPE_UNKNOWN , // Если мы выбираем конкретный адаптер, то мы обязаны использовать D3D_DRIVER_TYPE_UNKNOWN.
154- NULL , createDeviceFlags, pFeatureLevels , sizeof (pFeatureLevels ) / sizeof (pFeatureLevels [0 ]),
159+ nullptr , createDeviceFlags, featureLevels , sizeof (featureLevels ) / sizeof (featureLevels [0 ]),
155160 D3D11_SDK_VERSION , &pDevice, &FeatureLevel, &pContext);
161+
162+ if (FAILED (R))
163+ R = D3D11CreateDevice (m_pAdapter,
164+ D3D_DRIVER_TYPE_UNKNOWN , // Если мы выбираем конкретный адаптер, то мы обязаны использовать D3D_DRIVER_TYPE_UNKNOWN.
165+ nullptr , createDeviceFlags, &featureLevels[1 ], sizeof (featureLevels) / sizeof (featureLevels[0 ]) - 1 ,
166+ D3D11_SDK_VERSION , &pDevice, &FeatureLevel, &pContext);
156167#else
157168 R = D3D10CreateDevice (m_pAdapter, m_DriverType, NULL , createDeviceFlags, D3D10_SDK_VERSION , &pDevice);
158169
0 commit comments