特定Adreno GPU的Android设备发生冻屏问题

1)特定Adreno GPU的Android设备发生冻屏问题
​2)Unity版本升级后,iOS加载UnityFramework bundle闪退
3)关于RectTransfrom.rect在屏幕空间中表示的相关问题
4)Unity Mesh泄露问题


这是第345篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Rendering

Q:遇到了特定Android设备上【Adreno】发生冻屏(GPU挂起)的问题。

现象是屏幕冻住,不刷新了,但是音乐,点击UI的音效还可以播放。用Unity Profiler看CPU,也没异常也不闪退。以下是冻屏时抓到的错误日志,麻烦大家帮看下有什么启发,谢谢!

01-30 11:03:42.760 17569 19804 W Adreno-GSL: lddcontrol:549>: ioctl fd 90 code 0xc040094a (IOCTLKGSLGPU_COMMAND) failed: errno 71 Protocol error

01-30 11:03:42.760 17569 19804 W Adreno-GSL: gpusnapshot:458>: panel.gpuSnapshotPath is not set.not generating user snapshot

01-30 11:03:42.819 823 19810 I sensors-hal: handlesnsstdsensorevent:542,  [0][4698] A(3) [ 0.041,-0.038,10.005] 2034014965228

01-30 11:03:42.829 823 19041 I sensors-hal: handlesnsstdsensorevent:88, LCCT:[307, 307, 160, 33, 307, 147, 2, 0, 0, 11]

01-30 11:03:42.883 3402 3835 D SDHMS:com.sec.android.sdhms.thermal.siop.B: SIOP:: AP:373(570,110) BAT:331(331,0) CHG:291(442,100) USB:335(335,0) WIFI:319(382,50) PA:340(409,50) BLK:0(0,0) SUBBAT:0(0,0) LRP:357(357,0) LRF:350(350) LRB:357(357)

01-30 11:03:42.958 18930 18962 E FirebaseInstanceId: Token retrieval failed without exception message. Will retry token retrieval

01-30 11:03:43.105 1161 1864 D PowerManagerService: [api] userActivityFromNative : 180 (event: 2 flags: 0) eventTime = 2034309

01-30 11:03:43.224 17569 19804 W Adreno-GSL: lddcontrol:549>: ioctl fd 90 code 0xc040094a (IOCTLKGSLGPU_COMMAND) failed: errno 35 Resource deadlock would occur

01-30 11:03:43.224 17569 19804 W Adreno-GSL: gpusnapshot:458>: panel.gpuSnapshotPath is not set.not generating user snapshot

01-30 11:03:43.243 17569 19804 E Unity : allocation 0x0xc000000000000001 already registered @ /Users/builduser/buildslave/unity/build/Runtime/GfxDevice/opengles/DataBuffersGLES.cpp:l234 size 4096; now calling from /Users/builduser/buildslave/unity/build/Runtime/GfxDevice/opengles/DataBuffersGLES.cpp:l234 size 65536?

A1:刚刚修复了这个问题,希望帮助到还有类似问题的人。

我尝试了关闭Unity的Multitreaded Rendering无效,仍然报错。

后来发现可能跟相机的Renderer有关,我的一个场景中的相机的Rendering-Renderer用的是2D Renderer data,把它换成URP asset后,关闭了Render shadows,卡死问题没有再出现了。

感谢华仔咯@UWA问答社区提供了回答

A2:我也遇到了,尝试关闭多线程渲染, 就不再复现。

感谢fly@UWA问答社区提供了回答

A3:感觉是Jobs加速GPU导致问题,我们在设置中关闭GraphicsJobs,问题就解决了。

感谢刘强@UWA问答社区提供了回答


Platform

Q:Unity从18升级到2020.3版本,iOS加载UnityFramework Bundle闪退。

正常通过Xcode编译都能进入,但是通过点击APP黑屏10秒左右就闪退了,后面通过写文件定位到 [bundle load]完之后就没有后续的内容了,UnityFramework的大小是150MB,后面我有通过了解,iOS在main函数之前执行太长就会直接崩掉?这个Framework是可以减少体积的吗?还是有其他接近方式?

以下是代码:

UnityFramework* UnityFrameworkLoad()
{NSString* bundlePath = nil;bundlePath = [[NSBundle mainBundle] bundlePath];bundlePath = [bundlePath stringByAppendingString: @"/Frameworks/UnityFramework.framework"];NSBundle* bundle = [NSBundle bundleWithPath: bundlePath];if ([bundle isLoaded] == false) [bundle load];UnityFramework* ufw = [bundle.principalClass getInstance];if (![ufw appController]){// Initialize Unity for a first time[ufw setExecuteHeader: &_mh_execute_header];       // Keep in sync with Data folder Target Membership setting[ufw setDataBundleId: "com.unity3d.framework"];      }return ufw;}

A:出现过楼主的问题,后来发现项目中有用到Uniweb,只要把libuniweb.a加到主工程里面就解决了。

感谢todd@UWA问答社区提供了回答


UI

Q:最近在做一个截屏相关的需求,需要对屏幕某个区域进行截屏。

沿用项目组现在的做法,就是先全屏截,然后根据UI上某个结点的RectTransform来划定一个截屏区域,最后通过Texture.ReadPixels来读取RectTransform划定区域的像素。这其中涉及到的就是RectTransform.rect对应区域在屏幕空间中的表示。

现在的做法就是先将RectTransform从世界坐标转换到屏幕空间,将RectTransform.position根据UICamera走WorldToScreenPoint算出Rect在屏幕空间的中心点centerScreenPos,然后根据RectTransform和canvas.scaleFactor来算出RectTransform.rect在屏幕空间中的起点以及长宽,最后得出需要ReadPixels的区域Rect。

不解的是,以上做法,在真机和模拟器都能正常工作,但是在Editor上截出来的区域就会有一个偏移,经过测试发现这个偏移值来自于RectTransform的localPosition,也就是图中的PosY:

只要上面的PosY不为0,在Editor截出来的图就是有偏移,各个分辨率都会有问题。在Editor下特殊处理一下,减去这个偏移值,所得出来的效果就和真机、模拟器一致了。

所以想问一下,是我上述的做法不对吗?

附上网上别人的做法:Get Rect in Screen Space from RectTransform (Screen Space - Camera),最后算出来的值和我的做法是一样的,但是还是在Editor有一个localPosition的偏移,在真机/模拟器就没有问题。

A:原因可能是transform.GetWorldCorners(worldCorners)函数有时序问题,导致获取的值不正确,应该自行计算Rect的顶点在屏幕空间的坐标:

Transform ownSpace = gui.transform;
Rect rectInOwnSpace = gui.rect;var p0 = ownSpace.TransformPoint(new Vector3(rectInOwnSpace.x, rectInOwnSpace.y, 0f));
var p1 = ownSpace.TransformPoint(new Vector3(rectInOwnSpace.xMax, rectInOwnSpace.yMax, 0f));
var minCorner = hudCamera.WorldToScreenPoint(p0);    // 左下角坐标
var maxCorner = hudCamera.WorldToScreenPoint(p1);   // 右上角坐标

另外,ReadPixels函数性能过低(GPU到CPU),建议考虑使用Graphics.CopyTexture函数(GPU到GPU)。

感谢LittleCat@UWA问答社区提供了回答


Memory

Q:我发现我们的游戏进入战斗后,再退出战斗场景,模型的Mesh对象泄露了,等待了很久也不能回收。已经触发调用过Resource.UnloadUnusedAssets()。Profile上提示被一个Scene Object()引用。但我没找到有过这个东西,完全不知道是什么。大家帮我看一看吧,谢谢了。

A:建议写个工具检查下当前场景内有没有仍在使用该Mesh对象的物体。

感谢Knight-132872@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 8 Stream流:代码简洁之道

文章目录 前言一、filter二、map三、mapToInt、mapToLong、mapToDouble四、flatMap五、flatMapToInt、flatMapToLong、flatMapToDouble六、distinct七、sorted八、peek九、limit十、forEach十一、forEachOrdered十二、toArray十三、reduce十四、collect十五、min、max十六、cou…

Llama 2 来袭 - 在 Hugging Face 上玩转它

🤗 宝子们可以戳 阅读原文 查看文中所有的外部链接哟! 引言 今天,Meta 发布了 Llama 2,其包含了一系列最先进的开放大语言模型,我们很高兴能够将其全面集成入 Hugging Face,并全力支持其发布。Llama 2 的社…

将AWS S3大文件文件上传相关的API集成为js文件,功能包括 多文件并行上传、文件分片上传、断点续传、文件分片合成、上传暂停、取消上传、文件上传进度条显示

地址 https://github.com/gk-1213/easy-s3/tree/main easy-s3 将AWS S3大文件文件上传相关的API集成为js文件,功能包括多文件并行上传、文件分片上传、断点续传、文件分片合成、上传暂停、取消上传、文件上传进度条显示。 暂时不包括文件分片下载相关功能&#…

linux下用docker安装mysql

1.mysql Docker镜像 docker pull mysql:[版本号 或 latest]例:docker pull mysql:5.7 2.查看拉取的docker镜像 docker images3.设置 Docker 卷 docker volume create mysql-data列出 Docker 已知的所有卷 docker volume ls4.运行一个 MySQL Docker 容器 docke…

2018年全国硕士研究生入学统一考试管理类专业学位联考写作试题——解析版

2018年1月真题 四、写作:第56~57小题,共65分。其中论证有效性分析30 分,论说文35分。 56.论证有效性分析: 分析下述论证中存在的缺陷和漏洞,选择若干要点,写一篇600字左右的文章,对该论证的有…

乐维监控 | 如何快速关闭网络设备所有端口

在运维监控实践中,由于不同的运维人员可能会关注不同的监控指标,因此乐维监控在监控网络设备时,会默认开启所有的端口,尽可能多的覆盖监控指标,避免遗漏重要指标。但是,这样又会带来新的问题,在…

golang,gin框架的请求参数(一)--推荐

golang,gin框架的请求参数(一) gin框架的重要性不过多的强调,重点就gin使用中的参数传递,获取进行梳理文件,满足使用需求。 获取前端请求参数的几种方法: 一、获取参数【浏览器地址获取参数】…

【论文阅读】定制化diffusion微调: DreamBooth原理

论文:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 项目:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation 代码:Dreambooth-Stable-Diffusion 1. 任务简…

Kotlin基础(八):泛型

前言 本文主要讲解kotlin泛型,主要包括泛型基础,类型变异,类型投射,星号投射,泛型函数,泛型约束,泛型在Android中的使用。 Kotlin文章列表 Kotlin文章列表: 点击此处跳转查看 目录 1.1 泛型基…

Unity XML1——XML基本语法

一、XML 概述 ​ 全称:可拓展标记语言(EXtensible Markup Language) ​ XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml ​ 我们在游戏中可以把游戏数据按照 XML 的格式标…

JAVA线上问题排查降龙十八掌

现场问题一般有以下几种问题 CPU,磁盘,内存,GC问题,网络 同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。 …

windows中文界面乱码问题

我的便携是内部返修机,买来时就是英文版,在设置中改成简体中文就可以了,与中文版没有什么区别,已经升级成win11。windows自身的应用、360之类的界面都能正常显示,但是个别应用总是乱码,根据客服的提示设置一…

非线性质量弹簧阻尼器的神经网络仿真研究(Matlab代码Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

关于在虚拟机CentOS7的Docker下安装Oracle

这不三阶段了,要上Oracle了,感觉这个班卷的程度到位。二阶段我就上了ElementUI和MyBatis,项目也是用这些技术写的,整体钻研程度还行。于是布置了两个任务:在windows下安一下Oracle,在windows下安装Oracle那…

python安装第三方包的两种方式

最近研究QQ空间、微博的(爬虫)模拟登录,发现都涉及RSA算法。于是需要下一个RSA包(第三方包)。折腾了很久,主要是感觉网上很多文章对具体要在哪里操作写得不清楚。这里做个总结,以免自己哪天又忘…

GRE TAP的工作原理与5G工业物联网中的应用

随着互联网新技术的发展以及智能化水平的提高,各企业对实时数据传输的需求也在不断提升,企业愈发重视数据中心的建设,以保障企业内网数据安全。 GRE(Generic Routing Encapsulation,通用路由封装)协议属于…

作为一名程序员,IVX你值得拥有

目录 一、IVX是什么 二、IVX编程盒子——低代码平台的首个硬件产品 iVX做硬件的原因 iVX自身特点——安全、方便、高效、低耗 三、IVX编程盒子自带的Demo系统 1. 问题反馈、在线沟通和工单处理系统 2. 大屏幕监管平台 四、IVX和其他代码平台的区别 五、低代码未来的发展…

使用sftp

一、背景 新项目组前端部署方式是Build打包生成dist文件,交由后端部署。后来知道了vscode安装sftp前端可以自行部署。 二、实操 1、vscode安装sftp 2、 配置 ①F1 / ctrlshiftp ②命令行输入sftp -> 选择 sftp: Config ③配置信息介绍 {"name"…

Qt5.14.2+VS2019配置MSVC2017

问题: The compiler " Microsoft Visual C Compiler 16 . 11 . 32106 . 194 ( amd64 x86 )( x86-windows-msvc2019-pe-32bit ) cannot produce code for the Qt version " Qt5.14.2 MSVC2017 64bit " ( x86-windows-msvc2017-pe-64bit 编译器“…

钉钉和金蝶云星空接口打通对接实战

钉钉和金蝶云星空接口打通对接实战 对接系统:钉钉 钉钉是阿里巴巴集团打造的企业级智能移动办公平台,是数字经济时代的企业组织协同办公和应用开发平台。钉钉将IM即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能人事、钉工牌、工作台深度整…