日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2020.3.10.遗留问题

發(fā)布時間:2025/3/18 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2020.3.10.遗留问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1,GPA連不上手機,是需要root還是其它問題???

問題起源:定位GPU問題時,需要細致到填充率,CPU到GPU的傳輸帶寬問題(紋理帶寬,framebuffer帶寬問題等)

這里定位是否是紋理帶寬問題時就需要在游戲運行時動態(tài)更改所有紋理的尺寸,目前似乎只有GPA有這個功能,或者自己寫工具去HOOK到gles底層API實現(xiàn)。

?

經(jīng)過實驗發(fā)現(xiàn):還是root的問題,不root的手機,有些ADB命令執(zhí)行不了。

試驗過程如下:

1,使用oppoR9S,這破手機無法ROOT,就不管ROOT了,操作:打開【開發(fā)者選項】和【USB調(diào)試】,然后打開使用GPA中的System Analyzer 2019 R3,看到設(shè)備號后,點擊 connect,提示不是user0,切換后還是這個錯誤提示,沒辦法了,換成System Analyzer 2014 R3后,點擊connect后,手機上彈出一個相應(yīng)的System Analyzer安裝,確認后安裝失敗,被OPPOR9S給殺了吧。

2,沒辦法,換成紅米note7,再點擊connect后,提示無法執(zhí)行什么O,沒有權(quán)限,這個權(quán)限是要ROOT才行的。

總之,想要對安卓手機使用GPA,就必須ROOT了

?

?

另外,參考鏈接:對于自家的App只要加一個debuggable=true就行了,對于別人家的……咳咳,我一開始以為用Xposed + enable-debugger Flag可以解決,后來發(fā)現(xiàn)ROOT的機子直接就能跑了?

?2016官方的演講?

2,systrace看不到unity的具體函數(shù)調(diào)用 ,只能看到UnityMain,原因是什么???如何看到??

這個好像要設(shè)置APK為debuggabble=true,但對應(yīng)到unity是哪個選項?怎么設(shè)置?snapdraggon profiler也需要這個來開啟類似systrace的trace

TODO:需要熟悉安卓開發(fā),以及UNITY底層是如何與安卓結(jié)合的(啟動)

一些歪方法:打包APK后,修改其中的debuggable配置項:https://www.jianshu.com/p/e3e6154db43a?https://www.jianshu.com/p/e3e6154db43a??https://www.cnblogs.com/qcloud1001/p/6650023.html

?

1,后來使用snapdragon profiler,發(fā)現(xiàn)可以找到并連接上手機,而且其中有各種gl statu override功能,包括了實時的【use small texture]功能,這就完全可以替代GPA了,

并且包含了systrace中的查看unity函數(shù)調(diào)用棧的功能

?

2,實驗證明:player settings選項中的 script debugging =?腳本中的EditorUserBuildSettings.allowDebugging?等價于 BuildOptions.AllowDebugging?最終都等價于android manifest中的 debuggable。

?

[MenuItem("testx/build")]public static void testx(){EditorUserBuildSettings.allowDebugging = true;var bdop = new BuildPlayerOptions();bdop.target = BuildTarget.Android;bdop.locationPathName = "Z:/unity/abcx.apk";bdop.options = BuildOptions.Development | BuildOptions.AllowDebugging;BuildPipeline.BuildPlayer(bdop);}

?

只有開啟了 debuggable,在systrace和snapdragon profiler中才能看到unity的函數(shù)調(diào)用棧。其中systrace要注意的是:還要同時為enable Application Traces From:選擇你要trace的包名。

?

關(guān)于各種性能剖析工具:https://www.jianshu.com/p/0ef3e8315416

3,Unity能否針對不同檔次的機器采取不同的紋理壓縮格式?比如低端機采用高壓縮的ASTC12X12,而高端機采用ASTC4X4

似乎不行,一方面來說,低端機可能都不支持ASTC這種新的壓縮格式。

在Quality設(shè)置中,有可以設(shè)置紋理分辨率的,比如標簽為low的質(zhì)量等級采用1/2圖片分辨率。

如何動態(tài)設(shè)置質(zhì)量等級:

using UnityEngine;public class Example : MonoBehaviour {void OnGUI(){string[] names = QualitySettings.names;GUILayout.BeginVertical();for (int i = 0; i < names.Length; i++){if (GUILayout.Button(names[i])){QualitySettings.SetQualityLevel(i, true);}}GUILayout.EndVertical();} }

4,垂直同步:

顯示器與顯卡:

雙緩沖:前后緩沖,即frontbuffer,backbuffer

顯卡-GPU,負責(zé)渲染圖形數(shù)據(jù)到前緩沖,然后交換前后緩的指針,然后繼續(xù)在前緩沖繪制,顯示器從后緩沖取數(shù)據(jù)顯示出來。

由于顯示器顯示畫面的過程是一行一行的,當(dāng)一屏畫面畫到一半時,后緩沖指針被換成了前緩沖指針時,顯示器的一屏畫面就有一半是前一幀的,一半是的下一幀的,就出現(xiàn)了畫面撕裂。

畫面撕裂,不管顯示器的刷新率多高或多低都一樣出現(xiàn)畫面撕裂。

如何避免畫面撕裂:在顯示器完整的顯示完一屏畫面后,下一屏畫面顯示之前的這段時間內(nèi)交換前后緩沖指針,這段時間就是vertical blanks,即垂直空白。

?

總結(jié)

以上是生活随笔為你收集整理的2020.3.10.遗留问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。