summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2020-03-02 12:30:25 -0500
committerGitHub <noreply@github.com>2020-03-02 12:30:25 -0500
commitb85ca6f86d46ee3c4d5784d0bd4ebc8509e2a9bd (patch)
treee91ce5470664cbd623374534e69e4bfc8a0f1840 /tools
parent6e9f407ad42ce635528b30f21366f903903a3682 (diff)
Feature/profile tool (#1251)
* WIP slang-profile * Turn on symbols needed for profile. * Remove calls to slang API from core as doing so broke profiling information. Fix premake so slang-profile works on VS.
Diffstat (limited to 'tools')
-rw-r--r--tools/slang-profile/slang-profile-main.cpp41
-rw-r--r--tools/slang-reflection-test/slang-reflection-test-main.cpp6
-rw-r--r--tools/slang-test/slangc-tool.cpp7
3 files changed, 50 insertions, 4 deletions
diff --git a/tools/slang-profile/slang-profile-main.cpp b/tools/slang-profile/slang-profile-main.cpp
new file mode 100644
index 000000000..19fb36604
--- /dev/null
+++ b/tools/slang-profile/slang-profile-main.cpp
@@ -0,0 +1,41 @@
+// slang-profile-main.cpp
+
+#include "../../source/core/slang-io.h"
+#include "../../source/core/slang-std-writers.h"
+
+#include "../../source/core/slang-process-util.h"
+
+#include "../../slang-com-helper.h"
+
+#include "../../source/core/slang-string-util.h"
+
+using namespace Slang;
+
+SlangResult innerMain(int argc, char** argv)
+{
+ auto stdWriters = StdWriters::initDefaultSingleton();
+
+ // Time the creation of the session
+ {
+ const auto startTick = ProcessUtil::getClockTick();
+
+ ComPtr<slang::IGlobalSession> slangSession;
+ slangSession.attach(spCreateSession(nullptr));
+
+ const auto endTick = ProcessUtil::getClockTick();
+
+ printf("Ticks %f\n", double(endTick - startTick) / ProcessUtil::getClockFrequency());
+ return SLANG_OK;
+ }
+
+ return SLANG_OK;
+}
+
+int main(int argc, char** argv)
+{
+ const SlangResult res = innerMain(argc, argv);
+#ifdef _MSC_VER
+ _CrtDumpMemoryLeaks();
+#endif
+ return SLANG_SUCCEEDED(res) ? 0 : 1;
+}
diff --git a/tools/slang-reflection-test/slang-reflection-test-main.cpp b/tools/slang-reflection-test/slang-reflection-test-main.cpp
index 7cbcc9878..ba6096f20 100644
--- a/tools/slang-reflection-test/slang-reflection-test-main.cpp
+++ b/tools/slang-reflection-test/slang-reflection-test-main.cpp
@@ -1272,8 +1272,10 @@ SLANG_TEST_TOOL_API SlangResult innerMain(Slang::StdWriters* stdWriters, SlangSe
Slang::StdWriters::setSingleton(stdWriters);
SlangCompileRequest* request = spCreateCompileRequest(session);
-
- stdWriters->setRequestWriters(request);
+ for (int i = 0; i < SLANG_WRITER_CHANNEL_COUNT_OF; ++i)
+ {
+ spSetWriter(request, SlangWriterChannel(i), stdWriters->getWriter(i));
+ }
char const* appName = "slang-reflection-test";
if (argc > 0) appName = argv[0];
diff --git a/tools/slang-test/slangc-tool.cpp b/tools/slang-test/slangc-tool.cpp
index 6c9645b54..da810fa88 100644
--- a/tools/slang-test/slangc-tool.cpp
+++ b/tools/slang-test/slangc-tool.cpp
@@ -55,8 +55,11 @@ SlangResult SlangCTool::innerMain(StdWriters* stdWriters, SlangSession* session,
spSetCommandLineCompilerMode(compileRequest);
// Do any app specific configuration
- stdWriters->setRequestWriters(compileRequest);
-
+ for (int i = 0; i < SLANG_WRITER_CHANNEL_COUNT_OF; ++i)
+ {
+ spSetWriter(compileRequest, SlangWriterChannel(i), stdWriters->getWriter(i));
+ }
+
SlangResult res = _compile(compileRequest, argc, argv);
// Now that we are done, clean up after ourselves