summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
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 /src/gallium/drivers
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.
Diffstat (limited to 'src/gallium/drivers')
-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)