it is illegal to pass varying parapamter to a task function with nvptx target

This commit is contained in:
Evghenii
2014-01-27 10:30:09 +01:00
parent 1c2dbd6a27
commit b7b5c9ad1d
3 changed files with 25 additions and 5 deletions

View File

@@ -7,7 +7,8 @@ export uniform int width() { return programCount; }
#define N2 50
static uniform float array[N2][N1][N0];
task void x(const float f) {
task void x(const uniform float farray[]) {
const float f = farray[programIndex];
uniform int j;
assert(taskCount == (uniform int32)N0*N1*N2);
@@ -30,7 +31,7 @@ task void x(const float f) {
array[i2][i1][i0] = i;
}
export void f_f(uniform float RET[], uniform float fFOO[]) {
float f = fFOO[programIndex];
uniform float * uniform f = fFOO;
launch[N2][N1][N0] x(f);
sync;
RET[programIndex] = array[N2-1][N1-1][N0-1];

View File

@@ -7,7 +7,8 @@ export uniform int width() { return programCount; }
#define N2 50
static uniform float array[N2][N1][N0];
task void x(const float f) {
task void x(const uniform float farray[]) {
const float f = farray[programIndex];
uniform int j;
assert(taskCount == (int32)N0*N1*N2);
@@ -30,8 +31,8 @@ task void x(const float f) {
array[i2][i1][i0] = i;
}
export void f_f(uniform float RET[], uniform float fFOO[]) {
float f = fFOO[programIndex];
launch[N0,N1,N2] x(f);
uniform float * uniform f = fFOO;
launch[N2][N1][N0] x(f);
sync;
RET[programIndex] = array[N2-1][N1-1][N0-1];
}