mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-24 07:50:26 +00:00
swr/rast: jit shader lib debug work
Create shader_lib during build, link with shaders at DLL generation time Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
0cd9ad98a3
commit
fe107e3c17
@ -586,6 +586,11 @@ int ExecUnhookedProcess(const char* pCmdLine)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(_WIN64) && defined(ENABLE_JIT_DEBUG) && defined(JIT_BASE_DIR)
|
||||
EXTERN_C IMAGE_DOS_HEADER __ImageBase;
|
||||
static __inline HINSTANCE GetModuleHINSTANCE() { return (HINSTANCE)&__ImageBase; }
|
||||
#endif
|
||||
|
||||
/// notifyObjectCompiled - Provides a pointer to compiled code for Module M.
|
||||
void JitCache::notifyObjectCompiled(const llvm::Module *M, llvm::MemoryBufferRef Obj)
|
||||
{
|
||||
|
@ -2890,6 +2890,10 @@ bool isComponentEnabled(ComponentEnable enableMask, uint8_t component)
|
||||
}
|
||||
}
|
||||
|
||||
// Don't want two threads compiling the same fetch shader simultaneously
|
||||
// Has problems in the JIT cache implementation
|
||||
// This is only a problem for fetch right now.
|
||||
static std::mutex gFetchCodegenMutex;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// @brief JITs from fetch shader IR
|
||||
@ -2902,6 +2906,7 @@ PFN_FETCH_FUNC JitFetchFunc(HANDLE hJitMgr, const HANDLE hFunc)
|
||||
JitManager* pJitMgr = reinterpret_cast<JitManager*>(hJitMgr);
|
||||
PFN_FETCH_FUNC pfnFetch;
|
||||
|
||||
gFetchCodegenMutex.lock();
|
||||
pfnFetch = (PFN_FETCH_FUNC)(pJitMgr->mpExec->getFunctionAddress(func->getName().str()));
|
||||
// MCJIT finalizes modules the first time you JIT code from them. After finalized, you cannot add new IR to the module
|
||||
pJitMgr->mIsModuleFinalized = true;
|
||||
@ -2916,6 +2921,7 @@ PFN_FETCH_FUNC JitFetchFunc(HANDLE hJitMgr, const HANDLE hFunc)
|
||||
#endif
|
||||
|
||||
pJitMgr->DumpAsm(const_cast<llvm::Function*>(func), "final");
|
||||
gFetchCodegenMutex.unlock();
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user