noc.social is part of the decentralized social network powered by Mastodon.
This instance is focused on technology, networking, linux, privacy, security, infosec, engineering, but open to anyone. Civil discourse, polite and open. Managed by the noc.org / trunc.org team.

Administered by:

Server stats:

677
active users

Learn more

David Neto<p><span class="h-card"><a href="https://mastodon.social/@pervognsen" class="u-url mention" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/khronosgroup" class="mention hashtag" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>Intel</span></a> <a href="https://fediscience.org/tags/OneAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OneAPI</span></a> <a href="https://fediscience.org/tags/DPCPP" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>DPCPP</span></a> runtime doesn't like any <a href="https://fediscience.org/tags/OpenCL" class="mention hashtag" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>LLVM</span></a> <a href="https://fosstodon.org/tags/SPIRV" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SPIRV</span></a> <a href="https://fosstodon.org/tags/SPIR" class="mention hashtag" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>gamedev</span></a> <a href="https://mastodon.gamedev.place/tags/cc" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cc</span></a> <a href="https://mastodon.gamedev.place/tags/compilers" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compilers</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/vulkan" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://mastodon.gamedev.place/tags/rust" class="mention hashtag" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>directx</span></a> <a href="https://swiss.social/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spirv</span></a> <a href="https://swiss.social/tags/khronos" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>khronos</span></a> <a href="https://swiss.social/tags/gamedev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>gamedev</span></a></p>
alia<p>Finally got <a href="https://sunny.garden/tags/HLSL" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HLSL</span></a> -&gt; <a href="https://sunny.garden/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spirv</span></a> -&gt; running in <a href="https://sunny.garden/tags/bevy" class="mention hashtag" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/vulkan" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/wgsl" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>wgsl</span></a> <a href="https://mastodon.gamedev.place/tags/webgpu" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>webgpu</span></a></p>
David Neto<p><span class="h-card"><a href="https://fosstodon.org/@ypujante" class="u-url mention" rel="nofollow noopener noreferrer" 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 noreferrer" target="_blank">#<span>webgpu</span></a> <a href="https://mastodon.gamedev.place/tags/tint" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>tint</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/wgsl" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>wgsl</span></a> <a href="https://mastodon.gamedev.place/tags/da" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>da</span></a></p>
Francesco Orsenigo (he/him)<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 noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>glsl</span></a> <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spirv</span></a> <a href="https://mastodon.gamedev.place/tags/vulkan" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vulkan</span></a> <a href="https://mastodon.gamedev.place/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://mastodon.gamedev.place/tags/gamedev" class="mention hashtag" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>SPIRV</span></a> <a href="https://fosstodon.org/tags/Vulkan" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Vulkan</span></a> <a href="https://fosstodon.org/tags/Shaders" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Shaders</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 noreferrer" target="_blank">#<span>shader</span></a> IDE with its own <a href="https://functional.cafe/tags/SPIRV" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SPIRV</span></a> virtual machine<br><a href="https://shadered.org/" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>opencl</span></a> <a href="https://fosstodon.org/tags/levelzero" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>levelzero</span></a> <a href="https://fosstodon.org/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spirv</span></a> <a href="https://fosstodon.org/tags/cuda" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cuda</span></a> <a href="https://fosstodon.org/tags/hip" class="mention hashtag" rel="nofollow noopener noreferrer" 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 noreferrer" 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 noreferrer" target="_blank">#<span>OpenCL2</span></a> and <a href="https://fediscience.org/tags/SPIRV" class="mention hashtag" rel="nofollow noopener noreferrer" 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>
blake shaw 🇵🇸<p>"The trouble with <a href="https://functional.cafe/tags/SPIRV" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SPIRV</span></a>, 2022 edition"</p><p>yet another "why <a href="https://functional.cafe/tags/Vulkan" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Vulkan</span></a> is so challenging" blog post, this time from a <a href="https://functional.cafe/tags/compiler" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compiler</span></a> author's point of view, specifically concerning the difficulties that arise from working with a control flow graph rather than an AST </p><p><a href="https://xol.io/blah/the-trouble-with-spirv/" rel="nofollow noopener noreferrer" target="_blank"><span class="invisible">https://</span><span class="ellipsis">xol.io/blah/the-trouble-with-s</span><span class="invisible">pirv/</span></a></p>
David Neto<p><span class="h-card"><a href="https://mastodon.gamedev.place/@sascha" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>sascha</span></a></span> <span class="h-card"><a href="https://mastodon.gamedev.place/@wbrbr" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>wbrbr</span></a></span> <br>Yes, that's right.<br>DXC was Stadia's production HLSL compiler, running on Linux, targeting Vulkan SPIR-V.</p><p>Nice demo! Yay for flexibility in shader langauges <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spirv</span></a></p>
Fabian Wahlster<p><span class="h-card"><a href="https://androiddev.social/@romainguy" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>romainguy</span></a></span> with support for <a href="https://mastodon.gamedev.place/tags/spirv" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>spirv</span></a> shaders :)</p>