From 03f0233edc1b2a6a413c8669d67217dee5ddd020 Mon Sep 17 00:00:00 2001 From: Shannon Woods <158105547+swoods-nv@users.noreply.github.com> Date: Thu, 24 Apr 2025 17:58:47 -0400 Subject: [PATCH 1/2] Add committers celebration post --- _posts/2025-04-24-welcome-new-committers.md | 45 +++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 _posts/2025-04-24-welcome-new-committers.md diff --git a/_posts/2025-04-24-welcome-new-committers.md b/_posts/2025-04-24-welcome-new-committers.md new file mode 100644 index 00000000..ca9679f4 --- /dev/null +++ b/_posts/2025-04-24-welcome-new-committers.md @@ -0,0 +1,45 @@ +--- +layout: post +title: "Welcome Our Newest Slang Committers!" +date: 2025-04-24 17:00:00 +categories: [ "blog" ] +tags: [slang] +author: "Shannon Woods, NVIDIA, Slang Working Group Chair" +image: /images/posts/slang-celebration.webp +human_date: "April 24, 2025" +--- + +# Welcome Our Newest Slang Committers! + +We're thrilled to celebrate two outstanding members of the Slang community who have recently become committers: fairywreath and juliusikkala! Their elevation to committer status recognizes their significant contributions to Slang and their ongoing commitment to improving the shader programming ecosystem. + +## Meet Our New Committers + +### fairywreath +fairywreath has demonstrated exceptional expertise in cross-platform shader development and advanced GPU features. Their contributions have significantly expanded Slang's capabilities: + +- **Advanced GPU Features**: Implemented cooperative matrix support, subgroup operations, and shader intrinsics, enabling more powerful GPU computations +- **Cross-Platform Support**: Added crucial features for Metal and WGSL targets, including wave operations and structured buffer support +- **Graphics Pipeline Enhancement**: Contributed mesh shader improvements, SPIRV debugging capabilities, and floating-point pack/unpack intrinsics + +Their work has been particularly impactful in making Slang more powerful and consistent across different graphics APIs and hardware platforms. + +### juliusikkala +juliusikkala has made substantial contributions across multiple areas of Slang, demonstrating deep technical expertise in compiler development and language design. Their work has significantly improved Slang's capabilities in several key areas: + +- **Language Enhancement**: Implemented the `defer` statement, providing developers with more powerful control flow options, and added support for specialization constants in compute shader thread configurations +- **Cross-Platform Compatibility**: Improved GLSL compatibility and SPIR-V output, making Slang more reliable across different graphics APIs +- **Compiler Robustness**: Fixed critical issues in generic specialization, optimization, and type handling, enhancing the compiler's reliability and performance + +Their consistent attention to detail and commitment to code quality has helped make Slang more robust and feature-rich for all users. + +## Why Committers Matter + +Committers play a crucial role in the Slang ecosystem. They help review code, mentor new contributors, and shape the future direction of the project. + +## Join the Slang Community + +Interested in becoming a Slang committer? The path to becoming a committer starts with getting involved in the community. Visit our [Community Page](https://shader-slang.com/community) to learn more. + +Welcome again to our new committers, and thank you to all our community members who make Slang better every day! + From 04d520cc81ac484b09dc5bd85a023efc15cadc7c Mon Sep 17 00:00:00 2001 From: Shannon Woods <158105547+swoods-nv@users.noreply.github.com> Date: Thu, 24 Apr 2025 18:02:39 -0400 Subject: [PATCH 2/2] Add image for committer celebration post --- images/posts/slang-celebration.webp | Bin 0 -> 16154 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/posts/slang-celebration.webp diff --git a/images/posts/slang-celebration.webp b/images/posts/slang-celebration.webp new file mode 100644 index 0000000000000000000000000000000000000000..babbe74801783e3011fd76786098abbababfed35 GIT binary patch literal 16154 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 TfTx6S%jAS)hSLlDhnD{X=;f=% literal 0 HcmV?d00001