Skip to content

Hong-Xiang/drilla

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

drilla

Drilla engine for HPC and visualization

develop

requirements:

run dev environment

dev loop

  • Open Drilla.sln, run DualDrill.Server project to start a backend server

  • optional In DualDrill.JS directory, run node .\esbuild.mjs --watch so ts code gets rebuilt automaticall on change

  • Open browser, visit https://localhost:7117/desktop for basic rendering.

  • visit https://localhost:7117/ilsl for basic C# IL to shader translation development

  • optional add DUALDRILL_DATA_ROOT to environment variable for mesh/texture data

NOTE when runtime identifier is required to build/run, i.e. we need use x64 runtime identifier, Any CPU will not work

CLSL (previously ILSL)

CLSL is a C# embedded language which is designed to be compiled to multiple shader language running on GPU and SIMD accelerated CPU.

It is designed to be a subset of C# language, with custom attributes to extend its semantic for shaders.

It it designed to be compiled into shader language like WGSL, SPIR-V and CUDA, and also can be compiled into SIMD accelerated CPU code like Unity's Burst Compiler (with help of LLVM's auto vectorization).

ILSL's compiler currently support runtime compilation of dotnet's bytecode CIL(MSIL) to WGSL source text.

Features:

  • WGSL backend
  • control flow: if/loop
  • function scope variable declaration
  • priitive arithmetic/bitwise/logical/relational operation
  • basic primitive type mapping
  • vector type mapping
  • some vector based intrinsic functions
  • matrix type
  • array type
  • texture type/sampler type
  • read/write buffers
  • auto detect custom helper functions without additional attributes
  • shader stage attributes
  • group/binding attributes
  • custom struct declaration
  • shader relfection for uniform/vertex buffer layouts
  • C# getter/setters
  • LLVM backend (for vectorization) and ideally use CIL -> LLVM auto vectorization -> CIL (intrinsics)
  • CUDA backend

Current Progress

Start Clean Legacy Code and Use New SSA based IR

About

Drilla engine for HPC and visualization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5