Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
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.
Starmute
@Starmute
The invalid client is actually preventing one of my good clients from rendering (it takes up a spot).
Sebastian Jennen
@zebastian
@Starmute having friends in romania? :-D https://www.abuseipdb.com/check/89.165.252.68
In general mandelbulber is meant to be used in LANs, since it has no security considerations whatsoever.
Yet still strange, how the client managed to establish the connection (what is he scanning for on this port?) I will file an issue on github, but this has a low prio,
For the mean time you can prevent the traffic on another level (prevent the incoming traffic on your server machine or better even on your router)
Sebastian Jennen
@zebastian
most consumer routers have a security area on their web admin page. For me it is:
Menu > Advanced > Security > Ip and Port filter
Just add the IP to block for all ports, this should do the trick
Starmute
@Starmute
hello!
tried compiling mandelbulber with the changes bermarte recommended, but still getting an error:
bermarte
@bermarte
@Starmute that problem was fixed with this commit
buddhi1980/mandelbulber2@72d8cc9
bermarte
@bermarte
Did you build the app yourself or did you use the .dmg file? Maybe it is an include problem, check if opencl_algebra.h file is present .
bermarte
@bermarte
Package "qt5-default" and "qttools5-dev" have been removed in Zesty, so installation for Ubuntu would not work out of the box.
Krzysztof Marczak
@buddhi1980
thanks for info. I will check it and correct readme files.
Krzysztof Marczak
@buddhi1980
I have just switched to Qt 5.9.1. Everything works properly.
Krzysztof Marczak
@buddhi1980
With Qt 5.9.1 my gamepad works! So I will be able to improve and finish development of gamepad control.
Krzysztof Marczak
@buddhi1980
There is one problem with Qt 5.9.1. qDebug() doesn't output anything. This needs investigation.