CN109710302B - 一种染色器软件管理装置和方法 - Google Patents

一种染色器软件管理装置和方法 Download PDF

Info

Publication number
CN109710302B
CN109710302B CN201811518898.6A CN201811518898A CN109710302B CN 109710302 B CN109710302 B CN 109710302B CN 201811518898 A CN201811518898 A CN 201811518898A CN 109710302 B CN109710302 B CN 109710302B
Authority
CN
China
Prior art keywords
program
module
driver
dyeing
driving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811518898.6A
Other languages
English (en)
Other versions
CN109710302A (zh
Inventor
马城城
田泽
聂曌
刘晖
张琛
黎小玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201811518898.6A priority Critical patent/CN109710302B/zh
Publication of CN109710302A publication Critical patent/CN109710302A/zh
Application granted granted Critical
Publication of CN109710302B publication Critical patent/CN109710302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明属于计算机图形领域,提供一种染色器软件管理装置和方法,对染色器驱动软件进行有效管理和高效使用。装置包括:用户输入模块(1)、静态驱动模块(2)、运行时生成驱动模块(3)、驱动程序信息获取模块(4)、程序空间管理模块(5)、程序加载模块(6)、程序使能配置信息检测模块(7)、驱动选择与配置模块(8)、程序空间模块(9)、程序运行控制模块(10);方法包括:(1)软件初始化;(2)用户程序输入;(3)用户程序识别;(4)驱动程序选择或生成;(5)驱动程序加载和配置。

Description

一种染色器软件管理装置和方法
技术领域
本发明属于计算机图形领域,尤其涉及一种染色器软件管理装置和方法。
背景技术
可编程染色器作为高性能图形处理器的核心和关键,它的性能直接决定图形处理器研制的成败,因此可编程染色器的合理使用是现阶段研究的热点。国外英伟达、AMD等公司都维护有自己染色器的管理方法,但未对外公开。已公开资料中,大部分针对可编程染色器执行特定任务功能的分析,并未发现有关可编程染色器的管理方法。
发明内容
本发明的目的是:
本发明主要提供一种染色器软件管理装置和方法,对染色器驱动软件进行有效管理和高效使用。
本发明的解决方案是:
一种染色器软件管理装置,包括:用户输入模块1、静态驱动模块2、运行时生成驱动模块3、驱动程序信息获取模块4、程序空间管理模块5、程序加载模块6、程序使能配置信息检测模块7、驱动选择与配置模块8、程序空间模块9、程序运行控制模块10;
用户输入模块1,用户输入的内容包括运行信息,染色程序以及OpenGL绘图应用程序;运行信息输出给驱动选择与配置模块8,染色程序输出给运行时生成驱动模块3,OpenGL绘图应用程序输出给程序使能配置信息检测模块7;
静态驱动模块2,预先准备多套具有不同特征的静态染色驱动程序,并将静态染色驱动程序输出到驱动程序信息获取模块4;
运行时生成驱动模块3,接收用户输入模块1输出的染色程序,在运行时生成动态染色驱动程序,并将动态染色驱动程序输出到驱动程序信息获取模块4;
驱动程序信息获取模块4,接收静态驱动模块2提供的静态染色驱动程序和运行时生成驱动模块3提供的动态染色驱动程序,提取其中的驱动程序信息,将所述驱动程序信息输出到程序加载模块6和驱动选择与配置模块8;
程序空间管理模块5,采用页式管理方法为程序加载模块6提供染色驱动程序空间管理,为染色驱动程序分配存储空间;
程序加载模块6,接收驱动程序信息获取模块4输出的驱动程序信息,接收程序空间管理模块5为该染色驱动程序分配的GPU端程序空间地址,然后将染色驱动程序从CPU端加载到GPU端的程序空间模块9;并且将染色驱动程序已加载或未加载的状态信息输出给驱动选择与配置模块8;
程序使能配置信息检测模块7,接收用户输入模块1输出的OpenGL绘图应用程序,检测该应用程序中的使能信息,将使能信息输出到驱动选择与配置模块8,用于染色驱动程序的自适应选择和配置;
驱动选择与配置模块8,在接收到用户输入模块1输出的运行信息时,从驱动程序信息获取模块4获取所选择的驱动程序信息;若没有接收到用户输入模块1输出的运行信息,则根据接收到的程序使能配置信息检测模块7输出的使能信息,自适应地从驱动程序信息获取模块4匹配最优驱动程序,获得该驱动的驱动程序信息;接收程序加载模块6输出的染色驱动程序已加载或未加载的状态信息,若该染色驱动程序已加载,则为所选择的染色驱动程序配置程序入口信息,若该染色驱动程序没有加载,则触发程序加载模块6进行所选择的染色驱动程序加载,然后配置程序入口信息,并将该程序入口信息输出到程序运行控制模块10;
程序运行控制模块10,接收驱动选择与配置模块8输出的程序入口信息,配置染色驱动程序入口,使染色驱动程序处于可运行状态。
程序空间模块9为程序加载模块6提供GPU端得染色驱动程序存储空间。
所述染色程序包括:GLSL程序或者经编译后的可执行二进制程序。
一种染色器软件管理方法,包括:
(1)软件初始化;
预先准备多套具有不同特征的静态染色驱动程序,将其加载到染色程序存储区;
(2)用户程序输入;
接收用户输入的染色程序、OpenGL绘图应用程序以及程序运行信息;
(3)用户程序识别;
对步骤(2)所接收的程序进行识别,判断该程序是只有OpenGL绘图应用程序,还是OpenGL绘图应用程序和运行信息,或是OpenGL绘图应用程序和染色程序;
(4)驱动程序选择或生成;
根据步骤(3)对用户输入程序的识别结果,选择或动态生成驱动程序;若用户输入程序只有OpenGL绘图应用程序,则提取该应用程序的特征,与步骤(1)阶段准备的多套静态驱动程序的特征进行比对,选择特征一致的驱动程序,若未找到特征完全一致的驱动程序,则选择包含所有特征的全驱动程序;若用户输入程序是OpenGL绘图应用程序和运行信息,则根据运行信息选择步骤(1)阶段准备的多套静态驱动程序中的一套;若用户输入程序是OpenGL绘图应用程序和染色程序,则在运行时动态生成驱动程序;
(5)驱动程序加载和配置;
将步骤(4)阶段动态生成的驱动程序加载到染色程序存储区,并对所选择或动态生成的驱动程序进行程序入口信息配置,使染色驱动程序处于可运行状态。
本发明的优点是:本发明提供的一种染色器软件管理装置和方法,通过获取静态染色驱动程序和动态染色驱动程序,在用户给定运行信息时,快速地启动所选择的染色驱动程序,否则将根据检测到的程序使能配置信息,进行染色器驱动程序的自适应选择和配置,从而达到染色器驱动软件的有效管理和高效使用。
附图说明
图1为本发明的装置模块图。
图2为本发明的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图和具体实施例对本发明的技术方案做进一步详细描述。
如图1所示,一种染色器软件管理装置,包括:用户输入模块1、静态驱动模块2、运行时生成驱动模块3、驱动程序信息获取模块4、程序空间管理模块5、程序加载模块6、程序使能配置信息检测模块7、驱动选择与配置模块8、程序空间模块9、程序运行控制模块10;
用户输入模块1,用户输入的内容包括运行信息,染色程序以及OpenGL绘图应用程序;染色程序可以是GLSL程序或者经编译后的可执行二进制程序。运行信息输出给驱动选择与配置模块8,染色程序输出给运行时生成驱动模块3,OpenGL绘图应用程序输出给程序使能配置信息检测模块7;
静态驱动模块2,预先准备多套具有不同特征的静态染色驱动程序,并将静态染色驱动程序输出到驱动程序信息获取模块4;
运行时生成驱动模块3,接收用户输入模块1输出的染色程序,在运行时生成动态染色驱动程序,并将动态染色驱动程序输出到驱动程序信息获取模块4;
驱动程序信息获取模块4,接收静态驱动模块2提供的静态染色驱动程序和运行时生成驱动模块3提供的动态染色驱动程序,提取其中的驱动程序信息,将所述驱动程序信息输出到程序加载模块6和驱动选择与配置模块8;
程序空间管理模块5,采用页式管理方法为程序加载模块6提供染色驱动程序空间管理,为染色驱动程序分配存储空间;
程序加载模块6,接收驱动程序信息获取模块4输出的驱动程序信息,接收程序空间管理模块5为该染色驱动程序分配的GPU端程序空间地址,然后将染色驱动程序从CPU端加载到GPU端的程序空间模块9;并且将染色驱动程序已加载或未加载的状态信息输出给驱动选择与配置模块8;
程序使能配置信息检测模块7,接收用户输入模块1输出的OpenGL绘图应用程序,检测该应用程序中的使能信息,将使能信息输出到驱动选择与配置模块8,用于染色驱动程序的自适应选择和配置;
驱动选择与配置模块8,在接收到用户输入模块1输出的运行信息时,从驱动程序信息获取模块4获取所选择的驱动程序信息;若没有接收到用户输入模块1输出的运行信息,则根据接收到的程序使能配置信息检测模块7输出的使能信息,自适应地从驱动程序信息获取模块4匹配最优驱动程序,获得该驱动的驱动程序信息;接收程序加载模块6输出的染色驱动程序已加载或未加载的状态信息,若该染色驱动程序已加载,则为所选择的染色驱动程序配置程序入口信息,若该染色驱动程序没有加载,则触发程序加载模块6进行所选择的染色驱动程序加载,然后配置程序入口信息,并将该程序入口信息输出到程序运行控制模块10;
程序空间模块9为程序加载模块6提供GPU端得染色驱动程序存储空间。
程序运行控制模块10,接收驱动选择与配置模块8输出的程序入口信息,配置染色驱动程序入口,使染色驱动程序处于可运行状态。
一种染色器软件管理方法,如图2所示,包括:
(1)软件初始化;
预先准备多套具有不同特征的静态染色驱动程序,将其加载到染色程序存储区;
(2)用户程序输入;
接收用户输入的染色程序、OpenGL绘图应用程序以及程序运行信息;染色程序可以是GLSL程序或者经编译后的可执行二进制程序。
(3)用户程序识别;
对步骤(2)所接收的程序进行识别,判断该程序是只有OpenGL绘图应用程序,还是OpenGL绘图应用程序和运行信息,或是OpenGL绘图应用程序和染色程序;
(4)驱动程序选择或生成;
根据步骤(3)对用户输入程序的识别结果,选择或动态生成驱动程序;若用户输入程序只有OpenGL绘图应用程序,则提取该应用程序的特征,与步骤(1)阶段准备的多套静态驱动程序的特征进行比对,选择特征一致的驱动程序,若未找到特征完全一致的驱动程序,则选择包含所有特征的全驱动程序;若用户输入程序是OpenGL绘图应用程序和运行信息,则根据运行信息选择步骤(1)阶段准备的多套静态驱动程序中的一套;若用户输入程序是OpenGL绘图应用程序和染色程序,则在运行时动态生成驱动程序;
(5)驱动程序加载和配置;
将步骤(4)阶段动态生成的驱动程序加载到染色程序存储区,并对所选择或动态生成的驱动程序进行程序入口信息配置,使染色驱动程序处于可运行状态。

Claims (4)

1.一种染色器软件管理装置,其特征在于,包括:用户输入模块(1)、静态驱动模块(2)、运行时生成驱动模块(3)、驱动程序信息获取模块(4)、程序空间管理模块(5)、程序加载模块(6)、程序使能配置信息检测模块(7)、驱动选择与配置模块(8)、程序空间模块(9)、程序运行控制模块(10);
用户输入模块(1),用户输入的内容包括运行信息,染色程序以及OpenGL绘图应用程序;运行信息输出给驱动选择与配置模块(8),染色程序输出给运行时生成驱动模块(3),OpenGL绘图应用程序输出给程序使能配置信息检测模块(7);
静态驱动模块(2),预先准备多套具有不同特征的静态染色驱动程序,并将静态染色驱动程序输出到驱动程序信息获取模块(4);
运行时生成驱动模块(3),接收用户输入模块(1)输出的染色程序,在运行时生成动态染色驱动程序,并将动态染色驱动程序输出到驱动程序信息获取模块(4);
驱动程序信息获取模块(4),接收静态驱动模块(2)提供的静态染色驱动程序和运行时生成驱动模块(3)提供的动态染色驱动程序,提取其中的驱动程序信息,将所述驱动程序信息输出到程序加载模块(6)和驱动选择与配置模块(8);
程序空间管理模块(5),采用页式管理方法为程序加载模块(6)提供染色驱动程序空间管理,为染色驱动程序分配存储空间;
程序加载模块(6),接收驱动程序信息获取模块(4)输出的驱动程序信息,接收程序空间管理模块(5)为该染色驱动程序分配的GPU端程序空间地址,然后将染色驱动程序从CPU端加载到GPU端的程序空间模块(9);并且将染色驱动程序已加载或未加载的状态信息输出给驱动选择与配置模块(8);
程序使能配置信息检测模块(7),接收用户输入模块(1)输出的OpenGL绘图应用程序,检测该应用程序中的使能信息,将使能信息输出到驱动选择与配置模块(8),用于染色驱动程序的自适应选择和配置;
驱动选择与配置模块(8),在接收到用户输入模块(1)输出的运行信息时,从驱动程序信息获取模块(4)获取所选择的驱动程序信息;若没有接收到用户输入模块(1)输出的运行信息,则根据接收到的程序使能配置信息检测模块(7)输出的使能信息,自适应地从驱动程序信息获取模块(4)匹配最优驱动程序,获得该驱动的驱动程序信息;接收程序加载模块(6)输出的染色驱动程序已加载或未加载的状态信息,若该染色驱动程序已加载,则为所选择的染色驱动程序配置程序入口信息,若该染色驱动程序没有加载,则触发程序加载模块(6)进行所选择的染色驱动程序加载,然后配置程序入口信息,并将该程序入口信息输出到程序运行控制模块(10);
程序运行控制模块(10),接收驱动选择与配置模块(8)输出的程序入口信息,配置染色驱动程序入口,使染色驱动程序处于可运行状态。
2.如权利要求1所述的一种染色器软件管理装置,其特征在于,
程序空间模块(9)为程序加载模块(6)提供GPU端染色驱动程序存储空间。
3.如权利要求1所述的一种染色器软件管理装置,其特征在于,所述染色程序包括:GLSL程序或者经编译后的可执行二进制程序。
4.一种染色器软件管理方法,其特征在于,包括:
(1)软件初始化;
预先准备多套具有不同特征的静态染色驱动程序,将其加载到染色程序存储区;
(2)用户程序输入;
接收用户输入的染色程序、OpenGL绘图应用程序以及程序运行信息;
(3)用户程序识别;
对步骤(2)所接收的程序进行识别,判断该程序是只有OpenGL绘图应用程序,还是OpenGL绘图应用程序和运行信息,或是OpenGL绘图应用程序和染色程序;
(4)驱动程序选择或生成;
根据步骤(3)对用户输入程序的识别结果,选择或动态生成驱动程序;若用户输入程序只有OpenGL绘图应用程序,则提取该应用程序的特征,与步骤(1)阶段准备的多套静态驱动程序的特征进行比对,选择特征一致的驱动程序,若未找到特征完全一致的驱动程序,则选择包含所有特征的全驱动程序;若用户输入程序是OpenGL绘图应用程序和运行信息,则根据运行信息选择步骤(1)阶段准备的多套静态驱动程序中的一套;若用户输入程序是OpenGL绘图应用程序和染色程序,则在运行时动态生成驱动程序;
(5)驱动程序加载和配置;
将步骤(4)阶段动态生成的驱动程序加载到染色程序存储区,并对所选择或动态生成的驱动程序进行程序入口信息配置,使染色驱动程序处于可运行状态。
CN201811518898.6A 2018-12-12 2018-12-12 一种染色器软件管理装置和方法 Active CN109710302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811518898.6A CN109710302B (zh) 2018-12-12 2018-12-12 一种染色器软件管理装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811518898.6A CN109710302B (zh) 2018-12-12 2018-12-12 一种染色器软件管理装置和方法

Publications (2)

Publication Number Publication Date
CN109710302A CN109710302A (zh) 2019-05-03
CN109710302B true CN109710302B (zh) 2021-12-24

Family

ID=66256247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811518898.6A Active CN109710302B (zh) 2018-12-12 2018-12-12 一种染色器软件管理装置和方法

Country Status (1)

Country Link
CN (1) CN109710302B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106663331A (zh) * 2014-08-22 2017-05-10 高通股份有限公司 用于图形处理中的着色器程序执行技术
CN106708518A (zh) * 2016-12-12 2017-05-24 中国航空工业集团公司西安航空计算技术研究所 一种染色器驱动运行时重构方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442706B2 (en) * 2014-05-30 2016-09-13 Apple Inc. Combining compute tasks for a graphics processing unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106663331A (zh) * 2014-08-22 2017-05-10 高通股份有限公司 用于图形处理中的着色器程序执行技术
CN106708518A (zh) * 2016-12-12 2017-05-24 中国航空工业集团公司西安航空计算技术研究所 一种染色器驱动运行时重构方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
统一着色架构3D引擎关键技术研究;邓艺 等;《计算机技术与发展》;20180630;第28卷(第6期);第170-173页 *

Also Published As

Publication number Publication date
CN109710302A (zh) 2019-05-03

Similar Documents

Publication Publication Date Title
US9286042B2 (en) Control flow graph application configuration
US9465734B1 (en) Coalition based memory management
CN108229148B (zh) 一种基于Android虚拟机的沙箱脱壳方法及***
US11216343B1 (en) System and method for accelerating processing in event-driven server-less computing
US10423471B2 (en) Virtualizing integrated calls to provide access to resources in a virtual namespace
CN103793249A (zh) 一种Java虚拟机中类库的多线程预加载方法
US9087137B2 (en) Detection of custom parameters in a request URL
EP2988242B1 (en) Information processing device, and information processing method
CN112214267A (zh) 一种安卓脱壳加速方法、装置、存储介质及计算机设备
CN103064705B (zh) 计算机***启动处理方法与装置
CN109710302B (zh) 一种染色器软件管理装置和方法
CN112445538B (zh) 可重构处理器的配置加载***及方法
CN113220403A (zh) h5拦截Android返回事件的方法、装置及电子设备
CN105247618A (zh) 一种硬盘执行应用代码的方法及装置
CN111679920A (zh) 批量权益数据处理方法及装置
CN103499942B (zh) 模块配置的处理方法和装置
CN106161050B (zh) 问题资源指示装置及问题资源指示方法
US7908375B2 (en) Transparently externalizing plug-in computation to cluster
CN110888771A (zh) 对进程进行监视分析的方法、装置、电子设备及存储介质
US8688767B2 (en) Distributed processing system, distributed operation method and computer program
CN114416206A (zh) 一种插件热加载方法、***、终端设备及存储介质
CN106874182B (zh) 代码异常处理、代码执行方法及装置
CN114817907A (zh) 一种测试方法及***
CN117675782A (zh) 一种文件的下载方法、装置、可读存储介质及电子设备
CN118246006A (zh) 一种文档文件的行为检测方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant