<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/tools/gfx/metal, 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>2025-05-05T18:11:13+00:00</updated>
<entry>
<title>Correct incorrect enum usage on metal (#6994)</title>
<updated>2025-05-05T18:11:13+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2025-05-05T18:11:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=698e43372cefe0fff13150925aeb7f389c21a938'/>
<id>urn:sha1:698e43372cefe0fff13150925aeb7f389c21a938</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement parameter block to slang-gfx for Metal backend (#6577)</title>
<updated>2025-04-03T22:52:06+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2025-04-03T22:52:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ac0dc491e1d39dc469b8879dc839b1ac2e76e33d'/>
<id>urn:sha1:ac0dc491e1d39dc469b8879dc839b1ac2e76e33d</id>
<content type='text'>
* implement parameterblock for metal

Metal uses argument buffer to pass parameter buffer to pipeline, in this
change, we implement a simple way to copy the data to argument buffer.

In argument buffer tier2 rule, all the fields in parameter block will be
flatten to ordinary data, therefore
 - we keep the m_data as in ShaderObjectImpl a CPU buffer to track on the data set in.
 - For resource types, they will be represeted as device pointer or resource id in argument
   buffer, we will just set their address or id at corresponsing offset in the CPU buffer
   every time when 'setResource' or 'setSampler' is called.
 - When binding the pipeline, we just simply copy the CPU argument buffer to GPU argument buffer.
 - The only special case is nested parameter block. Because nested parameter block is represented
   as a device pointer which will be another argument buffer, we will just recursively call
  `_ensureArgumentBufferUpToDate` to get sub-object's argument buffer, and fill the GPU address of
  those 'sub'-argument buffer to the root argument buffer at correct offset.

* Inform command encoder to hazard track the bindless resources

Since for all the resources within argument buffer are bindless, Metal
won't automatically hazard track those resources, we will have to call
'useResources' to inform Metal to hazard track those resources,
otherwise we will have to call wait fence after each command submission.

* nullptr check

* address comment</content>
</entry>
<entry>
<title>Fix precompiledTargetModule tests (#6455)</title>
<updated>2025-02-27T02:20:29+00:00</updated>
<author>
<name>cheneym2</name>
<email>acheney@nvidia.com</email>
</author>
<published>2025-02-27T02:20:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=02706dfc5f0526f4f8ca337be16d7b00640ba168'/>
<id>urn:sha1:02706dfc5f0526f4f8ca337be16d7b00640ba168</id>
<content type='text'>
* Fix precompiledTargetModule tests

Add SPIRV-Tool linker support to gfx unit tests
and use the linker in precompileModule tests
that use precompiled modules to reconstitute
SPIRV shaders that were modularly compiled.

Fix a Slang reference count bug in the
precompile service.

* Use sm_6_6

New DXC requires higher version
for linkability.

* Rename helper function, pass by reference

* Link through slang-glslang

* Add missing files

* Fix metal

* format code

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;
Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Add implementation for 'uploadTextureData' in metal (#6443)</title>
<updated>2025-02-24T19:22:43+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2025-02-24T19:22:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=edcb2f0b8216f964f10ba60d96b8070fdc1ae257'/>
<id>urn:sha1:edcb2f0b8216f964f10ba60d96b8070fdc1ae257</id>
<content type='text'>
Close issue: #6386.

- Implement uploadTextureData in metal
- Fix a bug in 'copyTextureToBuffer' in metal
    The last parameter for Metal::copyFromTexture is the
    'destinationBytesPerImage', but previous implementation
    fill in the destination size which is wrong in 3-D texture.</content>
</entry>
<entry>
<title>Metal fix (#6413)</title>
<updated>2025-02-21T00:59:49+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2025-02-21T00:59:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4d286aab2ec23c081f23846f5dfdb30b1c05728b'/>
<id>urn:sha1:4d286aab2ec23c081f23846f5dfdb30b1c05728b</id>
<content type='text'>
Partially fix #6378

* Fix invalid access mode for texture_buffer

* Fix texture view create issue in metal

In newTextureView, levelRange should represent the mipmap level range,
while sliceRange should represent the texture layer range for texture
array. But the implement inverse those two wrongly.</content>
</entry>
<entry>
<title>Fix metal issue (#6361)</title>
<updated>2025-02-14T18:05:41+00:00</updated>
<author>
<name>kaizhangNV</name>
<email>149626564+kaizhangNV@users.noreply.github.com</email>
</author>
<published>2025-02-14T18:05:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a70113c425cbd5bba2e83e04e521fb594143cb9e'/>
<id>urn:sha1:a70113c425cbd5bba2e83e04e521fb594143cb9e</id>
<content type='text'>
* Fix metal issue

- implement waitForFences for metal backend
- fix a bug that it misses clear the entryPoints when initializing
  RootShaderObject

* format

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Correct include dir for libslang (#5539)</title>
<updated>2024-11-14T04:34:18+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-11-14T04:34:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=7b570feed42976a6e787d79a70aaf8e667745e58'/>
<id>urn:sha1:7b570feed42976a6e787d79a70aaf8e667745e58</id>
<content type='text'>
This stops adding the repo root to the include path for anything linking
with slang. This enabled a bunch of convenient includes, but might lead
to confusing behavior for anyone including slang. Not to mention
differences including it from an install vs source.

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Move switch statement bodies to their own lines (#5493)</title>
<updated>2024-11-05T17:47:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-11-05T17:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b118451e301d734e3e783b3acdf871f3f6ea851c'/>
<id>urn:sha1:b118451e301d734e3e783b3acdf871f3f6ea851c</id>
<content type='text'>
* Move switch statement bodies to their own lines

* format

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>format</title>
<updated>2024-10-29T06:49:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-10-29T06:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21'/>
<id>urn:sha1:f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21</id>
<content type='text'>
* format

* Minor test fixes

* enable checking cpp format in ci</content>
</entry>
<entry>
<title>Support parameter block in metal shader objects. (#4671)</title>
<updated>2024-07-19T18:49:42+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-07-19T18:49:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f114433debfba67cbe1db239b6e92278d41ed438'/>
<id>urn:sha1:f114433debfba67cbe1db239b6e92278d41ed438</id>
<content type='text'>
* Support parameter block in metal shader objects.

* Ingore parameter block tests on devices without tier2 argument buffer.

* Fix warning.

* Fix texture subscript test.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
</feed>
