diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp index e83c6ef9d1..c23ad14e6d 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp +++ b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/gstd3d11device.cpp @@ -1000,9 +1000,6 @@ gst_d3d11_device_new_internal (const GstD3D11DeviceConstructData * data) 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 }; D3D_FEATURE_LEVEL selected_level; @@ -1043,6 +1040,12 @@ gst_d3d11_device_new_internal (const GstD3D11DeviceConstructData * data) return nullptr; } + selected_level = device->GetFeatureLevel (); + if (selected_level < D3D_FEATURE_LEVEL_10_0) { + GST_ERROR ("Feature level 0x%x is not supported", (guint) selected_level); + return nullptr; + } + device->GetImmediateContext (&device_context); } diff --git a/subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp b/subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp index 429ac69920..ab5d4d291e 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/plugin.cpp @@ -214,17 +214,9 @@ plugin_init (GstPlugin * plugin) gst_object_unref (device); } - /* FIXME: Our shader code is not compatible with D3D_FEATURE_LEVEL_9_3 - * or lower. So HLSL compiler cannot understand our shader code and - * therefore d3d11colorconverter cannot be configured. - * - * Known D3D_FEATURE_LEVEL_9_3 driver is - * "VirtualBox Graphics Adapter (WDDM)" - * ... and there might be some more old physical devices which don't support - * D3D_FEATURE_LEVEL_10_0. - */ + /* We don't support legacy Direct9.x level GPU */ if (max_feature_level < D3D_FEATURE_LEVEL_10_0) - video_sink_rank = GST_RANK_NONE; + return TRUE; gst_d3d11_plugin_utils_init (max_feature_level);