Changed: Added VideoMemory variable in cfg to force video memory to use (useful if Ryzom can't detect the correct amount of video memory or when using several clients at once)

This commit is contained in:
kervala 2016-01-07 17:39:11 +01:00
parent 3dad90c23f
commit 96edb81218
3 changed files with 23 additions and 8 deletions

View file

@ -419,6 +419,7 @@ CClientConfig::CClientConfig()
HDTextureInstalled = false;
Fog = true; // Fog is on by default
WaitVBL = false;
VideoMemory = 0;
FXAA = true;
@ -1051,6 +1052,8 @@ void CClientConfig::setValues()
// WaitVBL
READ_BOOL_FV(WaitVBL)
// VideoMemory
READ_INT_FV(VideoMemory);
READ_INT_DEV(TimerMode)

View file

@ -255,6 +255,8 @@ struct CClientConfig
bool Fog;
/// Enable/Disable VSync
bool WaitVBL;
/// Force or auto-detect video memory (in MiB)
sint VideoMemory;
/// Timer mode. 0 : QueryPerformanceCounter, 1 : timeGetTime.
uint TimerMode;

View file

@ -890,21 +890,31 @@ void initMainLoop()
// only detect amount of video memory if using HD textures
if (ClientCfg.HDEntityTexture)
{
if (ClientCfg.VideoMemory <= 0)
{
// determine video memory using 3D driver
videoMemory = Driver->getTotalVideoMemory();
// if unable to determine, use plaform methods
if (videoMemory < 0) videoMemory = CSystemUtils::getTotalVideoMemory();
if (videoMemory <= 0) videoMemory = CSystemUtils::getTotalVideoMemory();
// in the worst case, use default value of 128 MiB
if (videoMemory < 0) videoMemory = 128 * 1024;
if (videoMemory <= 0) videoMemory = 128 * 1024;
videoMemory /= 1024; // size in MiB
nlinfo("Video memory detected: %d MiB", videoMemory);
}
else
{
// force video memory (at least 32 MiB)
videoMemory = ClientCfg.VideoMemory < 32 ? 32:ClientCfg.VideoMemory;
nlinfo("Video memory forced: %d MiB", videoMemory);
}
}
else
{
// 32 MiB of VRAM if DivideTextureSizeBy2 else 64 MiB
videoMemory = ClientCfg.DivideTextureSizeBy2 ? 32:64;