From b415760d7f166eaad7fa27daa09edc9a8964c37e Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Mon, 3 Feb 2020 17:36:32 -0800 Subject: Initial steps on GPU printing example (#1197) * Initial steps on GPU printing example This change is checkpointing work on a new Slang example that shows how a "GPU `printf()`" can be implemented almost entirely in user space thanks to a combination of Slang language and API features. The example is not perfect as it stands today due to limitations in our current handling of hashed string literals: * At call sites where a string literal is passed, we currently have to explicitly invoke `getStringHash()` to get the hash code, because we don't currently support `String` as a function argument/parameter type. * On the implementation side, because strings are passed as their `int` hash codes, we can't tell them apart from ordinary `int` arguments. The current code handles this by assuming an `int` is *always* a hashed string, which obviously isn't appropriate. There are plenty of other limitations in the implementation presented, but the above are the two main things I'd like to address in follow-up work. I would like to checkpoint this work on the application first, in order to keep work on the Slang implementation and the example as separate as possible. * typo --- premake5.lua | 3 +++ 1 file changed, 3 insertions(+) (limited to 'premake5.lua') diff --git a/premake5.lua b/premake5.lua index f783173bc..93bbd0569 100644 --- a/premake5.lua +++ b/premake5.lua @@ -443,6 +443,9 @@ if isTargetWindows then -- Let's go ahead and set up the projects for our other example now. example "model-viewer" + + example "gpu-printing" + kind "ConsoleApp" end example "cpu-hello-world" -- cgit v1.2.3