<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BuddhaShader/BuddhaTest/Shaders, branch v0.0.3-adaptive-iterations</title>
<subtitle>First steps with OpenGL: A compute shader that renders a BuddhaBrot to an SSBO. Can also save the result to PNG for future viewing pleasure. </subtitle>
<id>https://git.grois.info/BuddhaShader/atom/BuddhaTest/Shaders?h=v0.0.3-adaptive-iterations</id>
<link rel='self' href='https://git.grois.info/BuddhaShader/atom/BuddhaTest/Shaders?h=v0.0.3-adaptive-iterations'/>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/'/>
<updated>2018-03-17T19:52:50Z</updated>
<entry>
<title>Remove layout specifier from struct. Seems it's not allowed after all.</title>
<updated>2018-03-17T19:52:50Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-17T19:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=c2018354129a4a6eff1649eaba4d99756b537ed3'/>
<id>urn:sha1:c2018354129a4a6eff1649eaba4d99756b537ed3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix memory allocation for state buffer. How could that ever work?</title>
<updated>2018-03-17T18:35:55Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-17T18:35:55Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=873409ffdc8f172fb9fe6c46b6ddbad9239cf02d'/>
<id>urn:sha1:873409ffdc8f172fb9fe6c46b6ddbad9239cf02d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Correct line endings.</title>
<updated>2018-03-17T16:51:19Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-17T16:51:19Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=b05e87dc5004f5badc02508570ddc55f31b451cc'/>
<id>urn:sha1:b05e87dc5004f5badc02508570ddc55f31b451cc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Again, cleaned code a bit</title>
<updated>2018-03-17T16:48:12Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-17T16:48:12Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=5a9c8599daee7d1d569ade3647d0078e56123c7a'/>
<id>urn:sha1:5a9c8599daee7d1d569ade3647d0078e56123c7a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Workers now directly operate on their state buffer.</title>
<updated>2018-03-17T16:28:40Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-17T16:28:40Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=3ff4226638aceaf179ce27ea9d0fd63327caa53b'/>
<id>urn:sha1:3ff4226638aceaf179ce27ea9d0fd63327caa53b</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Fix y-value being always the same if only one worker is used</title>
<updated>2018-03-17T16:00:53Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-17T16:00:53Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=c93afe46650cca3d133dfb49642db2fac2edee0d'/>
<id>urn:sha1:c93afe46650cca3d133dfb49642db2fac2edee0d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove unneeded</title>
<updated>2018-03-17T09:14:40Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-17T09:14:40Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=422c8bb40723588ced0dad8ea5052f6e07e85ddf'/>
<id>urn:sha1:422c8bb40723588ced0dad8ea5052f6e07e85ddf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve parallelization by not storing the offset, but instead re-calculating it every dispatch.</title>
<updated>2018-03-17T07:56:53Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-17T07:56:53Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=5d0467629625f8a092ac2ef8ba5f30c629cc8b62'/>
<id>urn:sha1:5d0467629625f8a092ac2ef8ba5f30c629cc8b62</id>
<content type='text'>
By this I could get the VGPR usage down from 40 to 36.
</content>
</entry>
<entry>
<title>Change starting value code to just jump to next orbit if in main bulb or</title>
<updated>2018-03-16T22:37:27Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-16T22:37:27Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=48fe1f1aad00f31d44b6814213ae89462bd39176'/>
<id>urn:sha1:48fe1f1aad00f31d44b6814213ae89462bd39176</id>
<content type='text'>
cardioid.
</content>
</entry>
<entry>
<title>Fix wrong iteration per frame code</title>
<updated>2018-03-16T08:16:47Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-16T08:16:47Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=a87b34d179e95b1957d9f595640c3a204ab25d1f'/>
<id>urn:sha1:a87b34d179e95b1957d9f595640c3a204ab25d1f</id>
<content type='text'>
</content>
</entry>
</feed>
