Reducing CPU load with display driver?
#1
Hey guys! I'm back again!

So I've been enjoying my FPZ quite a bit, but something has finally started to bother me. Using the new display driver, I'm getting slight pauses every few seconds on emulators except for NES and Playstation (surprisingly). Digging into juj's github, I found this in config.h:

Code:
// Always enable GPU VSync on the Pi Zero. Even though it is suboptimal and can cause stuttering, it saves battery.
#if defined(SINGLE_CORE_BOARD)

#if !defined(USE_GPU_VSYNC)
#define USE_GPU_VSYNC
#endif

I was wondering if I can edit this line myself and have the change instantaneous, or do I have to cmake this again? If I have to make it, would anyone be able to give me some simple instructions on how to do it? I'm experienced with Linux, but never used CMake before, and I'm not sure what else would have to be done for the FPZ. I am not worried about battery, because I mostly play this before bed or when I am traveling, which is never for too long anyway.

I'm running your guys' image from RetroPie 4.3.
Reply
#2
Hi again!


Yes, you do indeed have to remake the binary and move it where it needs to be (naturally renaming the old one so you don't lose it).

Your best bet would be to read through the GitHub's Installation Section and look through the settings to find the ones that you need. I think they are -DFREEPLAYTECH_WAVESHARE32B=ON and -DSPI_BUS_CLOCK_DIVISOR=6. Just comment out all those lines with '//' and try a rebuild. I unfortunately don't have a unit with a Zero atm (Christmas vacation) to test and try a build myself, but I don't remember any of us seeing stutters in SNES which is where we did most of our testing.

I'm not sure why only NES and PSX would not have the stutter, so good luck! If you are still having trouble after the holidays I may try my hand at building a binary and see what happens.
Reply
#3
(12-22-2018, 05:24 AM)Mootikins Wrote: Hi again!


Yes, you do indeed have to remake the binary and move it where it needs to be (naturally renaming the old one so you don't lose it).

Your best bet would be to read through the GitHub's Installation Section and look through the settings to find the ones that you need. I think they are -DFREEPLAYTECH_WAVESHARE32B=ON and -DSPI_BUS_CLOCK_DIVISOR=6. Just comment out all those lines with '//' and try a rebuild. I unfortunately don't have a unit with a Zero atm (Christmas vacation) to test and try a build myself, but I don't remember any of us seeing stutters in SNES which is where we did most of our testing.

I'm not sure why only NES and PSX would not have the stutter, so good luck! If you are still having trouble after the holidays I may try my hand at building a binary and see what happens.

My first thought was that maybe the Exp_Zero driver was actually not using DMA, because the No_DMA driver behaves exactly the same. I'm gonna try removing everything, re-installing, and see what happens from there. If that has no effect, I'll try to build another binary. Thanks for the help!
Reply
#4
Hi,
When using juj driver I encounter similar trouble but when activity on screen was 'low', if activity jump high, display fps was stuck to around 10 fps for one second then return back to normal.

A fix for me was to comment '#define SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES' in config.h

Hole this may help
Reply
#5
I'll have to try it! Thanks!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)