<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/docs/command-line-slangc.md, 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>2024-10-29T19:16:20+00:00</updated>
<entry>
<title>Increase slangc option visibility in docs (#5425)</title>
<updated>2024-10-29T19:16:20+00:00</updated>
<author>
<name>cheneym2</name>
<email>acheney@nvidia.com</email>
</author>
<published>2024-10-29T19:16:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=24bf067d4cb4868d4b733c2a646e0721e8b34ff8'/>
<id>urn:sha1:24bf067d4cb4868d4b733c2a646e0721e8b34ff8</id>
<content type='text'>
* Increase slangc option visibility in docs

Link to slangc command-line reference from readme.
readme. Boost the visiblity of the link in the user-guide.

Consolidates command-line-slangc.md into the user-guide.

Fixes #4124

* Update README.md

* Update 08-compiling.md

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Markdown CommandOptions (#2860)</title>
<updated>2023-05-02T15:10:58+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2023-05-02T15:10:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=29cb65585782f71a9c6fa1062eaa0b8de8359604'/>
<id>urn:sha1:29cb65585782f71a9c6fa1062eaa0b8de8359604</id>
<content type='text'>
* WIP CommandOptions

* Fix some output issues.

* Simplify word wrapping.

* Add file extensions.

* Change how lookup takes place.
Add appendSplit functions to StringUtil.
Make Categories hold the index range of their options.

* Small improvement.

* Lookup with partial option names.

* Associate user values.

* Encoding flags in the name.

* Refactor setting up of command options.

* Use CommandOptions in slang-options.

* Remove old help text.

* Cache the CommandOptions on the Session.

* Range checking.
Fix bug in the Options handling.

* Extra checks for validity.

* Get categories directly.

* Slight improvements over output.

* Added NameValue types.

* Fix typo.
Remove some now unused diagnostics.
Fix diagnostic in testing, as output has changed.

* Add minimal usage message.

* Remove platform executable extension from diagnostics output.

* Some improvements around getting names from NameValue types.

* Improve some option descriptions.

* Small fixes.

* WIP improvements around CommandOptions.

* Split out CommandOptionsWriter.

* Add links to options.

* Add command line options reference.

* Link to the reference command line information.

* Add quick links.

* Improvements around lookup.
Add categories to linking.

* Small additional fixes.

* Add LinkFlags control.

* Small text fixes.

* Fix typo.

* Fix typo.

* Fix typo.

* Add support for -g and -O using CommandOptions.

* Improve generated doc output/descriptions.
Remove options listed directly in documentation.</content>
</entry>
<entry>
<title>Specify downstream compiler include paths (#2517)</title>
<updated>2022-11-15T19:38:25+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2022-11-15T19:38:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=7222b6cdb1ed192b267e91896b1f56da3f0c21d6'/>
<id>urn:sha1:7222b6cdb1ed192b267e91896b1f56da3f0c21d6</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* WIP around testing with NVAPI.

* Make -I work for downstream compilers.
Update docs.

* Small improvement around ignoring tests.</content>
</entry>
<entry>
<title>Fix some typos in command line docs. (#2150)</title>
<updated>2022-03-01T22:03:51+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2022-03-01T22:03:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=1b0d4259fbe39fbe2cd8482eb30d22a371db0b1a'/>
<id>urn:sha1:1b0d4259fbe39fbe2cd8482eb30d22a371db0b1a</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Fix some typos around command line docs.</content>
</entry>
<entry>
<title>Improve comments around -Xarg and C++/CUDA layout (#1884)</title>
<updated>2021-06-14T14:36:42+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-06-14T14:36:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=45f737dfde81d31b44afb6e5d7e89de88ee51160'/>
<id>urn:sha1:45f737dfde81d31b44afb6e5d7e89de88ee51160</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Alter comments around layout size/alignment to reflect nuance on C++/CUDA.

* Fix some errors in -X documentation, and clarify some of the behavior.

* Small doc improvements.</content>
</entry>
<entry>
<title>Improvements in -X support (#1852)</title>
<updated>2021-05-22T20:03:30+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-05-22T20:03:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=34a1ff5226a526cc17c5baecd63637f69c324fc7'/>
<id>urn:sha1:34a1ff5226a526cc17c5baecd63637f69c324fc7</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Added SourceLoc handling for command line parsing.

* Fix typo in debug.

* Fix issue around the DiagnosticSink used in options parsing not having a writer available - by having DiagnosticSink parenting.

* Small rename for clarity.

* WIP extracting command line args for downstream tools.

* Unit tests/bug fixes around extracting args.

* Use DownstreamArgs in the EndToEndCompileRequest

* Passing downstream compiler options downstream.

* Fix issue with endToEndReq being nullptr.

* Fix issue with diagnostics number change.

* Small improvements to how the source line is displayed if it's too long.
Default to 120, as suggested in previous review.

* Make render test use x-args parsing and CommandArgReader.

* Added missing diagnostics.

* More DownstreamArgs to linkage so can be seen by 'components'.
Added dxc-x-arg test.

* Used combination of name and args instead of two Lists, which whilst equivalent was perhaps a little confusing.

* Added documentation for -X support.

* Added test for x-args parsing diagnostic. Improved diagnostic with list of known names.

* Fix issues from merge.

* Fix lookup for -matrix-layout-column-major in render test.

* Remove commented out line.</content>
</entry>
<entry>
<title>Include hierarchy output (#1595)</title>
<updated>2020-11-11T14:56:50+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-11-11T14:56:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=8f0895e0f8257da2fd10b6325931627a9a1792ba'/>
<id>urn:sha1:8f0895e0f8257da2fd10b6325931627a9a1792ba</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Improve diagnostic for token pasting.

* Token paste location test.

* Output include hierarchy.

* WIP on includes hierarchy.

* Improved include hierarchy output - to handle source files without tokens.
Improved test case.

* Small comment improvements.
Fixed a typo with not returning a reference.

* Slight simplification of the ViewInitiatingHierarchy, by adding GetOrAddValue to Dictionary.

* Remove the need for ViewInitiatingHierarchy type.

* Improve output of path in diagnostic for includes hierarchy.

* Remove comment in diagnostic for token-paste-location.slang

* Update command line docs to include `-output-includes`

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Support for getting git version from IGlobalSession (#1040)</title>
<updated>2019-08-28T20:29:40+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-08-28T20:29:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ce5fd43b0c9c60ad85e7c5a54161b37897640ea6'/>
<id>urn:sha1:ce5fd43b0c9c60ad85e7c5a54161b37897640ea6</id>
<content type='text'>
* Added slang-tag-version.h and travis code to generate the file.

* Generate slang-tag-version.h on appveyor.

* Move where slang-tag-version.h is generated on appveyor.

* Dump slang-tag-version.h to console on travis.

* Cat slang-tag-version.h

* Added method getBuildTagVersion to IGlobalSession.
Added -v option.
</content>
</entry>
<entry>
<title>Add options to control optimization and debug information (#897)</title>
<updated>2019-03-12T19:24:03+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoleyNV@users.noreply.github.com</email>
</author>
<published>2019-03-12T19:24:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=3cfccfd4991df01deaf132f11b4eaa6848a32c4e'/>
<id>urn:sha1:3cfccfd4991df01deaf132f11b4eaa6848a32c4e</id>
<content type='text'>
The short version for command-line users is:

* Use `-g` to get debug info in the output, where supported
* Use `-O0` to disable optimizations, in case that improves debugability
* Use `-O2` for optimized/release builds where you can spend the extra compile time

The command-line options are matched with new API functions `spSetDebugInfoLevel()` and `spSetOptimizationLevel()` that set the equivalent information.

Right now these settings only affect how we invoke fxc and dxc. In the longer run I expect we will want to use them to control other things:

* Once we are emitting our own SPIR-V, the `-g` option should control what source-level name information we include in it.

* Whether or not `-g` is used could be used to decide whether we preserve the "name hints" in the IR, which in  turn decide whether we output GLSL/HLSL source that uses names based on the original program.

* We will eventually need/want to include some amount of optimization passes on the Slang IR, and the `-O` options should control which of those passes are enabled on a particular invocation.

In this change I decided to expose the options at the level of the entire compile request for API users, and to store the actual information on the Linkage. We might want to revisit this decision and instead allow for the level of optimization to be chosen per-target as part of back-end state. Similarly, we might want to have more fine-grained control over the level of debug output per-target (although we'd still need a front-end setting to determine what debug info is generated into the Slang IR).</content>
</entry>
<entry>
<title>Feature/file unique identity (#789)</title>
<updated>2019-01-21T21:41:54+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-01-21T21:41:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=bd815f02d846a50e16dab67e6512db2a6215c41f'/>
<id>urn:sha1:bd815f02d846a50e16dab67e6512db2a6215c41f</id>
<content type='text'>
* * Fix memory bug around expanding va_args - needed buffer to have space for terminating 0
* Fix problem with FileWriter defaults being globals, as memory they allocate, will only be freed after return from main - work around by making StdWriters RefObject derived, and kept in scope such the writers are destroyed before checks for leaks is found
* Added SimplifyPathAndHash mode for CacheFileSystem - will simplify the path and see if simplified path is in cache before reading file (limiting amout of underlying file requests)

* * Added calcReplaceChar
* Renamed DefaultFileSystem to OSFileSystem
* Made OSFileSystem convert windows \ to / on linux

* Simplified logic for caching in CacheFileSystem.

* Added pragma-once-c to add extra test, but also so there is an 'include' directory in preprocessor tests.

* Small fixes in pragma once test.

* Simplified cache handling path, so that paths/simplified paths area always added.

* Improve naming of methods for different caches.

* Removed references to 'canonicalPath' and made 'uniqueIdentity'

* * Re-add support for canonicalPath to ISlangFileSystem -&gt; not for uniqueIdentifier but as a way to display 'canonicalPath'
* Added peliminary support for being able to display verbose paths in a diagnostic
* Added 'clearCache' support
* Added verbose path support to SourceManager (now needs a ISlangFileSystemExt to do this)

* Added support for '-verbose-path' option to slangc and slang-test.
</content>
</entry>
</feed>
