mirror of
https://github.com/narzoul/DDrawCompat
synced 2024-12-30 08:55:36 +01:00
Count non-local vidmem as local up to the 1GB limit
Compensates for DVMT not reporting sufficient local video memory for surface allocation on integrated Intel GPUs.
This commit is contained in:
parent
5eaa79d04c
commit
67f38479b7
@ -162,19 +162,19 @@ namespace
|
||||
case KMTQAITYPE_GETSEGMENTSIZE:
|
||||
{
|
||||
auto info = static_cast<D3DKMT_SEGMENTSIZEINFO*>(pData->pPrivateDriverData);
|
||||
info->DedicatedVideoMemorySize += info->DedicatedSystemMemorySize;
|
||||
info->DedicatedSystemMemorySize = 0;
|
||||
|
||||
const ULONGLONG maxMem = 0x3FFF0000;
|
||||
if (info->DedicatedVideoMemorySize > maxMem)
|
||||
if (info->DedicatedVideoMemorySize < maxMem)
|
||||
{
|
||||
info->DedicatedVideoMemorySize = maxMem;
|
||||
}
|
||||
if (info->DedicatedVideoMemorySize + info->DedicatedSystemMemorySize > maxMem)
|
||||
{
|
||||
info->DedicatedSystemMemorySize = maxMem - info->DedicatedVideoMemorySize;
|
||||
}
|
||||
if (info->SharedSystemMemorySize > maxMem)
|
||||
{
|
||||
info->SharedSystemMemorySize = maxMem;
|
||||
auto addedMem = min(maxMem - info->DedicatedVideoMemorySize, info->SharedSystemMemorySize);
|
||||
info->DedicatedVideoMemorySize += addedMem;
|
||||
info->SharedSystemMemorySize -= addedMem;
|
||||
}
|
||||
|
||||
info->DedicatedVideoMemorySize = min(info->DedicatedVideoMemorySize, maxMem);
|
||||
info->SharedSystemMemorySize = min(info->SharedSystemMemorySize, maxMem);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user