buddhi1980 / mandelbulber2

Official repository for Mandelbulber v2
GNU General Public License v3.0
909 stars 115 forks source link

Netrender support for gpu rendering #529

Open zebastian opened 6 years ago

zebastian commented 6 years ago

The netrender engine should able to handle GPU rendering.

Things to consider:

Maybe implement netrender on a higher level as well for flight and keyframe:

this issue has been moved from here: #528

buddhi1980 commented 6 years ago

I agree with all your points. It is exactly how I'm going to implement it.

Toys0125 commented 6 years ago

Would it be possible to do both CPU netrending and GPU netrending at the same time if it did the whole images for animations?

mclarekin commented 6 years ago

Not sure exactly what you mean but it is possible but it may not be feasible:)

Do you mean a network of CPUs (not using openCL) ,and a network of GPUs using openCL, having their workload automatically allocated to each device?

a) if both the GPU and CPU networks were using openCL, the rendered frames will be of the same quality, but, running openCL on CPU's sometimes has problems .

b) if GPUs are single precision openCL and CPU's are using double precision c++, then you will need to know how to avoid situations where you will notice a change in image quality

On Wed, Nov 14, 2018 at 7:59 PM Toys0125 notifications@github.com wrote:

Would it be possible to do both CPU netrending and GPU netrending at the same time if it did the whole images for animations?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/buddhi1980/mandelbulber2/issues/529#issuecomment-438558741, or mute the thread https://github.com/notifications/unsubscribe-auth/AMLZHJTYcZ9Cx6mkoLdF4lr5VDHb8kY6ks5uu79ZgaJpZM4WM4ox .

zebastian commented 6 years ago

@Toys0125 probably yes, though you may run into other problems when using heterogenious clients. If there is some way to implement netrendering code for cpu / gpu combined, there is.

This will get clearer when we implement this in the next release...