guillaumechereau / goxel

Goxel: Free and Open Source 3D Voxel Editor
GNU General Public License v3.0
2.8k stars 223 forks source link

High GPU usage on Ryzen 4700U #212

Open laGrossePistache opened 4 years ago

laGrossePistache commented 4 years ago

Hi,

I just started using Goxel and I find it very awesome, great works btw ! I have a HP envy x360 with an AMD ryzen 4700u. There is only on problem I've, My laptop get pretty damn hot in few seconds, my GPU usage is about 95-100% with an empty scene in edit mode.

I don't know if it's normal or not. The app still works fine for the time i've used it, but my fan is running like hell

I don't want to compare to magicalVoxel, because I don't think they are similar, but my GPU don't get higher than 10-15% in edit mode with it.

(Sorry for my bad english) cpuHighUsage

guillaumechereau commented 4 years ago

Thanks for the report. This could be because the FPS of the application is not properly limited. There was a bug report of this a while ago on Windows but I couldn't reproduce it myself. I guess I should put the FPS somewhere in the UI.

laGrossePistache commented 4 years ago

Thank for the answer. I try to limit the fps with AMD Radeon software.. Sadly, I don't think it works, there is no improvement on the GPU usage.

ghost commented 3 years ago

That happens not only with GPU, but with pc's CPU only too. I installed goxel from apt repo in XUbuntu and my pc doesn't have a dedicated GPU, only the integrated one.

So, the first thing that I notice was the high use of processing, the top command indicates like 300% of processing (for my a i3 6100).

Like I have some experiencing in making engines, I looked at the main function where the loop_function is called. And, there is no one wait function for it, then is this the trouble with high processing.

Using the function usleep(33000) from unistd.h, after the line glfwPollEvents(); at the loop_function, the problem is solved, but the editor stays a little slow to update the voxel position (it just notable by who saw the running before).

NOTE: the desktop loop_function should have some waiting, but the emscripten code no. I remember the emscripten gives hints to not uses sleeps functions or any other delay function for main loops.

pegvin commented 2 years ago

This happens because of rendering it without any cap, which means it will render as many frames as possible, I Implemented frame cap in one of my software in c++ which reduced the cpu usage and gpu usage significantly, I'll try to port it to c.