Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Krzysztof Marczak
@buddhi1980
ok, you can do this now
@zebastian , can you take care about UI elements for GPU in preferences dialog? I will work with cross-compilation
I will also add missing DE calculation for pseudo-kleinian formulas
Sebastian Jennen
@zebastian
done with refactoring, all back in shape.
I will look into UI changes...
Krzysztof Marczak
@buddhi1980
wingw64 cross-build works! I have used CLEW for dynamic loading of opencl.lib. It is actually limited to OpenCl 1.1 functionality but we don't use any functions from OpenCl 1.2
Krzysztof Marczak
@buddhi1980
@mancoast , I hope msvc build is not broken because of clew. But I recommend to use clew, to not have problems with loading opencl.dll from different vendors.
Krzysztof Marczak
@buddhi1980
now we need to find way how to exclude clew.cpp from build under linux and osx. Something is needed in qmake/common.pri file
bermarte
@bermarte
Hi there, is it a problem to upload cl.hpp inside the src/ folder? the way to include this file in OSX is different, on OSX one needs to download the file separately.
Krzysztof Marczak
@buddhi1980
I will check this on Thursday. Now I'm in the travel.
Sebastian Jennen
@zebastian
hey krzysztof, would you mind if i run the cleanup scripts for the code base now?
Krzysztof Marczak
@buddhi1980
You can do this. Now I don't have any pending edits
Sebastian Jennen
@zebastian
alright just pushed :)
will be leaving tomorrow for vacation, see you soon guys!
Krzysztof Marczak
@buddhi1980
Have a nice vacation!
Valera Rozuvan
@valera-rozuvan
Hi guys! Awesome project you have here.
Quick question - why use MS Visual Studio instead of MinGW-64-bit?
Would you guys be interested in a CMake build with MinGW-64-bit for Windows?
Valera Rozuvan
@valera-rozuvan
I guess if we can make CMake build on WIndows with MinGW-64-bit reliable - can we abandon the MS Visual Studio solution?
Krzysztof Marczak
@buddhi1980
I use MinGW64 (cross-compiler under Linux). All releases are compiled with it. MSVC solution files are for people who like to program under Windows. In mandelbulber2/mandelbulber2/deploy/ there are scripts which we use for cross-compilation.
bermarte
@bermarte
I am fixing the .cl files for my mac, only minor things. Then I will be able to upload the new app. It takes some times because there's a lot of stuff to control.
Krzysztof Marczak
@buddhi1980
@bermarte what kind of problems have you encountered?
Starmute
@Starmute
Hello,
just wanted to thank you folks for the work you've done.
bermarte
@bermarte
@buddhi1980 In a few days I finish (I am just checking the transformations, all the rest is done), then I will tell you better what I have changed. Mac is picky on automatic type casting (int to float) and I had problems using constants defined as preprocessor macros (for example using directly M_PI), dunno why. I also had to optimize a bit all the rotations, to make it easier to calculate for the mac. The debugging process is a bit slow and not intuitive. All in all not bad at all (:
Starmute
@Starmute
Are there any plans to add a way to kick clients from a server? I've had occasional issues with malfunctioning clients and it would be beneficial to have a way to remove them.
Krzysztof Marczak
@buddhi1980
@Starmute there is no cross-platform solution to do this. Clents can run on Linux, Windows or OSX. Every system has different firewalls, user autentification, remote control capabilities. But depending on OS which you use, you can use ssh, rdp, vnc or any other remote connection to control running clients.
Starmute
@Starmute
Wouldn't it be possible to just stop the connection with the client computer? Apologies if I'm misunderstanding.
Krzysztof Marczak
@buddhi1980
Maybe another question. What you exactly mean by "malfunctioning"? Not responding client?
Starmute
@Starmute
Sometimes I have had mandelbulber crash on the client, and on the server the client just stays at 'ready' or 'working' at 0 lines, possibly wasting bandwidth. These clients are sometimes pretty far away so directly accessing it is sometimes impossible.
Krzysztof Marczak
@buddhi1980
So this that cases client cannot respond to server. Clients won't be able to react on lost connection and won't be possible to send any command to them. Even if client is far away, why you cannot use any kind of connection to do remote control?
From server side it's difficult to find if client is not responding at all. There could be difficult to develop any rule. If rendering is very slow, then it can take many minutes until client will respond.
By the way, if client is malfunctioning it uses only very limited bandwidth.
Krzysztof Marczak
@buddhi1980
But I will try to re-think this issue to find any reasonable solution for this issue.
Starmute
@Starmute
I'm asking for a manual way - like a "kick" button next to a client that removes it from the server. Would that be possible?
Krzysztof Marczak
@buddhi1980
This would be possible. This will just close connection, but client will continue running.
Starmute
@Starmute
Yeah that's what I mean. Great!
Starmute
@Starmute
By the way, is an alpha macOS version available yet? I'd love to be able to assist with testing.
Krzysztof Marczak
@buddhi1980
Not yet, but work is in progress.
Sebastian Jennen
@zebastian
just pulled and recompiled current git state. The new tile rendering scheduler is hot, great work krzysztof!
Martin
@acidhunter
A new tile render scheduler?
Dont have the time to look at the code. Can u give me some some details
Krzysztof Marczak
@buddhi1980
Rendering by tiles is much more effective
When opencl workgroup gets whole line of image to render then variety of fractal areas is much bigger than in smaller rectangle. Fo example all pixels are on the fractal or all are on background.
Krzysztof Marczak
@buddhi1980
GPU doesn't provide threads like CPU. All parallel jobs execute the same line of code but with different data. If one of jobs have different result of condition than another jobs, then have to wait.
So if all parallel jobs has almost the same to do, then it's faster
bermarte
@bermarte
@Starmute You can check it out.

Alpha 4: to make it run on OS X (otherwise the app will crash, both with GPU and CPU rendering) I had to do really minor things (but I have tried other things as well before):

ssao.cl
line 64: for (float r = 1.0f; r < quality; r += 1.0f)//add f to the second 1.0

limited_engine.cl
line 153: distThresh = max(1e-6f, distThresh);//add f
line 209: distThresh = max(1e-6f, distThresh);//add f
240: scan = 1e20f;//add f

fast engine:
99: distThresh = max(1e-6f, distThresh);//add f
151: distThresh = max(1e-6f, distThresh);//add f
178: float glow = count / 500.0f * consts->params.DEFactor;//add f

I am quite happy with the response. I have tried using alpha5 and the app keeps crashing (but I have already tried to fix all the floats, dunno where is the problem) and I don't know how to fix it at the moment. Could somebody have a look to it (but I am referring only to the 'engines' part) and check if the 'f' suffix is present for all the floats? It would great to have a corrected copy to see if it works then.
Maybe there's another quicker solution, but is there?

Starmute
@Starmute
great job bermarte, I will check it out soon!
Btw, is there any way you might add a way to block clients that are not running genuine mandelbulber (i.e. do not send anything if the client improperly identifies itself?)
I've been detecting strange clients since I port forwarded my mandelbulber server.