<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-stdlib-textures.h, 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-25T22:59:17+00:00</updated>
<entry>
<title>Replace stdlib with core-module on files and projects (#5411)</title>
<updated>2024-10-25T22:59:17+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2024-10-25T22:59:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d8969d87dcc9eea3f186a0c93c5e48d3d1659e05'/>
<id>urn:sha1:d8969d87dcc9eea3f186a0c93c5e48d3d1659e05</id>
<content type='text'>
This commit renames the files and projects to prefer "core-module" over
"stdlib".

The directory name `source/slang-stdlib` needs to be renamed too, and
there will be another commit for it soon.</content>
</entry>
<entry>
<title>WGSL implement texture intrinsics except gather and sampler-less (#5123)</title>
<updated>2024-09-21T02:55:49+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2024-09-21T02:55:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c42b5e24b5b9d6b03352d809e0a49485d361154f'/>
<id>urn:sha1:c42b5e24b5b9d6b03352d809e0a49485d361154f</id>
<content type='text'>
This commit implements all of the texture intrinsics for WGSL except "Gather" and sampler-less.
They will be implemented in a separate PR.

A few things to note:

 - texture sampling functions are available only for the fragment shader stage; not for compute
 - WGSL doesn't have any functions similar to CalculateLevelOfDetail or CalculateLevelOfDetailUnclamped.
 - WGSL doesn't have a function overlaoding for textureSample with "clamp" or "status" arguments.
 - WGSL doesn't support Load operation with offset for texture_multisampled_XX and texture_storage_XX.
 - WGSL supports only four types of depth textures: 2D, 2D_array, cube and cube_array.
 - WGSL doesn't support "offset" variants for cube and cube_array.</content>
</entry>
<entry>
<title>Implement texture functions for Metal target (#4158)</title>
<updated>2024-05-14T22:42:12+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2024-05-14T22:42:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=d76bed6c1b03e5d7ef19c947fdd5fcaf33b595f7'/>
<id>urn:sha1:d76bed6c1b03e5d7ef19c947fdd5fcaf33b595f7</id>
<content type='text'>
* Impl texture APIs for Metal target

This commit is to implement texture functions for Metal target.

The following functions are implemented and tested.
 - GetDimensions()
 - CalculateLevelOfDetail()
 - CalculateLevelOfDetailUnclamped()
 - Sample()
 - SampleBias()
 - SampleLevel()
 - SampleCmp()
 - SampleCmpLevelZero()
 - Gather()
 - SampleGrad()
 - Load()

Metal has limited support for the texture functions compared to HLSL.
 - LOD is not supported for 1D texture,
 - Depth textures are limited to 2D, 2DArray, Cube and CubeArray
   textures.
 - "Offset" variants are limited to 2D, 2DArray, 2D-Depth,
   2DArray-Depth and 3D textures.

The functions that cannot be implemented for Metal should properly
be handled by the capability system later.

* Fix the failing test, multi-file.hlsl

I am not sure why this change is needed.

* Fix compile errors on macOS 2nd try

* Remove a typo character to fix the compile error

* Trivial clean up

* Remove `as_type` where it was intended as static_cast

* Use a simpler sytax for __intrinsic_asm

* Trivial clean up

* Remove TEST_AFTER_FIXING_CAPABILITY_PROBLEM after fixing normalize

* Fix the failing test properly

* Fix an incorrect setup of Depth-cube texture

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Fix #3566. (#3574)</title>
<updated>2024-02-12T22:23:53+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-02-12T22:23:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=2e35b08d279b4eb37a359941a06970cdea973502'/>
<id>urn:sha1:2e35b08d279b4eb37a359941a06970cdea973502</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update the GetDimension hlsl builtin for spirv path. In case of sampler, a combined sampled image needs an OpImage to be generated. (#3424)</title>
<updated>2024-01-03T00:22:59+00:00</updated>
<author>
<name>Pankaj Mistry</name>
<email>63069047+pmistryNV@users.noreply.github.com</email>
</author>
<published>2024-01-03T00:22:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f33485c105b354a5a183732f47b9ca59c10ea08f'/>
<id>urn:sha1:f33485c105b354a5a183732f47b9ca59c10ea08f</id>
<content type='text'>
</content>
</entry>
<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>Add GLSL Compatibility. (#3321)</title>
<updated>2023-11-15T01:46:05+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-11-15T01:46:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=12f7237e4060388494c549623f4a640327b7ca08'/>
<id>urn:sha1:12f7237e4060388494c549623f4a640327b7ca08</id>
<content type='text'>
* Parse glsl buffer blocks to GLSLInterfaceBlockDecl

* Parse glsl local size layout declarations

* Parse (and ignore) glsl version directives

* spelling

* Better l-value interpretation for glsl interface blocks

* Better l-value interpretation for glsl interface blocks

* Add compile flag for enabling glsl

* Parse and ignore precision modifiers.

* Automatically import `glsl` module for compatiblity.

* Complete vector and matrix types for glsl

* Remove generated file from repo

* Bump .gitignore

* do not mark out globals as params

* Synthesize entrypoint layout from global inout vars.

* update test result.

* Allow HLSL semantic on global variables.

* Fix.

* Fix test.

* Fix win32 compile error.

* Add more builtin input/output and texture intrinsics.

* Add struct/array constructor syntax.

* Skip `#extension` lines.

* overide operator * for matrix/vector multiplication.

* Add `matrixCompMult`.

* Parse modifiers in for loop init var declr.

* Add more glsl intrinsics, add stage into to var layout.

* Allow `int[3] x` syntax.

* Fix array type syntax.

---------

Co-authored-by: Ellie Hermaszewska &lt;ellieh@nvidia.com&gt;
Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>SPIR-V image operations (#3163)</title>
<updated>2023-09-05T15:26:59+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2023-09-05T15:26:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=2c2294d3310b24fd73cd41ec51338a736f3a2886'/>
<id>urn:sha1:2c2294d3310b24fd73cd41ec51338a736f3a2886</id>
<content type='text'>
* Add __truncate and __sampledType for spirv_asm

Allows some texture tests to start passing

* add __isVector

Currently unused

* Add 1-vector legalization pass (WIP)

* Add capabilities for image types

* neaten instruction dumping

* add 1-vector test

* Add a couple of cases to vec1 legalization

* Remove texture tests from expected failures

* comment

* regenerate vs projects

* Remove redundant define form synchapi emulation

* refactoring image methods

* All sample functions refactored

* Remove incorrect glsl intrinsics

Partially addresses https://github.com/shader-slang/slang/issues/3174

* __subscript image ops via writing funcs

* Extract texture struct writing from core.meta.slang

* Abstract out cuda intrinsic

* Remvoe erroneous call to opDecorateIndex

* spirv asm IR utils

* Correct position of loads for SPIR-V asm inst operands

* Raise constructors to global scope during spir-v legalization

* Correct snippet output

* Implement most texture sampling ops for SPIR-V

* Legalize 1-vectors for glsl too

* Make SPIR-V inst operands non-hoistable

* Better 1-vector legalization

* Put textures in ptrs for spirv

* insert missing break

* Add vec1 legalization test

* Add some missing pieces to slang-ir-insts

* Greatly neaten vec1 legalization

* a

* Neaten vec1 legalization

* Add image read and write intrinsics for spir-v

* Squash warnings

* regenerate vs projects

* Drop redundant guards

* Drop 5 tests from expected failure list

* Inst numbering changes to cross compile tests

* vec1 legalization tests only on vk

* Correct location of asm op emit

* Inline constant in spirv-asm

* Correct signedness for lane in wave intrinsics

* Extract element from float1 for cuda

* squash warnings

* Neaten spirv-emit

* dedupe more capabilities

* warnings

* neaten assert

* comments

* comments</content>
</entry>
</feed>
