diff options
-rw-r--r-- | libhb/ports.c | 16 | ||||
-rw-r--r-- | libhb/ports.h | 2 | ||||
-rw-r--r-- | libhb/qsv_common.c | 13 |
3 files changed, 27 insertions, 4 deletions
diff --git a/libhb/ports.c b/libhb/ports.c index e5c9fe7e2..5b69f16d1 100644 --- a/libhb/ports.c +++ b/libhb/ports.c @@ -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: diff --git a/libhb/ports.h b/libhb/ports.h index 5021a5176..bcc898865 100644 --- a/libhb/ports.h +++ b/libhb/ports.h @@ -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(); diff --git a/libhb/qsv_common.c b/libhb/qsv_common.c index 9465a972e..3dcaa25ed 100644 --- a/libhb/qsv_common.c +++ b/libhb/qsv_common.c @@ -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); } |