The packed_{load,store}_active now functions take a pointer to a
location at which to start loading/storing, rather than an array
base and a uniform index.
Variants of the prefetch functions that take varying pointers
are now available.
There are now variants of the various atomic functions that take
varying pointers (issue #112).
18 lines
478 B
Plaintext
18 lines
478 B
Plaintext
|
|
export uniform int width() { return programCount; }
|
|
|
|
export void f_f(uniform float RET[], uniform float aFOO[]) {
|
|
float a = aFOO[programIndex];
|
|
uniform int pack[2+programCount];
|
|
for (uniform int i = 0; i < 2+programCount; ++i)
|
|
pack[i] = 0;
|
|
uniform int count = 0;
|
|
if ((int)a & 1)
|
|
count += packed_store_active(&pack[2], a);
|
|
RET[programIndex] = count;
|
|
}
|
|
|
|
export void result(uniform float RET[]) {
|
|
RET[programIndex] = programCount/2;
|
|
}
|