summaryrefslogtreecommitdiffstats
path: root/tools/render-test
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2019-08-27 16:29:04 -0400
committerGitHub <noreply@github.com>2019-08-27 16:29:04 -0400
commit6c6be3c26335644bb65913a4db03388ec6ff4aab (patch)
tree9fb934a203a77431da2d0aea49086d247c9085fe /tools/render-test
parente44a653e6a27c198010425792fdf9c97da163d0d (diff)
Two fixes to avoid random crash on destruction of GLRenderer (#1038)
* Two fixes to avoid random crash on destruction of GLRenderer * Use of a weak reference from objects created by GLRenderer, such that GLRenderer dtor can disable those objects assuming GLRenderer is live * Make sure window is not destroyed before the renderer * Used WeakSink for weak pointer.
Diffstat (limited to 'tools/render-test')
-rw-r--r--tools/render-test/render-test-main.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp
index 0abf01b5a..a1768cdb2 100644
--- a/tools/render-test/render-test-main.cpp
+++ b/tools/render-test/render-test-main.cpp
@@ -879,7 +879,9 @@ SLANG_TEST_TOOL_API SlangResult innerMain(Slang::StdWriters* stdWriters, SlangSe
// Parse command-line options
SLANG_RETURN_ON_FAIL(parseOptions(argcIn, argvIn, StdWriters::getError()));
-
+ // Declare window pointer before renderer, such that window is released after renderer
+ RefPtr<renderer_test::Window> window;
+ // Renderer is constructed (later) using the window
Slang::RefPtr<Renderer> renderer;
ShaderCompilerUtil::Input input;
@@ -970,8 +972,7 @@ SLANG_TEST_TOOL_API SlangResult innerMain(Slang::StdWriters* stdWriters, SlangSe
rendererName << "'" << gOptions.adapter << "'";
}
- RefPtr<renderer_test::Window> window;
-
+
if (renderer)
{
Renderer::Desc desc;