<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/glslang/glslang.cpp, branch master</title>
<subtitle>Making it easier to work with shaders</subtitle>
<id>https://git.yummers.dev/slang.git/atom?h=master</id>
<link rel='self' href='https://git.yummers.dev/slang.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/'/>
<updated>2017-07-19T18:27:23+00:00</updated>
<entry>
<title>Build a dynamic library for Slang</title>
<updated>2017-07-19T18:27:23+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoley@nvidia.com</email>
</author>
<published>2017-07-19T18:27:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a97eac202cec673a0f2e27e808cfdcdd29289c4e'/>
<id>urn:sha1:a97eac202cec673a0f2e27e808cfdcdd29289c4e</id>
<content type='text'>
- Change the `slang` project from a static library to a dynamic one

- Add some details around `slang.h` to make sure DLL export stuff is working

- Make the `slangc` executable use the dynamic library

- Rename the `glslang` sub-project to `slang-glslang` and move it into the main source hierarchy
  - This reflects the fact that it isn't a stand-alone tool, and isn't in any way a standard binary of glslang, but rather just an artifact of how Slang uses glslang
</content>
</entry>
<entry>
<title>Add a compile-time loop construct to Slang</title>
<updated>2017-07-18T21:51:12+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoley@nvidia.com</email>
</author>
<published>2017-07-18T21:51:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=2476c035ec15d3ee22239ebd1fe10e6e8c1e01e3'/>
<id>urn:sha1:2476c035ec15d3ee22239ebd1fe10e6e8c1e01e3</id>
<content type='text'>
The basic syntax is:

    $for(i in Range(0,99))
    {
       /* stuff goes here */
    }

Note that the exact form is very restrictive. All that you are allowed to change is `i`, `0`, `99` or `/* stuff goes here */`.

As a tiny bit of syntax sugar, the following should work:

    $for(i in Range(99))
    {
       /* stuff goes here */
    }

Note that the range given is half-open (C++ iterator `[begin,end)` style).
Both the beginning and end of the range must be compile-time constant expressions that Slang knows how to constant-fold.

The implementation will basically generate code for `/* stuff goes here */` N times, once for each value in the half-open range.
Each time, the variable `i` will be replaced with a different compile-time-constant expression.

While I was working on a test case for this, I also found that our build of glslang had an issue with resource limits, so I fixed that.
Clients will need to build a new glslang to use the fix.
</content>
</entry>
<entry>
<title>Don't use "auto locations" mode in glslang</title>
<updated>2017-07-14T17:05:38+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoley@nvidia.com</email>
</author>
<published>2017-07-14T17:05:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=082003a1572d24fa3ff9aa0e0f51bf1154445a70'/>
<id>urn:sha1:082003a1572d24fa3ff9aa0e0f51bf1154445a70</id>
<content type='text'>
Fixes #88

The code was using `glslang::TShader::setAutoMapLocations` as a workaround for an old glslang issue, but apparently this mode has a bug where it ends up applying a `location` layout to the implicitly-created `gl_PerVertex` definition (which shouldn't be allowed).

This change drops the call to `setAutoMapLocations` (and `setAutoMapBindings`) since it should no longer be required.
</content>
</entry>
<entry>
<title>Add support for dumping intermediates for debugging.</title>
<updated>2017-07-13T20:00:38+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoley@nvidia.com</email>
</author>
<published>2017-07-13T19:10:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=6d7be3694fbaae525b2f4463630c35bed487cd5b'/>
<id>urn:sha1:6d7be3694fbaae525b2f4463630c35bed487cd5b</id>
<content type='text'>
Calling:

    spSetDumpIntermedites(compileRequest, true);

will set up a mode where Slang tries to dump every intermediate HLSL, GLSL, DXBC, SPIR-V, etc. file it generates. If SPIR-V or DXBC is requested then we also dump assembly of those.

Right now the files are all named as `slang-&lt;counter&gt;.&lt;ext&gt;`, and get dropped in whatever the working directory is, but I'm open to ideas on how to improve that.

Note: this change introduces a new binary interface to `glslang`, so pulling it requires an updated `glslang.dll`.
</content>
</entry>
<entry>
<title>Removed spGetTranslationUnitCode; Unified EntryPointResult/TranslationUnitResult, added helper functionality; Ensure null termination when printing raw data</title>
<updated>2017-07-11T00:54:50+00:00</updated>
<author>
<name>Kai-Hwa Yao</name>
<email>kyao@nvidia.com</email>
</author>
<published>2017-07-11T00:44:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=22c7a4de0c3810fcfc1099843e42b315c366a7c5'/>
<id>urn:sha1:22c7a4de0c3810fcfc1099843e42b315c366a7c5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't assume vector contains contents</title>
<updated>2017-07-11T00:49:35+00:00</updated>
<author>
<name>Kai-Hwa Yao</name>
<email>kyao@nvidia.com</email>
</author>
<published>2017-07-10T21:11:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=61a816c1e898155aa93c5a740e2b7aad7d7b4fa1'/>
<id>urn:sha1:61a816c1e898155aa93c5a740e2b7aad7d7b4fa1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow glslang wrapper to output regular SPIRV before disassembly</title>
<updated>2017-07-11T00:49:35+00:00</updated>
<author>
<name>Kai-Hwa Yao</name>
<email>kyao@nvidia.com</email>
</author>
<published>2017-07-10T05:58:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4bb88c4a45707fb88150aa7952b4c9b9f55b1749'/>
<id>urn:sha1:4bb88c4a45707fb88150aa7952b4c9b9f55b1749</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial import of code.</title>
<updated>2017-06-09T20:44:59+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoley@nvidia.com</email>
</author>
<published>2017-06-09T18:34:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=fcf83dbf9effab3bd98bad2b83b2468b7eb05cfd'/>
<id>urn:sha1:fcf83dbf9effab3bd98bad2b83b2468b7eb05cfd</id>
<content type='text'>
</content>
</entry>
</feed>
