aboutsummaryrefslogtreecommitdiff
path: root/externals/sirit/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'externals/sirit/README.md')
-rw-r--r--externals/sirit/README.md53
1 files changed, 0 insertions, 53 deletions
diff --git a/externals/sirit/README.md b/externals/sirit/README.md
deleted file mode 100644
index 72109bb9ac..0000000000
--- a/externals/sirit/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-Sirit
-=====
-A runtime SPIR-V assembler. It aims to ease dynamic SPIR-V code generation
-without calling external applications (like Khronos' `spirv-as`)
-
-Its design aims to move code that does not belong in the application to the
-library, without limiting its functionality.
-
-What Sirit does for you:
-* Sort declaration opcodes
-* Handle types and constant duplicates
-* Emit SPIR-V opcodes
-
-What Sirit won't do for you:
-* Avoid ID duplicates (e.g. emitting the same label twice)
-* Dump code to disk
-* Handle control flow
-* Compile from a higher level language
-
-
-It's in early stages of development, many instructions are missing since
-they are written manually instead of being generated from a file.
-
-Example
--------
-
-```cpp
-class MyModule : public Sirit::Module {
-public:
- MyModule() {}
- ~MyModule() = default;
-
- void Generate() {
- AddCapability(spv::Capability::Shader);
- SetMemoryModel(spv::AddressingModel::Logical, spv::MemoryModel::GLSL450);
-
- auto main_type{TypeFunction(TypeVoid())};
- auto main_func{OpFunction(TypeVoid(), spv::FunctionControlMask::MaskNone, main_type)};
- AddLabel(OpLabel());
- OpReturn();
- OpFunctionEnd();
-
- AddEntryPoint(spv::ExecutionModel::Vertex, main_func, "main");
- }
-};
-
-// Then...
-
-MyModule module;
-module.Generate();
-
-std::vector<std::uint32_t> code{module.Assemble()};
-```