<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/build/visual-studio/core, 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-07-10T14:37:21+00:00</updated>
<entry>
<title>WIP Drop Premake (#3703)</title>
<updated>2024-07-10T14:37:21+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-07-10T14:37:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=0e56999a573fada2cce6e94c21ef856cc88dc933'/>
<id>urn:sha1:0e56999a573fada2cce6e94c21ef856cc88dc933</id>
<content type='text'>
* Remove premake lua

* Remove premake generated vs project

* remove deps file

* Remove premake driving bat files

* Full test matrix under CMake

* Remove premake based ci workflows

* Wiggle CI

* remove cmake from ci name

* find frameworks correctly on osx

* remove cmake from ci name

* Cope with sccache not being available

* cmake based falcor tests

* ci wobble

* only install ninja if necessary

* more appropriate cache name

* Remove premake from build instructions

* Add some docs on ci setup

* remove premake from regression tests

* remove premake from perf test

* Set SLANGC_PATH

* ci wobble

* bump slang-binaries

* ci wobble

* Bump spirv tools

* dont use timestamp in cache

* remote debug code

* cache key wobble

* Install sccache after building llvm

* Do not build llvm tools

* ci wobble

* ci wobble

* ci wobble

* ci wobble

* ci wobble

* Tests spirv via glsl in ci

* Define SLANG_ENABLE_XLIB=1

* osx builds on aarch64

* ci wobble

* ci wobble

* ci wobble

* ci wobble

* ci wobble

* ci wobble

* package documentation and metadata with cmake

* ci wobble

* Split hlsl double intrinsic tests

* ci wobble

* Correct type for double log10

Fixes https://github.com/shader-slang/slang/issues/4549

* remove working test from expected failures

* add broken test to expected failures

* smaller build for falcor tests

* ci wobble

* A few exclusions in ci

* wip, release script

* Enable examples in ci

* neaten release script

* Correct building docs

* Only use xlib vulkan when slang_enable_xlib is true

* bump slang-llvm version

* Remove toolchain file use

* Bump slang-llvm preset version

* slash direction

* Improve build directions

* Add msvc cross build documentation

* Disable old release files

* Smaller set of releases for test

* Allow not building llvm

* simplify release matrix

* Cross releases

* formatting

* formatting

* ci wiggle

* ci wiggle

* cleaner

* neaten

* ci wobble

* formatting

* Install cross tools on linux

* do not clean build dir

* neaten ci

* neaten ci

* neaten ci

* remove unused release workflow files

* Build llvm on some platforms

* neaten ci

* notarize on osx

* s/x64/x86_64

* ci wobble

* Embed stdlib for release build

* wobble ci

* wobble ci

* s/x64/x86_64

* ci wobble

* ci wobble

* ci wobble

* vk-gl-cts on cmake

* neaten ci

* neaten ci

* bump cache action version

* Cope with windows being weird about case

* old glibc version

* old glibc version

* Correct action file

* Keep cache hot on main branch

* separate small script for old glibc releases

* ci wobble

* ci wobble

* Run cmake outside of docker

* only sign on releases

* Revert "Run cmake outside of docker"

This reverts commit a58aaba939a4aa35fe70962fd60d9512b143592f.

* python3 on build image

* less parallel

* ci wobble

* ci wobble

* ci wobble

* newer git

* ci wobble

* ci wobble

* Use newer docker image

* Use newer docker image

* sccache wobble

* permissions issue

* neaten

* build llvm in ci

* build llvm in ci

* Remove linux clang build in ci

* Only install crossbuild tools on non-aarch64 systems

* neaten ci.yml

* Correct github matrix

* Simplify github matrix

* ci wobble

* Disable broken test

See https://github.com/shader-slang/slang/issues/4589

* ci wobble

* Neater slang-llvm archive filename

* Neater path for uploading artifacts

* Neater ci names

* Use Windows SDK 10.0.19041.0 in cmake builds</content>
</entry>
<entry>
<title>WIP: CMake (#3326)</title>
<updated>2023-12-08T11:24:34+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2023-12-08T11:24:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4321929879c1ed5b87ff95a99ca7da91e28d18fd'/>
<id>urn:sha1:4321929879c1ed5b87ff95a99ca7da91e28d18fd</id>
<content type='text'>
* More robust input and output selection in generator tools

* Add cmake build system

* Get slang-test running with cmake

* Bump lz4 and miniz dependencies

* Make cmake build more declarative

* Correct preprocessor logic in slang.h

* Add cuda test to compute/simple

* Remove empty cmake files

* output placement for cmake, and commenting

* Correct include paths in spirv-embed-generator

* Format cmake with gersemi

* Make cmake build clerer

* Neaten header generation

Also work around https://gitlab.kitware.com/cmake/cmake/-/issues/18399
by introducing correct_generated_properties to set the GENERATED flag in
the correct scope

* remove unused files

* use 3.20 to set GENERATOR property properly

* spelling

* more flexible linker arg setting

* replace slang-static with obj collection

* Set rpath and linker path correctly

* neaten generated file generation

* tests working with cmake build

* fix premake5 build

* comment and neaten cmake

* remove unnecessary dependency

* Build aftermath example only when aftermath is enabled

* Add slang-llvm and other dependencies

* Put modules alongside binaries

* Find slang-glslang correctly

* Better option handling

* comments

* add llvm build test

* Better option handling

* cmake wobble

* use UNICODE and _UNICODE

* remove other workflows

* use ccache

* neaten

* limit parallel for llvm build

* use ninja for build

* Windows and Darwin slang-llvm builds

* cache key

* verbose llvm build

* cl on windows

* sccache and cl.exe

* use cl.exe

* Correct package detection

* less verbosity

* Simplify miniz inclusion

* fix build with sccache

* Neaten llvm building

* neaten

* Neaten slang-llvm fetching

* more surgical workarounds

* Add ci action

* Get version from git

* better variable naming

* add missing include

* clean up after premake in cmake

* more docs on cmake build

* ci wobble

* add imgui target

* more selective source

* do not download swiftshader

* Some missing dependencies

* only build llvm on dispatch

* Disable /Zi in CI where sccache is present

* simplify

* set PIC for miniz

* set policies before project

* reengage workaround

* more runs on ci

* Add cmake presets

* Add cpack

* move iterator debug level to preset

* Correct lib flag

* simplify action

* Neaten cmake init

* Add todo

* Add simple test wrapper

* Add tests to workflow presets

* rename packing preset

* Correctly set definitions

* docs

* correct preset names

* Make slang-test depend on test-server/test-process

* neaten

* use workflow in actions

* install docs

* Correct module install dir

* debug dist workflow

* Install headers

* neaten header globbing

* Neaten dependency handling

* make lib and bin variables

* Do not set compiler for vs builds, unnecessary

* docs

* allow setting explicit source for target

* maintain archive subdir

* cmake docs

* install headers

* place targets into folders

* cmake docs

* nest external projects in folder

* remove name clash

* Neater external packages

* meta targets in folder structure

* cleaner slang-glslang dll

* Add missing static directive to slang-no-embedded-stdlib

* more robust module copying

* make slang-test the startup project

* folder tweak

* Make FETCH_BINARY the default on all platforms

* Set DEBUG_DIR

* add natvis files to source

* skip spirv tests

* remove test step from debug dist

* Add build to .gitignore

* redo warnings to be more like premake

* Update imgui

* clean more premake files

* Disable PCH for glslang, gcc throws a warning

* Add /MP for msvc builds

* warning wobble

* Add script to build llvm

* Add slang-llvm and generators components

* Build slang-llvm in ci

* comments

* fetch llvm with git

* better abi approximation for cache

* better sccache key

* formatting

* Correct logic around disabling problematic debug info for ccache

* exclude gcc and clang from windows ci

* Make dist workflows use system llvm

* naming

* restore normal dist builds

* formatting

* run tests in ci

* Correct slang-llvm url setting

* Rely on the system to find the test tool library

* actions matrix wiggle

* cope with OSX ancient bash

* Correct compilers on windows

* more ci debugging

* Correct rpath handling on OSX

* neaten

* correct path to slang-llvm

* Correct rpath separator on osx

* Find slang-llvm correctly

* smoke tests only on osx

* ci wobble

* Give MacOS module a dylib suffix

* get swiftshader correctly

* cope with bsd cp

* remove debug output

* full tests on osx

* ci wobble

* Add some vk tests to expected failures

* simplify ci

* ci wobble

* exclude dx12 tests from github ci

* remove cmake code for building llvm

* warnings

* warnings as errors for cl

* spirv-tools in path

* add aarch64 ci build

* Add SLANG_GENERATORS_PATH option for prebuilt generators

* neaten

* Correct generator target name

* remove yaml anchors because github actions does not support them

* Demote CMake in docs

Also add info on cross compiling

* Restore premake CI

* use minimal ci for cmake

* Write miniz_export for premake build

and .gitignore it

* Mention build config tool options in docs

* Remove redefined macro for miniz

* regenerate vs project</content>
</entry>
<entry>
<title>Add more wave intrinsics. (#3162)</title>
<updated>2023-08-29T12:55:49+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-08-29T12:55:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9d4e044bad6161a593806fc6fb610d41aa8b4b22'/>
<id>urn:sha1:9d4e044bad6161a593806fc6fb610d41aa8b4b22</id>
<content type='text'>
Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Use ankerl/unordered_dense as a hashmap implementation (#3036)</title>
<updated>2023-08-16T00:57:47+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2023-08-16T00:57:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=45d9961a6a86d184248ef84f6a07125b0c224f97'/>
<id>urn:sha1:45d9961a6a86d184248ef84f6a07125b0c224f97</id>
<content type='text'>
* Correct namespace for getClockFrequency

* missing const

* Add missing assignment operator

* Remove unused variables

* Return correct modified variable

* Use stable hash code for file system identity

* terse static_assert

* Structured binding for map iteration

* Make (==) and getHashCode const on many structs

* Add ConstIterator for LinkedList

* Replace uses of ItemProxy::getValue with Dictionary::at

* Extract list of loads from gradientsMap before updating it

* Const correctness in type layout

* Add unordered_dense hashmap submodule

* Use wyhash or getHashCode in slang-hash.h

* refactor slang-hash.h

* Use ankerl/unordered_dense as a hashmap implementation

Notable changes:
- The subscript operator returns a reference directly to the value,
  rather than a lazy ItemProxy (pair of dict pointer and key)

slang-profile time (95% over 10 runs):

- Before: 6.3913906 (±0.0746)
- After:  5.9276123 (±0.0964)

* 64 bit hash for strings

So they have the same hash as char buffers with the same contents

* Narrowing warnings for gcc to match msvc

* revert back to c++17

* Correct c++ version for msvc

* Use path to unordered_dense which keeps tests happy

* Do not assign to and read from map in same expression

* Remove redundant map operations in primal-hoist

* Split out stable hash functions into slang-stable-hash.h

* 64 bit hash by default

* regenerate vs projects

* Correct return type from HashSetBase::getCount()

* correct width for call to Dictionary::reserve

* Use stable hash for obfuscated module ids

* Signed int for reserve

* clearer variable naming

* Parameterize Dictionary on hash and equality functors

* Allow heterogenous lookup for Dictionary

* missing const

* Use set over operator[] in some places

* Remove unused function

* s/at/getValue</content>
</entry>
<entry>
<title>Add perf benchmark utility. (#2977)</title>
<updated>2023-07-11T16:29:27+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-07-11T16:29:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d0901aa7933ac31b0bf7648a31ec5c13de864457'/>
<id>urn:sha1:d0901aa7933ac31b0bf7648a31ec5c13de864457</id>
<content type='text'>
* Add perf benchmark utility.

* Update documentation.

* Fix.

* Fix doc.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.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>CommandOptions (#2856)</title>
<updated>2023-04-29T13:24:26+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2023-04-29T13:24:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=19c0866b050a022406867aa650302f4efbf8e010'/>
<id>urn:sha1:19c0866b050a022406867aa650302f4efbf8e010</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.</content>
</entry>
<entry>
<title>Some small fixes with Windows/DX usage (#2797)</title>
<updated>2023-04-14T09:08:18+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2023-04-14T09:08:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4c9c8a7a4d9b97fec6041a562638fbea521533ed'/>
<id>urn:sha1:4c9c8a7a4d9b97fec6041a562638fbea521533ed</id>
<content type='text'>
* Correct case of windows.h includes

* Use Slang::SharedLibrary to load directx dlls

* s/max/std::max/

* Factor common OS code in calcHasApi

* Add DXIL test for compute/simple

* s/false/FALSE for calls to WinAPI functions

* Factor common OS code in gfxGetAdapters

* 2 missing headers

d3d12sdklayers for ID3DDebug

climits for UINT_MAX

* Define out unused function on Linux

* Only try to load Vulkan and CUDA on Windows or Linux

* simplify D3DUtil::getDxgiModule

* Remove WIN32_LEAN_AND_MEAN &amp;co from source files

Add a global define

* Set WIN32_LEAN_AND_MEAN &amp;friends in headers

Restore previous state also

* regenerate vs projects</content>
</entry>
<entry>
<title>Artifact simplification (#2781)</title>
<updated>2023-04-11T14:18:18+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2023-04-11T14:18:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=20ea33f3321738e7c1b4cad7bdcaedcdb54dd0f0'/>
<id>urn:sha1:20ea33f3321738e7c1b4cad7bdcaedcdb54dd0f0</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* WIP simplifying artifact interface.

* Use ContainedKind.

* Remove LazyCastableList.
Use ContainedKind for find.

* Remove ICastableList.

* Remove need for ICastableList.

* Remove IArtifactContainer.

* Small fixes.

* Small improvements around Artifact.

* Make explicit find is for *representations* that can cast.
Fix bug in handling casting in lookup.

* Made associated items artifacts too.

* Small fixes.

* Small improvements around writing a container.</content>
</entry>
<entry>
<title>Use c++17 standard (#2686)</title>
<updated>2023-03-27T09:48:46+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2023-03-27T09:48:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=333968af7344bcf0ef77818d076efcf88acd159d'/>
<id>urn:sha1:333968af7344bcf0ef77818d076efcf88acd159d</id>
<content type='text'>
* Use c++17 standard

* regenerate VS projects

* Switch to using std::invoke</content>
</entry>
</feed>
