<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BuddhaShader/BuddhaTest/Shaders, branch v0.0.3½-speed</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%C2%BD-speed</id>
<link rel='self' href='https://git.grois.info/BuddhaShader/atom/BuddhaTest/Shaders?h=v0.0.3%C2%BD-speed'/>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/'/>
<updated>2018-03-18T20:11:39Z</updated>
<entry>
<title>Undo splitting of buffers in three. Makes buffer access much faster</title>
<updated>2018-03-18T20:11:39Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-18T20:11:39Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=dc193156a82a80cc8d2321cf065019035855516f'/>
<id>urn:sha1:dc193156a82a80cc8d2321cf065019035855516f</id>
<content type='text'>
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 ;-)
</content>
</entry>
<entry>
<title>Move totaliterations calculation to CPU. This frees 4 VGPRs.</title>
<updated>2018-03-18T19:45:26Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-18T19:45:26Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=db2ea861c688aadf59fc35ff6cfca69149a1a94c'/>
<id>urn:sha1:db2ea861c688aadf59fc35ff6cfca69149a1a94c</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Undo change to directly work on buffer. Causes about 30% slowdown...</title>
<updated>2018-03-18T16:19:33Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-18T16:19:33Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=c6ba30d76aca396ce5a3975f4625e05e8cf915ee'/>
<id>urn:sha1:c6ba30d76aca396ce5a3975f4625e05e8cf915ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add option to skip short orbits. Add option to print debug output.</title>
<updated>2018-03-18T15:24:50Z</updated>
<author>
<name>Andreas Grois</name>
<email>andi@grois.info</email>
</author>
<published>2018-03-18T15:24:50Z</published>
<link rel='alternate' type='text/html' href='https://git.grois.info/BuddhaShader/commit/?id=385dd0dcf8fd003db604355341b00baa1fe1c1a0'/>
<id>urn:sha1:385dd0dcf8fd003db604355341b00baa1fe1c1a0</id>
<content type='text'>
</content>
</entry>
<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>
</feed>
