vlc | branch: master | Steve Lhomme <rob...@videolabs.io> | Thu Aug 10 14:37:21 2017 +0200| [c30147e56b062c54547be9d9c5e3d8c0b795494b] | committer: Jean-Baptiste Kempf
direct3d11: do not use D3D11 on older systems unless forced Using D3D 11.1 means we are at least on Windows 8. Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c30147e56b062c54547be9d9c5e3d8c0b795494b --- modules/video_output/win32/direct3d11.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index cb0d0a302b..13ef64617d 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -1675,10 +1675,16 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) #endif }; + D3D_FEATURE_LEVEL features[] = { + D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_1 + }; + for (UINT driver = 0; driver < ARRAYSIZE(driverAttempts); driver++) { D3D_FEATURE_LEVEL i_feature_level; hr = D3D11CreateDevice(NULL, driverAttempts[driver], NULL, creationFlags, - NULL, 0, D3D11_SDK_VERSION, + features, ARRAY_SIZE(features), D3D11_SDK_VERSION, &sys->d3ddevice, &i_feature_level, &sys->d3dcontext); if (SUCCEEDED(hr)) { #ifndef NDEBUG @@ -1686,7 +1692,12 @@ static int Direct3D11Open(vout_display_t *vd, video_format_t *fmt) (void *)sys->d3ddevice, (void *)sys->d3dcontext, driverAttempts[driver], i_feature_level); #endif - break; + if ( vd->obj.force || i_feature_level >= D3D_FEATURE_LEVEL_11_1 ) + break; + ID3D11DeviceContext_Release(sys->d3dcontext); + sys->d3dcontext = NULL; + ID3D11Device_Release(sys->d3ddevice); + sys->d3ddevice = NULL; } } _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits