diff --git a/libobs-d3d11/d3d11-subsystem.cpp b/libobs-d3d11/d3d11-subsystem.cpp index 2bbd299ce..1ccd0b48a 100644 --- a/libobs-d3d11/d3d11-subsystem.cpp +++ b/libobs-d3d11/d3d11-subsystem.cpp @@ -475,37 +475,14 @@ static bool increase_maximum_frame_latency(ID3D11Device *device) #if USE_GPU_PRIORITY static bool set_priority(ID3D11Device *device) { - typedef enum _D3DKMT_SCHEDULINGPRIORITYCLASS { - D3DKMT_SCHEDULINGPRIORITYCLASS_IDLE, - D3DKMT_SCHEDULINGPRIORITYCLASS_BELOW_NORMAL, - D3DKMT_SCHEDULINGPRIORITYCLASS_NORMAL, - D3DKMT_SCHEDULINGPRIORITYCLASS_ABOVE_NORMAL, - D3DKMT_SCHEDULINGPRIORITYCLASS_HIGH, - D3DKMT_SCHEDULINGPRIORITYCLASS_REALTIME - } D3DKMT_SCHEDULINGPRIORITYCLASS; - ComQIPtr dxgiDevice(device); if (!dxgiDevice) { blog(LOG_DEBUG, "%s: Failed to get IDXGIDevice", __FUNCTION__); return false; } - HMODULE gdi32 = GetModuleHandleW(L"GDI32"); - if (!gdi32) { - blog(LOG_DEBUG, "%s: Failed to get GDI32", __FUNCTION__); - return false; - } - - NTSTATUS(WINAPI * d3dkmt_spspc)(HANDLE, D3DKMT_SCHEDULINGPRIORITYCLASS); - d3dkmt_spspc = (decltype(d3dkmt_spspc))GetProcAddress( - gdi32, "D3DKMTSetProcessSchedulingPriorityClass"); - if (!d3dkmt_spspc) { - blog(LOG_DEBUG, "%s: Failed to get d3dkmt_spspc", __FUNCTION__); - return false; - } - - NTSTATUS status = d3dkmt_spspc(GetCurrentProcess(), - D3DKMT_SCHEDULINGPRIORITYCLASS_REALTIME); + NTSTATUS status = D3DKMTSetProcessSchedulingPriorityClass( + GetCurrentProcess(), D3DKMT_SCHEDULINGPRIORITYCLASS_REALTIME); if (status != 0) { blog(LOG_DEBUG, "%s: Failed to set process priority class: %d", __FUNCTION__, (int)status); @@ -522,10 +499,8 @@ static bool set_priority(ID3D11Device *device) blog(LOG_INFO, "D3D11 GPU priority setup success"); return true; } - #endif - static bool adapter_hags_enabled(DXGI_ADAPTER_DESC *desc) { D3DKMT_OPENADAPTERFROMLUID d3dkmt_openluid{};