999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

圖形處理顯示列表的設計與實現(xiàn)

2016-02-24 10:41:13馬城城薛凌藝
計算機技術與發(fā)展 2016年4期
關鍵詞:功能

劉 暉,田 澤,馬城城,張 駿,薛凌藝

(1.中國航空工業(yè)西安航空計算技術研究所,陜西 西安 710068;22.集成電路與微系統(tǒng)設計航空科技重點試驗室,陜西 西安 710068;3.西安翔騰微電子科技有限公司,陜西 西安 710068)

圖形處理顯示列表的設計與實現(xiàn)

劉 暉1,2,田 澤1,2,馬城城1,2,張 駿1,2,薛凌藝3

(1.中國航空工業(yè)西安航空計算技術研究所,陜西 西安 710068;22.集成電路與微系統(tǒng)設計航空科技重點試驗室,陜西 西安 710068;3.西安翔騰微電子科技有限公司,陜西 西安 710068)

顯示列表功能是圖形處理器3D處理引擎的核心功能,通過將一段圖形繪制指令存儲到圖形處理器內(nèi)部,來完成復雜場景下同一物體的重復繪制。該功能極大地減少了主機與圖形處理器之間的數(shù)據(jù)吞吐量,降低數(shù)據(jù)帶寬的壓力、高效地繪制復雜場景。文中基于Xilinx XC7VX1140T構建FPGA原型系統(tǒng),參考ALT-M9芯片的實現(xiàn)能力,提出了一種軟硬件協(xié)同方式的顯示列表設計實現(xiàn)方法。該方法充分利用了CPU與GPU的處理能力,靈活實現(xiàn)了圖形處理命令在不同實現(xiàn)方式下顯示列表的設計與實現(xiàn)。驗證結果表明,軟硬件協(xié)同方式實現(xiàn)的顯示列表性能優(yōu)越,空間分配管理靈活,可靠性高。

圖形處理器;OpenGL;顯示列表;空間管理

0 引 言

顯示列表功能廣泛應用于物體重復繪制、物體運動軌跡描述、儀表盤繪制等復雜場景繪制中,是一種簡單、高效的使用方式,極大地降低了CPU與GPU之間的帶寬壓力,提高了編程的效率與靈活性[1]。顯示列表已成為圖形處理器應用的一個新方向。

顯示列表分為編譯模式和編譯執(zhí)行模式。在編譯模式下,圖形繪制指令僅存儲到圖形處理器內(nèi)部;在編譯執(zhí)行模式下,圖形繪制指令存儲到圖形處理器內(nèi)部的同時發(fā)送給3D處理單元進行執(zhí)行。傳統(tǒng)的硬件實現(xiàn)方式靈活性較差[2],浪費了主機處理器的性能,限制了圖形處理命令的實現(xiàn)方式。文中提出了一種軟硬件協(xié)同的實現(xiàn)方式,其適用范圍不局限于圖形處理語言和圖形處理命令的實現(xiàn)方式[3]。

1 顯示列表原理

在圖形處理器的應用中顯示列表用于多次繪制同一場景或物體,其原理如圖1所示。

圖1 顯示列表原理

當圖形處理器收到除顯示列表外的圖形繪制應用程序時,直接將圖形處理命令發(fā)送到3D功能執(zhí)行單元進行處理。當圖形處理器收到定義顯示列表命令,并且當前定義的顯示列表為僅編譯模式時,圖形處理命令發(fā)送到顯示列表存儲單元,當前顯示列表中包括的圖形繪制命令僅做存儲,對當前的圖形繪制沒有影響。當圖形處理器收到定義顯示列表命令,并且當前定義的顯示列表為編譯執(zhí)行模式時,圖形處理命令會同時發(fā)送給顯示列表存儲單元進行存儲和3D功能執(zhí)行單元進行命令執(zhí)行。當圖形處理器收到調(diào)用顯示列表命令時,圖形處理器從顯示列表存儲單元獲取對應的顯示列表命令,并將其發(fā)送到3D功能單元執(zhí)行。當圖形處理器收到刪除顯示列表命令時,圖形處理器釋放對應顯示列表的存儲空間。

1.1 傳統(tǒng)的顯示列表實現(xiàn)方式

傳統(tǒng)的顯示列表實現(xiàn)方式中,每一條圖形處理指令都在對應的功能單元執(zhí)行。這樣的實現(xiàn)方式方便了顯示列表的存儲、調(diào)用,但卻在很大程度上增加了圖形處理器的硬件資源開銷,增大了芯片的整體功耗[4],而且浪費了主機處理器的處理性能。

例如曲線曲面功能,需要根據(jù)用戶規(guī)定的控制點信息,通過Bernstein多項式計算出繪制點信息,并按照點的處理方式進行剪裁、消隱、歸一化等處理并最終繪制出來。若采用硬件方式實現(xiàn),需要實現(xiàn)階乘等超越函數(shù),對硬件資源的開銷較大,浪費了主機處理器的處理性能[5]。

1.2 軟硬件協(xié)同方式

HKM9000圖形處理器是中航工業(yè)計算所自主研發(fā)的一款功能性能與ALT-M9相當?shù)膱D形處理器。文中以HKM9000圖形處理器為設計載體,設計方法的應用不局限于某款圖形處理器。

在HKM9000圖形處理器設計中,將圖形處理命令進行分類,曲線曲面功能、頂點數(shù)組功能及查詢類相關功能由主機軟件實現(xiàn);其他功能由硬件電路實現(xiàn),因此需要將顯示列表命令分為軟件記錄和硬件記錄。軟件記錄占用主處理器的空間,可由用戶分配,硬件記錄占用圖形處理器內(nèi)的存儲空間,由顯示存儲單元分配空間。這種設計方式極大地提高了圖形指令設計的靈活性。

2 基于HKM9000圖形處理器的顯示列表設計與實現(xiàn)

2.1 顯示列表數(shù)據(jù)管理

顯示列表存儲數(shù)據(jù)包括硬件數(shù)據(jù)節(jié)點和軟件數(shù)據(jù)節(jié)點。軟件數(shù)據(jù)節(jié)點需要進行軟件空閑節(jié)點池管理,記錄軟件節(jié)點函數(shù)、函數(shù)參數(shù)及后續(xù)節(jié)點號;硬件數(shù)據(jù)節(jié)點需要進行硬件空閑節(jié)點池管理,記錄硬件節(jié)點地址和數(shù)據(jù)量及后續(xù)節(jié)點號。

對軟件記錄進行數(shù)據(jù)管理如下所示:

typedef struct

{/*指向軟件實現(xiàn)函數(shù)的函數(shù)指針*/

GLVoid (*Func_Pointer)(Glvoid);

/*函數(shù)指針映射表的項數(shù)*/

GLin Func_Pointer_num;

/*記錄指向函數(shù)的參數(shù)*/

GLFloat Params[SW_API_PAMS_NUM];

/*指向當前軟件記錄節(jié)點的下一個節(jié)點*/

GLushort Next;

}ST_SW_NODE;

typedef struct

{/*記錄顯示列表中空閑軟件節(jié)點個數(shù)*/

Glushort SW_Idle_Cnt;

/*記錄顯示列表中空閑軟件節(jié)點頭*/

Glushort SW_Idle_Head;

/*記錄顯示列表中空閑軟件節(jié)點尾*/

Glushort SW_Idle_Tail;

/*記錄軟件實現(xiàn)的API在顯示列表中的信息*/

ST_SW_NODE SW_Node[SW_API_SIZE];

}ST_SW_NODE_INFO;

對硬件記錄進行數(shù)據(jù)管理如下所示:

typedef struct

{/*保存顯示列表號*/

GLuint NewList_Num;

/*保存對應的首節(jié)點號*/

Glushort Node_Num;

/*顯示列表是否可用*/

GLboolean NewList_Enable;

}ST_NEWLIST_NODE;

typedef struct

{/*當前節(jié)點中存儲的API個數(shù)*/

GLubyte Size;

/*指向當前節(jié)點的下一節(jié)點*/

GLushort Next;

}ST_CALLLIST_NODE;

2.2 顯示列表資源

經(jīng)測試,ALT-M9內(nèi)部能存放約200萬條OpenGL命令,所以在HKM9000圖形處理器內(nèi)部分配50 MB的存儲空間,最多能夠存儲1 638 400條圖形處理指令,其處理能力與ALT-M9相當。

顯示列表可供支配的資源如圖2所示,包括51 201個可被記錄的顯示列表NewList節(jié)點、51 200個硬件記錄的頁,及2 000個軟件記錄的函數(shù)節(jié)點。

2.2.1 NewList節(jié)點

當定義顯示列表時,首先判斷當前的顯示列表號在NewList節(jié)點中是否已被占用:若已被占用但節(jié)點號不相同,則當前顯示列表定義不成功;若已被占用且節(jié)點號相同則需要先刪除之前的顯示列表釋放占用空間,再記錄當前定義的顯示列表;若節(jié)點號未被占用,則當前顯示列表可定義。

圖2 顯示列表資源

2.2.2 硬件空閑頁節(jié)點

為了方便存儲空間尋址和內(nèi)存管理,采用頁式管理的方法,將50 MB的GPU存儲空間劃分為50K個1 kB大小的頁,每一頁最多可存儲32條圖形指令,且每一頁只能對應唯一的顯示列表。當多個節(jié)點對應一個顯示列表時,各節(jié)點按照定義順序依次組成節(jié)點鏈[6]。

硬件空閑節(jié)點池由頭尾指針維護,顯示列表定義時從頭指針處獲取硬件空閑節(jié)點,顯示列表刪除時從尾指針處添加已釋放的空閑節(jié)點[7]。

2.2.3 軟件空閑節(jié)點

軟件空閑節(jié)點的使用及管理方式與硬件空閑頁節(jié)點類似,用來記錄軟件方式實現(xiàn)的顯示列表函數(shù),軟件節(jié)點占用主處理器的存儲空間可在使用時靈活調(diào)整。

2.3 顯示列表設計與實現(xiàn)

顯示列表各接口按照實現(xiàn)功能分為軟件實現(xiàn)和軟硬件協(xié)同實現(xiàn)。

2.3.1 glGenLists函數(shù)

GLuint glGenLists(GLsizei range)圖形命令由軟件實現(xiàn),返回在0到最大整數(shù)之間range個連續(xù)的數(shù),作為可用現(xiàn)實列表號的選擇。

2.3.2 glNewList/glEndList函數(shù)

void glNewList(GLuint list,GLenum mode)/ void glEndList(void)圖形指令由硬件實現(xiàn),它們指定了當前要聲明的顯示列表及顯示列表內(nèi)包含的圖形指令。首先在NewList節(jié)點中查找下標為list的節(jié)點中存儲的顯示列表號,若與當前定義的顯示列表號相同,則刪除之前定義的顯示列表并釋放其占用的空間節(jié)點,否則當前NewList節(jié)點被占用,顯示列表定義失敗。

顯示列表空間按照頁式管理,每個顯示列表所占用的空間可在NewList節(jié)點號對應的后續(xù)節(jié)點中查找。為方便顯示列表的數(shù)據(jù)調(diào)用與地址查找[8],更新圖形指令接口如下:void glNewList(GLuint addr,GLenum mode,GLuint size)。其中,addr表示當前使用的節(jié)點號,mode表示當前顯示列表類型,size表示當前節(jié)點號中包括的命令條數(shù)。顯示列表按照API的實現(xiàn)方式來分配當前的顯示列表空間。

2.3.3 glListBase函數(shù)

void glListBase(GLuint base)由軟件實現(xiàn),它將顯示列表索引數(shù)組按照指定的偏移進行排序,并最終由顯示列表調(diào)用。

2.3.4 glCallList/glCallLists函數(shù)

void glCallList(GLuint list)/void glCallLists(GLsizei n,GLenum type,const GLvoid * lists)用于調(diào)用顯示列表,glCallList函數(shù)功能由硬件實現(xiàn),根據(jù)調(diào)用的顯示列表號來查找NewList節(jié)點中對應的節(jié)點數(shù)據(jù)。若與調(diào)用的顯示列表號相等,查找后續(xù)鏈接的節(jié)點并依次調(diào)用,調(diào)用的函數(shù)接口更新為:void glCallList(GLuint addr,GLuint size),更方便于數(shù)據(jù)調(diào)用與地址查找。glCallLists封裝glCallList實現(xiàn)[9],依次按照顯示列表索引數(shù)組獲得當前調(diào)用號并查找NewList節(jié)點計算。

2.3.5 glDeleteLists函數(shù)

void glDeleteLists(GLuint list,GLsizei range)功能是刪除已定義的顯示列表。它由軟件實現(xiàn),先查找顯示列表索引判斷當前的顯示列表是否存在,對于存在的顯示列表,釋放鏈接節(jié)點的地址空間,并在軟/硬件空閑節(jié)點池中存儲,以備后續(xù)調(diào)用。

2.3.6 glIsList函數(shù)

GLboolean glIsList(GLuint list)功能是查詢當前號是否為一個顯示列表號。它由軟件實現(xiàn),通過遍歷NewList節(jié)點查找是否有對應的號,若有則當前號是一個顯示列表號,否則不是。

3 顯示列表測試

為評估以上設計中顯示列表的功能及性能,搭建HKM9000 FPGA驗證平臺與ALT-M9圖形處理器進行對比實驗。

HKM9000 FPGA原型測試平臺如圖3所示。

圖3 HKM9000 FPGA驗證平臺

將經(jīng)過編譯、綜合后生成的邏輯bin文件加載到FPGA原型系統(tǒng)中[10],主機端運行圖形繪制軟件,圖形處理驅動程序將上層的圖形應用程序翻譯為硬件可識別的命令碼流,通過PCI總線將命令碼流傳輸給HKM9000原型系統(tǒng),并在其上執(zhí)行功能,最終的結果由顯控單元輸出到顯示器上[11]。

軟硬件測試環(huán)境如表1所示。

表1 軟硬件測試環(huán)境

3.1 功能測試

功能測試結果如圖4所示。

圖4 顯示列表功能測試效果圖

在HKM9000 FPGA平臺上測試了顯示列表的定義、調(diào)用、查詢及刪除操作,其繪圖結果與返回值與ALT-M9平臺一致,基本功能實現(xiàn)正確。

3.2 性能測試

性能測試結果如圖5所示。

圖5 顯示列表接口性能測試

測試結果為100萬次調(diào)用的平均運行時間。從結果可以看出,HKM9000圖形處理器上顯示列表接口的處理性能與ALT-M9平臺下的性能基本相當,其中某些接口的處理性能還要優(yōu)于ALT-M9平臺[12]。

4 結束語

文中介紹了圖形處理器中的顯示列表功能,在分析ALT-M9芯片功能性能的基礎上,提出了一種軟硬件結合方式來實現(xiàn)顯示列表功能的方法[13]。該方法充分利用了圖形處理的顯示列表空間,靈活地適用于多種圖形處理接口實現(xiàn)方式[14],具有可靠性高、編程靈活、易于實現(xiàn)、易于維護、成本低廉等優(yōu)點。

[1] 譚顯強.基于FPGA的3D圖形處理器IP核的設計與實現(xiàn)[D].南京:南京航空航天大學,2010.

[2] Sefraoui O,Aissaoui M,Eleuldj M.Openstack:toward an open-source solution for cloud computing[J].International Journal of Computer Applications,2012,55(3):38-42.

[3] Nvidia.Dedicated GPU technology for virtual desktops[EB/OL].[2013-11-05].http://www.nvidia.com/object/dedicated-gpus.html.

[4] Lindholm E,Nickolls J,Oberman S,et al.Nvidia tesla:a unified graphics and computing architecture[J].IEEE Micro,2008,28(2):39-55.

[5] Brodtkorb A R,Hagen T R,Stra M L.Graphics Processing Unit (GPU) programming strategies and trends in GPU computing[J].Journal of Parallel and Distributed Computing,2013,73(1):4-13.

[6] 邱 航,陳雷霆.基于點的計算機圖形學研究與進展[J].計算機科學,2009,36(6):10-15.

[7] Shreiner D.OpenGL編程指南[M].第6版.北京:機械工業(yè)出版社,2009.

[8] Shreiner D,Woo M,Neider J,et al.OpenGL編程指南[M].李 軍,徐 波,譯.第7版.北京:機械工業(yè)出版社,2010:77-79.

[9] James F,Andriesvan D,Steven K,et al.計算機圖形學導論[M].董士海,唐澤圣,李 華,等,譯.北京:機械工業(yè)出版社,2004.

[10] 武 丹,許如星.淺析《計算機圖形學》中線裁剪算法的講授方法[J].科技創(chuàng)新導報,2009(30):182-182.

[11] 韓俊剛,蔣 林,杜慧敏,等.一種圖形加速器和著色器的體系結構[J].計算機輔助設計與圖形學學報,2010,22(3):363-372.

[12] 楊 毅.面向移動設備的真實感圖形處理系統(tǒng)設計與實現(xiàn)[D].合肥:中國科技大學,2008.

[13] 劉 鑫,蔣 林.2D圖形加速器設計與實現(xiàn)[J].微電子學與計算機,2013,30(6):75-79.

[14] 盧 俊,顏 哲,田 澤.一種高效GPU存儲系統(tǒng)體系架構設計[J].計算機技術與發(fā)展,2015,25(4):6-9.

Design and Realization of Display List Function in Graph Process

LIU Hui1,2,TIAN Ze1,2,MA Cheng-cheng1,2,ZHANG Jun1,2,XUE Ling-yi3

(1.Aeronautical Computing Technique Research Institute,Xi’an 710068,China; 2.Key Lab of Aeronautics Science and Technology of Integrate Circuit and Micro-system Design, Xi’an 710068,China; 3.Xiangteng Micro-electronics Technology Co.,Ltd.,Xi’an 710068,China)

Display list is the core function of 3D process engine in GPU,through storing a number of graph commands to GPU to complete repeat drawing for the same object in complex scene.It reduces the amount of data between CPU and GPU in a large degree,and lows pressure of data bandwidth and draws complex scene efficiently.Based on FPGA system built by Xilinx XC7VX1140T,taking a consideration in the capability of ALT-M9 chip,a method of collaborating hardware and software in display list design and realization is proposed.This method makes full use of the ability with CPU and GPU to complie the display list flexibly based on different way in graph commands realization.Verification results show that performance of collaborating hardware and software in display list is superior,with flexible the space allocation management and high reliability.

GPU;OpenGL;display list;memory management

2015-06-16

2015-09-22

時間:2016-03-22

中國航空工業(yè)集團創(chuàng)新基金(2010BD63111)

劉 暉(1986-),男,碩士,研究方向為SoC設計與驗證;田 澤,研究員,研究方向為SoC設計、嵌入式系統(tǒng)設計、VLSI設計。

http://www.cnki.net/kcms/detail/61.1450.TP.20160322.1517.012.html

TP39

A

1673-629X(2016)04-0119-04

10.3969/j.issn.1673-629X.2016.04.026

猜你喜歡
功能
拆解復雜功能
鐘表(2023年5期)2023-10-27 04:20:44
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基層弄虛作假的“新功能取向”
當代陜西(2021年21期)2022-01-19 02:00:26
深刻理解功能關系
鉗把功能創(chuàng)新實踐應用
關于非首都功能疏解的幾點思考
基于PMC窗口功能實現(xiàn)設備同步刷刀功能
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫(yī)結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 亚洲天堂首页| 国产尤物在线播放| 欧美中文字幕一区| 免费中文字幕在在线不卡| 亚洲国产欧洲精品路线久久| 国产精品网址在线观看你懂的 | 91精品免费久久久| 成人精品在线观看| 欧美国产日韩一区二区三区精品影视| 国产亚洲精品无码专| 国产情侣一区二区三区| 国产免费观看av大片的网站| 亚洲中文字幕无码mv| 日韩国产 在线| 亚洲资源站av无码网址| 麻豆AV网站免费进入| 毛片免费试看| 中文字幕人成乱码熟女免费| 高清欧美性猛交XXXX黑人猛交 | 欧美人在线一区二区三区| 免费高清a毛片| 香蕉久人久人青草青草| 亚洲欧美另类视频| 精品无码人妻一区二区| 国产内射一区亚洲| 99无码熟妇丰满人妻啪啪 | 亚洲精品777| 麻豆精品在线| 亚亚洲乱码一二三四区| 国内精品一区二区在线观看| 国产午夜一级毛片| 国产97视频在线| 亚洲一区无码在线| 久久精品只有这里有| 中文字幕日韩久久综合影院| 国产一级毛片在线| 亚洲精品日产精品乱码不卡| 99热这里只有精品免费| 波多野结衣一区二区三视频| 午夜福利亚洲精品| 亚洲精品视频免费| 亚洲高清在线天堂精品| 国产亚洲精| 国产久操视频| 嫩草影院在线观看精品视频| 国产精品亚洲天堂| 国语少妇高潮| 99国产在线视频| 亚洲Av综合日韩精品久久久| 亚洲乱码精品久久久久..| 一级做a爰片久久毛片毛片| 欧美成人A视频| 亚洲日韩AV无码精品| 农村乱人伦一区二区| 波多野结衣视频网站| 全部免费毛片免费播放| 久久精品免费看一| 麻豆精品在线视频| 精品久久久久久中文字幕女| 精品无码人妻一区二区| 在线亚洲小视频| 国产精品亚洲一区二区三区z| 成人免费黄色小视频| 女人爽到高潮免费视频大全| 亚洲一区二区视频在线观看| 亚洲性影院| 97在线观看视频免费| 国产激情无码一区二区APP | www精品久久| 色婷婷成人| 黄色一级视频欧美| 国产精品吹潮在线观看中文| 久久性妇女精品免费| 99福利视频导航| 亚洲高清免费在线观看| 日本一区二区三区精品视频| 亚洲欧美综合精品久久成人网| 特级aaaaaaaaa毛片免费视频| 欧美啪啪网| 中文字幕欧美日韩| 欧美区国产区| 国产美女无遮挡免费视频|