<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-reflection.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>2020-12-04T18:03:29+00:00</updated>
<entry>
<title>Projects in 'build' and Slang API separation (#1624)</title>
<updated>2020-12-04T18:03:29+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-12-04T18:03:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=47ed0f68602a8ed0c425d2a4666969ad0db04ca6'/>
<id>urn:sha1:47ed0f68602a8ed0c425d2a4666969ad0db04ca6</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Move reflection to reflection-api.

* Slight reorg to pull out potentially Slang internal functions from the reflection API impls.

* Remove visual studio projects

* Fix for slang-binaries copy.

* Add the visual studio projects in build/visual-studio

* Remove miniz project.

* Differentiate the linePath from the filePath.

* Improve comment in premake5.lua + to kick of CI.

* Kick CI.</content>
</entry>
<entry>
<title>Add shader object parameter binding to renderer_test. (#1622)</title>
<updated>2020-12-03T16:23:05+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2020-12-03T16:23:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=44c0a56974b664e50b2cb8cb6f10740b19c4e02f'/>
<id>urn:sha1:44c0a56974b664e50b2cb8cb6f10740b19c4e02f</id>
<content type='text'>
* Add shader object parameter binding to renderer_test.

* remove multiple-definitions.hlsl

* Fix cuda implementation.

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Standard library save/loadable (#1592)</title>
<updated>2020-11-05T18:43:00+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-11-05T18:43:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c985f5f2f95dc95998fdfb8400baa0a04760ada2'/>
<id>urn:sha1:c985f5f2f95dc95998fdfb8400baa0a04760ada2</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Fix handling of access modifiers inside type definition.

* Fix access problem for AST node.
Make dumping produce a single function with switch, to potentially make available without Dump specific access.

* WIP on serialization design doc.

* Remove project references to previously generated files.

* More docs on serialization design.

* Improve serialization documentation.
Remove unused function from IRSerialReader.

* Small fixes around naming. Remove long comment from slang-serialize.h - as covered in serialization.md

* Remove long comment in slang-serialize.h as covered in serialization.md

* More information about doing replacements on read for AST and problems surrounding.

* Typo fix.

* Spelling fixes.

* Value serialize.

* Value types with inheritence.

* Use value reflection serial conversion for more AST types

* Use automatic serialization on more of AST.

* Get the types via decltype, simplifies what the extractor has to do.

* Update the serialization.md for the value serialization.

* Small doc improvements.

* Update project.

* Remove ImportExternalDecl type
Added addImportSymbol and ImportSymbol type
Fixed bug in container which meant it wouldn't read back AST module

* Because of change of how imports and handled, store objects as SerialPointers.

* First pass symbol lookup from mangled names.

* Cache current module looked up from mangled name.

* Fix SourceLoc bug.
Improve comments.

* Added diagnostic on mangled symbol not being found

* Fix typo.

* WIP serializing stdlib.

* WIP serializing stdlib in.

* Fix problem serializing arrays that hold data that is already serialized.

* Remove clash of names in MagicTypeModifier.

* Make conversion from char to String explicit.
Fix reference count issue with SerialReader.

* Add code to save/load stdlib.

* Use return code to avoid warning -                 SerialContainerUtil::write(module, options, &amp;stream))

* Make all String numeric ctors explicit.
Added isChar to UnownedStringSlice.
Added operator== for UnownedStringSlice to String to avoid need to convert to String and allocate.

* Add error check to readAllText.

* tabs -&gt; spaces on String.h

* tab -&gt; spaces String.cpp

* Remove msg for StringBuilder, just build inplace for exceptions.

* Check SerialClasses - for name clashes.
Renamed Modifier::name as Modifier::keywordName

* Handling of extensions when deserializing AST - updating the moduleDecl-&gt;mapTypeToCandidateExtensions

Co-authored-by: Tim Foley &lt;tim.foley.is@gmail.com&gt;</content>
</entry>
<entry>
<title>Add reflection API access to global params type layout (#1577)</title>
<updated>2020-10-14T20:55:45+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoleyNV@users.noreply.github.com</email>
</author>
<published>2020-10-14T20:55:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4375cebc68d757238f3129f2472ec863dabc526b'/>
<id>urn:sha1:4375cebc68d757238f3129f2472ec863dabc526b</id>
<content type='text'>
This change adds a single new entry point to our reflection API that allows an application to query the `TypeLayout` that represents the global-scope shader parameters. This can be used by the application in order to detect when the global parameters have required allocation of a default constant buffer, or simply to unify the handling of the global scope with handling of other kinds of parameters.</content>
</entry>
<entry>
<title>Remove some "do what I mean" logic from reflection API (#1539)</title>
<updated>2020-09-11T20:21:10+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoleyNV@users.noreply.github.com</email>
</author>
<published>2020-09-11T20:21:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=459e788e2d2b6d21b0bed95cf3046bb8d0e6b8f3'/>
<id>urn:sha1:459e788e2d2b6d21b0bed95cf3046bb8d0e6b8f3</id>
<content type='text'>
The reflection API had a bit of DWIM (Do What I Mean) logic in that a client could query the resource usage/bindings of a `ParameterBlock&lt;X&gt;` and see not only the register `space` or descriptor `set` for the block itself, but also the constant buffer `register` or `binding` for its default constant buffer (if any).

The reason for this behavior was that there was existing client code in Falcor that relied on that behavior for parameter blocks, and even after changing the way that parameter block layouts were computed and stored we sought to maintain backwards compatibility with that client code. The trouble is that the weird behavior then goes on to cause confusion for other clients of the Slang reflection API.

This change removes the special-case logic, and fixes up our reflection tests to mirror the new (correct) information that we return.

When this change is released, it will be a breaking change for any client code that still relies on the old behavior. We will need to coordinate with client application developers to fix their reflection logic. Note that all the same information can still be accessed, simply by using new reflection API that we have added.</content>
</entry>
<entry>
<title>First pass support for Sampler Feedback (#1470)</title>
<updated>2020-08-03T19:46:16+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-08-03T19:46:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=79ba9279becf480c9d92bb2faaede0e241f0b029'/>
<id>urn:sha1:79ba9279becf480c9d92bb2faaede0e241f0b029</id>
<content type='text'>
* Add the Feedback texture types.
Depreciate SLANG_RESOURCE_EXT_SHAPE_MASK.

* Starting point to test sampler feedback.

* WIP on FeedbackSampler.

* Use __target_intrinsic to override the output of sampler feedback types.

* Use newer generic syntax for FeedbackTexture.

* Reflects Feedback type.

* SLANG_TYPE_KIND_TEXTURE_FEEDBACK -&gt; SLANG_TYPE_KIND_FEEDBACK

* Added reflection test.

* Reneable issue with generics in sampler-feedback-basic.slang

* Add methods to FeedbackTexture2D/Array.
Make test cover test cases.

* Sampler feedback produces DXC code.

* Disabled Sampler feedback test - as requires newer version of DXC.

* Fix bug in reflection tool output.

* Fix problem with direct-spirv-emit.slang.expected due to update to glslang.

* Fix direct-spirv-emit.slang

* Use SLANG_RESOURCE_EXT_SHAPE_MASK again

* Make Feedback be emitted as a textue type prefix.

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Fix and improvements around repro (#1397)</title>
<updated>2020-06-18T18:17:57+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-06-18T18:17:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=dfbe3cfcdb308cdb0f89cb2844fb3aba96cfcaec'/>
<id>urn:sha1:dfbe3cfcdb308cdb0f89cb2844fb3aba96cfcaec</id>
<content type='text'>
* * Fix output in slang repro command line
* Profile uses lowerCamel method names (had mix of upper and lower)

* Rename slang-serialize-state/SerializeStateUtil to slang-repro and ReproUtil.</content>
</entry>
<entry>
<title>ASTNodes use MemoryArena (#1376)</title>
<updated>2020-06-05T22:20:09+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-06-05T22:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=43c146794aab638924d2ab838d10f8af2ebf02a7'/>
<id>urn:sha1:43c146794aab638924d2ab838d10f8af2ebf02a7</id>
<content type='text'>
* Add a ASTBuilder to a Module
Only construct on valid ASTBuilder (was being called on nullptr on occassion)

* Add nodes to ASTBuilder.

* Compiles with RefPtr removed from AST node types.

* Initialize all AST node pointer variables in headers to nullptr;

* Initialize AST node variables as nullptr.
Make ASTBuilder keep a ref on node types.
Make SyntaxParseCallback returns a NodeBase

* Don't release canonicalType on dtor (managed by ASTBuilder).

* Give ASTBuilders a name and id, to help in debugging.
For now destroy the session TypeCache, to stop it holding things released when the compile request destroys ASTBuilders.

* Moved the TypeCheckingCache over to Linkage from Session.

* NodeBase no longer derived from RefObject.

* Only add/dtor nodes that need destruction.
First pass compile on linux.</content>
</entry>
<entry>
<title>Feature/ast syntax standard (#1360)</title>
<updated>2020-05-29T12:36:10+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-05-29T12:36:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f3d70425fa339a0d8f39b920235c98280d250bbb'/>
<id>urn:sha1:f3d70425fa339a0d8f39b920235c98280d250bbb</id>
<content type='text'>
* Small improvements to documentation and code around DiagnosticSink

* Made methods/functions in slang-syntax.h be lowerCamel
Removed some commented out source (was placed elsewhere in code)

* Making AST related methods and function lowerCamel.
Made IsLeftValue -&gt; isLeftValue.</content>
</entry>
<entry>
<title>WIP: ASTBuilder (#1358)</title>
<updated>2020-05-28T18:01:51+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-05-28T18:01:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c2d31347ea06c768045e7c503ef0188e0e5356de'/>
<id>urn:sha1:c2d31347ea06c768045e7c503ef0188e0e5356de</id>
<content type='text'>
* Compiles.

* Small tidy up around session/ASTBuilder.

* Tests are now passing.

* Fix Visual Studio project.

* Fix using new X to use builder when protectedness of Ctor is not enough.
Substitute-&gt;substitute

* Add some missing ast nodes created outside of ASTBuilder.

* Compile time check that ASTBuilder is making an AST type.

* Moced findClasInfo and findSyntaxClass (essentially the same thing) to SharedASTBuilder from Session.</content>
</entry>
</feed>
