Compiler manager里面有一个thread变量,
使用FShaderCompileThreadRunnable启动thread。
manager创建时候,会吧thread启动,
编译时候会一直调用
int32 FShaderCompileThreadRunnable::CompilingLoop()
{
// Grab more shader compile jobs from the input queue, and move completed jobs to Manager->ShaderMapJobs
const int32 NumActiveThreads = PullTasksFromQueue();
这里有一个疑问,这个是向一个文件里面写数据,应该有一个worker线程一直在读并且编译Shader,
但是断点后没找到那个线程,所以很奇怪。
找到了,worker是一个进程,需要新开一个vs附加到进程才可以。
断点了worker,在windows下调用到这个:
\Engine\Source\Programs\ShaderCompileWorker\Private\ShaderCompileWorker.cpp
static void ProcessCompilationJob(const FShaderCompilerInput& Input,FShader