You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
Added a spinlock template as well as a thread work pool class.
Also, optimized shader compilation to happen on threads.
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user