首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScriptIntrinsicBlur在GalaxyS7上的API 24上坏了吗?

ScriptIntrinsicBlur在GalaxyS7上的API 24上坏了吗?
EN

Stack Overflow用户
提问于 2017-02-01 10:02:12
回答 2查看 332关注 0票数 1

我最近刚得到了Galaxy7.0.0的S7升级版,发现了一些奇怪的东西。

以前工作的ScriptIntrinsicBlur现在产生了部分透明的结果。无论是在SupportLibrary版本上还是在本地版本上。

我追踪到它依赖于模糊半径,一般来说,半径越大,结果就越不透明。

所以我在一张完全不透明的图片上对半径从0到25像素进行了扫描测试。

安卓仿真程序x86 API 24:

代码语言:javascript
复制
blurRad: 0.025 alpha: 254
...
blurRad: 25.0 alpha: 254

因此,这为所有半径都创造了一些透明度,但并不明显。

Galaxy S7,API 24,Build: NRD90M.G930FXXU1DQAO:

代码语言:javascript
复制
blurRad: 0.025 alpha: 10
...
blurRad: 0.25 alpha: 110
...
blurRad: 1.0 alpha: 241

模糊半径上的星系S7α

为了完整起见,我使用API 24在arm64仿真器上运行了测试,它为所有半径生成完全不透明的结果。

结果与模糊位图的大小和内容无关(当然,只要源alpha是255 )。

另外,我注意到ScriptIntrinsicBlur比以前慢了8-10倍。即使在HTC上,我也可以用800 API模糊400x400px图像,而Galaxy S7 (API 24)只能达到90-100fps。

所以问题是:有人能复制这个吗?有解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-03 00:36:25

在我看来,GPU RenderScript驱动程序在S7上有问题。

您能否尝试使用以下命令:

代码语言:javascript
复制
adb shell setprop debug.rs.default-CPU-driver 1

然后杀死你的应用程序并重新启动它。如果行为变得正常,我们确定GPU驱动程序有问题,至少对于某些输入图像是错误的。

如果是这样的话,就可以绕过GPU驱动程序,只有在代码找到API24 S7之后才能这样做:

  1. 使用本机RenderScript时,使用CREATE_FLAG_LOW_LATENCY标志创建上下文。RenderScript.create(ctx, RenderScript.ContextType.NORMAL, CREATE_FLAG_LOW_LATENCY)
  2. 如果使用支持库,则在调用RenderScript.forceCompat();之前调用RenderScript.create(ctx)
票数 1
EN

Stack Overflow用户

发布于 2017-02-13 04:00:54

在Galaxy S7的驱动程序中有一个bug。这会影响带有马里GPU的S7手机。那些与Adreno GPU是不受影响的。将有最新情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41976829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档