<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-dxc-support.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>2021-05-14T22:38:08+00:00</updated>
<entry>
<title>DXC as DownstreamCompiler (#1845)</title>
<updated>2021-05-14T22:38:08+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-05-14T22:38:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=1856b8ad85266ed66985b42bd2321a35f8573a00'/>
<id>urn:sha1:1856b8ad85266ed66985b42bd2321a35f8573a00</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* WIP Fxc as downstream compiler.

* First pass FXC downstream compiler working.

* GCC compile fix.

* Fix FXC parsing issue.

* Special case filesystem access.

* Use StringUtil getSlice.

* Fix isses with not emitting source for FXC.

* WIP on DXC.

* Small fixes for DXBC handling.

* Removed DXC from ParseDiagnosticUtil (can use generic)
Try to improve output for notes from DXC.</content>
</entry>
<entry>
<title>Associating GUID (or UUID) with types (#1776)</title>
<updated>2021-04-01T22:59:24+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-04-01T22:59:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9475b11045089c9bc9773b16f7eb84f843db70c4'/>
<id>urn:sha1:9475b11045089c9bc9773b16f7eb84f843db70c4</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Add mechanism to embed guid inside of type.</content>
</entry>
<entry>
<title>Remove IncludeHandler. (#1505)</title>
<updated>2020-08-19T19:51:43+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-08-19T19:51:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b5a4161a801a573179b1f552e5c53748d2667b03'/>
<id>urn:sha1:b5a4161a801a573179b1f552e5c53748d2667b03</id>
<content type='text'>
nvAPI -&gt; NVAPI
nvAPIPath -&gt; nvapiPath
DxcIncludeHandler don't reference count.
nv-api-path -&gt; nvapi-path

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Support for float atomics on RWByteAddressBuffer (#1502)</title>
<updated>2020-08-18T17:42:46+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-08-18T17:42:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9abcb6ea24dbc7184c3a2ad9f4458f63f8901928'/>
<id>urn:sha1:9abcb6ea24dbc7184c3a2ad9f4458f63f8901928</id>
<content type='text'>
* Fix premake5.lua so it uses the new path needed for OpenCLDebugInfo100.h

* Keep including the includes directory.

* Added the spirv-tools-generated files.

* We don't need to include the spirv/unified1 path because the files needed are actually in the spirv-tools-generated folder.

* Put the build_info.h glslang generated files in external/glslang-generated. Alter premake5.lua to pick up that header.

* First pass at documenting how to build glslang and spirv-tools.

* Improved glsl/spir-v tools README.md

* Added revision.h

* Change how gResources is calculated.
Update about revision.h

* Update docs a little.

* Split out spirv-tools into a separate project for building glslang. This was not necessary on linux, but *is* necessary on windows, because there is a file disassemble.cpp in spirv-tools and in glslang, and this leads to VS choosing only one. With the separate library, the problem is resolved.

* Fix direct-spirv-emit output.

* Update to latest version of spirv headers and spirv-tools.

* Upgrade submodule version of glslang in external.

* Add fPIC to build options of slang-spirv-tools

* WIP adding support for InterlockedAddFp32

* Upgrade slang-binaries to have new glslang.

* Fix issues with Windows slang-glslang binaries, via update of slang-binaries used.

* WIP - atomicAdd. This solution can't work as we can't do (float*) in glsl.

* WIP on atomic float ops.

* Added checking for multiple decls that takes into account __target_intrinsic and __specialized_for_target.
First pass impl of atomic add on float for glsl.

* Split __atomicAdd so extensions are applied appropriately.

* Made Dxc/Fxc support includes.
Use HLSL prelude to pass the path to nvapi
Added -nv-api-path

* Refactor around IncludeHandler and impl of IncludeSystem

* slang-include-handler -&gt; slang-include-system
Have IncludeHandler/Impl defined in slang-preprocessor

* Small comment improvements.

* Document atomic float add addition in target-compatibility.md.

* CUDA float atomic support on RWByteAddressBuffer.

* Add atomic-float-byte-address-buffer-cross.slang

* Removed inappropriate-once.slang - the test is no longer valid when a file is loaded and has a unique identity by default. A test could be made, but would require an API call to create the file (so no unique id).
Improved handling of loadFile - uses uniqueId if has one.

* Work around for testing target overlaps - to avoid exceptions on adding targets.
Simplify PathInfo setup.
Modify single-target-intrinsic.slang - it no longer failed because there were no longer multiple definitions for the same target.

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Multiple Entry Point Cleanup (#1427)</title>
<updated>2020-07-07T15:57:56+00:00</updated>
<author>
<name>Dietrich Geisler</name>
<email>dag368@cornell.edu</email>
</author>
<published>2020-07-07T15:57:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=1301f6bc85f4005a548a5a63601689616d511d0b'/>
<id>urn:sha1:1301f6bc85f4005a548a5a63601689616d511d0b</id>
<content type='text'>
* Multiple Entry Point Cleanup

This commit provides some in-code cleanup of the previous multiple entry point PR (#1411).  Specifically, this PR provides refactoring of multiple entry point functions into helper functions, the removal of the EntryPointAndIndex struct, and various stylistic improvements.

* Minor updates

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Fix bug in slang-dxc-support where it didn't get the source path correctly (#1420)</title>
<updated>2020-07-01T18:20:42+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-07-01T18:20:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5c153295205d2d5d6340f3d569a550f4697946c5'/>
<id>urn:sha1:5c153295205d2d5d6340f3d569a550f4697946c5</id>
<content type='text'>
* Fix handling of UniformState from #1396

* * Fix bug in slang-dxc-support where it didn't get the source path correctly
* Make entryPointIndices const List&lt;Int&gt;&amp;</content>
</entry>
<entry>
<title>Backend for Multiple Entry Points (#1411)</title>
<updated>2020-06-29T21:42:12+00:00</updated>
<author>
<name>Dietrich Geisler</name>
<email>dgeisler50@gmail.com</email>
</author>
<published>2020-06-29T21:42:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=47b43f8b15ef35c520b9b287fd17ff25e36bfe95'/>
<id>urn:sha1:47b43f8b15ef35c520b9b287fd17ff25e36bfe95</id>
<content type='text'>
* Backend for Multiple Entry Points

Introduces the basic backend on the compiler for zero or more entry
points.  Entry points have been extended to lists for several functions,
with loopFunctions have been extended to take in entry points and
indices as appropriate, to allow for multiple entry points once the
frontend is expanded.  Several functions are currently being assumed to
have a single entry point for simplicity and provide a work in progress
commit.

* Progress on debugging fixes

* Tests passing

* Refactored emitEntryPoints

* Updated lists to be by constant reference

* Fixes to formatting

* Refactoring updates for the compiler

* Fix for compilation errors

* Reformatting

* More reformatting

* Moved struct around to help with compilation

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>Feature/glslang spirv version (#1256)</title>
<updated>2020-03-05T15:59:54+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-03-05T15:59:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=6684d32db1f5693bcfb4971558cb30e855cd3bad'/>
<id>urn:sha1:6684d32db1f5693bcfb4971558cb30e855cd3bad</id>
<content type='text'>
* WIP add support for __spirv_version .

* Added IRRequireSPIRVVersionDecoration

* SPIR-V version passed to glslang.
Enable VK wave tests.
Split ExtensionTracker out, so can be cast and used externally to emit.
Added SourceResult.

* Fix warning on Clang.

* Missing hlsl.meta.h

* Refactor communication/parsing of __spirv_version with glslang.

* Fix some debug typos.
Be more precise in handling of substring handling.

* Make glslang forwards and backwards binary compatible.

* Small comment improvements.

* Added slang-spirv-target-info.h/cpp

* Fix for major/minor on gcc.

* Another fix for gcc/clang.

* VS projects include slang-spirv-target-info.h/cpp

* Removed SPIRVTargetInfo
Added SemanticVersion.
Don't bother with passing a target to glslang. Should be separate from 'version'.

* Renamed slang-emit-glsl-extension-tracker.cpp/.h -&gt; slang-glsl-extension-tracker.cpp/.h
Fixed some VS project issues.

* Fix a comment.

* Added slang-semantic-version.cpp/.h

* Added slang-glsl-extension-tracker.cpp/.h

* Added split that can check for input has all been parsed.

* Fix problem on x86 win build.
</content>
</entry>
<entry>
<title>WIP CUDA source emit (#1157)</title>
<updated>2019-12-19T16:23:14+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-12-19T16:23:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=e3fe0319467546bae070137c58dcf8f9fbe93c79'/>
<id>urn:sha1:e3fe0319467546bae070137c58dcf8f9fbe93c79</id>
<content type='text'>
* CPPCompiler -&gt; DownstreamCompiler

* Added DownstreamCompileResult to start abstraction such that we don't need files.

* * Split out slang-blob.cpp
* Made CompileResult hold a DownstreamCompileResult - for access to binary or ISlangSharedLibrary

* Keep temporary files in scope.

* Add a hash to the hex dump stream.

* Move all file tracking into DownstreamCompiler.

* WIP support for nvrtc.

* WIP: Adding support for nvrtc compiler.
Adding enum types, wiring up the nvrtc into slang.

* Fix remaining CPPCompiler references.

* Fix order issue on target string matching.

* Use ISlangSharedLibrary for nvrtc.

* Use DownstreamCompiler for nvrtc.

* WIP first pass at compilation win nvrtc.

* Added testing if file is on file system into CommandLineDownstreamCompiler.
Added sourceContentsPath.

* Make test cuda-compile.cu work by just compiling not comparing output.

* Genearlize DownstreamCompiler usage.

* Fix warning on clang.

* Remove CompilerType from DownstreamCompiler.

* Use DownstreamCompiler interface for all compilers.

NOTE for FXC, DXC and GLSLANG this doesn't mean using 'compile' - it's still extracting functions from shared library.

* Replace DownstreamCompiler::SourceType -&gt; SlangSourceLanguage

* Replace _canCompile with something data driven.

* Fix compiling on gcc/clang for DownstreamCompiler.

* Moved some text conversions into DownstreamCompiler.

* Fix problem on non-vc builds with not having return on locateCompilers for VS.

* Change so no warning for code not reachable on locateCompilers for vs.

* WIP: CUDA code generation - currently just using CPU layout and HLSL.

* emitXXXForEntryPoint -&gt; emitEntryPointSource
emitSourceForEntryPoint -&gt; emitEntryPointSourceFromIR
Fix up generating cuda to get PTX.

* WIP emitting cuda for IR.

* Small improvements to CUDA ouput.

* Disable the CUDA emit test, as output not currently compilable.
</content>
</entry>
</feed>
