Slow Performance (all tested games)

Issue:
Performance on all games has been dramatically slower (previously up to 100% speed, now 30% at most) since 4-5 builds ago. All stored builds, including some released much earlier, have been affected. Strangely, running Citra with the command to record a log (citra-qt 2>log.txt) results in normal speeds.
System Information

  • Operating System: Windows 10 Home
  • CPU: Intel i7 4790
  • GPU: Nvidia GeForce GTX 980 ti
  • Citra Version (found in titlebar): Bleeding Edge HEAD 7d6a887
  • Game: Fire Emblem Fates, Pokemon Moon, Pokemon Rumble World
  • Screenshot of Issue (include the full Citra window including titlebar):

Log: [ 0.000000] Common.Filesystem common\file_util.cpp:GetUserPath:695: Using the local user directory
[ 2.260093] Frontend citra_qt\main.cpp:BootGame:379: Citra starting…
[ 2.699520] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:Init:490: GL_VERSION: 3.3.0 NVIDIA 378.78
[ 2.699550] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:Init:491: GL_VENDOR: NVIDIA Corporation
[ 2.699562] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:Init:492: GL_RENDERER: GeForce GTX 980 Ti/PCIe/SSE2
[ 2.711094] Loader core\loader\ncch.cpp:Load:341: Program ID: 0004000000179800
[ 2.735660] Loader core\hle\kernel\process.cpp:ParseKernelCaps:99: ExHeader kernel version: 2.50
[ 2.736184] Service.CFG core\hle\service\cfg\cfg.cpp:SetPreferredRegionCode:599: Preferred region code set to 1
[ 2.834034] Service.SRV core\hle\service\srv.cpp:RegisterClient:40: (STUBBED) called
[ 3.501758] Service.SRV core\hle\service\srv.cpp:EnableNotification:64: (STUBBED) called
[ 3.504186] Service.APT core\hle\service\apt\apt.cpp:GetLockHandle:120: (STUBBED) called handle=0x00038009 applet_attributes=0x00000000
[ 3.506996] Service.APT core\hle\service\apt\apt.cpp:SetScreenCapPostPermission:452: (STUBBED) screen_capture_post_permission=0
[ 3.507606] Service.NDM core\hle\service\ndm\ndm.cpp:OverrideDefaultDaemons:201: (STUBBED) default_daemon_bit_mask=0x0000000F
[ 3.507750] Service.NDM core\hle\service\ndm\ndm.cpp:SuspendDaemons:87: (STUBBED) daemon_bit_mask=0x00000009
[ 3.508042] Service.APT core\hle\service\apt\apt.cpp:Enable:129: (STUBBED) called attributes=0x00000000
[ 3.509304] Service.APT core\hle\service\apt\apt.cpp:GlanceParameter:268: called app_id=0x00000300, buffer_size=0x00001000
[ 3.510425] Service.APT core\hle\service\apt\apt.cpp:NotifyToWait:102: (STUBBED) app_id=768
[ 3.511646] Service.APT core\hle\service\apt\apt.cpp:ReceiveParameter:238: called app_id=0x00000300, buffer_size=0x00001000
[ 3.513200] Service.APT core\hle\service\apt\apt.cpp:AppletUtility:344: (STUBBED) called command=0x00000007, input_size=0x00000004, output_size=0x00000001, input_addr=0x0FFFFF30, output_addr=0x0FFFFEFC
[ 3.513547] Service.APT core\hle\service\apt\apt.cpp:AppletUtility:344: (STUBBED) called command=0x00000004, input_size=0x00000001, output_size=0x00000001, input_addr=0x0FFFFEF8, output_addr=0x0FFFFEFC
[ 3.514080] Service.APT core\hle\service\apt\apt.cpp:SetAppCpuTimeLimit:359: (STUBBED) called cpu_percent=30, value=1
[ 3.521264] Service.FS core\hle\service\fs\fs_user.cpp:InitializeWithSdkVersion:801: (STUBBED) called, version: 0x0B0301C8
[ 3.563341] Service.APT core\hle\service\apt\apt.cpp:AppletUtility:344: (STUBBED) called command=0x00000004, input_size=0x00000001, output_size=0x00000001, input_addr=0x0FFFFF90, output_addr=0x0FFFFF94
[ 3.607430] Service.GSP core\hle\service\gsp_gpu.cpp:AcquireRight:692: called
[ 3.608129] Service.GSP core\hle\service\gsp_gpu.cpp:RegisterInterruptRelayQueue:386: called, flags=0x00000001
[ 3.657342] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPushAttrib is deprecated and not available in preview contexts.
[ 3.657461] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1280: GL_INVALID_ENUM error generated. Cannot enable in the current profile.
[ 3.657471] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1280: GL_INVALID_ENUM error generated. Cannot enable in the current profile.
[ 3.657475] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1280: GL_INVALID_ENUM error generated. Cannot enable in the current profile.
[ 3.657479] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1280: GL_INVALID_ENUM error generated. Cannot enable in the current profile.
[ 3.657687] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1280: GL_INVALID_ENUM error generated. Cannot enable in the current profile.
[ 3.657694] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1280: GL_INVALID_ENUM error generated. Cannot enable in the current profile.
[ 3.657701] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glMatrixMode is deprecated and not available in preview contexts.
[ 3.657706] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPushMatrix is deprecated and not available in preview contexts.
[ 3.657712] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glLoadIdentity is deprecated and not available in preview contexts.
[ 3.657717] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glOrtho is deprecated and not available in preview contexts.
[ 3.657722] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glMatrixMode is deprecated and not available in preview contexts.
[ 3.657726] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPushMatrix is deprecated and not available in preview contexts.
[ 3.657731] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glLoadIdentity is deprecated and not available in preview contexts.
[ 3.657735] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glMatrixMode is deprecated and not available in preview contexts.
[ 3.657739] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPushMatrix is deprecated and not available in preview contexts.
[ 3.657744] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glLoadIdentity is deprecated and not available in preview contexts.
[ 3.657749] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glBegin is deprecated and not available in preview contexts.
[ 3.657755] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glColor4fv is deprecated and not available in preview contexts.
[ 3.657761] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glVertex2fv is deprecated and not available in preview contexts.
[ 3.657765] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glVertex2fv is deprecated and not available in preview contexts.[ 79.871318] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glVertex2fv is deprecated and not available in preview contexts.
[ 79.871322] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glVertex2fv is deprecated and not available in preview contexts.
[ 79.871327] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glVertex2fv is deprecated and not available in preview contexts.
[ 79.871332] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glEnd is deprecated and not available in preview contexts.
[ 79.871336] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glMatrixMode is deprecated and not available in preview contexts.
[ 79.871341] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPopMatrix is deprecated and not available in preview contexts.
[ 79.871345] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glMatrixMode is deprecated and not available in preview contexts.
[ 79.871350] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPopMatrix is deprecated and not available in preview contexts.
[ 79.871365] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glMatrixMode is deprecated and not available in preview contexts.
[ 79.871370] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPopMatrix is deprecated and not available in preview contexts.
[ 79.871375] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPopAttrib is deprecated and not available in preview contexts.

hmm. i am not running into any slow down in pokemon moon or omega ruby on latest bleeding.

i have a core i5 7600 tho. can you point out what last build worked for you before the slowdowns?.

also this error seems interesting since i don’t get that error

[ 79.871370] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API ERROR 1282: GL_INVALID_OPERATION error generated. Function glPopMatrix is deprecated and not available in preview contexts.

I’m not sure which build exactly since I wasn’t documenting each version, but if I had to guess it was either 279 or 280.

try changing log filter to critical see if that will change anything.

Well that fixed it lol. I had no idea the log could affect performance.

yeah the current logging method citra uses is not the best and hits hard on the cpu performance.

either way if you ever encountered a bug in the future be sure to switch back the log filter before you report it

I’ll point out the cause of those error messages is probably that you have an OpenGL hook such as MSI Afterburner or Fraps turned on, they tend to mess Citra up.

1 Like

I have your same problems, I tried to fix them, but even with log filter set to critical I get the same FPS as earlier trying both latest nightly and bleeding edge in every game…
I have an Intel Core i7 6700k and an AMD R9 270, is it AMD the problem?

I actually did have afterburner running and I didn’t realize it. I forgot it affected applications like Citra. Looks like that was the root of the problem.

while we are on the subject of afterburner i decided to test it out and the result i have is kinda interesting.

the graphics hook up the afterburner uses is the on screen monitoring (originally a part of Riva tuner statistics software so not directly a part of the afterburner).

on screen monitoring + log filter set to critical gave no slowdown at all

no on screen monitoring + log filter set to critical gave no slowdown or a speed up either.

on screen monitoring + log filter set to info gave a massive slowdown (speed dropped from 75% to 30%)

also it seems that citra is not the only emulator having trouble with afterburner. cemu also has some issues with it as stated here

afterburner literally tries to call functions which don’t exist (in Citras process) and is very invasive.
I’d consider this totally broken and bug infested.

Nobody should use such broken software. It’s clearly a problem with afterburner, not Citra.
We can’t do anything to avoid these issues, afterburner should not do this kind of stupid shit.

1 Like

are you sure these are bugs or is that the creator of afterburner did not account for that afterburner would encounter something like an emulator which behaves differently than running a standard software in a pc environment. (video games…etc).

if you try running a standard video game then afterburner would hook up and provide monitoring without any problems but when it comes to emulator software then things get very broken.

either way this conflicting issue can be easily resolved by disabling on screen monitoring which is as easy as hitting a keybind.

100% sure. It’s a violation of the OpenGL specification caused by shitty code in afterburner.
This will also happen with games (however, they don’t usually give direct output to a log + they are usually more stupidly coded and do redundant stuff which hides the afterburner trouble). Some PC games will break with afterburner too.

1 Like

How do I check which apps are hooked to opengl?

1 Like