Boost citra usage of cpu?


#1

Issue:
Citra runs at 18fps, 50% of game speed with pokemon sun/moon.
PC isn’t even that bad but from what ive noticed citra only uses 12% or so from my CPU power , anyway to turn that up /higher ???

System Information

log keeps spamming this
[1545.924244] Render.OpenGL video_core\renderer_opengl\renderer_opengl.cpp:DebugHandler:478: API OTHER 65536: Framebuffer unsupported. Framebuffer object 3 is unsupported because the depth and stencil attachments are mismatched.


#2

18 fps is not half of the game speed (it’s 30%), this is wrong. Citra uses only one core from your CPU now (that’s why you see only 12% of your total cores being used), so you need a higher clock to achieve better performance, there is no way to boost the performance.


#3

It says speed : 50%
pretty sure that means it runs at 50% speed.


#4

Not going to overclock and pay more money for a fucking liquid cooler ( which most of the times need to be replaced or have the liquid replaced after 6months/1year) What i’m asking is : Any settings i can change so the FPS is higher ( just as high on the waiting screen aka 50 fps) Or if i can make it use MORE cores.


#5

Doesn’t matter what that info shows (I don’t believe that really works for all games anyway, most of the games I’ve played on Citra running at native 60 fps shows only 30 on the emulator, so you can’t trust that value). You don’t need to buy anything, just wait until the emulator become more optmised, you can’t use more than one core now (there is no “magic option” that you can change to get a better performance)


#8

.[quote=“lg_0, post:5, topic:1024”]
Doesn’t matter what that info shows (I don’t believe that really works for all games anyway, most of the games I’ve played on Citra running at native 60 fps shows only 30 on the emulator, so you can’t trust that value).
[/quote]

Pokemon is a 30 fps game so citra will report 100% speed as 30 fps (even though its outputting 60 fps because citra will output a duplicate frame)

Yes you can trust those numbers on the bottom bar; they are accurate.

the fps in pokemon sun moon are drastically lower outdoors compared to indoors.

that means your cpu has 8 cores (in your case 4 cores and 4 virtual cores) and citra is maxing out one core. considering citra currently only uses one core, its pretty standard. and before you ask “why isn’t it multithreaded” you should realize that multithreading is really complicated and tends to be a major headache for anyone contributing in the future. Theres many more things that can be done to speed up citra before we reach to make it multithreaded. (and it already is multi threaded, but not in any way that would speed games up)

you don’t have to liquid cool to overclock. you are usually safe to bump the clock speed up a bit on aftermarket fans, but thats besides the point.

My suggestion is don’t bother overclocking and just wait for further improvements to the emulator. theres still things that can be offloaded to the gpu and plenty of optimizations that can be done. give it time.


#9

I was not talking about Pokémon, some games I’ve tested in the first implementation of that status bar that runs native 60 fps was showing incorrect values. Maybe that was fixed, but still use external tools, just in case. Also: warez warning !


#10

Maybe @yuriks can explain a bit about this?


#11

You can’t use external tools to measure that because the values they report won’t be related. “Speed” is a % of how fast emulation is running compared to a real 3DS. If that’s 100% then Citra will be presenting 60 frames per second corresponding to the LCD refresh of a 3DS, this is what you measure if you use FRAPS for example. The “Game: X FPS” indicator however is how many new frames the game is sending to the emulated display. For a 30 FPS game running at full speed that’ll show 100%, 30 FPS, but Citra will still present at 60 FPS, with every game frame being shown twice.


#12

I’ve said the “first implementation” of the code was displaying incorrect values (I’ve tested the code every time it was changed until it was merged), as in a game that is running at native 60 fps is shown as only 30 (if it’s displaying 30 fps, it’s wrong, because both screen are updated 60 times per second, if the value shown on Fraps is double, it would display 120 fps too, not 60).