@@ -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