<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tests/cross-compile/image-load.slang, 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>2023-11-16T22:32:33+00:00</updated>
<entry>
<title>Unify stdlib `Texture` types into one generic type. (#3327)</title>
<updated>2023-11-16T22:32:33+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-11-16T22:32:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4c78efd0c34442866f20e9d00bbb6908115c9a01'/>
<id>urn:sha1:4c78efd0c34442866f20e9d00bbb6908115c9a01</id>
<content type='text'>
* Unify Texture types in stdlib into 1 generic type.

* Fixes.

* Fix.

* Fixes.

* Fix reflection.

* Fix binding reflection.

* Add gather intrinsics.

* Fix gather intrinsics.

* Fix texture type toText.

* Fix intrinsic.

* fix cuda intrinsic.

* Fix project files.

* cleanup.

* Fix.

* Fix.

* Fix sampler feedback test.

* Fix getDimension intrinsics.

* Fix spirv sample image intrinsics.

* Fix test.

* Fix GLSL intrinsic.

* Cleanup.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Warning on lossy implicit casts. (#2367)</title>
<updated>2022-08-18T06:08:34+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2022-08-18T06:08:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=adaea0e993fd8db351b5dad92802e47ed6d0ec77'/>
<id>urn:sha1:adaea0e993fd8db351b5dad92802e47ed6d0ec77</id>
<content type='text'>
* Warning on bool to float conversion.

* Fix test cases.

* Improve.

* LanguageServer: don't show constant value for non constant variables.

* Fix tests.

* Fix warnings in tests.

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Translate .Load() to imageLoad() for Vulkan (#967)</title>
<updated>2019-05-22T16:58:19+00:00</updated>
<author>
<name>Tim Foley</name>
<email>tfoleyNV@users.noreply.github.com</email>
</author>
<published>2019-05-22T16:58:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=06e1ab6982df097727b74174d5b39a7f27c2dae3'/>
<id>urn:sha1:06e1ab6982df097727b74174d5b39a7f27c2dae3</id>
<content type='text'>
* Translate .Load() to imageLoad() for Vulkan

We were already emitting calls to `imageLoad()` and `imageStore` when a `RWTexture*` was used with `operator[]`:

```hlsl
RWTexture2D&lt;float&gt; myTex;
...
float value = myTex[xy]; // becomes an imageLoad
myTex[xy] = value;       // becomes an imageStore
```

However, we were *not* correctly handling the translation of an explicit `.Load()` operation:

```hlsl
float value = myTex.Load(xy);
```

The `.Load()` operation was being translated to a GLSL `texelFetch` as it would be a for a `Texture2D`, and not to an `imageLoad()` as would make sense for a `RWTexture2D` (which becomes a GLSL `image2D`).

This fix is confined to the stdlib, and is mostly a matter of emitting either `texelFetch` or `imageLoad` as the GLSL function name depending on the "access" of the resource type. It is messy code, but straightforward.

One extra detail was that there had been logic to emit a `, 0` argument in the `texelFetch` calls in the non-read-only case, because `texelFetch` usualy requires an explicit mip-level argument and `.Load()` on a `RWTexture*` doesn't recieve an LOD parameter. This is a non-issue now that we are calling `imageLoad()` instead, because `imageLoad` doesn't need/want the extra argument.

* fixup: change test baseline based on recent GLSL output changes

* fixup: review feedback
</content>
</entry>
</feed>
