Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Sebastian Jennen
@zebastian
ok, changed the example...buddhi1980/mandelbulber2@ba173bc
Sebastian Jennen
@zebastian
@buddhi thumbnail rendering yield white surfaces with current code base, do you have a hot fix for this?
Krzysztof Marczak
@buddhi1980
Probably I know what is wrong. GIve me few minutes to correct it. We will encounter this kind of problems durng implementation of materials
Fixed
Krzysztof Marczak
@buddhi1980
@bermarte, could you give us the code for fractal which was rendered here http://www.fractalforums.com/index.php?action=gallery;sa=view;id=18872
Was it rendered as a primitive object or it's iterated formula?
Would be nice to implement it in Mandelbulber
Sebastian Jennen
@zebastian
@buddhi1980 : have you disabled coverity scan? last scan is from 25 days ago and i could not find how to start the scan.
i think there could be some possible issues with file_downloader.cpp and it would be good, to get the feedback from coverity
Krzysztof Marczak
@buddhi1980
I'm updating project in coverity scan manually
Sebastian Jennen
@zebastian
thanks, turned out i was right about file_downloader.
but i expected more than one reported error :P
Sebastian Jennen
@zebastian
i made some more profiling:
sExtendedAux::operator=(sExtendedAux const&) is rather costly. 15% - 20% of total costs with my current settings.
I think this gets only called in compute_fractal.cpp line 112: extendedAux[sequence] = extendedAux[lastSequnce];
can we make this var a pointer, like
sExtendedAux* extendedAux[NUMBER_OF_FRACTALS];
?
Krzysztof Marczak
@buddhi1980
Unfortuanatelly we need to copy the data in line 112. Your proposal with changing it to sExtendedAux* extendedAux[NUMBER_OF_FRACTALS] will change nothing, because it will be still an array.
What I'm thinking now, if we really neet to have this array at all. I will check what will happen if we use one common extendedAux for all formulas.
Krzysztof Marczak
@buddhi1980
You can test it now. I have removed an array. Now it's just one common structure.
Sebastian Jennen
@zebastian
works great, total cost decreased and my current animation render jumped from 8 minutes pending to 7 minutes.
Sebastian Jennen
@zebastian
we should get -Ofast to the mandelbulber.pro files with default disabled. maybe with some more flags wrapped in some kind of definition.
hpc_mode (high performance computing) or something like that.
in my current animation render this is the difference between 12 hours and 4 hours.
people using the program in a render farm may be interested to compile the program directly on the render nodes with this option.
Krzysztof Marczak
@buddhi1980
is -Ofast even faster than --ffast-math?
Sebastian Jennen
@zebastian
Yes, the 12 hour reference was with --fast-math, so the speed up was ~times 3. but this probably highly depends on what is rendered.
The drawback is, that the generated binary is highly bound to the cpu, it was Compiled for
Krzysztof Marczak
@buddhi1980
this flag shoudl be used instead of -O3?
Sebastian Jennen
@zebastian
Here is the GCC reference in this:
It
It turns in o3 , fast-math and some other aggressive optimizations
Krzysztof Marczak
@buddhi1980
now I'm recompiling the program to see speed difference
Sebastian Jennen
@zebastian
It has got another drawback: compile time increases significantly.
Krzysztof Marczak
@buddhi1980
I cannot see any speed diffrenece. But I already used -march=native and -msse2
I have in bash.rc folowing line: export CXXFLAGS="-march=native -msse2" to optimize all application which I compile
Sebastian Jennen
@zebastian
right now i am running this with:
/mandelbulber2/mandelbulber2/build-mandelbulber-Desktop-Release/mandelbulber2 -n -K -s 0 -e 2400 settings/hybrid\ 2\ animation3fastRender.fract
Sebastian Jennen
@zebastian
maybe you can give it a try, if -Ofast is taking any effect on this.
i added it to the, make sure to use the correct Release / Debug. and to re - qmake. When you can see the flag in the compilation output it takes effect.
These were the issues i ran into, when trying to change compilation flags...
Krzysztof Marczak
@buddhi1980
I have recreated makefile with qmake to be sure that -Ofast is used. I have also seen it in compler output. Can you test if you will get the same speed up with -march=native and -msse2? By the way what CPU do you have? I have Intel i7
Sebastian Jennen
@zebastian
me too, i have got a
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
i tried with -march=native -msse2 instead of -Ofast
it is even worse, than not using any more flags at all
Krzysztof Marczak
@buddhi1980
so I need to do more trials. But not today. Now I'm focusing on materials (actually redisigning of primitive objects definitions)
Sebastian Jennen
@zebastian
so it is:
'no additional flags' -> ~2 days 20 hours
-Ofast -> 20 hours
-march=native -msse2 -> 4 days 5 hours
great, i want to fix some issues on github than i can support you with material implementation.
Krzysztof Marczak
@buddhi1980
With actual setup (-ffast-math, -march=native, -msse2) I already have estimated to end: 17h 14m 5.3s (i7-4790 3.6GHz), so my setup is not renderering slower, but your just started rendering faster. Maybe that's why I cannot see any benefit from using -Ofast
Sebastian Jennen
@zebastian
probably. since your cpu is slightly faster clocking, the performance is comparable.
Somewhere on your system (exported to your global CFLAGS, defined in your IDE, ...) there is -Ofast or some part of what is contained by -Ofast defined. In my default consumer ubuntu setup this flag / these flags were missing.
Sebastian Jennen
@zebastian
Finally managed to build with msvc. :)
Krzysztof Marczak
@buddhi1980
Nice :smile:
Sebastian Jennen
@zebastian
travis now running automated test with rendering all example settings: https://travis-ci.org/buddhi1980/mandelbulber2/jobs/130585466 / https://github.com/buddhi1980/mandelbulber2/blob/master/mandelbulber2/src/test.cpp
just add slots to the Test class and they get automatically run and evaluated. Cool thing this works out!
Here is more info on the topic: http://doc.qt.io/qt-5/qtest-overview.html
Krzysztof Marczak
@buddhi1980
Finally I have figured out how Qt item/model works. I'm getting first good results. What is nice in this approach that the view is separated from the model and any update of model automatically genetared changes in the view. There is still a lot of to do, but I hope to finish the view for materials in next two weeks
Sebastian Jennen
@zebastian
@buddhi1980 qt5.7 is first to include qtgamepad which is now available as release candidate: http://download.qt.io/development_releases/qt/5.7/
I will make some testing also with windows compile, to see if we can finally get this to work.
Krzysztof Marczak
@buddhi1980
It's great information. However it will take some time until Qt5.7 will be in official linux repositories. But we can try to do this for Windows, where we compile libraries by ourselves
mclarekin
@mclarekin
I want to make a game :)
BTW This is cool. WHILE rendering an animation I can simply add any interesting frame as a preset on the toolbar, then investigate it later once the rendering has finished. Very useful. Perfect for lazy exploring!!
Krzysztof Marczak
@buddhi1980
We won 1:0 !!!!
mclarekin
@mclarekin
we won 39:21 against Wales. In NZ you are only allowed to play soccer if you have a medical certificate stating you are not "man enough" to play Rugby
Sebastian Jennen
@zebastian
:P
Krzysztof Marczak
@buddhi1980
Today I wish better team to win! (no mather which one it is). I think I will be tough match.
Sebastian Jennen
@zebastian
Me too, just want to See a good game