<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/build, 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>Warnings for uninitialized values (#4530)</title>
<updated>2024-07-09T23:18:36+00:00</updated>
<author>
<name>venkataram-nv</name>
<email>vedavamadath@nvidia.com</email>
</author>
<published>2024-07-09T23:18:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=0e6c5c518953141f31c09e5f10d3939054f9b1ee'/>
<id>urn:sha1:0e6c5c518953141f31c09e5f10d3939054f9b1ee</id>
<content type='text'>
This extends the code for handling uninitialized output parameters.
Still needs to handle generic templates and assignment of uninitialized
values more carefully.

The file containing the relevant code are now in

    source/slang/slang-ir-use-uninitialized-values.cpp

rather than the previous

    source/slang/slang-ir-use-uninitialized-out-param.h

and the top-level function is now checkForUsingUinitializedValues.

Additionally a rudimentary test shader has been added for this case, which replaces the old file for out params only; tests/diagnositcs/uninitialized-out.slang becomes tests/diagnositcs/uninitialized.slang.

What this does not implement (could be future PRs):
* Checking uninitialized fields within constructors
* Partially uninitialized values with respect to data structure (e.g. arrays/structs/vector types)
* Partially uninitialized values with respect to control flow (e.g. if/else/loop)</content>
</entry>
<entry>
<title>Expand upon existing `ImageSubscript` support (Metal, GLSL, SPIRV) (#4408)</title>
<updated>2024-06-26T13:37:18+00:00</updated>
<author>
<name>ArielG-NV</name>
<email>159081215+ArielG-NV@users.noreply.github.com</email>
</author>
<published>2024-06-26T13:37:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=e1d0ef2002d7b0f459cf689ec1f8e37c4ff2afba'/>
<id>urn:sha1:e1d0ef2002d7b0f459cf689ec1f8e37c4ff2afba</id>
<content type='text'>
* Add additional `ImageSubscript` features:

1. Added ImageSubscript support for Metal &amp; a test case
    * Merge GLSL/SPIRV/Metal `ImageSubscript` legalization pass
2. Added multisample support to glsl/spirv/metal for when using ImageSubscript
    * Added in this PR since the overhaul of the code merges together GLSL/SPIRV/Metal implementation
3. Fixed minor metal texture `Load`/`Read` bugs
    * [HLSL methods of access do not support subscript accessor for texture cube array](https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/texturecubearray)
    * removed swizzling of uint/int/float
    * other odd bugs which were causing compile errors

note: Compute tests do not work due to what seems to be the GFX backend (causes crash without error report). The tests are disabled.

* disable LOD with texture 1d

seems that LOD for 1d textures need to be a compile time constant as per an error metal throws

* syntax error in hlsl.meta

* static_assert alone with intrinsic_asm error

provides cleaner errors
Note: `static_assert` seems to be unstable and not be fully respected (still require `intrinsic_asm` to avoid a stdlib compile error)

* change comment to `// lod is not supported for 1D texture

* add `static_assert` in related code gen paths

* address review

* address review

* add asserts as per review comment, NOTE: unclear if these should be release 'asserts' as well</content>
</entry>
<entry>
<title>capture/replay: implement infrastructure for capture (#4372)</title>
<updated>2024-06-13T20:02:12+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-06-13T20:02:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f0d40ad5e1d0a0dec39fe8a141d3f81d88fc576a'/>
<id>urn:sha1:f0d40ad5e1d0a0dec39fe8a141d3f81d88fc576a</id>
<content type='text'>
* Define api call ID for each being captured methods

* Add parameter encoder interface

* Add outputStream and capture manager

Add infrastructure for output stream
    This is the interface to record the method and parameter, and also
    provide functionality to write all the serialized data into file.

Add capture manager:
    Capture manager is associated to global session object, it will
    provide the functionality to actual record all the APIs.

Implement some of parameter encoder functions.

* Fix some Windows &amp; cmake build error

* remove unused headers</content>
</entry>
<entry>
<title>Extend the COM-based API to support whole program compilation. (#4355)</title>
<updated>2024-06-12T16:45:50+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-06-12T16:45:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ccc26c2d22d471ae649bf16f37ed1cd6cfbddd1b'/>
<id>urn:sha1:ccc26c2d22d471ae649bf16f37ed1cd6cfbddd1b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Print warning when operator&lt;&lt; shifting too much (#4255)</title>
<updated>2024-06-04T17:26:12+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2024-06-04T17:26:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9b6b31be5b38c588bde28d5f215d78cfc62620da'/>
<id>urn:sha1:9b6b31be5b38c588bde28d5f215d78cfc62620da</id>
<content type='text'>
* Print warning when operator&lt;&lt; shifting too much

Closes #3944

For the given type of the left side operand to `operator&lt;&lt;` is not big
enough for the right side operand, print a warning that the result will
be always zero.</content>
</entry>
<entry>
<title>Add options to speedup compilation. (#4240)</title>
<updated>2024-05-29T18:14:22+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-05-29T18:14:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=83f176ba8a3bae5533470aed6a90663653f894b8'/>
<id>urn:sha1:83f176ba8a3bae5533470aed6a90663653f894b8</id>
<content type='text'>
* Add options to speedup compilation.

* Fix.

* Plumb options to DCE pass.

* Revert debug change.

* Fix regressions.

* More optimizations.

* more cleanup and fixes.

* remove comment.

* Fixes.

* Another fix.

* Fix errors.

* Fix errors.

* Add comments.</content>
</entry>
<entry>
<title>[gfx] metal backend skeleton (#4223)</title>
<updated>2024-05-27T13:03:13+00:00</updated>
<author>
<name>Simon Kallweit</name>
<email>simon.kallweit@gmail.com</email>
</author>
<published>2024-05-27T13:03:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d9443d670ef8413971fe7c3f02368b60a7fc5904'/>
<id>urn:sha1:d9443d670ef8413971fe7c3f02368b60a7fc5904</id>
<content type='text'>
* add metal-cpp submodule

* add metal-cpp cmake target

* gfx metal backend skeleton

* add premake support

* add foundation framework

* add metal-cpp include to premake

* update vs project file

---------

Co-authored-by: Simon Kallweit &lt;skallweit@nvidia.com&gt;
Co-authored-by: Jay Kwak &lt;82421531+jkwak-work@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>capture/relay: Add capture interface classes (#4177)</title>
<updated>2024-05-17T16:43:08+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2024-05-17T16:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9f786fdf71e90339e20979ef3ba8f073657f5a98'/>
<id>urn:sha1:9f786fdf71e90339e20979ef3ba8f073657f5a98</id>
<content type='text'>
* capture/relay: Add capture interface classes

Add `ModuleCapture` class for capturing `IModule`
  - The `IModule` can only be created from
    -- `ISession::loadModule`
    -- `ISession::loadModuleFromIRBlob`
    -- `ISession::loadModuleFromSource`
    -- `ISession::loadModuleFromSourceString`
    so, we create the `ModuleCapture` at those methods in `SessionCapture`
    class. We use a hash map to store a map from `IModule` to `ModuleCapture`
    to avoid creating new `ModuleCapture` when there is already an old one.
  - In `SessionCapture::getLoadedModule`, we will assert on not finding
    a `ModuleCapture` instance.

Add `EntryPointCapture` class for capturing `IEntryPoint`.
  - The `IEntryPoint` can only be created from:
    -- `IModule::findEntryPointByName`
    -- `IModule::findAndCheckEntryPoint`
    so, we create the `EntryPointCapture` at those methods in `ModuleCapture`.
    Similarly, we use a hash map to store a map from `IEntryPoint` to
    `EntryPointCapture`.
  - In `IModule::getDefinedEntryPoint`, we will assert on not finding
    a `EntryPointCapture` instance.

Add `CompositeComponentTypeCapture` class for capturing CompositeComponentType,
but since user is only exposed to `IComponentType`, so `CompositeComponentTypeCapture`
just inherits from `IComponentType`.
  - `CompositeComponentType` can only be created from:
    -- ISession::createCompositeComponentType
    so create it here.

Add `TypeConformanceCapture` class for capturing `ITypeConformance`.
  - The `ITypeConformance` can only be created from:
    -- `ISession::createTypeConformanceComponentType`
    so create it here.

In addition, because `EntryPointCapture` and `ModuleCapture` share a some
base class `IComponentType`, we generate the COM GUID for those two
classes to differentiate them.

* Fix the build issue

* Add nullptr check for output parameter

* define the SLANG_CAPTURE_ASSERT macro used in both debug and release build</content>
</entry>
<entry>
<title>Metal: propagate and specialize address space. (#4137)</title>
<updated>2024-05-09T06:06:46+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-05-09T06:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=bf088c3f12cb47d204fdd3df1bb8a2415d46ba7b'/>
<id>urn:sha1:bf088c3f12cb47d204fdd3df1bb8a2415d46ba7b</id>
<content type='text'>
</content>
</entry>
</feed>
