CN106605211A - 着色器的渲染时间链接 - Google Patents
着色器的渲染时间链接 Download PDFInfo
- Publication number
- CN106605211A CN106605211A CN201580048855.4A CN201580048855A CN106605211A CN 106605211 A CN106605211 A CN 106605211A CN 201580048855 A CN201580048855 A CN 201580048855A CN 106605211 A CN106605211 A CN 106605211A
- Authority
- CN
- China
- Prior art keywords
- precompile
- graphical effect
- module
- effect module
- computing device
- 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.)
- Pending
Links
- 230000000694 effects Effects 0.000 claims abstract description 223
- 238000009877 rendering Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 11
- 235000013399 edible fruits Nutrition 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 20
- 238000004040 coloring Methods 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 11
- 230000002349 favourable effect Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 238000013480 data collection Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 208000024754 bloodshot eye Diseases 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 201000005111 ocular hyperemia Diseases 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
在一个示例中,图形渲染子系统可以选择性地链接一组图形效果模块,诸如着色器,以增加处理效率。图形渲染子系统可以执行第一预编译图形效果模块的性能属性与链接准则的比较。图形渲染子系统可以响应于性能属性满足链接准则而在渲染时间链接第一预编译图形效果模块和第二预编译图形效果模块。
Description
背景技术
软件应用可以向图像内容上应用多个位图效果的组合。照片编辑应用可以调整亮度、去除红眼或者向照片上应用小插图。该应用可以使用图形处理单元来对图形数据集执行一组图形效果。图形数据集可以是数字图像、位图、数字视频或其它视觉数据。图形处理单元可以对原始图像按顺序应用每个操作。
发明内容
提供本发明内容是为了以简化形式介绍下面在详细描述中进一步描述的概念的选择。本发明内容并不意图识别要求保护的主题的关键特征或本质特征,其也不意图用来限制要求保护的主题的范围。
下面所讨论的示例涉及选择性地链接一组图形效果模块(诸如着色器)以增加处理效率或准确度的图形渲染子系统。图形渲染子系统可以执行第一预编译图形效果模块的性能属性与链接准则的比较。图形渲染子系统可以响应于性能属性满足链接准则而在渲染时间将第一预编译图形效果模块和第二预编译图形效果模块链接。
附图说明
为了描述可以用来获得上述及其它优点和特征的方式,阐述了并将通过参考在附图中图示出的其特定示例来再现更特定描述。理解到这些附图仅仅描绘了典型示例,并且因此不应被视为其范围的限制,将通过使用附图用附加的特殊性和细节来描述和解释实施方式。
图1在框图中图示出示例性计算装置。
图2在框图中图示出示例性图形处理单元。
图3在框图中图示出示例性离散变换系。
图4在框图中图示出示例性链接变换系。
图5在框图中图示出示例性链接操作架构。
图6a—b在框图中图示出示例性函数链接。
图7a—b在框图中图示出示例性采样模式。
图8在框图中图示出示例性图拓扑。
图9a—b在框图中图示出示例性输出映射。
图10在框图中图示出示例性多样化模块布局。
图11在流程图中图示出用于将预编译图形效果模块与中央处理单元组装的示例性方法。
图12在流程图中图示出用于确定预编译图形效果模块的链接能力的示例性方法。
图13在流程图中图示出用于用图形处理单元来执行预编译图形效果模块的示例性方法。
具体实施方式
下面详细地讨论示例。虽然讨论了特定实施方式,但应理解的是这仅仅是出于举例说明的目的而完成的。本领域的技术人员将认识到在不脱离本公开的主题的精神和范围的情况下可使用其它组件和配置。实施方式可以是机器实现方法、用于至少一个处理器的具有存储在其上面的详述一种方法的一组指令的有形机器可读介质或者用于计算装置的图形渲染子系统。
图形处理单元可以用中央处理单元工作,以处理图形数据集以便显示给用户。图形数据集可以是任何类型的数字图形数据,诸如数字图像、位图、数字视频或其它视觉数据。在处理图形数据集的同时,图形处理单元可以对图像应用一个或多个图形效果。该图形处理单元可以实现用以创建图形效果的图形效果模块。图形效果模块是在执行图形效果方面特殊化的应用模块,诸如着色器。着色器是可以用来在图形处理单元或常规中央处理单元中执行图形效果的专用渲染应用。
中央处理单元可以链接图形效果模块链接以使图形处理单元在渲染期间的操作时间、功率消耗以及存储器消耗最小化。通过链接图形效果模块,图形处理单元可以在单个渲染通过(a single render pass)中对图形数据集执行图形效果变换。中央处理单元可以在确定是否链接两个图形效果模块时考虑输入复杂性、输出拓扑、输出的坐标空间、输出区、效果类型、硬件能力、图形逼真度、图形精度或者其它性能属性。性能属性是被中央处理单元用来确定用于链接的适合性的图形效果模块的特性。可以在加载到图形处理单元的渲染器层中之前编译图形效果模块。中央处理单元可以在渲染时间链接图形效果模块。
如果中央处理单元选择将两个图形效果模块链接,则图形处理单元可以选择图形效果模块的链接优化版本。链接优化版本可以是执行图形效果模块的任务的简化功能版本,诸如可链接图形效果功能或者可链接着色器功能。如果中央处理单元选择不将两个图形效果模块链接,则中央处理单元可以选择图形效果模块的离散操作版本。离散操作版本可以是可以作为独立实体而存在的全变换版本,诸如全图形效果模块或全着色器。
因此,在一个示例中,图形渲染子系统可以选择性地将一组图形效果模块(诸如着色器)链接,以在增加准确度和中央处理单元效率的同时使执行时间、存储器消耗或消耗功率最小化。中央处理单元可以执行第一预编译图形效果模块的性能属性与链接准则的比较。中央处理单元可以响应于性能属性满足链接准则而在渲染时间将第一预编译图形效果模块和第二预编译图形效果模块链接。图形处理单元在单个渲染通过中对图形数据集执行第一预编译图形效果模块和第二预编译图形效果模块。
图1图示出可以处理图形数据的示例性计算装置100的框图。计算装置100可以将硬件、软件、固件以及片上系统技术中的一个或多个组合以处理图形数据。计算装置100可以包括总线110、具有中央处理单元122和图形处理单元124的图形渲染子系统120、存储器130、数据储存器140、输入/输出装置150以及通信接口160。总线110或其它组件互连可以允许计算装置100的组件之间的通信。
图形渲染子系统124的中央处理单元122可以包括解释并执行一组指令的至少一个常规处理器或微处理器。中央处理单元122可以被配置成执行第一预编译图形效果模块的性能属性与链接准则的比较。中央处理单元122可以被配置成将第一预编译图形效果模块和第二预编译图形效果模块链接。图形渲染子系统的图形处理单元124可以包括专用于处理图形数据的至少一个处理器或微处理器。图形处理单元124可以被配置成在单个渲染通过中对图形数据集执行第一预编译图形效果模块和第二预编译图形效果模块。
存储器130可以是随机存取存储器(RAM)或另一类型的动态数据储存器,其存储信息和指令以便由中央处理单元122执行。存储器130还可以存储在由中央处理单元122执行指令期间所使用的临时变量或其它中间信息。数据储存器140可以包括常规只读存储器(ROM)装置或另一类型的静态数据储存器,其存储静态信息和指令以用于中央处理单元122。数据储存器140可以包括任何类型的有形机器可读介质,诸如磁性或光学记录介质,诸如数字视频磁盘及其它相应驱动。有形机器可读介质是存储机器可读代码或指令(与信号相反)的物理介质。如本文中所述地将指令存储在计算机可读介质上可与使指令被传播或发送区别开,因为传播传输指令,对比存储指令,诸如可以用具有存储在其上面的指令的计算机可读介质发生。因此,除非另外说明,对具有存储在其上面的指令的计算机可读媒体/介质的参考以此形式或类似形式参考可以在其上面存储或保持数据的有形媒体。数据储存器140可以存储详述一种方法的一组指令,该组指令在被一个或多个处理器执行时促使该一个或多个处理器执行所述方法。数据储存器140还可以是用于存储预编译图形效果模块(诸如着色器)的数据库或数据库接口。
输入/输出装置150可以包括允许用户向计算装置100输入信息的一个或多个常规机构,该常规机构诸如键盘、鼠标、语音识别装置、扩音器、耳机、手势识别装置、触摸屏等。输入/输出装置150可以包括向用户输出信息的一个或多个常规机构,包括显示器、打印机、一个或多个扬声器、耳机或介质,诸如存储器或者磁盘或光盘和相应磁盘驱动。通信接口160可以包括使得计算装置100能够与其它装置或网络通信的任何类似于收发机的结构。通信接口160可以包括网络接口或收发机接口。通信接口160可以是无线、有线或光学接口。
计算装置100可以响应于中央处理单元122执行包含在计算机可读介质(诸如例如存储器130、磁盘或光盘)中的指令序列而执行此类功能。此类指令可以被从另一计算机可读介质(诸如数据储存器140)或者经由通信接口160从单独装置读入到存储器130中。
图2在框图中图示出示例性处理单元200。处理单元200可以被配置成充当中央处理单元122或图形处理单元124。处理单元200可具有用以指引处理单元200进行的操作的单元管理器210。处理单元120可以具有用于接收要处理的图形数据集以便由计算装置100显示的数据输入220。图形数据集可以是数字图像、图形、视频或其它数字图像。
处理单元120可以具有用以处理图形数据集的一个或多个图形处理器230。图形处理器230可以实现一个或多个图形效果模块(诸如着色器),以执行图形数据集的处理。着色器是使图形数据集准备好显示给用户的渲染应用。可以使着色器专用于处理多个任务以便使图形数据准备好呈现给用户。例如,图形处理器230可以实现顶点着色器、几何结构着色器、像素着色器或棋盘形布置着色器。顶点着色器可以将几何结构的每个顶点的三维位置变换成在显示屏上呈现的二维坐标。顶点是几何结构的两个边缘的交叉点。几何结构着色器可以基于输入图元而生成图元几何结构,诸如点、线以及三角形。像素着色器可以计算每个像素的色彩及其它属性。棋盘形布置着色器可以将复杂的几何结构划分成一组图元几何结构。图形效果模块可以在被图形处理单元124接收到之前被编译。可以优化图形效果模块以在渲染时间与其它图形效果模块链接以实现更高效的操作。替换地,可以将图形效果模块优化成离散地操作,而不与其它图形效果模块相交互。处理单元120可以具有用于存储图形数据集和预编译图形效果模块的高速缓存器240或其它存储器或储存装置。处理单元120还可以具有用以提供已处理数据的数据输出250。
图形处理单元124可以对图形数据集执行一组图形效果。图形处理单元124可以将图形效果执行为一组离散变换。图3在框图中图示出示例性离散变换系300。图形处理单元124可以接收输入图形数据集310以用于处理。图形处理单元124可以在第一渲染通过322中用第一预编译图形效果模块来执行第一变换320。图形处理单元124还可以在第二渲染通过(PASS)322中用第二预编译图形效果对输入图形数据集310执行第二变换320。第一变换322和第二变换322向第三变换322中提供输入。图形处理单元124然后可以在第三渲染通过322中用第三预编译图形效果模块来执行第三变换320以输入到第四变换320中。图形处理单元124然后可以在第四渲染通过322中用第四预编译图形效果模块来执行第四变换320,产生输出图形数据集330。
通过将预编译图形效果模块链接,图形处理单元可以大大地增加效率。可以将每个图形效果模块配置为原始图形效果变换的编译导出函数版本。图4在框图中图示出示例性已链接效果系列。图形处理单元124可以接收输入图形数据集310以用于处理。图形处理单元124可以对输入图形数据集310执行单个渲染通过(PASS)410。图形处理单元124可以对输入图形数据集310应用采样函数412。图形处理单元124可以用第一预编译图形效果模块来执行第一函数414。图形处理单元124还可以用第二预编译图形效果模块对采样函数412的输出执行第二函数414。第一函数414和第二函数414可以向第三函数414中提供输入。图形处理单元124然后可以用第三预编译图形效果模块来执行第三函数414以输入到第四函数414。图形处理单元124然后可以用第四预编译图形效果模块来执行第四函数414,产生输出图形数据集330。
图5在框图中图示出示例性链接操作架构500。链接操作架构500可以具有效果层502和渲染器层504。在效果层502中,可以修改图形效果模块以在编译时产生离散图形效果模块和每个图形效果模块的可链接导出函数版本两者。在渲染器层504中,图形处理单元124可以接收已编译图形效果模块作为由中央处理单元122选择的离散图形效果模块或导出函数版本。
效果层502可以编译一组图形代码506,诸如High Level Shader Language(高级着色器语言)®代码,以创建图形效果508。效果层502可以通过从图形代码集506生成具有导出图形效果函数512的全图形效果模块510来体现图形效果508。加载函数可以将用导出图形效果函数512体现为全图形效果模块510的图形效果508加载到渲染器层504中。替换地,诸如中央处理单元122之类的中央处理单元可以实现图形效果508。中央处理单元可以使用专用矢量指令来实现图形效果508。
渲染器层504可以执行渲染操作514。渲染操作514可以查阅模块链接图516以将一组图形效果模块510链接。模块链接图516可以使用函数链接图518来将一系列图形效果函数414链接以创建已链接图形效果模块520。模块链接图516然后可以将已链接图形效果模块520导出到渲染操作执行器522以便执行。
图形效果506可以结合多个函数414。链接可以是效果内或效果间的。图6a在框图中图示出示例性贪婪函数链接600。贪婪函数链接600可以链接函数414,无论函数是否是相同效果506的一部分。贪婪函数链接600可以使用交叉效果链接610而在同一图形效果506中通过函数414将函数414与来自单独图形效果506的函数链接。图6b在框图中图示出示例性优先级函数链接650。优先级函数链接650可以将效果内链接划分优先级。优先级函数链接650可以使用优先级链接660来将链接同一图形效果506中的两个函数414划分优先级。
并不是每种情况都可以通过链接图形效果模块来改善。中央处理单元122可以实现用以确定情形是否指示要将图形效果模块链接还是图形效果模块要离散地行动的逻辑。中央处理单元122可以在图形效果模块的不同版本之间进行选择。中央处理单元122可以在确定要使用预编译图形效果模块的链接优化版本还是离散操作版本时将许多因素考虑在内。中央处理单元122可以将预编译图形效果模块的性能属性与链接准则相比较以确定链接是否是有利的。例如,图形处理单元124的能力可以是性能属性。图形处理单元124可以具有在单个渲染通过中可以执行而不招致损失的指令的数目的限制。
在另一示例中,中央处理单元122可以将用于图形效果模块的输入复杂性识别为性能属性。图7a在框图中图示出示例性简单采样模式700。在简单采样模式700中,输入像素710的值可以确定相同位置处的相应输出像素720的值。简单采样效果的示例可以是灰阶730,其将彩色像素转换成灰度。图7b在框图中图示出示例性复杂采样模式750。在复杂采样模式750中,多个位置处的输入像素710的值可以确定相应输出像素720的值。复杂采样效果的示例可以是模糊760,其促使像素与相邻像素模糊。简单采样效果可以是用于链接的良好候选,而复杂采样效果是不那么有效的候选。同样地,在采样时改变坐标空间的图形效果可能不是用于链接的有效候选。改变采样坐标的图形效果的一个示例可以是转换输入图形数据集的效果。因此,链接准则可以相比于复杂采样效果而偏向于简单采样效果。
图形效果模块的应用的拓扑可以是性能属性。图8在框图中图示出示例性图拓扑800。图形效果模块A 810可以将图形数据集导出到图形效果模块B 810和图形效果模块C810两者。图形效果模块B 810和图形效果模块C 810两者可以将图形数据集导出到图形效果模块D 810。可以以增加操作效率的方式将图形效果模块B 810和图形效果模块C 810两者链接到图形效果模块D 810。然而,图形效果模块A 810的输出拓扑可以促使链接效率低。
图形效果模块A 810可以运行多次以产生用于其它图形效果模块810(如果被链接的话)的输出。因此,链接准则可以相比于多个其它图形效果模块而偏向于向单个图形效果模块提供输出。
虽然可以有利地将两个图形效果模块链接到从两者接收输入的第三图形效果模块,但某些因素应可能对链接不利。效果区域可以是性能属性。图9a在框图中图示出示例性偏移输出映射900。图形效果模块B 910、泛蓝光函数可以在效果B区域922中向图形效果D模块910的输入空间920导出。图形效果模块C 910、泛绿光函数可以在效果C区域922中向图形效果D模块910的输入空间920导出。效果B区域922可以不在任何点处与效果C区域交叉。缺少交叉可以使得图形效果B模块910和图形效果C模块910与图形效果D模块910的任何链接在某些情况下不是有利的或者是不利的。
同样地,图9b在框图中图示出示例性偏移输出映射950。图形效果模块B 910可以在效果B区域922中向图形效果D模块910的输入空间920导出。图形效果模块C 910可以在效果C区域922中向图形效果D模块910的输入空间920导出。效果B区域922可以具有与效果C区域的不完整重叠960的小区域。此不完整重叠960可以使得图形效果B模块910和图形效果C模块910与图形效果D模块910的任何链接在某些情况下不是有利的或者是不利的。因此,链接准则可以相比于离散效果区域而偏向于重叠效果区域。
此外,链接准则可以考虑两个图形效果模块是否具有不同的效果类型,诸如像素着色器和顶点着色器。用于图形效果模块的着色器类型可以是性能属性。图10在框图中图示出示例性多样化模块布局1000。像素着色器A 1010可以向像素着色器B 1010和顶点着色器C 1010两者导出图形数据集。像素着色器B 1010和顶点着色器C 1010两者可以将图形数据集导出到像素着色器D 1010。将顶点着色器(诸如顶点着色器C 1010)与像素着色器(诸如像素着色器A 1010和像素着色器D 1010)链接可能不是有利的或者是不利的。然而,如果图形效果模块充当像素着色器和顶点着色器两者,则链接可以是有利的。因此,链接准则可以相比于不同着色器类型的图形效果模块而偏向于相同着色器类型的图形效果模块。
图11在流程图中图示出用于将预编译图形效果模块与中央处理单元组装的示例性方法1100。处理图形数据集的中央处理单元(诸如中央处理单元122)的渲染层可以确定图形处理单元的硬件能力(方框1102)。中央处理单元可以识别第一预编译图形效果模块和第二预编译图形效果模块的一组性能属性(方框1104)。中央处理单元可以执行第一预编译图形效果模块的性能属性与链接准则的比较(方框1106)。如果链接根据一组链接准则而未被选择为是有利的(方框1108),则图形处理单元可以选择第一预编译图形效果模块的离散操作版本(方框1110)。如果替代地链接根据一组链接准则被选择为是有利的(方框1108),则中央处理单元可以选择第一预编译图形效果模块的链接优化版本(方框1112)。中央处理单元可以选择交叉效果链接类型和优先级链接类型中的至少一个(方框1114)。中央处理单元可以响应于性能属性满足链接准则而在渲染时间将第一预编译图形效果模块和第二预编译图形效果模块链接(方框1116)。中央处理单元可以将第一预编译图形效果模块和第二预编译图形效果模块发送至图形处理单元(方框1118)。
图12在流程图中图示出用于识别预编译图形效果模块的一组性能属性的示例性方法1200。中央处理单元(诸如中央处理单元122)可以识别第二预编译图形效果模块的输入复杂性(1202)。中央处理单元可以识别第一预编译图形效果模块的输出拓扑(1204)。中央处理单元还可以检测第二预编译图形效果模块是否改变了样本坐标集的坐标空间(1206)。中央处理单元还可以检测第一预编译图形效果模块的第一输出区是否与第二预编译图形效果模块的第二输出区匹配(1208)。中央处理单元还可以检测第一预编译图形效果模块的第一效果类型是否与第二预编译图形效果模块的第二效果类型匹配(1210)。
图13在流程图中图示出用于用图形处理单元来执行预编译图形效果模块的示例性方法1300。处理图形数据集的图形处理单元(诸如图形处理单元124)的渲染层可以接收图形数据集(方框1302)。图形处理单元可以接收第一预编译图形效果模块和第二预编译图形效果模块(方框1304)。如果图形处理单元根据一组链接准则并未将链接选择为是有利的(方框1306),则图形处理单元可以接收第一预编译图形效果模块的离散操作版本(方框1308)。如果替代地图形处理单元已根据一组链接准则将链接选择为是有利的(方框1306),则图形处理单元可以接收第一预编译图形效果模块的链接优化版本(方框1310)。图形处理单元可以在单个渲染通过中对图形数据集执行第一预编译图形效果模块和第二预编译图形效果模块(方框1312)。
虽然已经用结构特征和/或方法动作特定的语言描述了本主题,但将理解的是在所附权利要求中定义的主题不一定局限于上文所述的特定特征或动作。相反地,上文所述的特定特征和动作是作为实现权利要求的示例性形式而公开的。
在本发明的范围内的示例还可以包括用于承载或具有在其上面存储的计算机可执行指令或数据结构的计算机可读存储介质。此类计算机可读存储介质可以是可以被通用或专用计算机访问的任何可用介质。以示例而非限制的方式,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘储存器、磁盘储存器或其它磁性数据储存器或者可以用来以计算机可执行指令或数据结构的形式承载或存储期望程序代码部件的任何其它介质。以上的组合也应被包括在计算机可读储存介质的范围内。
还可以在分布式计算环境中实施示例,其中由通过通信网络被链接(通过硬接线链路、无线链路或者通过其组合)的本地和远程处理装置执行任务。
计算机可执行指令包括例如促使通用计算机、专用计算机或专用处理装置执行某个功能或功能组的指令和数据。计算机可执行指令还包括被计算机在独立或网络环境中执行的程序模块。一般地,程序模块包括例程、程序、对象、组件以及数据结构等,其执行特定任务或实现特定抽象数据类型。计算机可执行指令、关联数据结构以及程序模块表示用于执行在本文中公开的方法的步骤的程序代码部件的示例。此类可执行指令或关联数据结构的特定序列表示用于实现在此类步骤中描述的功能的相应动作的示例。
虽然以上描述可包含特定细节,但不应将其理解为以任何方式限制权利要求。所述示例的其它配置是本公开的范围的一部分。例如,可将本公开的原理应用于每个单独用户,其中,每个用户可单独地部署此类系统。这使得每个用户能够利用本公开的益处,即使大量可能应用中的任何一个并不使用本文所述的功能。电子装置的许多实例每个可以以各种可能方式处理内容。实施方式不一定在所有最终用户使用的一个系统中。因此,仅仅所附权利要求及其法定等同物(而不是给定的任何特定示例)限定本发明。
Claims (15)
1.一种图形渲染子系统,包括:
中央处理单元,其被配置成执行第一预编译图形效果模块的性能属性与链接准则的比较并将第一预编译图形效果模块与第二预编译图形效果模块链接;以及
图形处理单元,其被配置成在单个渲染通过中对图形数据集执行第一预编译图形效果模块和第二预编译图形效果模块。
2.权利要求1的图形渲染子系统,
其中,所述中央处理单元被配置成当选择链接时选择第一预编译图形效果模块的链接优化版本。
3.权利要求1的图形渲染子系统,
其中,所述中央处理单元被配置成当未选择链接时选择第一预编译图形效果模块的离散操作版本。
4.权利要求1的图形渲染子系统,
其中,所述中央处理单元被配置成选择交叉效果链接类型和优先级链接类型中的至少一个。
5.权利要求1的图形渲染子系统,
其中,所述中央处理单元被配置成检测第二预编译图形效果模块是否改变了样本坐标集的坐标空间。
6.权利要求1的图形渲染子系统,
其中,所述中央处理单元被配置成检测第一预编译图形效果模块的第一效果类型是否与第二预编译图形效果模块的第二效果类型匹配。
7.一种计算装置,具有被配置成存储图形数据集的存储器,
所述计算装置被配置成执行第一预编译图形效果模块的性能属性与链接准则的比较,
所述计算装置进一步被配置成响应于性能属性满足链接准则而在渲染时间将第一预编译图形效果模块和第二预编译图形效果模块链接,并且
所述计算装置还被配置成在单个渲染通过中对图形数据集执行第一预编译图形效果模块和第二预编译图形效果模块。
8.权利要求7的计算装置,
其中,所述计算装置进一步被配置成选择交叉效果链接类型和优先级链接类型中的至少一个。
9.权利要求7的计算装置,
其中,所述计算装置进一步被配置成识别第二预编译图形效果模块的输入复杂性。
10.权利要求7的计算装置,
其中,所述计算装置进一步被配置成识别第一预编译图形效果模块的输出拓扑。
11.权利要求7的计算装置,
其中,所述计算装置进一步被配置成检测第二预编译图形效果模块是否改变了样本坐标集的坐标空间。
12.权利要求7的计算装置,
其中,所述计算装置进一步被配置成检测第一预编译图形效果模块的第一输出区是否与第二预编译图形效果模块的第二输出区匹配。
13.权利要求7的计算装置,
其中,所述计算装置进一步被配置成检测第一预编译图形效果模块的第一效果类型是否与第二预编译图形效果模块的第二效果类型匹配。
14.一种机器实现方法,包括:
执行第一预编译图形效果模块的性能属性与链接准则的比较;
响应于性能属性满足链接准则而在渲染时间将第一预编译图形效果模块和第二预编译图形效果模块链接;以及
在单个渲染通过中对图形数据集执行第一预编译图形效果模块和第二预编译图形效果模块。
15.权利要求14的方法,还包括:
确定处理图形数据集的图形处理单元的硬件能力。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/485323 | 2014-09-12 | ||
US14/485,323 US10068370B2 (en) | 2014-09-12 | 2014-09-12 | Render-time linking of shaders |
PCT/US2015/049542 WO2016040716A1 (en) | 2014-09-12 | 2015-09-11 | Render-time linking of shaders |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106605211A true CN106605211A (zh) | 2017-04-26 |
Family
ID=54238545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580048855.4A Pending CN106605211A (zh) | 2014-09-12 | 2015-09-11 | 着色器的渲染时间链接 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10068370B2 (zh) |
EP (1) | EP3191944A1 (zh) |
CN (1) | CN106605211A (zh) |
WO (1) | WO2016040716A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
US10445852B2 (en) | 2016-12-22 | 2019-10-15 | Apple Inc. | Local image blocks for graphics processing |
US10223822B2 (en) | 2016-12-22 | 2019-03-05 | Apple Inc. | Mid-render compute for graphics processing |
US10504270B2 (en) | 2016-12-22 | 2019-12-10 | Apple Inc. | Resource synchronization for graphics processing |
US10324844B2 (en) | 2016-12-22 | 2019-06-18 | Apple Inc. | Memory consistency in graphics memory hierarchy with relaxed ordering |
US10664943B2 (en) | 2017-06-02 | 2020-05-26 | Apple Inc. | Compound shader object and use thereof |
US10668378B2 (en) * | 2018-01-26 | 2020-06-02 | Valve Corporation | Distributing shaders between client machines for precaching |
US11055895B2 (en) * | 2019-08-29 | 2021-07-06 | Advanced Micro Devices, Inc. | Shader merge for reduced divergence |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214097A1 (en) * | 2006-02-28 | 2007-09-13 | Todd Parsons | Social analytics system and method for analyzing conversations in social media |
US20100328325A1 (en) * | 2009-06-30 | 2010-12-30 | Sevigny Benoit | Fingerprinting of Fragment Shaders and Use of Same to Perform Shader Concatenation |
CN102736947A (zh) * | 2011-05-06 | 2012-10-17 | 新奥特(北京)视频技术有限公司 | 一种图形渲染中光栅化阶段的多线程实现方法 |
CN103713891A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 一种在移动设备上进行图形渲染的方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7463259B1 (en) | 2003-12-18 | 2008-12-09 | Nvidia Corporation | Subshader mechanism for programming language |
US7426724B2 (en) * | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
US20060071933A1 (en) | 2004-10-06 | 2006-04-06 | Sony Computer Entertainment Inc. | Application binary interface for multi-pass shaders |
US20080012874A1 (en) | 2006-07-14 | 2008-01-17 | Spangler Steven J | Dynamic selection of high-performance pixel shader code based on check of restrictions |
US7750913B1 (en) | 2006-10-24 | 2010-07-06 | Adobe Systems Incorporated | System and method for implementing graphics processing unit shader programs using snippets |
US9412193B2 (en) | 2011-06-01 | 2016-08-09 | Apple Inc. | Run-time optimized shader program |
US9773344B2 (en) | 2012-01-11 | 2017-09-26 | Nvidia Corporation | Graphics processor clock scaling based on idle time |
CN104254993A (zh) * | 2012-02-27 | 2014-12-31 | 香港科技大学 | 用于部分连接的蜂窝网络的干扰对齐 |
-
2014
- 2014-09-12 US US14/485,323 patent/US10068370B2/en not_active Expired - Fee Related
-
2015
- 2015-09-11 CN CN201580048855.4A patent/CN106605211A/zh active Pending
- 2015-09-11 EP EP15772088.9A patent/EP3191944A1/en not_active Withdrawn
- 2015-09-11 WO PCT/US2015/049542 patent/WO2016040716A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214097A1 (en) * | 2006-02-28 | 2007-09-13 | Todd Parsons | Social analytics system and method for analyzing conversations in social media |
US20100328325A1 (en) * | 2009-06-30 | 2010-12-30 | Sevigny Benoit | Fingerprinting of Fragment Shaders and Use of Same to Perform Shader Concatenation |
CN102736947A (zh) * | 2011-05-06 | 2012-10-17 | 新奥特(北京)视频技术有限公司 | 一种图形渲染中光栅化阶段的多线程实现方法 |
CN103713891A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 一种在移动设备上进行图形渲染的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US10068370B2 (en) | 2018-09-04 |
US20160078671A1 (en) | 2016-03-17 |
EP3191944A1 (en) | 2017-07-19 |
WO2016040716A1 (en) | 2016-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106605211A (zh) | 着色器的渲染时间链接 | |
US11615284B2 (en) | Efficient transferring of human experiences to robots and other autonomous machines | |
CN105574924B (zh) | 渲染方法、渲染设备和电子设备 | |
CN105518742B (zh) | 用于图形处理的任意控制点处的容错抢占机制 | |
CN109478310B (zh) | 在计算环境中使用纹素着色器的多分辨率延迟着色 | |
CN106575228A (zh) | 图形处理中的渲染目标命令重新排序 | |
US20130127858A1 (en) | Interception of Graphics API Calls for Optimization of Rendering | |
CN105144243B (zh) | 数据可视化方法和系统 | |
CN105718420B (zh) | 数据处理装置及其操作方法 | |
AU2018319215A1 (en) | Electronic apparatus and control method thereof | |
CN110326021A (zh) | 用于图形处理器上的加速计算的执行单元共享混合技术 | |
CN109690630A (zh) | 组合的世界空间流水线着色器级 | |
WO2017107118A1 (en) | Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment | |
CN109471805A (zh) | 资源测试方法及装置、存储介质、电子设备 | |
US20210383589A1 (en) | Methods and systems for optimal transport of non-linear transformations | |
CN109564694A (zh) | 用于基于入库的图形处理的顶点着色器 | |
CN106662999A (zh) | 用于simd结构化分支的方法和装置 | |
US10846889B2 (en) | Color handle generation for digital image color gradients using machine learning | |
US20130132907A1 (en) | Shape pixel rendering | |
CN101714259A (zh) | 图形处理系统 | |
US11088907B2 (en) | System characterization and configuration distribution for facilitating improved performance at computing devices | |
CN107784622A (zh) | 图形处理系统和图形处理器 | |
US10062138B2 (en) | Rendering apparatus and method | |
CN109154892A (zh) | 用于在计算环境中对数据进行本地处理的寄存器堆扩展 | |
US10049487B2 (en) | Identifying duplicate indices in an input index stream |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170426 |
|
WD01 | Invention patent application deemed withdrawn after publication |