From 3995326647f7255351a357b9f251659a3bdf75c7 Mon Sep 17 00:00:00 2001 From: Christine Lin Date: Thu, 21 Oct 2021 12:23:08 -0700 Subject: [PATCH] obs-qsv11: Remove Intel discrete device ID checking As Intel continues to add discrete graphics cards, maintaining a long list of discrete device IDs to check against isn't wise. When i+I platforms are detected, default to integrated graphics. --- plugins/obs-qsv11/QSV_Encoder.cpp | 11 ++--------- plugins/obs-qsv11/obs-qsv11.c | 6 ------ 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/plugins/obs-qsv11/QSV_Encoder.cpp b/plugins/obs-qsv11/QSV_Encoder.cpp index 1bf538315..58092086f 100644 --- a/plugins/obs-qsv11/QSV_Encoder.cpp +++ b/plugins/obs-qsv11/QSV_Encoder.cpp @@ -79,7 +79,6 @@ bool prefer_igpu_enc(int *iGPUIndex) int adapterIndex = 0; bool hasIGPU = false; bool hasDGPU = false; - bool isDG1Primary = false; HMODULE hDXGI = LoadLibrary(L"dxgi.dll"); if (hDXGI == NULL) { @@ -109,6 +108,7 @@ bool prefer_igpu_enc(int *iGPUIndex) return false; } + // Check for i+I cases (Intel discrete + Intel integrated graphics on the same system). Default will be integrated. while (SUCCEEDED(pFactory->EnumAdapters(adapterIndex, &pAdapter))) { DXGI_ADAPTER_DESC AdapterDesc = {}; if (SUCCEEDED(pAdapter->GetDesc(&AdapterDesc))) { @@ -122,13 +122,6 @@ bool prefer_igpu_enc(int *iGPUIndex) } else { hasDGPU = true; } - if ((AdapterDesc.DeviceId == 0x4905) || - (AdapterDesc.DeviceId == 0x4906) || - (AdapterDesc.DeviceId == 0x4907)) { - if (adapterIndex == 0) { - isDG1Primary = true; - } - } } } adapterIndex++; @@ -138,7 +131,7 @@ bool prefer_igpu_enc(int *iGPUIndex) pFactory->Release(); FreeLibrary(hDXGI); - return hasIGPU && hasDGPU && isDG1Primary; + return hasIGPU && hasDGPU; } void qsv_encoder_version(unsigned short *major, unsigned short *minor) diff --git a/plugins/obs-qsv11/obs-qsv11.c b/plugins/obs-qsv11/obs-qsv11.c index 186c568cd..34a88a0c4 100644 --- a/plugins/obs-qsv11/obs-qsv11.c +++ b/plugins/obs-qsv11/obs-qsv11.c @@ -752,12 +752,6 @@ static void *obs_qsv_create_tex(obs_data_t *settings, obs_encoder_t *encoder) return obs_encoder_create_rerouted(encoder, "obs_qsv11_soft"); } - if (prefer_igpu_enc(NULL)) { - blog(LOG_INFO, - ">>> prefer iGPU encoding, fall back to old qsv encoder"); - return obs_encoder_create_rerouted(encoder, "obs_qsv11_soft"); - } - blog(LOG_INFO, ">>> new qsv encoder"); return obs_qsv_create(settings, encoder); }