diff options
| author | Juan Linietsky <reduzio@gmail.com> | 2019-07-29 12:59:18 -0300 |
|---|---|---|
| committer | Juan Linietsky <reduzio@gmail.com> | 2020-02-11 11:53:29 +0100 |
| commit | c613ead5fa2361296cf8d9a80d4648492ff4e16f (patch) | |
| tree | 974356b6840ecf764415d43277ef78ad3c6b6373 /servers/visual/rasterizer_rd/rasterizer_rd.cpp | |
| parent | 4fe3ee1730167b90ec8ae70c871c1dad032981d5 (diff) | |
| download | redot-engine-c613ead5fa2361296cf8d9a80d4648492ff4e16f.tar.gz | |
Added a spinlock template as well as a thread work pool class.
Also, optimized shader compilation to happen on threads.
Diffstat (limited to 'servers/visual/rasterizer_rd/rasterizer_rd.cpp')
| -rw-r--r-- | servers/visual/rasterizer_rd/rasterizer_rd.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/servers/visual/rasterizer_rd/rasterizer_rd.cpp b/servers/visual/rasterizer_rd/rasterizer_rd.cpp index 9be7a6e3f7..8a77d9a71e 100644 --- a/servers/visual/rasterizer_rd/rasterizer_rd.cpp +++ b/servers/visual/rasterizer_rd/rasterizer_rd.cpp @@ -76,7 +76,7 @@ void RasterizerRD::initialize() { RenderingDevice::ShaderStageData frag; frag.shader_stage = RenderingDevice::SHADER_STAGE_FRAGMENT; - frag.spir_v =RenderingDevice::get_singleton()->shader_compile_from_source(RenderingDevice::SHADER_STAGE_FRAGMENT, + frag.spir_v = RenderingDevice::get_singleton()->shader_compile_from_source(RenderingDevice::SHADER_STAGE_FRAGMENT, "#version 450\n" "layout (location = 0) in vec2 uv;\n" "layout (location = 0) out vec4 color;\n" @@ -120,8 +120,12 @@ void RasterizerRD::initialize() { } } +ThreadWorkPool RasterizerRD::thread_work_pool; + void RasterizerRD::finalize() { + thread_work_pool.finish(); + memdelete(scene); memdelete(canvas); memdelete(storage); @@ -133,6 +137,7 @@ void RasterizerRD::finalize() { } RasterizerRD::RasterizerRD() { + thread_work_pool.init(); time = 0; storage = memnew(RasterizerStorageRD); canvas = memnew(RasterizerCanvasRD(storage)); |
