P4 to Git Change 1506436 by skudchad@skudchad_test2_win_opencl on 2018/01/22 18:54:50
SWDEV-143124 - [CQE OCL][DTB][ISV][QR][DTB-BLOCKER] Applications (Both 64/32-bit) are not running on Win 7 due to faulty CL#1503998 - Use GetProcAddress to check gdi32.dll for D3DKMTEnumAdapters2 Affected files ... ... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/icd/icd_windows_dxgk.c#3 edit
This commit is contained in:
@@ -56,17 +56,28 @@ bool khrIcdOsVendorsEnumerateDXGK(void)
|
||||
D3DKMT_ADAPTERINFO* pAdapterInfo;
|
||||
D3DKMT_ENUMADAPTERS2 EnumAdapters;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
// Get handle to GDI Runtime
|
||||
HMODULE h = GetModuleHandle("gdi32.dll");
|
||||
if (!h)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
char cszLibraryName[1024] = { 0 };
|
||||
EnumAdapters.NumAdapters = 0;
|
||||
EnumAdapters.pAdapters = NULL;
|
||||
Status = D3DKMTEnumAdapters2(&EnumAdapters);
|
||||
PFND3DKMT_ENUMADAPTERS2 pEnumAdapters2 = (PFND3DKMT_ENUMADAPTERS2)GetProcAddress((HMODULE)h, "D3DKMTEnumAdapters2");
|
||||
if (!pEnumAdapters2)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
Status = pEnumAdapters2(&EnumAdapters);
|
||||
if (!NT_SUCCESS(Status) && (Status != STATUS_BUFFER_TOO_SMALL))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
pAdapterInfo = (D3DKMT_ADAPTERINFO*)malloc(sizeof(D3DKMT_ADAPTERINFO)*(EnumAdapters.NumAdapters));
|
||||
EnumAdapters.pAdapters = pAdapterInfo;
|
||||
Status = D3DKMTEnumAdapters2(&EnumAdapters);
|
||||
Status = pEnumAdapters2(&EnumAdapters);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
if (pAdapterInfo) free(pAdapterInfo);
|
||||
|
||||
Verwijs in nieuw issue
Block a user