Hi
Actually that return 0; statement was commented. I made mistake while copy
pasting .. the code exact code is this :
int __attribute__((kernel)) ccl_initlabel(uint32_t x, uint32_t y) {
int x_ = (int)x;
int y_ = (int)y;
int width = (int)rsAllocationGetDimX(inp);
int height = (int)rsAllocationGetDimY(inp);
int index = y_ * width + x_;
int flag = (int)step(1.0f, (float)rsGetElementAt_uchar(inp,x_,y_));
return (index*(1-flag) - flag);
}
Regards
Ruppesh
On Friday, 8 July 2016 14:00:59 UTC+5:30, Alberto Marchetti wrote:
>
> There can be a chance that, if the kernel has been written to return
> always a constant, modifying the contents of the kernel does not let
> RenderScript invalidate the cache (the code, being translated to bitcode,
> gets highly optimized, so a constant is always a constant and, if the code
> that comes earlier makes no changes to the "outer world", it can be just
> stripped out).
> Can you post the exact code you were using, without returning 0?
>
> On Thursday, 7 July 2016 14:25:31 UTC+2, Ruppesh Nalwaya wrote:
>>
>> Hi
>> I wrote the following kernel to label a 2-D matrix/image with its 1-D
>> index. In an earlier build I had written code for 1-indexing, which I
>> updated later on to 0-indexing as follows.
>>
>> int __attribute__((kernel)) ccl_initlabel(uint32_t x, uint32_t y) {
>>
>> int x_ = (int)x;
>>
>> int y_ = (int)y;
>>
>> int width = (int)rsAllocationGetDimX(inp);
>>
>> int height = (int)rsAllocationGetDimY(inp);
>>
>> int index = y_ * width + x_; // in an earlier
>> version, it was 1 indexed
>>
>> return 0;
>>
>> int flag = (int)step(1.0f, (float)rsGetElementAt_uchar(inp,x_,y_));
>>
>> return (index*(1-flag) - flag);
>>
>> }
>>
>>
>> I call this kernel on 2 different allocations one after the other like
>> this:
>>
>> sc_ebab->forEach_ccl_initlabel(LAlloc); // call 1
>> sc_ebab->forEach_ccl_initlabel(RAlloc); // call 2
>>
>>
>> When I updated the code from 1-indexing to 0-indexing, the behaviour of
>> call 1 got updated but not of call 2. Interestingly this kind of sticky
>> behaviour of 2nd call is visible only when the app reinstalled without
>> uninstalling (If I uninstall manually and then install the updated build
>> both calls' behaviour is updated). What could be the possible reason?
>>
>> *Note: I am working on Nexus 6*
>>
>> Regards
>> Ruppesh
>>
>
--
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/android-developers/0e37371f-bd69-468f-b684-507160c5d025%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.