@@ -143,16 +143,27 @@ void CHW::CreateDevice(SDL_Window* m_sdlWnd)
143
143
#endif
144
144
HRESULT R;
145
145
#ifdef USE_DX11
146
- D3D_FEATURE_LEVEL pFeatureLevels[] = {
146
+ D3D_FEATURE_LEVEL featureLevels[] =
147
+ {
148
+ D3D_FEATURE_LEVEL_11_1,
147
149
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,
150
155
};
151
156
152
157
R = D3D11CreateDevice (m_pAdapter,
153
158
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 ]),
155
160
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);
156
167
#else
157
168
R = D3D10CreateDevice (m_pAdapter, m_DriverType, NULL , createDeviceFlags, D3D10_SDK_VERSION, &pDevice);
158
169
0 commit comments