summaryrefslogtreecommitdiff
path: root/source/slang
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang')
-rw-r--r--source/slang/CMakeLists.txt5
-rw-r--r--source/slang/slang-api.cpp15
2 files changed, 19 insertions, 1 deletions
diff --git a/source/slang/CMakeLists.txt b/source/slang/CMakeLists.txt
index 320cd0ce9..558c1558a 100644
--- a/source/slang/CMakeLists.txt
+++ b/source/slang/CMakeLists.txt
@@ -159,6 +159,9 @@ set(SLANG_LOOKUP_GENERATOR_OUTPUT_DIR
set(SLANG_LOOKUP_GENERATED_SOURCE
"${SLANG_LOOKUP_GENERATOR_OUTPUT_DIR}/slang-lookup-GLSLstd450.cpp"
)
+set(SLANG_CAPATURE_REPLAY_SYSTEM
+ "${slang_SOURCE_DIR}/source/slang-capture-replay"
+)
add_custom_command(
OUTPUT ${SLANG_LOOKUP_GENERATED_SOURCE}
COMMAND
@@ -192,6 +195,7 @@ slang_add_target(
.
OBJECT
TARGET_NAME slang-no-embedded-stdlib
+ EXTRA_SOURCE_DIRS ${SLANG_CAPATURE_REPLAY_SYSTEM}
EXCLUDE_FROM_ALL
EXTRA_COMPILE_DEFINITIONS_PUBLIC SLANG_STATIC
LINK_WITH_PRIVATE
@@ -244,6 +248,7 @@ target_include_directories(
slang_add_target(
.
${SLANG_LIB_TYPE}
+ EXTRA_SOURCE_DIRS ${SLANG_CAPATURE_REPLAY_SYSTEM}
LINK_WITH_PRIVATE
core
compiler-core
diff --git a/source/slang/slang-api.cpp b/source/slang/slang-api.cpp
index 7284f2468..ff37d6398 100644
--- a/source/slang/slang-api.cpp
+++ b/source/slang/slang-api.cpp
@@ -5,6 +5,8 @@
#include "slang-repro.h"
#include "../core/slang-shared-library.h"
+#include "../slang-capture-replay/slang-global-session.h"
+#include "../slang-capture-replay/capture_utility.h"
// implementation of C interface
@@ -116,7 +118,18 @@ SLANG_API SlangResult slang_createGlobalSession(
}
}
- *outGlobalSession = globalSession.detach();
+ // Check if the SLANG_CAPTURE_ENABLE_ENV is enabled
+ if (SlangCapture::isCaptureLayerEnabled())
+ {
+ SlangCapture::GlobalSessionCapture* globalSessionCapture =
+ new SlangCapture::GlobalSessionCapture(globalSession.detach());
+ Slang::ComPtr<SlangCapture::GlobalSessionCapture> result(globalSessionCapture);
+ *outGlobalSession = result.detach();
+ }
+ else
+ {
+ *outGlobalSession = globalSession.detach();
+ }
#ifdef SLANG_ENABLE_IR_BREAK_ALLOC
// Reset inst debug alloc counter to 0 so IRInsts for user code always starts from 0.