Looking for help with FPS issues in a T3D game
by JR · in Technical Issues · 10/28/2014 (4:44 pm) · 6 replies
Firstly, if this is an inappropriate thread to make, I apologize and it should be deleted immediately. I didn't know if questions from non-programmers were allowed. I looked and saw no rules prohibiting it.
After an update that the game received on October 3rd, I saw a massive drop in FPS. As in, I was running the game on maximum video settings at about 40-45 FPS and then suddenly dropped to 10-15 at the lowest video settings. So I've been trying to troubleshoot some FPS problems for a while in this game, Life is Feudal. Everything about the game requirements hints that my system should run fine. Many people with far worse hardware are reporting much better performance at much higher settings (my settings are the absolute lowest in everything--including shadows, true reflections, and PostFX turned off with a much lower resolution). Even one of the developers mentioned numerous times that he runs the game on a GTX 570 and has FPS around 20-40 all the time. I have a card that is arguably better, and I mostly see 10-15 FPS with my GPU just churning at 99%.
I've gone through the usual steps. I checked to see if DX9 was installed, since the game runs on that. I've deleted and reinstalled the game and video drivers. I've rolled back to an older video driver. I did benchmarking to see if the card was fried (it's only 4 months old), and I tried other games that were also graphically intense. I've ask the devs and the community from the game, and have received zero help. To them, I am insane for expecting my hardware to outperform older hardware.
Looking through the game log, I've noticed a slew of errors and warnings that hint at possible explanations, but I am rather inept in programming. That's where you lovely people come in.
I was wondering if someone would be willing to look through the log and tell me if there's something on my end that I could change to make this run as good as it use to? I left out a very large portion of the log because I didn't think I could fit it, and I expect the problem I'm facing is not during the world load.
After an update that the game received on October 3rd, I saw a massive drop in FPS. As in, I was running the game on maximum video settings at about 40-45 FPS and then suddenly dropped to 10-15 at the lowest video settings. So I've been trying to troubleshoot some FPS problems for a while in this game, Life is Feudal. Everything about the game requirements hints that my system should run fine. Many people with far worse hardware are reporting much better performance at much higher settings (my settings are the absolute lowest in everything--including shadows, true reflections, and PostFX turned off with a much lower resolution). Even one of the developers mentioned numerous times that he runs the game on a GTX 570 and has FPS around 20-40 all the time. I have a card that is arguably better, and I mostly see 10-15 FPS with my GPU just churning at 99%.
I've gone through the usual steps. I checked to see if DX9 was installed, since the game runs on that. I've deleted and reinstalled the game and video drivers. I've rolled back to an older video driver. I did benchmarking to see if the card was fried (it's only 4 months old), and I tried other games that were also graphically intense. I've ask the devs and the community from the game, and have received zero help. To them, I am insane for expecting my hardware to outperform older hardware.
Looking through the game log, I've noticed a slew of errors and warnings that hint at possible explanations, but I am rather inept in programming. That's where you lovely people come in.
I was wondering if someone would be willing to look through the log and tell me if there's something on my end that I could change to make this run as good as it use to? I left out a very large portion of the log because I didn't think I could fit it, and I expect the problem I'm facing is not during the world load.
Quote:
//-------------------------- 10/28/2014 -- 17:36:51 -----
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Processor Init:
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Intel Core i7 / Xeon, ~2.66 Ghz
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> FPU detected
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> MMX detected
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> SSE detected
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> SSE2 detected
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> HT detected
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> MP detected [4 cores, 8 logical, 1 physical]
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE>
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Math Init:
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Installing Standard C extensions
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Installing Assembly extensions
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Installing FPU extensions
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Installing MMX extensions
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Installing SSE extensions
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE>
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Initializing platform...
ECHO 2014-10-28 17:36:51.378 {00} <NOSCOPE> Input Init:
ECHO 2014-10-28 17:36:51.388 {00} <NOSCOPE> keyboard0 input device created.
ECHO 2014-10-28 17:36:51.458 {00} <NOSCOPE> mouse0 input device created.
ECHO 2014-10-28 17:36:51.578 {00} <NOSCOPE> DirectInput enabled.
ECHO 2014-10-28 17:36:51.578 {00} <NOSCOPE>
ECHO 2014-10-28 17:36:51.578 {00} <NOSCOPE> Done
ECHO 2014-10-28 17:36:51.588 {00} <NOSCOPE> GFX Init:
ECHO 2014-10-28 17:36:51.655 {00} <NOSCOPE> Direct 3D (version 9.x) device found
ECHO 2014-10-28 17:36:51.655 {00} <NOSCOPE>
ECHO 2014-10-28 17:36:51.665 {00} <NOSCOPE> SFXFMODProvider - FMOD Ex API version: 4.44.43
ECHO 2014-10-28 17:36:51.665 {00} <NOSCOPE> SFXFMODProvider - FMOD Designer API version: 4.44.43
WARN 2014-10-28 17:36:51.695 {00} <NOSCOPE> DebugDrawer Enabled!
ECHO 2014-10-28 17:36:51.815 {00} <NOSCOPE> --------- Loading DIRS ---------
ECHO 2014-10-28 17:36:51.825 {00} <NOSCOPE>
ECHO 2014-10-28 17:36:51.825 {00} <NOSCOPE> --------- Parsing Arguments ---------
WARN 2014-10-28 17:36:51.975 {03} <initializeCore> SimObject::registerObject() - datablock ids should be initialized via its 'id' field: SFXAmbience
ECHO 2014-10-28 17:36:51.975 {03} <initializeCore> Binding server port to default IP
ECHO 2014-10-28 17:36:51.975 {03} <initializeCore> UDP initialized on port 0
ECHO 2014-10-28 17:36:51.975 {05} <createCanvas> Attempting to create GFX device: NVIDIA GeForce GTX 660 (D3D9)
ECHO 2014-10-28 17:36:51.985 {05} <createCanvas> Device created, setting adapter and enumerating modes
ERRR 2014-10-28 17:36:52.025 {05} <createCanvas> Win32Window::setVideoMode - invoking curtain
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Device created sucessfully. Full parameter info:
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Adapter: 0
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> DeviceType: D3DDEVTYPE_HAL
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> BehaviourFlags:
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> D3DCREATE_FPU_PRESERVE
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> D3DCREATE_PUREDEVICE
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> D3DCREATE_HARDWARE_VERTEXPROCESSING
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> PresetParams:
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Width/Height: 1366x768
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Format: 22
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> BkBf Count: 1
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Multisampling type: D3DMULTISAMPLE_NONE
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> MS quality: 0
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Swap Effect: 1
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Auto DS: 1
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> DS Format: 75
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Flags: 0
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Cur. D3DDevice ref count=1
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Pix version detected: 3.000000
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Vert version detected: 3.000000
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Maximum number of simultaneous samplers: 16
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Number of simultaneous render targets: 4
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Hardware occlusion query detected: Yes
ECHO 2014-10-28 17:36:52.545 {05} <createCanvas> Using Direct3D9Ex: No
ECHO 2014-10-28 17:36:52.575 {05} <createCanvas> WMIVideoInfo: DxDiag initialized
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> Initializing GFXCardProfiler (D3D9)
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> o Chipset : 'GeForce GTX 660'
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> o Card : 'GeForce GTX 660 '
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> o Version : '9.18.0013.4448'
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> - Scanning card capabilities...
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> GFXCardProfiler (D3D9) - Setting capability 'autoMipMapLevel' to 1.
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> GFXCardProfiler (D3D9) - Setting capability 'maxTextureWidth' to 16384.
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> GFXCardProfiler (D3D9) - Setting capability 'maxTextureHeight' to 16384.
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> GFXCardProfiler (D3D9) - Setting capability 'maxTextureSize' to 16384.
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> GFXCardProfiler (D3D9) - Setting capability 'maxAnisotropy' to 16.
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> GFXCardProfiler (D3D9) - Setting capability 'lerpDetailBlend' to 1.
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> GFXCardProfiler (D3D9) - Setting capability 'fourStageDetailBlend' to 1.
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> - Loading card profiles...
ECHO 2014-10-28 17:36:53.895 {05} <createCanvas> - Loaded card profile core/profile/D3D9.cs
WARN 2014-10-28 17:36:53.895 {05} <createCanvas> - No card profile core/profile/D3D9.GeForceGTX660.cs exists
WARN 2014-10-28 17:36:53.895 {05} <createCanvas> - No card profile core/profile/D3D9.GeForceGTX660.GeForceGTX660.cs exists
WARN 2014-10-28 17:36:53.895 {05} <createCanvas> - No card profile core/profile/D3D9.GeForceGTX660.GeForceGTX660.91800134448.cs exists
WARN 2014-10-28 17:36:53.895 {05} <createCanvas> ShaderGen: Write permission unavailable, switching to virtualized memory storage
ERRR 2014-10-28 17:36:54.025 {03} <initializeCore> 78: Unable to instantiate non-conobject class GuiVariableInspector.
ERRR 2014-10-28 17:36:54.165 {03} <initializeCore> 12: Unable to instantiate non-conobject class DbgFileView.
ECHO 2014-10-28 17:36:54.185 {06} <postVerbose> % - PostFX Manager - Executing core/scripts/client/postFx/default.postfxpreset.cs
ECHO 2014-10-28 17:36:54.185 {07} <postVerbose> % - PostFX Manager - Applying from preset
ECHO 2014-10-28 17:36:54.185 {08} <postVerbose> % - PostFX Manager - PostFX disabled
WARN 2014-10-28 17:36:54.215 {02} <[CorePackage]onStart> scripts/gui/optionsVideoDlg.cs (671): string always evaluates to 0.
WARN 2014-10-28 17:36:54.225 {02} <[CorePackage]onStart> Missing file: art/gui/optionsVideoDlg.gui!
WARN 2014-10-28 17:36:54.225 {02} <[CorePackage]onStart> SimObject::registerObject() - datablock ids should be initialized via its 'id' field: SFXDescription
WARN 2014-10-28 17:36:54.225 {02} <[CorePackage]onStart> Missing file: art/gui/optionsAudioDlg.gui!
ECHO 2014-10-28 17:36:54.245 {02} <[CorePackage]onStart> % - Initialized Core
ECHO 2014-10-28 17:36:54.245 {01} <[LiF]onStart>
--------- Initializing Directory: scripts ---------
ECHO 2014-10-28 17:36:54.255 {02} <sfxStartup> sfxStartup...
ECHO 2014-10-28 17:36:54.255 {03} <sfxInit>
FMOD Device caps:
ECHO 2014-10-28 17:36:54.255 {03} <sfxInit> OUTPUT_FORMAT_PCM8
ECHO 2014-10-28 17:36:54.255 {03} <sfxInit> OUTPUT_FORMAT_PCM16
ECHO 2014-10-28 17:36:54.255 {03} <sfxInit> OUTPUT_FORMAT_PCM24
ECHO 2014-10-28 17:36:54.255 {03} <sfxInit> OUTPUT_FORMAT_PCM32
ECHO 2014-10-28 17:36:54.255 {03} <sfxInit> OUTPUT_FORMAT_PCMFLOAT
ECHO 2014-10-28 17:36:54.255 {03} <sfxInit>
ECHO 2014-10-28 17:36:54.295 {03} <sfxInit> SFXSystem::createDevice - created FMOD device 'Speakers (High Definition Audio Device)'
ECHO 2014-10-28 17:36:54.295 {03} <sfxInit> CAPS_Reverb
ECHO 2014-10-28 17:36:54.295 {03} <sfxInit> CAPS_VoiceManagement
ECHO 2014-10-28 17:36:54.295 {03} <sfxInit> Provider: FMOD
ECHO 2014-10-28 17:36:54.295 {03} <sfxInit> Device: Speakers (High Definition Audio Device)
ECHO 2014-10-28 17:36:54.295 {03} <sfxInit> Hardware: No
ECHO 2014-10-28 17:36:54.295 {03} <sfxInit> Buffers: 32
WARN 2014-10-28 17:36:54.295 {04} <sfxSetVoiceChatVolume> core/scripts/client/audio.cs (376): Unknown command setVolume.
WARN 2014-10-28 17:36:54.295 {04} <sfxSetVoiceChatVolume> Object SteamVoiceChat(1285) SteamVoiceChat -> SFXDescription -> SimDataBlock -> SimObject
ECHO 2014-10-28 17:36:54.295 {02} <initClient>
--------- Initializing LiF: Client Scripts ---------
ERRR 2014-10-28 17:36:54.295 {02} <initClient> exec: invalid script file art/gui/customProfiles.cs.
ERRR 2014-10-28 17:36:54.315 {04} <initRenderManager> 74: Unable to instantiate non-conobject class afxZodiacInteriorRenderer.
ECHO 2014-10-28 17:36:54.317 {04} <initLightingSystems>
--------- Initializing Lighting Systems ---------
ECHO 2014-10-28 17:36:54.333 {05} <onLightManagerActivate> Using Advanced Lighting
ECHO 2014-10-28 17:36:54.363 {04} <initLightingSystems>
ECHO 2014-10-28 17:36:54.363 {03} <configureCanvas> --------------
ECHO 2014-10-28 17:36:54.363 {03} <configureCanvas> Attempting to set resolution to "1366 768 true 32 60 0"
ECHO 2014-10-28 17:36:54.363 {03} <configureCanvas> Accepted Mode:
--Resolution : 1366 768
--Full Screen : Yes
--Bits Per Pixel : 32
--Refresh Rate : 60
--FSAA Level : 0
#2
10/28/2014 (5:21 pm)
I was afraid of that. Out of curiosity, what exactly does the whole "write permission" warning mean? That didn't sound good to me at all.
#3
10/28/2014 (8:06 pm)
That shadergen log entry just means dynamically generated shader files that the game engine uses won't be saved to the hard drive, but instead kept in system memory as a virtual filesystem (or known as a RAM drive). You can see where the log message is being used in Engine/source/shaderGen/shaderGen.cpp on github.
#4
Here is the contents of the cleanShaders.bat file:
If you create a batch file and put this in it, it should do the trick.
10/29/2014 (12:34 pm)
You might try deleting the procedurally generated shaders and letting them regenerate on next run. Should be in the shaders/procedural folder - these can be deleted and will be recompiled on next game run. Just don't delete autogenConditioners.h (I think).Here is the contents of the cleanShaders.bat file:
REM Delete procedural shaders del /q /a:-R game\shaders\procedural\*.* REM Delete dumped shader disassembly files del /q /s /a:-R *_dis.txt
If you create a batch file and put this in it, it should do the trick.
#5
10/29/2014 (12:38 pm)
You might have to fix the start path in the first del command....
#6
10/29/2014 (2:05 pm)
Awesome! Thanks so much for the help everyone.
Torque Owner Daniel Buckmaster
T3D Steering Committee
For what it's worth, the log looks fairly normal...