SAOC Project Proposal Ideas

In past SAOC editions, we have provided applicants with a list of project ideas based loosely on our priorities. Though we emphasized that applicants were free to propose their own projects, the overwhelming majority of applicants submitted one of our suggested projects. Often, multiple applicants proposed the same project.

For SAOC 2026, we want to turn things around. We're providing only one project suggestion. The emphasis this year is on you, the applicant, to determine what sort of project you think would be beneficial to the D ecosystem.

We encourage you to explore the D ecosystem to look for inspiration. Scroll through our repositories to see if lightning strikes. Reach out to other D programmers in our forums and our community Discord server. They know where the holes are that need filling and will surely have suggestions. Some of them may even have work that needs doing on their own open source D projects. Ask around, do a little bit of research, and surprise us!

We anticipate multiple applicants will choose our suggested project below. Should you be one of them, we strongly recommend you submit a second, custom proposal. Remember, only one applicant can be selected for the suggested project. If that's not you, then you can't be selected at all without a backup.

Note that there is no limit to the number of proposals you can submit, but you only need to send one copy of your résumé.

Project Suggestion

The difficulty level of our single project idea for SAOC 2026 can be described as hard. The prerequisites listed below will be extremely helpful.

Dcompute DirectX 12 Backend

Dcompute is a compiler extension and runtime library that interfaces to OpenCL and CUDA via the SPIRV and PTX backends of LLVM to generate programs that can run D code natively on GPUs. LLVM's SPIRV backend has recently been enhanced to be able to produce compute shaders for use with the DirectZ 12 API for graphics and compute. The goal of this project is to extend the LLVM D compiler (LDC) to utilise the new capabilities of the SPIRV backend to produce and run DirextX 12 compute shaders.

Prerequisites: Experience with compilers (preferably LLVM and/or DMD); C++ or D; graphics or compute APIs (preferably DirectX).

Project goals:

  • Build LDC + LLVM with the vulkan backend enabled, become familiar with the IR accpted by the SPIRV Vulkan backend
  • Add DirectX as a backend for Dcompute to LDC
    • add command line switches
    • generate IR in the format accepted by the SPIRV DirectX backend.
    • Design a consistent ABI for the compiler and Dcompute runtime to interface with each other to launch compute shaders
  • Write a dcompute runtime backend to interface with DirectX
  • Test and validate generated shaders using DirectX

Resources: