0
Fatal signal 11 (SIGSEGV) at 0x51b71000 (code=1), thread 3696 (sssist.magnitab)
每當我將值分配給出來發回值主應用程序的參數分配給出門的時候,當我刪除分配錯誤消失了,這裏是我的代碼,(部分android代碼)
void root(const char *in, int *out, uint32_t x, uint32_t y) {\
int pixelData[size];
for (int i = 0; i <size ; i += 16)
{
//rsDebug("---------------:","3333");
int lumOne = in[i];
lumOne += 128;
pixelData[lumOne]=pixelData[lumOne]+1;
int lumTwo = in[i+2];
lumTwo += 128;
//pixelData[lumTwo]++;
pixelData[lumTwo]=pixelData[lumTwo]+1;
}
out[10]=23;
}
RenderScript mRS;
mRS = RenderScript.create(activity);
ScriptC_mono mScript;
// Convert to Bitmap
Allocation alloc = Allocation.createSized(mRS, Element.I8(mRS), array.length, Allocation.USAGE_SCRIPT);
alloc.copyFrom(array);
int[] ret = new int[array.length];
int[] ret2 = new int[array.length];
Allocation alloc_out = Allocation.createSized(mRS, Element.I32(mRS), array.length, Allocation.USAGE_SCRIPT);
alloc_out.copyFrom(ret2);
mScript = new ScriptC_mono(mRS, activity.getResources(),R.raw.mono);
mScript.set_size(array.length);
mScript.forEach_root(alloc, alloc_out);
alloc_out.copyTo(ret2);
//byte [] outarray = array;
// mOutPixelsAllocation.copyTo(outarray);
mRS.finish();
幫我改正這個。
非常感謝您的回覆,即使我將其更改爲出[0] = in [0];是foreach函數調用每個單元格的根分配?這裏需要做的是讀這個大的「數組」,並創建相當小的數組來表示它。由於需要時間,我正試圖將此計算轉移到GPU,因此速度會更快。 – droidNDK
您還正在閱讀上面的「在[i + 2]」中。如果沒有錯誤,你也無法做到這一點。 –
有沒有什麼辦法可以傳遞一個數組,並在渲染腳本中進行calcualtion並得到結果? – droidNDK