Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Core_freq vs Gpu_freq? (N64 performance)



  • So it has been said numerous times by many people that to increase N64 performance you should overclockgpu_freq and that it yields the most benefit. I had accepted this as fact because I had seen it posted everywhere. Most of my efforts to improve N64 performance were centered around boosting gpu_freq (which sets all blocks of the GPU including the the GPU core clock).

    However while testing out some different overclock settings while updating the N64 optimization wiki I noticed it is not gpu_freq or v3d_freqspecifically that makes a difference in gaining FPS. I believe that the only real performance boost is actually coming from the GPU core clock speed (which is boosted when you overclock gpu_freq). You can test this for yourself, run goldeneye 64 with the glide plugin and idle on the folder select menu and watch the FPS counter. The higher the gpu core frequency the higher my FPS on the menu and in game.

    Most pi's are not stable above about gpu_freq=500 but core_freq actually has more overclocking headroom. In fact I have tested my pi3 up to core_freq=565 and found it stable, I have pushed it up to core_freq=585 just to check my theory but have not done any stability testing at that setting yet.

    I am interested in your comments or thoughts on the subject. If anyone is interested I would be willing to post my my findings at specific overclocking settings to prove my point. Also if anyone else is willing to corroborate my findings that would be great. Thanks!


  • Global Moderator

    @quicksilver very interesting, cool! just reading what the core/gpu_freq does: https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md

    gpu_freq Sets core_freq, h264_freq, isp_freq, and v3d_freq together. On Pi 1/Pi 2 the default value is 250 for all items, on Pi 3/Pi Zero /Pi Zero W core_freq defaults to 400 and h264_freq, isp_freq and v3d_freqdefault to 300.

    core_freq Frequency of the GPU processor core in MHz. It has an impact on CPU performance because it drives the L2 cache and memory bus. The default value is 250 for the Pi 1/Pi 2 and 400 for the Pi 3 and Pi Zero and Pi Zero W. Note that the L2 cache benefits only the Pi Zero/Pi Zero W and Pi 1, but there is a small benefit for SDRAM on the Pi 2/Pi 3.

    it's a bit strangely worded to me - if you raise core_freq are you also raising the v3d_freq (etc)? because at the default core_freq of 400, v3d is set to 300, so i wonder if raising it means the two use the same freq, or what? i guess you could find out using https://elinux.org/RPI_vcgencmd_usage after an overclock of core_freq - i will do this! i think also you need to be playing a game and use those commands via SSH as they downclock when idling

    but anyway i guess core_freq may also improve system bandwidth (ie cpu/gpu talking to each other) which i think is often the bottleneck for the pi3 (even in non-3d stuff), which may explain why it seems to help.



  • @quicksilver i would say the reason why core_freq has more potential to overclock is, because there are other values involved with gpu_freq and thus, it generates more heat and stress. Overclocking a single part with core should be able to higher than doing multiple parts at once.



  • @dankcushions said in Core_freq vs Gpu_freq? (N64 performance):

    @quicksilver very interesting, cool! just reading what the core/gpu_freq does: https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md

    gpu_freq Sets core_freq, h264_freq, isp_freq, and v3d_freq together. On Pi 1/Pi 2 the default value is 250 for all items, on Pi 3/Pi Zero /Pi Zero W core_freq defaults to 400 and h264_freq, isp_freq and v3d_freqdefault to 300.

    core_freq Frequency of the GPU processor core in MHz. It has an impact on CPU performance because it drives the L2 cache and memory bus. The default value is 250 for the Pi 1/Pi 2 and 400 for the Pi 3 and Pi Zero and Pi Zero W. Note that the L2 cache benefits only the Pi Zero/Pi Zero W and Pi 1, but there is a small benefit for SDRAM on the Pi 2/Pi 3.

    it's a bit strangely worded to me - if you raise core_freq are you also raising the v3d_freq (etc)? because at the default core_freq of 400, v3d is set to 300, so i wonder if raising it means the two use the same freq, or what?

    gpu_freq controls all parts of the gpu including the core_freq. In the past the core_freq and the gpu_freq had to have related plls, if you raised the core_freq the gpu_freq would also be raised according to a certain math formula (or you could set avoid_pwm_pll=1 if you wanted them to have independent plls) but this is no longer the case. I found boosting v3d_freq to have really no effect on FPS for N64. As long as core_freq was overclocked it didnt matter what gpu_freq or v3d_freq was set to. I think all this time people were attributing v3d_freq as the specific clock speed that mattered when really it was the core_freq that was doing all the heavy lifting.

    i guess you could find out using https://elinux.org/RPI_vcgencmd_usage after an overclock of core_freq - i will do this! i think also you need to be playing a game and use those commands via SSH as they downclock when idling

    but anyway i guess core_freq may also improve system bandwidth (ie cpu/gpu talking to each other) which i think is often the bottleneck for the pi3 (even in non-3d stuff), which may explain why it seems to help.

    You can test it for yourself by leaving the gpu_freq at stock speed and just overclocking the core_freq. Core_freq overclocking gives a real tangible benefit. If you leave the core_freq at stock speed and just overclock v3d_freq there is no tangible benefit. In fact to reduce possible instability, I think I might leave v3d/gpu freq at the stock speed and just overclock core_freq.

    @thelostsoul said in Core_freq vs Gpu_freq? (N64 performance):

    @quicksilver i would say the reason why core_freq has more potential to overclock is, because there are other values involved with gpu_freq and thus, it generates more heat and stress. Overclocking a single part with core should be able to higher than doing multiple parts at once.

    I think you are partially correct. I dont think its the heat that is being generated that causes the issue. In fact I dont think the gpu puts out that much heat (comparatively speaking). Its the CPU that really heats things up. I think that when people set gpu_freq the other parts of the gpu (v3d etc.) cannot handle as much overclock and become unstable. The gpu core (core_freq) on the other hand can handle a lot more overclock if set seperately (just as you said).



  • @quicksilver yeah heat was just a term, because I don't know exactly whats going on behind the scenes. But you got the idea.



  • @quicksilver said in Core_freq vs Gpu_freq? (N64 performance):

    However while testing out some different overclock settings while updating the N64 optimization wiki I noticed it is not gpu_freq or v3d_freqspecifically that makes a difference in gaining FPS. I believe that the only real performance boost is actually coming from the GPU core clock speed (which is boosted when you overclock gpu_freq)...

    Hope I'm reading this right but did you mean to enter core_freq when you entered gpu_freq the second time above. Bit confused otherwise!

    Anyway, very interesting post! I've given it a try, even though I can't hope to understand it all. I had separate values entered for these options and have instead entered core_freq=565 solely as per your directions (assuming I've understood this all correctly). So far it does indeed seem to do the trick. Very nice!

    I'd be curious to know what others experiences have been with this, and of course any other findings you might have had since posting.



  • @ranma gpu_freq is a setting that controls multiple settings (one of them is core_freq). So when people set gpu_freq they were also setting core_freq. But they were falsely attributing the boost in performance to the v3d_freq (which is another setting controlled by gpu_freq). When in reality it was really only the core_freq that mattered. Core_freq when set by itself can be set much higher and be stable then if it is set through gpu_freq alone.

    A metaphor for this would be 4 people running a race (gpu_freq), one of them is fast (core_freq) and the others are slow (v3d_freq etc). If the fast racer is forced to run at the same speed as the slow racers he wouldn't be running at his full potential. But if he is allowed to run at a different speed from the others he can go much faster.

    Remember to do stability testing whenever you overclock. Core_freq=565 may ultimately be beyond what your pi can handle or you may be able to go higher! I am currently at core_freq=575 after finding that 585mhz was unstable. So far I have had no crashing at 575mhz but I still need to do further tests.



  • Right, got it! Thanks for replying. :-)

    I've set mine to:

    core_freq=565
    v3d_freq=525

    I'd previously set gpu_freq=525 and also v3d_freq=525 on this Pi3 and this was running fine with no issues or crashes. I'd considered it as good as it gets tbh. I'll continue to use the new settings above and see how it goes. No crashes so far but only had an hour on it (N64 using lr-mupen64plus as this performs better for me nowadays) thus far. See how we go. :-)



  • @quicksilver please, if a NOOB who recently joined the Pi community, who has been reading everything and it's opposite about overclocking, owns a Pi4 8G ram model, fan, heat sinks, and legit 5V 3.5A power supply (CanaKit Extreme Edition), and wants to have the best N64 experience possible without risking too much instability, would you suggest something like :

    arm_freq=1800 (to avoid over heating)
    gpu_freq=650
    core_freq=750
    over_voltage=6

    Or something like that?

    Thanks



  • Well, I just saw that :

    "The core_freq of the Raspberry Pi 4 can change from the default if either hdmi_enable_4kp60 or enable_tvout are used, due to relationship between internal clocks and the particular requirements of the requested display modes.

    Display option Frequency
    Default 500
    enable_tvout 360
    hdmi_enable_4kp60 550
    Changing core_freq in config.txt is not supported on the Pi 4, any change from the default will almost certainly cause a failure to boot.

    It is recommended when overclocking to use the individual frequency settings (isp_freq, v3d_freq etc) rather than gpu_freq, as since it attempts to set core_freq (which cannot be changed on the Pi 4), it is not likely to have the desired effect."

    But without knowing that, I did write the following on my config.txt :
    gpu_freq=600
    v3d_freq=750 (being previously misled)

    And it is very stable while according to the Raspberry Pi info should not be... -_-

    So, please someone show me the correct, up to date information for Pi4.

    PS Sorry for my bad english



  • @Nakynaw said in Core_freq vs Gpu_freq? (N64 performance):

    @quicksilver who has been reading everything and it's opposite about overclocking, owns a Pi4 8G ram model, fan,

    This thread is about Raspberry Pi3. I recommend you to create a new thread. Here is a relevant thread: https://retropie.org.uk/forum/topic/26982/overclocking-a-pi-4-yes-i-checked-the-stickies-and-the-docs



Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.