diff options
author | Tom Stellard <[email protected]> | 2012-06-01 16:10:06 -0400 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2012-06-01 16:52:26 -0400 |
commit | 85a68814ee98d649e92223a42bab9db7392649ba (patch) | |
tree | 60258b425644f09ae4a7ea8c4f39936a0f5b0b5f /src/gallium/drivers | |
parent | fb79ecb62d41332c535bd5fd9c229a85c79c468b (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.cpp | 8 |
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) |