原创 GPU資源同步:coherent、總線協議、shareable Vulkan內存與資源管理

1. 背景介紹 之前在Vulkan內存與資源管理 提到 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT: 該標誌位表示CPU的write數據flush給GPU時,無需調用vkFlushMappedMemoryR

原创 Vulkan內存與資源管理

在OpenGL中,當我們創建resource的時候,內存會被自動分配。 不同於OpenGL,vulkan是更加底層的API,需要顯式的內存管理。顯式的內存管理可以在資源複用與特定平臺的優化方面帶來好處。 1.Vulkan 內存分類 Vulk

原创 Vulkan中的同步與緩存控制

1.Introduction Vulkan 提供顯式的同步結構,允許 CPU 與 GPU 同步命令的執行。並且還可以控制 GPU 中命令的執行順序。所有執行的 Vulkan 命令都將進入隊列,並以某種未定義的順序“不間斷”執行。 有時,我們

原创 OpenGL中的Frame Buffer、Depth Buffer、Color Buffer、Stencil Buffer

Frame Buffer Frame Buffer: 是一塊buffer(即內存),存儲了一幀的buffer數據。 從數據結構的角度來看,此處的Frame Buffer並不是一個真正意義上的buffer,其存了一些指針,分別指向Depth

原创 AIDL與HIDL

AIDL: Android Interface Definition Language,即Android接口定義語言。用來定義Android基於Binder通信的Client和Service之間的接口。 即負責App之間通信,App與Fra

原创 Android VNDK

  1.VNDK是什麼 VNDK 的全稱是 Vendor Native Development Kit,中文翻譯過來叫“供應商原生開發套件”。本身實際上指的是 Google 提供給 Vendor 用來開發自己 HAL 的一套庫。但實際上這個

原创 c++中的多線程:概念、基本用法、鎖以及條件變量

1.基本概念 首先要對併發,進程,線程有基本的概念。 1.1什麼是併發 意思就是兩個任務同時執行。 對於單核CPU:在不考慮Intel超線程技術的情況下,由於只有一個CPU,某一時刻只能執行一個任務,因此只能軟件併發,多任務併發情景下需要進

原创 如何判斷APK是debug版本還是release版本

有兩種方法。 方法一:adb shell命令 $ adb shell dumpsys package xx.xx.xx | findstr flags xx.xx.xx爲apk的package name。package name 可由下

原创 淺談ChatGPT原理,風險與機遇

恰逢OpenAI發佈了GPT4,來蹭一波熱度 :P 從2022年底到2023年初,由OpenAI推出的ChatGPT可謂是最火的科技名詞了,哪怕是不瞭解科技新聞的普通人,也會聽說過ChatGPT這個詞。 由於我並不是專業的NLP從業人員,所

原创 [Python Issue] ModuleNotFoundError: No module named 'apt_pkg'

最近執行sudo apt-get update的時候突然報錯: Traceback (most recent call last): File "/usr/lib/cnf-update-db", line 8, in <module>

原创 Graphics Stack總結(四) 設置Mesa開發環境

回顧 上篇文章中我們提供了Mesa source tree的概覽,然後簡介了幾個主要的modules. 現在我們將介紹setup mesa開發環境時會用到的幾個小tips。 Development environment Mesa大部分是由

原创 Graphics Stack總結(三) Mesa source tree概覽

 回顧 上篇文章中我們介紹了Mesa的loder模塊,該模塊負責自動爲我們的硬件選擇正確的driver。如果loader沒能爲找到匹配的hardware driver,那麼它會fall back到software driver,但我們也可以

原创 Graphics Stack總結(三) Mesa中Driver的加載和查詢

回顧 在之前的文章中,我們解釋了Mesa時一個OpenGL driver的開發框架。正如此,Mesa提供的代碼可以在多種driver的實現中被重用。當然這部分code是跨硬件的,使得驅動開發者不用做這部分工作。這個框架也爲開發者提供了hoo

原创 Graphics Stack總結(二) Mesa漫遊

回顧 前一篇文章中我們對Linux graphics stack有了一個快速介紹,接下來我將解釋爲什麼我們稱之爲graphics driver in Linux實際上是三個不同drivers的組合: the user space X se

原创 如何從GooglePlay下載與安裝APK

工作中經常需要Debug某些Android app的issue,尤其需要從GooglePlay下載APK,比如需要驗證最新的App上Issue是否可以復現,App對32bit/64bit支持的情況。但是發現官方GooglePlay沒有下載按