Skip to content

Commit 4c4fad6

Browse files
committed
xrRender_R4: added support for creation with feature level from 9.1 to 11.1
1 parent b4d0c20 commit 4c4fad6

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/Layers/xrRenderDX10/dx10HW.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)