From 6909d65c77bb4e7c9cfb281bd1684a58d5f8b94d Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 11 Jun 2024 12:31:37 -0700 Subject: SPIRV backend: add support for tessellation stages, (#4336) --- source/slang/slang-compiler.cpp | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'source/slang/slang-compiler.cpp') diff --git a/source/slang/slang-compiler.cpp b/source/slang/slang-compiler.cpp index 0277bb092..ed208ca37 100644 --- a/source/slang/slang-compiler.cpp +++ b/source/slang/slang-compiler.cpp @@ -2536,12 +2536,27 @@ namespace Slang if (allTargetsCUDARelated && targets.getCount() > 0) continue; - auto numThreadsAttr = funcDecl->findModifier(); - if (numThreadsAttr) - profile.setStage(Stage::Compute); - else + bool canDetermineStage = false; + for (auto modifier : funcDecl->modifiers) + { + if (as(modifier)) + { + if (funcDecl->findModifier()) + profile.setStage(Stage::Mesh); + else + profile.setStage(Stage::Compute); + canDetermineStage = true; + break; + } + else if (as(modifier)) + { + profile.setStage(Stage::Hull); + canDetermineStage = true; + break; + } + } + if (!canDetermineStage) continue; - } RefPtr entryPoint = EntryPoint::create( -- cgit v1.2.3