图形处理电路和方法

文档序号:9597601阅读:276来源:国知局
图形处理电路和方法
【技术领域】
[0001] 本发明所公开的实施例涉及图形处理,尤其涉及图形处理电路和方法。
【背景技术】
[0002] 当前的图形处理包括所开发的用于对图形数据执行特定操作的系统和方法。现有 地,图形处理单元可以仅使用固定计算单元来处理图形数据。最近,图形处理单元的一部分 可以使用可编程计算单元而实施,以此支持更多种类的操作。例如,可以使顶点着色器是可 编程的。
[0003] 在一个现有设计中,顶点着色操作可以被分为第一顶点着色阶段和第二顶点着色 阶段。通常,顶点着色操作包括多个指令。虽然,顶点着色操作可以被分为两个顶点着色阶 段,所述指令却不能为顶点着色阶段而分为两个互相排斥的指令组。例如,顶点着色操作的 指令包含第一指令、第二指令和第三指令。在第一顶点着色阶段执行的一个指令组可以包 括第一指令和第二指令,而在第二顶点着色阶段执行的另一指令组可以包括第一指令和第 三指令。将顶点着色操作分为两个顶点着色阶段的现有设计,可以允许第一顶点着色阶段 跳过第三指令的执行;然而,在第一顶点着色阶段执行的第一指令却需要在第二顶点着色 阶段再次执行。因此,将顶点着色操作分为两个顶点着色阶段的传统设计在指令执行中并 不尚效。

【发明内容】

[0004] 有鉴于此,本发明提供以下技术方案:
[0005] 根据本发明的第一方面,公开一种示例性的图形处理电路。图形处理电路包括缓 冲器、第一顶点着色器以及第二顶点着色器。第一顶点着色器用于至少生成多个顶点的坐 标值至缓冲器。第二顶点着色器用于读取来自缓冲器的缓冲坐标值的至少一部分,并再使 用缓冲坐标值的至少一部分来生成至少一个用户定义变量值。
[0006] 根据本发明的第二方面,公开一种示例性的图形处理方法。图形处理方法包括:执 行第一顶点着色操作来至少生成多个顶点的坐标值至缓冲器;和执行第二顶点着色操作来 读取来自缓冲器的缓冲坐标值的至少一部分,并再使用缓冲坐标值的至少一部分来生成至 少一个用户定义变量值。
[0007] 根据本发明的第三方面,公开一种示例性的图形处理电路。图形处理电路包括缓 冲器、第一顶点着色器以及第二顶点着色器。第一顶点着色器用于生成多个顶点的坐标值 至缓冲器,并存储至少一个中间值,每个中间值都与顶点之一的坐标值的生成相关联。第二 顶点着色器用于读取来自缓冲器的至少一个中间值,并再使用至少一个中间值来生成至少 一个变量值。
[0008] 根据本发明的第四方面,公开一种示例性的图形处理方法。图形处理方法包括:执 行第一顶点着色操作来生成多个顶点的坐标值,并将至少一个中间值存储至缓冲器,每个 中间值都与顶点之一的坐标值的生成相关联;执行第二顶点着色操作来读取来自缓冲器的 至少一个中间值,并再使用至少一个中间值来生成至少一个变量值。
[0009] 本发明通过上述技术方案,可以有效地提高着色阶段的性能。
【附图说明】
[0010] 图1是根据本发明第一实施例的图形处理电路的示意图。
[0011] 图2是图示原始顶点着色操作的简化表达树示意图。
[0012] 图3是根据本发明实施例的简化表达树的图示,所述简化表达树图示了通过图1 中第一顶点着色器执行的第一顶点着色操作,以及通过图1中第二顶点着色器执行的第二 顶点着色操作。
[0013] 图4是根据本发明第二实施例的图形处理电路的示意图。
[0014] 图5是根据本发明实施例的简化表达树的图示,所述简化表达树图示了通过图4 中第一顶点着色器执行的第一顶点着色操作,以及通过图4中第二顶点着色器执行的第二 顶点着色操作。
[0015]图6是为候选中间值计算加权值实例的示意图。
[0016]图7是为候选中间值计算所节约的指令数目实例的示意图。
[0017] 图8是根据本发明第三实施例的图形处理电路的示意图。
[0018] 图9是无压缩的SB?执行流程的示意图。
[0019] 图10是带压缩的SM)执行流程的示意图。
【具体实施方式】
[0020] 涉及特定组件的特定术语将始终在说明书和随后的权利要求中使用。本领域技术 人员将认识到,制造商可以用不同名称来指代组件。本文件无意于区分那些名称上不同但 功能相同的组件。在随后的说明书和权利要求中,用开放式方式使用术语"包含"和"包括", 因此其应当被解释为"包含,但不限于…"。同样,术语"耦合"规定为意味着间接或直接电 气连接中的任一。因此,如果一个设备与另一个设备耦合,其连接可以为直接电气连接或通 过其他设备和连接的间接电气连接。
[0021] 本发明的一个技术特征为再使用由第一顶点着色阶段所生成的坐标值,来生成变 量值(例如,用户定义变量值,比如可变的变量值),因此减少了第二顶点着色阶段所执行 的指令/计算数目。本发明的另一技术特征为再使用由第一顶点着色阶段生成的中间值, 来生成变量值(例如,用户定义变量值,比如可变的变量值),因此减少了第二顶点着色阶 段所执行的指令/计算数目。本发明的又一技术特征为重新打包(repack)原始顶点线程 组内合格顶点(non-rejectedvertices),来生成仅填充了合格顶点的新的顶点线程组,所 述原始顶点线程组具有一个或多个不合格顶点(rejectedvertices),因此改进了第二顶 点着色阶段的性能。所提出的顶点着色设计的进一步细节将在下文描述。
[0022] 图1是根据本发明第一实施例的图形处理电路的示意图。非限制性地举例来说, 图形处理电路100可以为使用在电子设备中的图形处理单元(GPU)的一部分。在此实施例 中,图形处理电路100包含第一顶点着色器102,顶点输出缓冲器104,第二顶点着色器106, 以及图元剔除电路(primitivecullingcircuit) 108。应当注意到,图1中仅示出了与本 发明相关的组件。实际上,图形处理电路100可以具有额外的电路块,其取决于实际的设计 考虑。
[0023] 顶点输出缓冲器104耦合到第一顶点着色器102、图元剔除电路108以及第二顶点 着色器106。因此,顶点输出缓冲器104可以访问第一顶点着色器102、图元剔除电路108 以及二顶点着色器106中的每一个。第一顶点着色器102用于生成图像几何内多个顶点的 坐标值,并将顶点的坐标值存储到顶点输出缓冲器104中。即,由第一顶点着色器102所 生成的数据输出VS_0UT1包含顶点坐标值,所生成的数据输出VS_0UT1输出给顶点输出缓 冲器104。图元剔除电路108用于寻找与顶点输出缓冲器104中的顶点相关联的图元,并 执行剔除过程来丢弃特定图元。例如,图元剔除电路108参考顶点输出缓冲器104中的顶 点坐标值,来区分可见图元和不可见图元,并生成一个通知信号S1,以命令图元缓冲器(未 示出)移除不合格图元(例如,不可见图元)。此外,在确定不合格图元(例如,不可见图 元)之后,图元剔除电路108进一步生成另一通知信号S2,以命令顶点输出缓冲器104通过 移除不合格顶点的缓冲坐标值,来丢弃与不合格图元(例如,不可见图元)相关联的顶点。 由于不可见图元将不在显示屏上显示,移除不可见图元可以减少后续图元处理电路的工作 量。类似地,移除与不可见图元相关联的顶点可以减少后续顶点处理电路(例如,第二顶点 着色器106)的工作量。即,第二顶点着色器106不会将时间浪费在处理与不合格顶点相关 联的顶点之上。
[0024] 第二顶点着色器106用于读取来自顶点输出缓冲器104的缓冲坐标值的至少一部 分(即,部分或全部),再使用缓冲坐标值的至少一部分,来生成至少一个用户定义变量值。 例如,至少一个用户定义变量可以包含由OpenGLES(嵌入式系统的OpenGL)定义的至少一 个可变变量。因为由第一顶点着色器102生成的坐标值被缓冲和再使用,第二顶点着色器 106所执行的指令/计算数目将大幅减少。
[0025] 请参考图2以及图3。图2是图示了原始顶点着色操作的简化表达树示意图。图 3是根据本发明实施例的简化表达树的示意图,所述简化表达树图示了通过图1中第一顶 点着色器102执行的第一顶点着色操作,以及通过图1中第二顶点着色器106执行的第二 顶点着
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1