Android 渲染脚本模糊警告

Android 渲染脚本模糊警告,android,bitmap,renderscript,Android,Bitmap,Renderscript,我使用谷歌的renderscript支持库来模糊位图。它可以工作,但我在日志上看到一个错误: V/RenderScript_jni(20699): RS native mode V/RenderScript(20699): 0x2a709a80 Launching thread(s), CPUs 4 W/Adreno-RS(20699): <rsdVendorAllocationDestroyQCOM:199>: rsdVendorAllocationDestroy: No cont

我使用谷歌的renderscript支持库来模糊位图。它可以工作,但我在日志上看到一个错误:

V/RenderScript_jni(20699): RS native mode
V/RenderScript(20699): 0x2a709a80 Launching thread(s), CPUs 4
W/Adreno-RS(20699): <rsdVendorAllocationDestroyQCOM:199>: rsdVendorAllocationDestroy: No context!
E/RenderScript(20699): Successfully loaded runtime: libRSDriver_adreno.so
W/Adreno-RS(20699): <rsdVendorAllocationSetupTexture:647>: ERROR: Runtime texture creation failed err: -30 image: 0x0 alloc: 0x82340000
W/Adreno-RS(20699): <rsdVendorAllocationSetupTexture:649>: ERROR: Runtime texture creation failed type: 8 kind: 11 eleSize: 4
W/Adreno-RS(20699): <rsdVendorAllocationSetupTexture:647>: ERROR: Runtime texture creation failed err: -30 image: 0x0 alloc: 0x93570000
W/Adreno-RS(20699): <rsdVendorAllocationSetupTexture:649>: ERROR: Runtime texture creation failed type: 8 kind: 11 eleSize: 4
为什么
没有上下文错误?我怎样才能避免呢


PS:我使用Nexus5进行测试

我也有同样的错误,因为我使用了循环位图。检查您的
原始
位图是否未被回收。

我对之前的答案被删除感到有点失望,因为观察结果清楚地指出了错误行为,并且允许更多的人帮助确定错误本身

不过我自己调查得更彻底了。我创建了各种尺寸的位图,宽度和高度介于350和450之间。我用每个位图创建了一个分配。 在Nexus 5上,如果
(位图宽度%8)=
1,2,3或4,则方法
Allocation.createFromBitmap
总是给出以下错误。在所有其他情况下,分配都没有错误

07-31 18:48:07.902: D/Allocation(20508): Width: 417, height: 399
07-31 18:48:07.922: W/Adreno-RS(20508): <rsdVendorAllocationSetupTexture:647>: ERROR: Runtime texture creation failed err: -30 image: 0x0 alloc: 0x9dd20000
07-31 18:48:07.922: W/Adreno-RS(20508): <rsdVendorAllocationSetupTexture:649>: ERROR: Runtime texture creation failed type: 8 kind: 11 eleSize: 4
07-3118:48:07.902:D/分配(20508):宽:417,高:399
07-31 18:48:07.922:W/Adreno RS(20508)::错误:运行时纹理创建失败错误:-30图像:0x0 alloc:0x9dd20000
07-31 18:48:07.922:W/Adreno RS(20508)::错误:运行时纹理创建失败类型:8种类:11元素大小:4
我怀疑有一个bug,但我找不到任何与
rsdVendorAllocationSetupTexture
相关的源代码来深入挖掘。 我不知道这个错误是否有影响。。。(有关可能产生的影响,请参见我下面的注释……例如,以一维方式使用分配时)

通过选择位图的宽度,使宽度%8==5、6、7或0,可以绕过此错误

我先前的答案已被删除:

我在Nexus 5上遇到了完全相同的问题,我注意到了一些额外的问题:

  • 我只有肖像形位图的纹理创建失败错误。方形位图或横向位图不会触发这些错误
  • 我总是没有上下文错误(纵向和横向位图)
  • 尽管我得到了肖像形位图的错误,但renderscript的处理和结果都很好(另请参见下面的两点)
  • 当我通过一维方法
    rsGet(Set)ElementAt_uchar4(gIn,location)
    访问renderscript中的分配时,在给定位图宽度和高度的情况下计算位置,renderscript的结果对于肖像形位图来说是混乱的
  • 当我通过二维方法
    rsGet(Set)ElementAt_uchar4(gIn,x,y)
    访问分配时,我仍然得到了肖像形位图的错误,但是renderscript的结果很好
  • 在结果混乱的情况下,我的意思是结果(模糊)仍然可以识别,但它是失真的
  • 我也确信我没有使用回收的位图
  • 该脚本也是一个模糊脚本,但不是固有的脚本。()(不是我自己写的)。。。当我注意到肖像形状的位图没有正确地模糊时,我通过调试注意到了上述主题

这似乎并不能解决我的问题。我没有回收位图,但在使用android.support.v8 support lib时,Nexus 5仍然会出现错误。您的第一个答案不是,这就是为什么它会被标记的原因。更像是这样。
07-31 18:48:07.902: D/Allocation(20508): Width: 417, height: 399
07-31 18:48:07.922: W/Adreno-RS(20508): <rsdVendorAllocationSetupTexture:647>: ERROR: Runtime texture creation failed err: -30 image: 0x0 alloc: 0x9dd20000
07-31 18:48:07.922: W/Adreno-RS(20508): <rsdVendorAllocationSetupTexture:649>: ERROR: Runtime texture creation failed type: 8 kind: 11 eleSize: 4