]> granicus.if.org Git - handbrake/commitdiff
ports: detect more Intel microarchitecture families.
authorRodeo <tdskywalker@gmail.com>
Fri, 27 Dec 2013 20:49:39 +0000 (20:49 +0000)
committerRodeo <tdskywalker@gmail.com>
Fri, 27 Dec 2013 20:49:39 +0000 (20:49 +0000)
Also disable QSV hardware support on Bonnell-based microprocessors. Some Cloverview processors apparently support media SDK with third-party hardware, and until we can access hardware to test and fix the crashes we have on that platform, let's not enable it.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5942 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/ports.c
libhb/ports.h
libhb/qsv_common.c

index e5c9fe7e2feadedcc5e8a72d2fda7a4ccd66aeff..5b69f16d11caa26fd7120e1f2671721fdf01fecb 100644 (file)
@@ -247,10 +247,14 @@ const char* hb_get_cpu_platform_name()
     {
         // Intel 64 and IA-32 Architectures Software Developer's Manual, Vol. 3C
         // Table 35-1: CPUID Signature Values of DisplayFamily_DisplayModel
+        case HB_CPU_PLATFORM_INTEL_BNL:
+            return "Intel microarchitecture Bonnell";
         case HB_CPU_PLATFORM_INTEL_SNB:
             return "Intel microarchitecture Sandy Bridge";
         case HB_CPU_PLATFORM_INTEL_IVB:
             return "Intel microarchitecture Ivy Bridge";
+        case HB_CPU_PLATFORM_INTEL_SLM:
+            return "Intel microarchitecture Silvermont";
         case HB_CPU_PLATFORM_INTEL_HSW:
             return "Intel microarchitecture Haswell";
 
@@ -281,6 +285,13 @@ static void init_cpu_info()
             {
                 switch (model)
                 {
+                    case 0x1C:
+                    case 0x26:
+                    case 0x27:
+                    case 0x35:
+                    case 0x36:
+                        hb_cpu_info.platform = HB_CPU_PLATFORM_INTEL_BNL;
+                        break;
                     case 0x2A:
                     case 0x2D:
                         hb_cpu_info.platform = HB_CPU_PLATFORM_INTEL_SNB;
@@ -289,6 +300,11 @@ static void init_cpu_info()
                     case 0x3E:
                         hb_cpu_info.platform = HB_CPU_PLATFORM_INTEL_IVB;
                         break;
+                    case 0x37:
+                    case 0x4A:
+                    case 0x4D:
+                        hb_cpu_info.platform = HB_CPU_PLATFORM_INTEL_SLM;
+                        break;
                     case 0x3C:
                     case 0x45:
                     case 0x46:
index 5021a51769c39b4405874a641778a5d5e26aefca..bcc898865ff2614311b414959affc7bb385ecddc 100644 (file)
@@ -23,8 +23,10 @@ enum hb_cpu_platform
 {
     // list of microarchitecture codenames
     HB_CPU_PLATFORM_UNSPECIFIED = 0,
+    HB_CPU_PLATFORM_INTEL_BNL,
     HB_CPU_PLATFORM_INTEL_SNB,
     HB_CPU_PLATFORM_INTEL_IVB,
+    HB_CPU_PLATFORM_INTEL_SLM,
     HB_CPU_PLATFORM_INTEL_HSW,
 };
 int         hb_get_cpu_count();
index 9465a972e7ed56d503b87a87836c07b70bfae850..3dcaa25edef6bda6fc83bfc5620bd7150461bba7 100644 (file)
@@ -77,10 +77,15 @@ int hb_qsv_info_init()
     if (MFXInit(MFX_IMPL_HARDWARE_ANY|MFX_IMPL_VIA_ANY,
                 &qsv_minimum_version, &session) == MFX_ERR_NONE)
     {
-        qsv_hardware_available   = 1;
-        preferred_implementation = MFX_IMPL_HARDWARE_ANY|MFX_IMPL_VIA_ANY;
-        // our minimum is supported, but query the actual version
-        MFXQueryVersion(session, &qsv_hardware_version);
+        // Cloverview (Bonnell microarchitecture) supports MSDK via third-party
+        // hardware - we don't support this configuration for the time being
+        if (hb_get_cpu_platform() != HB_CPU_PLATFORM_INTEL_BNL)
+        {
+            qsv_hardware_available   = 1;
+            preferred_implementation = MFX_IMPL_HARDWARE_ANY|MFX_IMPL_VIA_ANY;
+            // our minimum is supported, but query the actual version
+            MFXQueryVersion(session, &qsv_hardware_version);
+        }
         MFXClose(session);
     }