From e0f317e187aa4ccf90a3a0e77b941b46f76101c5 Mon Sep 17 00:00:00 2001 From: yum Date: Sat, 11 Oct 2025 15:05:36 -0700 Subject: more cleanup --- README.md | 10 +++------- main.cc | 22 ---------------------- 2 files changed, 3 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 174ccd2..6c31d8c 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,9 @@ require an entrypoint. basics and gotchas - all functions marked `public` are exported as entrypoints. - - this causes slang to put their arguments in a cbuffer. we post-process them - to fix this. -- any autodiff function calls within a module must *not* be to `public` APIs. - - this is a consequence of the prior point. any public API is seen by slang - as an "entrypoint" which accepts a cbuffer argument. the autodiff logic - does not handle this edge case, so it tries to pass arguments to a function - which takes no arguments. +- we use a custom build of slang which lets entrypoints use regular arguments + instead of cbuffers / structs. +- it should "just work" for simple math kernels build instructions diff --git a/main.cc b/main.cc index aa09d31..32bd7f4 100644 --- a/main.cc +++ b/main.cc @@ -452,29 +452,7 @@ int main(int argc, char** argv) rawOutputPath.replace_extension(".raw.hlsl"); writeTextFile(rawOutputPath, hlslSource); - // Remove [shader("dispatch")]export lines std::string finalHlsl = hlslSource; - const std::string shaderExportToken = "[shader(\"dispatch\")]export"; - std::size_t pos = 0; - while ((pos = finalHlsl.find(shaderExportToken, pos)) != std::string::npos) - { - std::size_t lineEnd = pos + shaderExportToken.size(); - // Skip optional whitespace and newline - while (lineEnd < finalHlsl.size() && - (finalHlsl[lineEnd] == ' ' || finalHlsl[lineEnd] == '\t')) - { - ++lineEnd; - } - if (lineEnd < finalHlsl.size() && finalHlsl[lineEnd] == '\r') - { - ++lineEnd; - } - if (lineEnd < finalHlsl.size() && finalHlsl[lineEnd] == '\n') - { - ++lineEnd; - } - finalHlsl.erase(pos, lineEnd - pos); - } IncludeGuardInfo includeGuard = detectIncludeGuard(modulePath); if (includeGuard.present) -- cgit v1.2.3