summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2012-06-01 16:10:06 -0400
committerTom Stellard <[email protected]>2012-06-01 16:52:26 -0400
commit85a68814ee98d649e92223a42bab9db7392649ba (patch)
tree60258b425644f09ae4a7ea8c4f39936a0f5b0b5f
parentfb79ecb62d41332c535bd5fd9c229a85c79c468b (diff)
radeon/llvm: Only use indirect (vertex fetch) parameters for kernels
Kernel parameters can only be retrieved via vertex fetchs. Direct parameters (i.e parameters stored in the constant buffer) are not supported yet.
-rw-r--r--src/gallium/drivers/radeon/R600KernelParameters.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeon/R600KernelParameters.cpp b/src/gallium/drivers/radeon/R600KernelParameters.cpp
index 53bfebc7364..e810023b651 100644
--- a/src/gallium/drivers/radeon/R600KernelParameters.cpp
+++ b/src/gallium/drivers/radeon/R600KernelParameters.cpp
@@ -45,7 +45,7 @@ class R600KernelParameters : public FunctionPass
struct param
{
param() : val(NULL), ptr_val(NULL), offset_in_dw(0), size_in_dw(0),
- indirect(false), specialID(0) {}
+ indirect(true), specialID(0) {}
Value* val;
Value* ptr_val;
@@ -74,7 +74,7 @@ class R600KernelParameters : public FunctionPass
void Replace(Function* fun);
bool isIndirect(Value* val, std::set<Value*>& visited);
void Propagate(Function* fun);
- void Propagate(Value* v, const Twine& name, bool indirect = false);
+ void Propagate(Value* v, const Twine& name, bool indirect = true);
Value* ConstantRead(Function* fun, param& p);
Value* handleSpecial(Function* fun, param& p);
bool isSpecialType(Type*);
@@ -150,6 +150,9 @@ int R600KernelParameters::getListSize()
bool R600KernelParameters::isIndirect(Value* val, std::set<Value*>& visited)
{
+ //XXX Direct parameters are not supported yet, so return true here.
+ return true;
+#if 0
if (isa<LoadInst>(val))
{
return false;
@@ -196,6 +199,7 @@ bool R600KernelParameters::isIndirect(Value* val, std::set<Value*>& visited)
}
return false;
+#endif
}
void R600KernelParameters::AddParam(Argument* arg)