aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Increase image area slightlyHEADmasterAndreas Grois2018-03-252-4/+4
|
* More excluded circles.Andreas Grois2018-03-231-5/+36
|
* Initial benchmark support.Andreas Grois2018-03-213-6/+26
| | | | Finally no more manual stopwatch usage...
* Fix build error regarding debug log clockv0.0.3½-speedAndreas Grois2018-03-181-1/+1
|
* Undo splitting of buffers in three. Makes buffer access much fasterAndreas Grois2018-03-184-51/+21
| | | | | Not kidding here. For the default parameters this increased the maximum pixel brightness in the image by a factor of 2.25. This has the drawback that the maximum possible image size got reduced, but hey, there's a command line switch to ignore all size limits ;-)
* Move totaliterations calculation to CPU. This frees 4 VGPRs.Andreas Grois2018-03-182-5/+5
| | | | | Now the code is back to the limit of 32 VGPRs without the need to directly operate on the state buffer. This means that now it's bound by memory access.
* Undo change to directly work on buffer. Causes about 30% slowdown...Andreas Grois2018-03-182-21/+25
|
* Add option to skip short orbits. Add option to print debug output.Andreas Grois2018-03-184-4/+24
|
* Adjust default workgroup sizes to better match recommended values.Andreas Grois2018-03-172-9/+9
| | | | AMD recommends a local workgroup size of 256.
* Remove layout specifier from struct. Seems it's not allowed after all.v0.0.3-adaptive-iterationsAndreas Grois2018-03-171-1/+0
|
* Properly calculate required buffer size. I'm starting to think that std140 ↵Andreas Grois2018-03-171-3/+8
| | | | would have been the better alternative...
* Fix memory allocation for state buffer. How could that ever work?Andreas Grois2018-03-172-2/+11
|
* Seems vec2 needs 16 bytes on nVidia...Andreas Grois2018-03-171-1/+1
|
* Correct line endings.Andreas Grois2018-03-178-1077/+1077
|
* Again, cleaned code a bitAndreas Grois2018-03-171-1/+1
|
* Clean code a bitAndreas Grois2018-03-171-57/+57
|
* Workers now directly operate on their state buffer.Andreas Grois2018-03-171-52/+28
| | | | | | | | | | | To quote the documentation: First, within a single shader invocation, if you perform an incoherent memory write, the value written will always be visible for reading. But only through that particular variable and only within the shader invocation that issued the write. You need not do anything special to make this happen. This means there is nothing stopping us from just reading and writing in the buffer as if the values were local variables, as they are specific to a given invocation. Also, buffer access happens infrequently, and furthermore there's nothing stopping the GPU from caching the values, as memory access is incoherent anyhow. Long story short: Now the code uses only 28 VGPRs, meaning that the AMD GCN hardware ideal of 32 is again achieved.
* Change PID controller to use frame numbers as time, and time only as ↵Andreas Grois2018-03-171-2/+2
| | | | controlled parameter
* Fix y-value being always the same if only one worker is usedAndreas Grois2018-03-171-1/+1
|
* Fix a few warnings spit out by MSVC compiler:Andreas Grois2018-03-171-3/+4
|
* Remove unneededAndreas Grois2018-03-171-2/+1
|
* Improve parallelization by not storing the offset, but instead ↵Andreas Grois2018-03-172-22/+22
| | | | | | re-calculating it every dispatch. By this I could get the VGPR usage down from 40 to 36.
* Change starting value code to just jump to next orbit if in main bulb orAndreas Grois2018-03-161-21/+19
| | | | cardioid.
* Fix wrong iteration per frame codeAndreas Grois2018-03-161-9/+9
|
* minorAndreas Grois2018-03-161-2/+1
|
* Merge branch 'master' into feature/01-PausabilityAndreas Grois2018-03-161-1/+1
|\
| * Fix wrong seed calculation, now I've had some sleep.Andreas Grois2018-03-161-2/+1
| |
* | Comment out debug outputAndreas Grois2018-03-161-1/+1
| |
* | Tweak PID a bitAndreas Grois2018-03-161-2/+2
| |
* | Fix endless loop in shader and make framerate adaptiveAndreas Grois2018-03-154-12/+53
| | | | | | | | | | | | It seems forcing points outside the cardioid and bulb with a bad random generator can take really long... Also, now framerate adjusts based on time it takes to render frames.
* | Force starting values to be outside main cardioid and bulb, and add storage ↵Andreas Grois2018-03-152-22/+21
| | | | | | | | specifiers to buffers.
* | OopsAndreas Grois2018-03-151-9/+9
| |
* | Prevent even more waiting by storing a more complete stateAndreas Grois2018-03-153-35/+43
| |
* | Speed up computation tremendously, by having each worker (nearly)Andreas Grois2018-03-152-81/+70
| | | | | | | | | | completely store its state and working (nearly) fully independent of each other.
* | First commit with compute pausabilityAndreas Grois2018-03-144-37/+133
|/
* Split buffer in three, one per color (as OpenGL guarantees that one can at ↵Andreas Grois2018-03-115-28/+61
| | | | | | | | least have 8 SSBOs), to allow three times larger images. Also make it possible to ignore maximum buffer size reported by the driver. The maximum buffer size limitation is rather strict on radeonsi, so I decided to split the buffer in three, effectively increasing the maximum image size by a factor of three. While doing so I realized that at least on radeonsi the reported maximum buffer size seems to be off. For this reason I added a new command line switch, that allows to ignore the maximum buffer size check. For those curious: radeonsi reports a maximum buffer size of 128 MB, but I had no problems when using three buffers of 1098 MB each.
* minorAndreas Grois2018-03-111-1/+1
|
* Use long for command line validity checks.v0.0.2-kindaWorkingBetterAndreas Grois2018-03-111-4/+2
|
* Another warning fixedv0.0.1-kindaworkingAndreas Grois2018-03-111-1/+1
|
* Fix lots of warnings output by visual studio...Andreas Grois2018-03-111-11/+12
|
* Replace std::cout with std::cerr for actual error messages. Remove someAndreas Grois2018-03-112-13/+13
| | | | debugging output
* Disable vsync. Not needed, and causing the rendering to be slower thanAndreas Grois2018-03-111-0/+3
| | | | necessary.
* Instead of using the yDecoupler value directly, the code's now using theAndreas Grois2018-03-111-1/+1
| | | | | hash of it, causing more drastic changes of the y=f(x,yDecoupler) function with dispatch number.
* Clarify help output regarding image sizeAndreas Grois2018-03-111-2/+2
|
* Make preview window scale if being resized.Andreas Grois2018-03-111-0/+8
|
* Decouple y and x value based on iteration. Should approximately squareAndreas Grois2018-03-112-21/+22
| | | | teh available randomness!
* Update readme with stuff that might be necessary, as the repo includes glfw.Andreas Grois2018-03-101-0/+4
|
* Rename READMEAndreas Grois2018-03-101-0/+0
|
* Add ReadmeAndreas Grois2018-03-101-0/+9
|
* Fix wrong max pixel output. Forgot to update this when I reduced the buffer ↵Andreas Grois2018-03-101-1/+1
| | | | size by a factor of two.