Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Revert "Move state cache back to local variable. Shared will be needed later."feature/06-better-preview | Andreas Grois | 2018-03-25 | 1 | -22/+32 |
| | | | | This reverts commit bf8b1e63686bfa6f6cd982fd801d7799c7706f51. | ||||
* | Merge branch 'master' into feature/04-zoomability | Andreas Grois | 2018-03-25 | 2 | -4/+3 |
|\ | |||||
| * | Increase image area slightlyHEADmaster | Andreas Grois | 2018-03-25 | 2 | -4/+4 |
| | | |||||
* | | Merge branch 'master' into feature/04-zoomability | Andreas Grois | 2018-03-23 | 1 | -5/+36 |
|\| | |||||
| * | More excluded circles. | Andreas Grois | 2018-03-23 | 1 | -5/+36 |
| | | |||||
* | | Move state cache back to local variable. Shared will be needed later. | Andreas Grois | 2018-03-23 | 1 | -31/+22 |
| | | |||||
* | | Fix compiler warning in MSVC | Andreas Grois | 2018-03-22 | 1 | -2/+2 |
| | | |||||
* | | Make preview use color scale and gamma | Andreas Grois | 2018-03-22 | 3 | -1/+11 |
| | | |||||
* | | Get occupancy back up good by exploiting shared memory. | Andreas Grois | 2018-03-22 | 3 | -41/+51 |
| | | |||||
* | | Divide et impera *is* faster. Finally. | Andreas Grois | 2018-03-22 | 1 | -3/+9 |
| | | |||||
* | | First divide at impera attempt | Andreas Grois | 2018-03-22 | 1 | -19/+31 |
| | | |||||
* | | Initial commit for better brightness. | Andreas Grois | 2018-03-22 | 3 | -5/+52 |
|/ | | | | | Needs more work, uses too many VGPRs. Also, maybe work on a single shared variable? | ||||
* | Initial benchmark support. | Andreas Grois | 2018-03-21 | 3 | -6/+26 |
| | | | | Finally no more manual stopwatch usage... | ||||
* | Fix build error regarding debug log clockv0.0.3½-speed | Andreas Grois | 2018-03-18 | 1 | -1/+1 |
| | |||||
* | Undo splitting of buffers in three. Makes buffer access much faster | Andreas Grois | 2018-03-18 | 4 | -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 Grois | 2018-03-18 | 2 | -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 Grois | 2018-03-18 | 2 | -21/+25 |
| | |||||
* | Add option to skip short orbits. Add option to print debug output. | Andreas Grois | 2018-03-18 | 4 | -4/+24 |
| | |||||
* | Adjust default workgroup sizes to better match recommended values. | Andreas Grois | 2018-03-17 | 2 | -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-iterations | Andreas Grois | 2018-03-17 | 1 | -1/+0 |
| | |||||
* | Properly calculate required buffer size. I'm starting to think that std140 ↵ | Andreas Grois | 2018-03-17 | 1 | -3/+8 |
| | | | | would have been the better alternative... | ||||
* | Fix memory allocation for state buffer. How could that ever work? | Andreas Grois | 2018-03-17 | 2 | -2/+11 |
| | |||||
* | Seems vec2 needs 16 bytes on nVidia... | Andreas Grois | 2018-03-17 | 1 | -1/+1 |
| | |||||
* | Correct line endings. | Andreas Grois | 2018-03-17 | 8 | -1077/+1077 |
| | |||||
* | Again, cleaned code a bit | Andreas Grois | 2018-03-17 | 1 | -1/+1 |
| | |||||
* | Clean code a bit | Andreas Grois | 2018-03-17 | 1 | -57/+57 |
| | |||||
* | Workers now directly operate on their state buffer. | Andreas Grois | 2018-03-17 | 1 | -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 Grois | 2018-03-17 | 1 | -2/+2 |
| | | | | controlled parameter | ||||
* | Fix y-value being always the same if only one worker is used | Andreas Grois | 2018-03-17 | 1 | -1/+1 |
| | |||||
* | Fix a few warnings spit out by MSVC compiler: | Andreas Grois | 2018-03-17 | 1 | -3/+4 |
| | |||||
* | Remove unneeded | Andreas Grois | 2018-03-17 | 1 | -2/+1 |
| | |||||
* | Improve parallelization by not storing the offset, but instead ↵ | Andreas Grois | 2018-03-17 | 2 | -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 or | Andreas Grois | 2018-03-16 | 1 | -21/+19 |
| | | | | cardioid. | ||||
* | Fix wrong iteration per frame code | Andreas Grois | 2018-03-16 | 1 | -9/+9 |
| | |||||
* | minor | Andreas Grois | 2018-03-16 | 1 | -2/+1 |
| | |||||
* | Merge branch 'master' into feature/01-Pausability | Andreas Grois | 2018-03-16 | 1 | -1/+1 |
|\ | |||||
| * | Fix wrong seed calculation, now I've had some sleep. | Andreas Grois | 2018-03-16 | 1 | -2/+1 |
| | | |||||
* | | Comment out debug output | Andreas Grois | 2018-03-16 | 1 | -1/+1 |
| | | |||||
* | | Tweak PID a bit | Andreas Grois | 2018-03-16 | 1 | -2/+2 |
| | | |||||
* | | Fix endless loop in shader and make framerate adaptive | Andreas Grois | 2018-03-15 | 4 | -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 Grois | 2018-03-15 | 2 | -22/+21 |
| | | | | | | | | specifiers to buffers. | ||||
* | | Oops | Andreas Grois | 2018-03-15 | 1 | -9/+9 |
| | | |||||
* | | Prevent even more waiting by storing a more complete state | Andreas Grois | 2018-03-15 | 3 | -35/+43 |
| | | |||||
* | | Speed up computation tremendously, by having each worker (nearly) | Andreas Grois | 2018-03-15 | 2 | -81/+70 |
| | | | | | | | | | | completely store its state and working (nearly) fully independent of each other. | ||||
* | | First commit with compute pausability | Andreas Grois | 2018-03-14 | 4 | -37/+133 |
|/ | |||||
* | Split buffer in three, one per color (as OpenGL guarantees that one can at ↵ | Andreas Grois | 2018-03-11 | 5 | -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. | ||||
* | minor | Andreas Grois | 2018-03-11 | 1 | -1/+1 |
| | |||||
* | Use long for command line validity checks.v0.0.2-kindaWorkingBetter | Andreas Grois | 2018-03-11 | 1 | -4/+2 |
| | |||||
* | Another warning fixedv0.0.1-kindaworking | Andreas Grois | 2018-03-11 | 1 | -1/+1 |
| | |||||
* | Fix lots of warnings output by visual studio... | Andreas Grois | 2018-03-11 | 1 | -11/+12 |
| |