mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
swr/rast: Use metadata to communicate between passes
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
f09636e2e1
commit
14b5cac0be
1 changed files with 28 additions and 0 deletions
|
|
@ -124,6 +124,34 @@ namespace SwrJit
|
|||
bool SetTexelMaskEvaluate(Instruction* inst);
|
||||
bool IsTexelMaskEvaluate(Instruction* inst);
|
||||
Type* GetVectorType(Type* pType);
|
||||
void SetMetadata(StringRef s, uint32_t val)
|
||||
{
|
||||
llvm::NamedMDNode *metaData = mpJitMgr->mpCurrentModule->getOrInsertNamedMetadata(s);
|
||||
Constant* cval = mpIRBuilder->getInt32(val);
|
||||
llvm::MDNode *mdNode = llvm::MDNode::get(mpJitMgr->mpCurrentModule->getContext(), llvm::ConstantAsMetadata::get(cval));
|
||||
if (metaData->getNumOperands())
|
||||
{
|
||||
metaData->setOperand(0, mdNode);
|
||||
}
|
||||
else
|
||||
{
|
||||
metaData->addOperand(mdNode);
|
||||
}
|
||||
}
|
||||
uint32_t GetMetadata(StringRef s)
|
||||
{
|
||||
NamedMDNode* metaData = mpJitMgr->mpCurrentModule->getNamedMetadata(s);
|
||||
if (metaData)
|
||||
{
|
||||
MDNode* mdNode = metaData->getOperand(0);
|
||||
Metadata* val = mdNode->getOperand(0);
|
||||
return mdconst::dyn_extract<ConstantInt>(val)->getZExtValue();
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#include "gen_builder.hpp"
|
||||
#include "gen_builder_meta.hpp"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue