cnlohr / noeuclid

Non-euclidean GPU Raytraced Game
BSD 3-Clause "New" or "Revised" License
644 stars 48 forks source link

noeuclid is not a GPU raytracing game ? #63

Open WilliamWangPeng opened 3 years ago

WilliamWangPeng commented 3 years ago

Hi dear author,
It's a great honor to write a letter here, I have installed noeuclid and inout $nvidia-smi at the same time, but it shows there is no GPU processor,

image

thank you Best Regards William

bjorn3 commented 3 years ago

Mesa (the OpenGL/Vulkan/... library used by all open source GPU drivers on Linux) has support for software rendering when using OpenGL. This allows OpenGL based programs to work even without a GPU, albeit much slower than when you have a GPU. In addition if you are not using an nvidia gpu (or not using the proprietary nvidia driver as opposed to the open source one that is the default), nvidia-smi probably won't show any GPU. You can use glxinfo | grep renderer to see what is used for OpenGL rendering. On my system the output is:

    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, 
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 620 (Kaby Lake GT2)

The last line indicates that it uses the integrated gpu of my intel cpu for rendering. If I force software rendering using LIBGL_ALWAYS_SOFTWARE=1 I get the following result:

    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, 
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: llvmpipe (LLVM 7.0, 256 bits)

Llvmpipe is the name of mesa's software OpenGL renderer.

WilliamWangPeng commented 3 years ago

Mesa (the OpenGL/Vulkan/... library used by all open source GPU drivers on Linux) has support for software rendering when using OpenGL. This allows OpenGL based programs to work even without a GPU, albeit much slower than when you have a GPU. In addition if you are not using an nvidia gpu (or not using the proprietary nvidia driver as opposed to the open source one that is the default), nvidia-smi probably won't show any GPU. You can use glxinfo | grep renderer to see what is used for OpenGL rendering. On my system the output is:

    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, 
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 620 (Kaby Lake GT2)

The last line indicates that it uses the integrated gpu of my intel cpu for rendering. If I force software rendering using LIBGL_ALWAYS_SOFTWARE=1 I get the following result:

    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, 
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: llvmpipe (LLVM 7.0, 256 bits)

Llvmpipe is the name of mesa's software OpenGL renderer.

hi dear @bjorn3
thank you for your kindness help, I got the following in my computer,

image

but I still can't prove if noeuclid uses GPU, what can I do?

thank you Best Regards
William

bjorn3 commented 3 years ago

Yeah, the software renderer of mesa is used. You use an nvidea gpu, right? Which driver do you have installed? The opensource noveau (should be the default) or the proprietary one from nvidea themselves?