I'm clearly missing something here but have been going round in circles all day 
so can someone please can you point out where my blind spot is...

I have a very simple RenderScript (.rs) file which tries to copy data from one 
float pointer to another (please note that this is a contrived case for test 
purposes):

void root(const float *v_in, float *v_out) {
        const float *data = v_in;
        float *outData = v_out;
        
        for(int i=0;i<size;i++) {
                *outData = *data; // [X] DOES NOT WORK!
                data ++;
                outData ++;
        }
}


In the Java code I create the script and allocations then call the script as:

RenderScript rs = RenderScript.create(ctx);
ScriptC_protomask protomaskScript = new ScriptC_protomask(rs, getResources(), 
R.raw.protomask);

Allocation inFloatPointer = Allocation.createSized(rs, Element.F32(rs), 
data.length, Allocation.USAGE_IO_INPUT);
Allocation outFloatPointer = Allocation.createSized(rs, Element.F32(rs), 
data.length, Allocation.USAGE_IO_OUTPUT);

inFloatPointer.copyFrom(data); // copies from an array of floats (random 
numbers in this test case).
protomaskScript.set_size(data.length);

protomaskScript.forEach_root(inFloatPointer, outFloatPointer);


Now my expectation is that this will just copy the data from one allocation to 
another (pointless, but again, this is just a test case). When I comment out 
the line in the .rs file ([x] above) the script runs but clearly does nothing. 
When I leave it in, the code crashes with sig 11 suggesting I'm attempting to 
write to some memory I'm not allowed to. But why not? I've created and sized 
both allocations - why can I not just write to the output float pointer? :(

Off to get some fresh air and kick a football round the garden.. Thanks.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to