<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為何說OpenGL ES上使用Vulkan不適合作為SDK

電子設計 ? 來源:互聯網 ? 作者:佚名 ? 2018-05-17 09:23 ? 次閱讀

我們非常高興的告訴大家最新版本的PowerVR SDK框架5.0和相關工具第二版本正式推出,這次更新包括很多激動人心的變化同時承諾讓每個PowerVR GPUs開發者的工作更加的簡單方便。這個版本同時涉及多個重大的改進,本篇文章將詳細向大家介紹。

之前4.x系列框架主要側重于在OpenGL ES和Vulkan之間提供統一的接口,充當跨平臺、跨API引擎解決方案的基礎。在之前的版本中已經實現了這些功能并且這些版本會繼續向開發者提供。然而我們已經看到了大家的反饋,因此我們需要作出一些重大改變為廣大開發者提供更大的便利。

首先我們決定先回到最基礎的方面,Vulkan API完全是為了讓開發人員有更多的自主和控制權,而我們之前的版本包含了對開發人員更多的手把手指導,因此這很可能會阻礙Vulkan的開發。

第二我們感覺到在OpenGL ES上使用Vulkan不適合作為SDK,這也同時干擾了OpenGL ES SDK的功能定位——OpenGL ES API學習的輔助工具。

因此現在我們將一切交還到開發人員的手中,把所有的東西都去除掉只留下有用的實現和封裝庫。這也意味著它不會向后兼容,但是你會真正使用Vulkan在工作而不是在使用基于Vulkan的框架。

下面的介紹一下PowerVR SDK 5.0框架!

PowerVR SDK 5.0框架結構圖PowerVR SDK 5.0框架結構圖

新框架包括三大部分——通用庫文件、Vulkan庫和OpenGL ES庫
? 通用庫文件是PVRShell、PVRCore和PVRAssets
- PVRCore是很多模塊的依賴,它提供很多底層支持代碼,這包括通用類型、數據流、日志記錄、引用計數等。
- PVRShell是一個獨立的抽象平臺,它是API的入口同時負責操作系統特定的窗口和輸入,包括最新版本中對Wayland的支持。
- PVRAssets包括的代碼用于處理資產比如紋理、模型等,它們會通過文件的方式加載。
? OpenGL ES庫包括PVRUtilsGles(涉及OpenGL ES具體功能的實現實例)和PVRCamera庫
? 全新的Vulkan庫包括PVRVk,它主要是Vulkan的SDK和簡單的封裝,同時還提供PVRUtilsVk,它包含Vulkan的具體使用幫助。

后面我們會具體介紹這些庫文件,但是首先我們需要了解一下之前PowerVR SDK框架4.x系列版本,這樣我們可以對作出的改變進行對比。

PowerVR框架5.0有哪些變化?

首先我們了解一下之前框架版本是如何設計的:

探索全新推出的PowerVR 5.0精益求精框架

如上圖所示4.x版本系列的框架結構與全新推出的5.0版本非常的不同,對于OpenGL和Vulkan并沒有進行區分,而且依賴項也更加的復雜。4.x系列版本的一些庫在5.0版本中進行了合并或者融合到5.0版本新的庫中。
? PVRShell與5.0版本的類似,但是它與其他模塊的耦合更加的緊密
? PVRCore和PVRAssets在4.x系列版本和5.0版本中基本是相同的,但是在5.0版本中從各方面進行了改進
? PVREnegineUtils根據PVRApi提供通用功能實現API抽象,在5.0版本中我們對OpenGL ES和Vulkan的實用工具分別進行了版本的調優和優化。
? PVRApi包括Vulkan和OpenGL ES API接口抽象資源,在5.0版本中這些抽象設置被取消了
? PVRNativeApi為底層API提供了實時綁定和實現的程序,在5.0版本中綁定只需要簡單的頭文件,所以不需要類似的工程文件。
? PVRCamera適用于OpenGL ES,并且提供iOS和安卓平臺硬件攝像頭驅動支持——在5.0版本中保持相同。

提升對Vulkan的支持

那么有哪些變化呢?現在這個框架更加專注于Vulkan并且變得更加的流暢,它提供了大量新的功能,幫助手冊等并且變得簡單。

PVRVk是一個獨立的C++ Vulkan封裝庫(沒有外部依賴),增加了智能指針支持、命名空間和強類型枚舉等。這些特性讓開發過程變得更加的容易,它是在4.x版本的PVRApi基礎上對于Vulkan部分進行了精簡和改進。

與4.x系列版本相比它具有更底層的功能抽象,并且已經接近于像Vulkan HPP這樣的底層抽象,但是仍然也保留著PowerVR框架 讓開發盡可能的簡單的根本定位?,F在大部分工作都是開發人員來負責實現,像Vulkan API的使用具有更多的自主權,但是在4.x系列版本中這些功能都是由框架來管理的。

談到這里那么PVRUtilsVk是一個新的模塊,它提供一些簡單通用任務的幫助手冊,不需要開發人員編寫事例代碼,包括的常用任務如下:
? 創建實例
? 創建設備
? 管理隊列
? 創建轉換鏈
? 以單行的形式管理接口
? 上傳紋理

PVRUtilsVk依賴于PVRVk、PVRCore和PVRAssets。

我們同時也向開發人員提供vulkan_IMG.h頭文件,它是對Khronos_vulkan.h文件的修改b版本,但是使用了強類型枚舉。我們同時也移除了全局命名空間原型,這樣做是為了盡可能減少全局命名空間的使用。

PVRVk具有自己的命名空間——pvrvk::而不是pvr::,它覆蓋了該框架的其余部分。

簡化后的框架設計

OpenGL ES框架已經回到了它的教育定位,跨平臺的交叉API引用解決方案無疑會阻礙它的教育功能定位。這意味著PVRGles也不再存在,替代它的是OpenGL ES版本的PVRUtils(PVRUtilsGles)能提供所需要的一切,它提供的工具可以直接操作OpenGL ES而不是引用中間的抽象接口。

很多函數庫是動態加載的,而且都采用gl命名空間,DynamicEGL.h和DynamicGles.h頭文件是用于加載EGL和OpenGL ES函數指針的獨立頭文件,開發人員將學習并享受對功能的完全控制,在后面的開發過程中會使用原生的OpenGL ES代碼,比如gl::BindTexture()。

模塊簡化設計總結

一些部分已經與其他模塊進行的合并或者完全移除,現在的依賴項減少了很多。PVRCore保持不變,但是一些通用的接口API進行了重新整理,比如IGraphicsContext、IPlatformContext等等。

PVRShell目前只依賴于PVRCore,它是一個獨立的平臺抽象層,前面提到過目前已經支持Wayland。

PVRNativeAPI和EngineUtils已經合并到PVRUtilsGles和PVRUtilsVk中,每一項都負責相應的抽象接口,它們都依賴于PVRCore和PVRAssets。PVRUtilsVk,沒有意外的,也依賴于PVRVk,兩個庫文件都提供了初始化的幫助手冊,比如創建EGL/EAGL內容(contexts)、著色器(shaders)、Vulkan轉換鏈等,此外還有一些功能比如紋理上傳等等。

PVRCamera與之前保持不變,僅支持OpenGL ES。

總結

正如大家所見我們對SDK框架做出了很多重大的改變,我們只有提供非常好的功能改進才能夠替換之前的4.x系列版本。如果你需要更多的信息,我們的框架參考文檔已經更新。如果你需要進一步的幫助,不要忘記我們的技術支持論壇,我們的技術支持團隊隨時準備回答你的任何問題。我們希望大家喜歡這個全新推出的框架版本。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SDK
    SDK
    +關注

    關注

    3

    文章

    974

    瀏覽量

    44861
  • powervr
    +關注

    關注

    0

    文章

    98

    瀏覽量

    30956
收藏 人收藏

    評論

    相關推薦

    請問stm32是不是不適合控制有位置要求的交流伺服pmsm電機?

    stm32很適合控制無傳感器pmsm電機,是否可以認為:stm32不適合控制有編碼器的交流伺服電機
    發表于 05-16 07:31

    OpenGL+ES+2.0+編程指南

    電子發燒友網站提供《OpenGL+ES+2.0+編程指南.pdf》資料免費下載
    發表于 05-07 14:20 ?0次下載

    零基礎小白適不適合學鴻蒙開發?

    在互聯網不斷發展以及萬物互聯時代的開啟過程中,鴻蒙操作系統的出現無疑是技術領域的一次重大突破。鴻蒙操作系統是一款“面向未來”的操作系統,它創造性地提出了三大技術理念:一次開發,多端部署;可分可合,自由流轉;統一生態,原生智能。隨著鴻蒙生態的壯大,投入鴻蒙開發的IT專業人才越來越多,對于從未接觸過此方面零基礎的學生而言,也是一次很不錯的職業轉向和技術提升的好機會。 什么是鴻蒙? ? 鴻蒙系統(HarmonyOS)是華為技
    的頭像 發表于 03-04 17:50 ?486次閱讀
    零基礎小白適<b class='flag-5'>不適合</b>學鴻蒙開發?

    電阻可以串聯,為何二極管不適合串聯?

    電阻可以串聯,為何二極管不適合串聯? 二極管是一種非線性電子元件,其工作原理與電阻截然不同。由于其獨特的電學特性,二極管不適合串聯使用。 首先,我們來了解一下二極管的基本原理。二極管由PN結構組成
    的頭像 發表于 02-18 10:00 ?445次閱讀

    請問AD9928適合驅動KAI08051嗎?

    您好,我們需要用AD9928驅動安森美的KAI08051的800萬像素的CCD sensor,請問AD9928適合驅動KAI08051嗎?若適合有沒有推薦的配置寄存器列表?若不適合有沒有推薦的驅動方式?
    發表于 12-12 08:30

    如何判斷適不適合學編程?

    做單片機項目陪跑營的這3年時間,我接觸到各種各樣的人群,有研究生、本科、大專、轉行的、小企業老板等。 經手過很多案例,我發現研究生這個群體,整體成功概率最高。 倒不是說,編程有多難,需要多好的數學、英語、學歷基礎、或者需要多高的智商和天賦。
    的頭像 發表于 11-07 10:40 ?265次閱讀

    Mali GPU OpenGL ES應用程序開發指南

    這是適用于馬里GPU的OpenGL ES應用程序開發指南。 它提供了使用OpenGL ES 1.1和OpenGL
    發表于 08-30 07:57

    淺談Docker不適合跑MySQL的原因

    容器的定義:容器是為了解決“在切換運行環境時,如何保證軟件能夠正常運行”這一問題。
    的頭像 發表于 08-25 16:58 ?257次閱讀

    Mali OpenGL ES 2.0 SDK for Android用戶指南

    馬里SDK是一個資源集合,幫助您為馬里GPU平臺構建OpenGL ES 2.0應用程序。 您可以使用它來創建新的應用程序、培訓和探索實現的可能性。 馬里SDK運行在以下平臺上: ·Mi
    發表于 08-18 06:45

    自適應可伸縮紋理壓縮開發人員指南

    ? ?ASTC壓縮算法的技術細節。 ?如何使用Arm ASTC編碼器(astcen)壓縮游戲資產。 ?如何將ASTC與OpenGL ESVulkan等圖形API結合使用。 ?如何將ASTC與Unity和虛幻引擎游戲引擎一起使用
    發表于 08-10 07:58

    Arm? Mali?脫機編譯器用戶指南

    Arm?馬里? Offline Compiler是一個命令行工具,用于對使用OpenGL ES Shading Language(ESSL)、Vulkan SPIR-V中間表示或OpenCL C編寫
    發表于 08-10 07:00

    Arm Mali?脫機編譯器用戶指南

    Arm?馬里? Offline Compiler是一個命令行工具,用于對使用OpenGL ES Shading Language(ESSL)或Vulkan SPIR-V中間表示編寫的圖形著色器進行
    發表于 08-08 07:42

    Arm OpenGL ES 3.0開發者指南

    OpenGL ES 3.0是對OpenGL ES 2.0標準的增強。 OpenGL ES 3.0
    發表于 08-08 06:03

    Imagination GPU 現支持 OpenGL? 4.6

    ES(用于嵌入式系統的 OpenGL 版本)、Vulkan(跨平臺圖形 API)和 OpenCL(用于并行編程的 API) )。隨著我們的高端 GPU 性能不斷提高,尤其是
    的頭像 發表于 07-17 09:25 ?541次閱讀
    Imagination GPU 現支持 <b class='flag-5'>OpenGL</b>? 4.6

    為什么面包板不適合高頻電路?

    不適合?對于高頻信號在面包板上的表現形式到底如何?下面,通過一些簡單的測試來回答這個問題。 二、實驗器材 實驗器材包括有以下幾個方面: 1、頻譜儀 這里使用了一臺DSA815頻譜儀,它具有“Trace”功能,可以用于測量一些系統的
    的頭像 發表于 07-08 07:35 ?798次閱讀
    為什么面包板<b class='flag-5'>不適合</b>高頻電路?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>