mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

8.3K
active users

#spirv

0 posts0 participants0 posts today
David Neto<p><span class="h-card" translate="no"><a href="https://mastodon.social/@pervognsen" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>pervognsen</span></a></span> </p><p>We're probably on the same page about formal methods.</p><p>I wanted to point out a cool example I helped with: formalizing the structured control flow rules for SPIR-V.</p><p><a href="https://dl.acm.org/doi/10.1145/3571253" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">dl.acm.org/doi/10.1145/3571253</span><span class="invisible"></span></a></p><p>This was a really nice blend of theory and practice to nail the details on a gnarly bit of the GPU intermediate language we know and love. And in the end the (prose) rules are easier to understand too.</p><p><a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a></p>
David Neto<p>There are now 48 registered SPIR-V generator tools.</p><p>Woohoo.</p><p><a href="https://github.com/KhronosGroup/SPIRV-Headers/blob/main/include/spirv/spir-v.xml#L100" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/KhronosGroup/SPIRV-</span><span class="invisible">Headers/blob/main/include/spirv/spir-v.xml#L100</span></a></p><p><a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/khronosgroup" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>khronosgroup</span></a></p>
Giuseppe Bilotta<p>I'm getting the material ready for my upcoming <a href="https://fediscience.org/tags/GPGPU" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GPGPU</span></a> course that starts on March. Even though I most probably won't get to it,I also checked my trivial <a href="https://fediscience.org/tags/SYCL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SYCL</span></a> programs. Apparently the 2025.0 version of the <a href="https://fediscience.org/tags/Intel" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Intel</span></a> <a href="https://fediscience.org/tags/OneAPI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OneAPI</span></a> <a href="https://fediscience.org/tags/DPCPP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DPCPP</span></a> runtime doesn't like any <a href="https://fediscience.org/tags/OpenCL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenCL</span></a> platform except Intel's own (I have two other platforms that support <a href="https://fediscience.org/tags/SPIRV" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SPIRV</span></a>, so why aren't they showing up? From the documentation I can find online this should be sufficient, but apparently it's not&nbsp;…)</p>
Ben Ashbaugh<p>I've been writing quite a few SPIR-V modules by hand for testing lately. It's tolerable, but only barely.</p><p>My primary complaints are:</p><p>1. Verbosity. A test for a single instruction tends to be at least 20 lines and sometimes much more.<br>2. SSA is great for compilers, not so much for humans.<br>3. Getting all of the type declarations and capabilities right is annoying.</p><p>Is there a better way? <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a></p>
David Neto<p>Vulkan 1.4:</p><p>Glslang, Shaderc, and SPIRV-Tools updates have landed to be able to target Vulkan 1.4.<br>No major changes to Vulkan SPIR-V, so this is mostly about being able to specify Vulkan 1.4 in options lists.</p><p>These will be rolled into the next Vulkan SDK.</p><p><a href="https://mastodon.gamedev.place/tags/vulkan" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a></p>
Khronos Group<p>Khronos' OpenCL Working Group has issued a Request for Proposal (<a href="https://fosstodon.org/tags/RFP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>RFP</span></a>) for OpenCL LLVM SPIR-V Backend. The goal of this project is to address and integrate specific functionalities that are currently available in the translator project but missing from the backend. All bids are due December 6, 2024. </p><p>Learn more: <a href="https://www.khronos.org/rfp/khronos-opencl-llvm-spir-v-backend" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">khronos.org/rfp/khronos-opencl</span><span class="invisible">-llvm-spir-v-backend</span></a><br><a href="https://fosstodon.org/tags/LLVM" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LLVM</span></a> <a href="https://fosstodon.org/tags/SPIRV" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SPIRV</span></a> <a href="https://fosstodon.org/tags/SPIR" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SPIR</span></a></p>
Siebencorgie<p>The rust-gpu project now has two more maintainers. Happy to see the project gaining speed!</p><p>I'm using rust-gpu for most my Vulkan experiments these days. It's one of the enablers of my SDF-compiler toolchain. It lets you define linking points, which in turn allows me to link my SDF generated SPIR-V code into rust-gpu generated SPIR-V modules.</p><p><a href="https://rust-gpu.github.io/blog/2024/11/06/new-maintainers/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">rust-gpu.github.io/blog/2024/1</span><span class="invisible">1/06/new-maintainers/</span></a></p><p><a href="https://mastodon.gamedev.place/tags/gamedev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>gamedev</span></a> <a href="https://mastodon.gamedev.place/tags/cc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cc</span></a> <a href="https://mastodon.gamedev.place/tags/compilers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>compilers</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/vulkan" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/rustlang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rustlang</span></a> <a href="https://mastodon.gamedev.place/tags/rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rust</span></a></p>
Lukas<p>DirectX is adopting SPIR-V 🤯</p><p><a href="https://devblogs.microsoft.com/directx/directx-adopting-spir-v/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">devblogs.microsoft.com/directx</span><span class="invisible">/directx-adopting-spir-v/</span></a></p><p><a href="https://swiss.social/tags/directx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>directx</span></a> <a href="https://swiss.social/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> <a href="https://swiss.social/tags/khronos" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>khronos</span></a> <a href="https://swiss.social/tags/gamedev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>gamedev</span></a></p>
alia<p>Finally got <a href="https://sunny.garden/tags/HLSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HLSL</span></a> -&gt; <a href="https://sunny.garden/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> -&gt; running in <a href="https://sunny.garden/tags/bevy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>bevy</span></a>! Just a simple compute shader for slope/normal/ocean detection at the moment. The spirv inpsector at <a href="https://www.khronos.org/spir/visualizer/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">khronos.org/spir/visualizer/</span><span class="invisible"></span></a> was a life saver! also, this is the first time ive use the build.rs in <a href="https://sunny.garden/tags/rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rust</span></a> suuuper handy for automatically recompiling the hlsl. Feels like bevy's Dx12 backend might need some love since i had to switch back to vulcan but so happy to have actually got it running.</p>
David Neto<p>I think people get tied up in knots when trying to parse SPIR-V with structured control flow.</p><p>You gotta do it in reverse structured post-order.</p><p>Once you lay out the basic blocks in that order, the nested control constructs map to *intervals* over that list. (:galaxy brain:)</p><p>For details, see Tint's SPIR-V to WGSL translator.</p><p><a href="https://dawn.googlesource.com/dawn/+/refs/heads/main/src/tint/lang/spirv/reader/ast_parser/function.cc#72" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">dawn.googlesource.com/dawn/+/r</span><span class="invisible">efs/heads/main/src/tint/lang/spirv/reader/ast_parser/function.cc#72</span></a></p><p><a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/vulkan" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/wgsl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>wgsl</span></a> <a href="https://mastodon.gamedev.place/tags/webgpu" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>webgpu</span></a></p>
I HAVE MOVED<p>Does anyone know whether <a href="https://functional.cafe/tags/SpirV" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SpirV</span></a> supports closures?</p><p>By the spec, it seems like I can define a function inside a function.<br>Can the outer function return a pointer to the inner function?</p><p>And since we're here, is there a dedicated forum/community/chat where I can ask this kinds of questions?<br>The Khronos SPIR forum seems dead. =|</p>
David Neto<p><span class="h-card" translate="no"><a href="https://fosstodon.org/@ypujante" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>ypujante</span></a></span> <br>(And, those would be one of the unit tests of the SPIR-V to WGSL translator, converted to an end-to-end test so we can check the right thing will be emitted on all the backend languages.)</p><p><a href="https://mastodon.gamedev.place/tags/webgpu" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>webgpu</span></a> <a href="https://mastodon.gamedev.place/tags/tint" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>tint</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/wgsl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>wgsl</span></a> <a href="https://mastodon.gamedev.place/tags/da" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>da</span></a></p>
I HAVE MOVED<pre><code>mkdir src/Targets/SpirV<br></code></pre><p>It's happening.... _^</p><p>I'm finally starting the work to compile <a href="https://functional.cafe/tags/Squarepants" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Squarepants</span></a> to <a href="https://functional.cafe/tags/SpirV" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SpirV</span></a>... <br>I never thought my language would get to this point! =D =D =D</p><p><a href="https://functional.cafe/tags/FunctionalProgramming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FunctionalProgramming</span></a> <a href="https://functional.cafe/tags/graphics" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>graphics</span></a></p>
I HAVE MOVED<p>I'm finally at the point where I have to start working on perhaps the main feature of my programming language Squarepants: the ability to compile to GPU Shaders.</p><p>The most attractive target would be <a href="https://functional.cafe/tags/SpirV" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SpirV</span></a> which is an intermediate representation that works almost everywhere... Except on browsers, and only because <a href="https://functional.cafe/tags/Apple" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Apple</span></a> didn't want to give control of the standard to the group that develops SpirV.<br>Instead, Apple imposed <a href="https://functional.cafe/tags/WGSL" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WGSL</span></a> , which is a language instead than an intermediate representation, so it's a pain in the ass to target and will end up with the same problem as <a href="https://functional.cafe/tags/javascript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>javascript</span></a> .</p><p>At some point there will be translators from SpirV to WGSL, but I can't rely on those now.</p><p>So, what am I going to target?<br>Right now Squarepants compiles to javascript, so can run easily in both browsers and <a href="https://functional.cafe/tags/nodejs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nodejs</span></a>.</p><p>There is a project to run SpirV (via Vulkan) on node, but has been dead for years, which means that if I want to compile to a native application, I need Squarepants to compile to C or LLVM first.</p><p>OTOH if I go through the square-peg-in-round-hole and target WGSL, then I can target browsers.</p><p>-sigh-, I feel like I have no good option.</p>
Julien Barnoin<p>I know SPIR-V is not meant for human readability and all that, but damn. Is there not any way that the variables were named anything closer to useful than %13525? I understand that it's not a one-to-one match with my glsl variables, but like... This feels like it's actively trying to obfuscate the code 🥲</p><p>Maybe there's some glslang option I don't know about that tries to make them a bit clearer?</p><p><a href="https://mastodon.gamedev.place/tags/glsl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glsl</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/vulkan" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programming</span></a> <a href="https://mastodon.gamedev.place/tags/gamedev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>gamedev</span></a></p>
Vulkan<p>The SPIR Working Group developed 2 new SPIR-V extensions to provide shader authors with more guarantees about the execution model of shaders: SPV_KHR_maximal_reconvergence and VK_KHR_shader_quad_control.</p><p>Learn more: <a href="https://www.khronos.org/blog/khronos-releases-maximal-reconvergence-and-quad-control-extensions-for-vulkan-and-spir-v" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">khronos.org/blog/khronos-relea</span><span class="invisible">ses-maximal-reconvergence-and-quad-control-extensions-for-vulkan-and-spir-v</span></a><br><a href="https://fosstodon.org/tags/SPIRV" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SPIRV</span></a> <a href="https://fosstodon.org/tags/Vulkan" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Vulkan</span></a> <a href="https://fosstodon.org/tags/Shaders" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Shaders</span></a></p>
Siebencorgie<p>My small SDF language is working now!</p><p>It currently compiles this code in ~5ms into a new SPIR-V module that is linked into the sphere-tracing shader. </p><p>The `offset` parameter is wired to a push constant. So you can move the sphere/torus in this example without having to recompile the SDF.</p><p><a href="https://mastodon.gamedev.place/tags/compilers" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>compilers</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/langdev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>langdev</span></a> <a href="https://mastodon.gamedev.place/tags/vulkan" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/sdf" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sdf</span></a></p>
blake shaw 🇵🇸<p>wow this project is so cool, a sophisticated <a href="https://functional.cafe/tags/shader" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>shader</span></a> IDE with its own <a href="https://functional.cafe/tags/SPIRV" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SPIRV</span></a> virtual machine<br><a href="https://shadered.org/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">shadered.org/</span><span class="invisible"></span></a><br><a href="https://github.com/dfranx/SPIRV-VM" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">github.com/dfranx/SPIRV-VM</span><span class="invisible"></span></a></p><p><a href="https://functional.cafe/tags/glsl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>glsl</span></a></p>
Pekka Jääskeläinen<p>chipStar 1.0 released! It's a tool for compiling and running CUDA/HIP applications on SPIR-V-supported OpenCL or LevelZero platforms. v1.0 can already run various HPC applications correctly. See: <a href="https://github.com/CHIP-SPV/chipStar/releases/tag/v1.0" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/CHIP-SPV/chipStar/r</span><span class="invisible">eleases/tag/v1.0</span></a> <br><a href="https://fosstodon.org/tags/opencl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>opencl</span></a> <a href="https://fosstodon.org/tags/levelzero" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>levelzero</span></a> <a href="https://fosstodon.org/tags/spirv" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>spirv</span></a> <a href="https://fosstodon.org/tags/cuda" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cuda</span></a> <a href="https://fosstodon.org/tags/hip" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>hip</span></a></p>
Giuseppe Bilotta<p>At the very least, this could give us support for <a href="https://fediscience.org/tags/Intel" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Intel</span></a> hardware, and, at least in theory, potentially any device with <a href="https://fediscience.org/tags/OpenCL2" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OpenCL2</span></a> and <a href="https://fediscience.org/tags/SPIRV" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SPIRV</span></a> support —such as the Mali GPU on my phone! I would be very curious to test the performance on it compared to the CPU of the same device.</p>