diff options
author | Rodeo <[email protected]> | 2013-12-27 20:49:39 +0000 |
---|---|---|
committer | Rodeo <[email protected]> | 2013-12-27 20:49:39 +0000 |
commit | e087032ff8edb0441eafc225ae860503ce12f3d4 (patch) | |
tree | cf550b8e074d46aff5a235daf6c8c825660b21ca | |
parent | 840cb1e3448867a3d56bafc980dce39189d4814f (diff) |
ports: detect more Intel microarchitecture families.
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
-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); } |