LCC(低成本无控制器)图形处理的制作方法


lcc(低成本无控制器)图形处理
1.相关专利申请
2.本技术要求2020年9月10日提交的共同拥有的美国临时专利申请第 63/076,413号的优先权,所述专利申请的全部内容据此出于所有目的以引用方式并入。
技术领域
3.本公开涉及图形处理,并且更具体地,涉及在低成本无控制器 (lcc)图形设计和处理系统中的双重缓冲。


背景技术:



4.在图形处理中,可使用双重缓冲。在双重缓冲中,第一缓冲区可用于将数据帧输出到图形屏幕,而第二缓冲区中的数据帧被更新。在事件经确定后,将第二缓冲区输出到图形屏幕以替换输出到图形屏幕的第一缓冲区的内容。可分配新的缓冲区以创建附加的更新。双重缓冲可用于减少在生成图形显示中的卡顿、撕裂和其他伪影。计算机监视器通常以例如每秒60 次的速度重新绘制可见帧。从一个帧到另一个帧的更新可在“新”图像与未重新绘制的“旧”图像之间作为水平分隔线而短暂地可见,称为撕裂。
5.双重缓冲的软件实施方式包括“后台缓冲区”和“前台缓冲区”。后台缓冲区可为系统ram中的区域,而前台缓冲区可在视频ram中。双重缓冲可包括将所有绘图操作结果存储在后台缓冲区中。当认为所有绘图操作完成时,将整个区域(或仅改变的部分)复制到前台缓冲区中。该复制通常与显示器的水平或垂直同步是同步的,以便避免撕裂。双重缓冲的软件实施方式不可避免地需要比单个缓冲更多的存储器和cpu时间,这是因为为后台缓冲区分配的系统存储器、用于复制操作的时间以及等待同步的时间。
6.本公开的实施方案的发明人已经发现,在存储器方面维护用于数据帧的两个完整缓冲区可能过于昂贵。例如,在具有嵌入式显示屏的微控制器应用中,维护两个完整缓冲区所必需的存储器可能超过微控制器内的总板上存储器。可使用外部存储器,但这导致附加的速度和成本问题。因此,本公开的实施方案通过以下方式来解决这些问题中的一个或多个问题:通过维护主帧缓冲区以及提供较小的编码帧缓冲区来执行双重缓冲的经修改的形式。
附图说明
7.图1是根据本公开的实施方案的lcc图形设计和处理系统的图示。
8.图2是根据本公开的实施方案的用于系统的操作的时序图的图示。
9.图3是根据本公开的实施方案的通过一种方法来操作图形引擎的图示。
10.图4是根据本公开的实施方案的通过一种方法来操作图形驱动器的图示。
具体实施方式
11.本公开的实施方案包括一种装置。该装置可在任何合适的系统或上下文内实现,
诸如在图形处理器、系统、图形卡、计算机、膝上型计算机、服务器、移动设备、智能电话、裸片、母板或任何其他合适的电子设备中实现。该设备可包括图形引擎电路和图形驱动器电路。图形引擎电路和图形驱动器电路可以任何合适的方式诸如由模拟电路、数字电路、用于由处理器执行的指令或它们的任何合适的组合来实现。
12.结合上述实施方案中的任一个实施方案,图形引擎电路可被配置为渲染数据以在显示器上显示。该渲染数据可基于数据或其接收到的更新信号。渲染数据或更新信号可由软件生成。图形引擎电路可被配置为通过将对象转换为存储器图形存储器中的帧缓冲区中的像素数据来渲染用于显示器的信息。图形驱动器电路可被配置为采取此类渲染数据并且将此类渲染数据复制或输出到显示器。图形驱动器电路可被配置为使用任何合适的信号集来将缓冲区的内容复制到显示器,该信号为诸如垂直同步信号(v
‑ꢀ
sync)、水平同步信号(h-sync)、数据使能信号以及用于数据本身的信号。图形驱动器电路可通过dma来执行实际复制。
13.结合上述实施方案中的任一个实施方案,图形引擎电路可被配置为确定待输出到显示器的图形数据,并且被配置为将图形数据渲染到缓冲区。图形数据可由例如在包括装置或装置的系统上运行的软件生成。图形数据可为例如信息帧或帧的行。图形驱动器电路可被配置为将缓冲区输出到显示器。图形引擎电路可被配置为在图形驱动器电路将缓冲区输出到显示器的同时,将图形数据编码到另一个缓冲区中,并且发信号通知图形驱动器电路将其他缓冲区输出到显示器。
14.结合上述实施方案中的任一个实施方案,图形驱动器电路可被配置为在接收到来自图形引擎电路的信号将另一个缓冲区输出到显示器后,停止将缓冲区的内容输出到显示器,解码另一个缓冲区的内容,并且将其他缓冲区的解码内容输出到显示器。
15.结合上述实施方案中的任一个实施方案,图形驱动器电路可被配置为确定其他缓冲区正在用于将内容输出到显示器。图形驱动器电路可被配置为,基于确定其他缓冲区正在用于将内容输出到显示器,确定已经接收到信号指示另一个缓冲区的内容不被使用。图形驱动器电路可被配置为,基于确定已经接收到信号指示其他缓冲区的内容不被使用,将缓冲区输出到显示器。
16.结合上述实施方案中的任一个实施方案,图形驱动器电路可被配置为在接收到来自图形引擎电路的信号将其他缓冲区输出到显示器后,确定另一个缓冲区是否包括有效数据。图形驱动器电路可被配置为,基于确定其他缓冲区不包括有效数据,继续将缓冲区输出到显示器。
17.结合上述实施方案中的任一个实施方案,图形引擎电路可被配置为确定待输出到显示器的附加图形数据,确定其他缓冲区是否正在由图形驱动器电路使用,并且基于确定其他缓冲区正在由图形驱动器电路使用,将附加图形数据渲染到缓冲区。
18.结合上述实施方案中的任一个实施方案,图形引擎电路可被配置为在将附加图形数据渲染到缓冲区之后,发信号通知其他缓冲区的内容是无效的。
19.结合上述实施方案中的任一个实施方案,图形引擎电路可被配置为确定待输出到显示器的附加图形数据,确定其他缓冲区是否正在由图形驱动器电路使用,并且基于确定其他缓冲区并非正在由图形驱动器电路使用,确定其他缓冲区的内容是否由图形引擎电路发信号通知为有效的。
20.结合上述实施方案中的任一个实施方案,图形引擎电路可被配置为,基于确定将其他缓冲区的内容发信号通知为有效的,向图形驱动器电路发信号通知将其他缓冲区输出到显示器。
21.结合上述实施方案中的任一个实施方案,图形引擎电路可被配置为,基于确定未将其他缓冲区的内容发信号通知为有效的,将图形数据渲染到其他缓冲区。
22.结合上述实施方案中的任一个实施方案,图形引擎电路可被配置为发信号通知其他缓冲区的内容是无效的。图形引擎电路可向图形驱动器电路发信号通知其他缓冲区的内容是无效的。
23.图1是根据本公开的实施方案的lcc图形设计和处理系统100的图示。
24.系统100可包括处理器102,该处理器通信地耦接到存储器104。存储器104可包括指令,当由处理器102加载和执行时,该指令导致系统100 的各种功能被执行。例如,软件118可包括由处理器102执行的存储器中的指令。这可包括例如软件、固件、脚本或其他元件的执行。例如软件118 的执行可产生待显示在显示器116上的数据。显示器116可通过任何合适的图形显示器(诸如监视器)来实现。例如,可通过执行软件118来显示用于软件118的用户界面。该执行可进一步导致对此类显示器的改变。例如,按压用户界面中的按钮可能导致对显示器116上所示出内容做出另外的图形改变。系统100可包括任何合适数量和种类的元件,以处理待显示在显示器116上的数据。例如,系统100可包括图形引擎电路106和图形驱动器电路108。此外,系统100可包括直接存储器访问(dma)引擎电路120。
25.图形引擎电路106、图形驱动器电路108和dma引擎电路120可以任何合适的方式来实现。例如,图形引擎电路106、图形驱动器电路108和 dma引擎电路120可由模拟电路、数字电路、用于由处理器(诸如处理器102)执行的指令(诸如存储在存储器(诸如存储器104)中的那些指令) 或它们的任何合适的组合来实现。
26.图形引擎电路106可被配置为渲染待显示在显示器116上的数据。该渲染数据可基于数据或其接收到的更新信号。渲染数据或更新信号可由软件118生成。图形引擎电路106可被配置为通过将对象转换为存储器图形存储器110中的帧缓冲区中的像素数据来渲染用于显示器116的信息,在下文更详细地讨论。图形驱动器电路108可被配置为采取此类渲染数据并且将此类渲染数据复制或输出到显示器116。图形驱动器电路108可为低成本无控制器(lcc)图形驱动器。lcc图形驱动器可包括任何合适的软件以消除图形控制器硬件,通常使用dma。由于显示器116可能需要连续数据输入,因此该解决方案可能是时间要求严格的。当同时使用相同缓冲区时,图形引擎电路106和图形驱动器电路108给予差的视觉性能。双重缓冲是该问题的可能的解决方案,其中存在由图形引擎电路106填充的用于渲染的缓冲区,以及用于图形驱动器电路108以进行读取然后将其中的数据输出到显示器116的另一个缓冲区。当过程完成时,切换缓冲区。
27.因此,图形引擎电路106可被配置为通过双重缓冲区来向图形驱动器电路108提供渲染数据。例如,图形引擎电路106可在数据被渲染时将该数据写入到缓冲区112。图形引擎电路106可被配置为将数据写入到缓冲区 112,并且当其完成写入此类数据作为显示帧时,并且根据任何合适的另外的标准,图形引擎电路106可向图形驱动器电路108发出合适的信号,表明缓冲区112的内容可被复制到显示器116。
28.图形驱动器电路108可被配置为使用任何合适的信号集来将缓冲区 112的内容复
制到显示器116,该信号为诸如垂直同步信号(v-sync)、水平同步信号(h-sync)、数据使能信号以及用于数据本身的信号。图形驱动器电路108可通过使用dma引擎120通过dma来执行实际复制。图形驱动器电路108可将信号发送到dma引擎120以开始执行此类复制。在完成从缓冲区112向显示器116写入数据后,dma引擎120可被配置为发出中断或发出表明dma传输完成的其他合适的信号。该信号可指示从哪个缓冲区进行了传输。
29.同时,图形引擎电路106可被配置为分配新的缓冲区(诸如缓冲区 114),以在数据被提供给第一缓冲区112之后,写入用于另一个帧更新的另外的渲染数据。可在图形驱动器电路108将缓冲区112更新到显示器116 的同时,执行该分配及其数据的后续渲染。在来自dma引擎120的中断指示缓冲区112已经完成被传输后,图形驱动器电路108可被配置为开始通过使用dma引擎120而将缓冲区114传输到显示器116。虽然发生此类传输,但是图形引擎电路106可被配置为,基于用于显示器116的另外的更新来分配又一个新的缓冲区(未示出)。
30.缓冲区112和缓冲区114可被定位于例如存储器(诸如图形存储器 110)中。图形存储器110可为存储器104的一部分或与其分离。
31.用于显示器116的双重缓冲帧是一种用于改善可见图形性能的技术,向用户提供平滑和“无干扰(glitch-less)”的体验。然而,双重缓冲可能需要分别存储在缓冲区112、114中的帧的两份副本。对于系统100的设备,诸如具有512k存储器的microchip pic32mz2048ef微控制器和每像素16 位的272x480显示器,每个缓冲区可能需要261,120个字节。两种此类缓冲区可能需要比可用存储器更多的存储器。
32.在一个实施方案中,当新帧由图形引擎电路106渲染时,新帧可立即由图形驱动器电路108直接从帧缓冲区显示,而图形引擎电路106将相同帧编码为较小的副本。例如,在缓冲区112通过图形引擎电路106填充有数据帧之后,图形驱动器电路108可将缓冲区112的数据显示给显示器 116。同时,图形引擎电路106可将相同但经过编码的数据帧渲染到缓冲区 114。虽然可立即编码并且写入待编码和待写入到缓冲区114的数据,但是可使任务入队或呈流水线式。可使用帧的任何合适的编码。在一个实施方案中,可使用可被快速解码的编码方法,诸如运行长度编码。在单个32位字中,用16位运行长度来存储16位颜信息。
33.为了随后向显示器116显示相同信息,图形驱动器电路108可读取来自初始缓冲区112的数据,或者替代地读取来自缓冲区114中的新编码数据中的数据。缓冲区114中的新编码数据包含写入到缓冲区112的相同数据,仅经过了编码。当使用缓冲区114中的编码数据时,图形驱动器电路 108可被配置为在将缓冲区114的内容显示给显示器116之前,解码该内容。图形驱动器电路108可被配置为以即时或实时方式来解码这些内容。因此,编码应允许快速解码,这可通过例如上文所讨论的运行长度编码来实现。当图形驱动器电路108切换到使用缓冲区114时,可释放缓冲区112,从而节省存储器的使用。此外,缓冲区112可根据需要由图形引擎 106重新用于新的帧信息,或者当新的帧信息待显示给显示器116时,可重新分配新的缓冲区(未示出)。
34.因此,缓冲区112和缓冲区114中的一者可被指定为主帧缓冲区,该主帧缓冲区包括待显示给显示器116的数据帧的完整数据内容。缓冲区112 和缓冲区114中的其他者可被指定为编码帧缓冲区,其中数据帧的完整数据内容不存储在其中,而是替代地存储此类帧的编码版本。此外,根据实施方式,指定缓冲区112、114中的哪一者是主帧缓冲区以及哪一
者是编码帧缓冲区可根据需要而持续存在或根据需要而改变。例如,缓冲区112可为主帧缓冲区,并且缓冲区114可为编码帧缓冲区。图形引擎电路106可填充缓冲区112并且开始填充缓冲区114。图形驱动器电路108可读取来自缓冲区112的数据。当将新信息显示给显示器116时,图形引擎电路106 可向图形驱动器电路108发信号通知此事,以开始使用缓冲区114。图形驱动器电路108可开始解码并且显示来自缓冲区114的数据,而缓冲区112 通过图形引擎电路106而加载有新信息。当数据在缓冲区112中准备就绪时,图形引擎电路106可向图形驱动器电路108发信号通知,并且图形驱动器电路108可切换并且开始显示来自缓冲区112的数据。同时,图形引擎电路106可开始用相同数据的编码版本来填充缓冲区114。因此,缓冲区 112可持续地为主帧缓冲区,而缓冲区114可持续地为编码帧缓冲区。在这种情况下,图形引擎电路106可保持如下状态:缓冲区112、114中的哪一者将由图形驱动器电路108使用,以及缓冲区112、114的数据是否有效显示。
35.此外,图形引擎电路106可以任何合适的方式提供如下状态:图形驱动器电路108是否读取来自缓冲区112的数据,或者替代地读取来自缓冲区114的数据。图形引擎电路106可向图形驱动器电路108提供如下信号:图形驱动器电路108将从读取来自缓冲区112的数据进行切换,并且替代地读取来自缓冲区114的数据。此外,图形引擎电路106可向图形驱动器电路108提供如下信号:该数据已经被成功地编码并且可用于缓冲区 114中。这可被称为标记缓冲区114为有效的(其中数据已经被成功地编码并且可用于缓冲区114中)或无效的(其中缓冲区114中的数据不再被使用)。任何合适的机制可用于在图形引擎电路106与图形驱动器电路108 之间提供此类信号,诸如总线、寄存器值、存储器中的位或其他合适的信号。
36.因此,图形驱动器电路108可继续从缓冲区112直接读取,直到用于显示器116的内容被设定为由软件118来进行改变。在此类时间之前,当用于显示器116的内容被设定为改变时,相同数据可重复地显示在显示器 116上,如上文所讨论的。
37.当由软件118来生成新数据时,图形引擎电路106可向图形驱动器电路108发信号通知,以切换到使用缓冲区114。因此,图形驱动器电路108 可切换到使用缓冲区114中的编码数据。这然后可允许图形引擎电路106 直接修改缓冲区112的内容,而不引入最终用户感知显示器116将注意到的异常。图形驱动器电路108可被配置为主动解码缓冲区114的数据,一次解码一行。可在中断期间执行该解码,从而允许处理器的主任务继续。
38.为了切换到使用缓冲区114中的编码数据,系统100可等待直到显示器116中的当前帧的显示完成为止。这可由例如v-sync间隔的完成来进行指示。可执行来自缓冲区114的数据的解码和显示,一次执行一行。可在显示器116上主动地显示缓冲区114的一行,而由图形驱动器电路108来解码缓冲区114的下一行。
39.如由图形驱动器108生成并显示在显示器116上的显示行的寿命周期可具有四个间隔,每个间隔由独立的dma通道来进行驱动。这些间隔可包括被指定为“后沿”、“水平同步”、“可见”和“前沿”的间隔。显示行的寿命周期本身可在由垂直同步限定的较大循环内重复,其中通过相应的显示行寿命周期来显示行的整个帧。完成给定间隔可触发对图形驱动器电路108的中断。图形驱动器电路108可被配置为响应于这些中断而向显示器116发出特定信号,以推进给定显示行的显示过程。
[0040]“前沿”间隔是图片信息的结束与垂直或水平同步脉冲的开始之间的间隔周期。在
该间隔期间,对显示器116的受影响像素的输出电平用于黑或消隐电平,以清除在发生垂直或水平同步脉冲之前保留的任何信号电平。
[0041]“水平同步”间隔是其中用于给定行的待显示在显示器116上的数据被输出(尽管尚未显示)到显示器116的间隔。
[0042]“可见”间隔是其中数据显示在显示器116上的间隔。所显示的数据在“可见”间隔期间必须不变。
[0043]“后沿”间隔是垂直或水平脉冲的结束与具有视频信息的下一行的开始之间的持续时间。在该间隔期间,可执行用于反向(诸如右到左)的波束扫描以开始新行。
[0044]
通过dma引擎120来使用dma中断,“前沿”的完成触发“水平同步”,“水平同步”的完成触发“后沿”,“后沿”的完成触发“可见”,并且“可见”的完成触发“前沿”,重启该循环。
[0045]
图2是根据本公开的实施方案的用于系统100的操作的时序图的图示。特别地,图2示出了由图形驱动器电路108向显示器116输出控制信号的时序图。此外,图2示出了由dma引擎120生成的用于图形驱动器电路108的中断。
[0046]
图2中示出了垂直同步信号、水平同步信号、数据使能信号和数据。此外,中断a-z沿着y轴在不同时间点处示出。当垂直同步为逻辑高阶时,可能发生显示器116的更新。中断a-z是对于待输出到显示器116的多行,当垂直同步为逻辑高阶时,所发生的定时和操作的更详细视图。
[0047]
特别地,图2示出了当将图形驱动器电路108从使用主帧缓冲区(诸如缓冲区112)切换到编码帧缓冲区(诸如缓冲区114)时,必须执行解码的最后期限。
[0048]
在中断a处,dma引擎120可向图形驱动器电路108发信号通知垂直同步间隔的最后数据行已经由dma完成。第一解码行的地址可被加载到 dma数据行源寄存器中。该地址稍后可在图2所示的数据行上进行传输。
[0049]
在中断a之后,水平同步信号可变为逻辑低电平,然后再次变为逻辑高电平。其中水平同步信号是逻辑低电平的周期可对应于水平同步间隔。在由后沿引起的间隔之后,可生成中断b。dma引擎120可向图形驱动器电路108发信号通知后沿dma传输已经完成。图形驱动器电路108可被配置为开始解码待显示的用于第二行(表示为数据行中的第2行)的数据。在生成中断c之前,必须完成该解码。在该间隔期间,数据可从数据行发出,并且可为可见的(表示为数据行中的第一行)。在该间隔期间数据使能可生效。
[0050]
在中断c处,可完成数据行传输。数据使能可失效。此外,水平同步可失效。用于第二解码行的地址可被加载到dma数据行源寄存器中。在中断c处的数据行传输完成之后,并且在水平同步信号再次变低之前(下文讨论),可执行前沿间隔。
[0051]
在中断c之后,水平同步信号可变为逻辑低电平,然后再次变为逻辑高电平。该周期(其中水平同步信号是逻辑低电平)可为水平同步间隔的另一个实例。在水平同步信号变为逻辑高电平之后,并且在后沿dma传输已经完成之后,可生成中断d。然后,dma引擎120可向图形驱动器电路 108发信号通知:对于其地址先前被加载的数据(即,第一行),后沿 dma传输已经完成。图形驱动器电路108可被配置为开始解码待显示的用于第三行(表示为数据行中的第3行)的数据。在生成中断e之前,必须完成该解码。可在第二循环的可见间隔结束后生成中断e。在该间隔期间,可从数据行发出数据作为可见信息。在该间隔期间数据使能可生效。
[0052]
在一个实施方案中,必须建立在中断b处开始传输可见数据的 dma,使得对于数据的第一行,在(先前循环的)中断z至中断a之间存在足够长的时间以解码用于第一行的相关联的数据。在中断b处,提交数据的第一行,并且缓冲区内容不改变。中断b与中断d之间的时间可允许解码为独立的缓冲区。在中断c处,可释放提供给dma的缓冲区,并且该缓冲区可用于解码附加的信息。
[0053]
如图2所示,可对后续行执行类似的操作。在示出将在显示器116上显示的最后一行之后,可生成中断z。之后,可再次开始垂直同步间隔,其中垂直同步为失效的。
[0054]
返回图1,系统100可提供双重缓冲视觉性能,而不必使用通常需要双重缓冲的存储器。虽然需要较少的存储器,但是解码缓冲区可能需要更多的处理时间。
[0055]
用于执行系统100中可用的编码和解码解决方案的能力可选择性地进行参与。如果存在足够的存储器可用于缓冲区112、114中的全帧,可选择性地关闭编码数据。基于可用存储器、系统设定、用户设置或偏好、软件指令、显示输出的质量或用户输入,可打开或关闭编码和解码。
[0056]
图3是根据本公开的实施方案的通过方法300来操作图形引擎的图示。例如,图3可示出由图形引擎电路106进行的操作。方法300的操作可与图形驱动器(诸如图形驱动器电路108)的操作(如图4中的方法400 所示)并行执行,在下文进一步详细地讨论。方法300的步骤可任选地重复、省略、递归地执行,并且可以任何合适的方式执行。方法300可包括比图3所示更多或更少的步骤。
[0057]
在步骤305处,可确定在图形引擎电路106处是否已经接收到来自软件118的更新信号。更新信号可指示软件118具有用于在显示器116上显示的新数据。如果是,则方法300可前进至步骤325。如果否,则方法300 可前进至步骤310。
[0058]
在步骤310处,可确定编码帧缓冲区(诸如缓冲区114)是否有效。可在不同时间由图形引擎电路106设定给定缓冲区是否有效,如图3的其余部分所示。“有效”缓冲区是包括准备好显示给显示器116的信息的缓冲区 (在一些情况下,在解码之后)。“无效”是不包括准备好显示给显示器116 的信息的缓冲区。默认情况下,或最初对于方法300,编码帧缓冲区可不被设定为有效的。编码帧缓冲区的有效或无效状态可能已经通过步骤320或步骤350的方法300的先前执行来进行设定。
[0059]
如果编码帧缓冲区是无效的,则方法300可前进至步骤315,其中可填充编码帧缓冲区使得其可被验证。如果编码帧缓冲区是有效的,则方法 300可返回至步骤305,因为目前不执行另外的工作。
[0060]
在步骤315处,可由图形引擎电路106来编码主帧缓冲区(诸如缓冲区112)的内容。编码内容可置于缓冲区114(编码帧缓冲区)中。在步骤 320处,编码帧缓冲区可被标记为有效的。因此,缓冲区114的内容可用于由图形驱动器电路108加以使用。方法300可返回至步骤305。
[0061]
在步骤325处,其中已经从软件118接收如下信号:将在显示器116 上显示新数据,可确定编码帧缓冲区(诸如缓冲区114)是否已经使用以在显示器116上显示内容。这可由方法300(并且特别是步骤335)的先前执行产生,其中图形引擎电路106指示图形驱动器电路108从使用主帧缓冲区(诸如缓冲区112)切换到使用编码帧缓冲区(诸如缓冲区114)。因此,步骤325可确定主帧缓冲区是否未由图形驱动器电路108使用并且可安全地更新,同时图形
驱动器电路108使用编码帧缓冲区在显示器116上显示内容。如果编码帧缓冲区(诸如缓冲区114)已经用于在显示器116上显示内容,并且主帧缓冲区(诸如缓冲区112)未经使用,则方法300可前进至步骤345。否则,方法300可前进至步骤330。
[0062]
在步骤330处,可确定编码帧缓冲区(诸如缓冲区114)是否有效。该状态可能已经通过步骤320或步骤350的方法300的先前执行来进行设定。如果编码帧缓冲区是有效的,则方法300可前进至步骤335。否则,方法300可前进至步骤340。
[0063]
在步骤335处,图形引擎电路106可向图形驱动器电路108发信号通知以切换到使用编码帧缓冲区(诸如缓冲区114)。图形驱动器电路108随后可从缓冲区114解码数据并且在显示器116上显示该数据,而不是从缓冲区112加载数据并且在显示器116上显示该数据。方法300可返回至步骤305。
[0064]
在步骤340处,编码帧缓冲区(诸如缓冲区114)不具有待显示的有效信息。因此,可将如在主帧缓冲区(诸如缓冲区112)中加载的新数据显示给显示器116。这可不太理想,因为数据被写入主帧缓冲区并从主帧缓冲区读取,这可能导致图形失真,诸如撕裂。然而尽管如此,图形引擎电路 106仍然可向图形驱动器电路108发信号通知,以在由图形引擎电路106渲染来自主帧缓冲区的数据时显示该数据,因为这是有效数据可用的唯一位置。方法300可前进至步骤350。
[0065]
在步骤345处,可能已经在步骤340处确定编码帧缓冲区(诸如缓冲区114)可能在使用中,而主帧缓冲区(诸如缓冲区112)未被使用。因此,在步骤345处,主帧缓冲区可用于接收新渲染数据。由软件118产生的数据可被渲染到主帧缓冲区中。方法300可前进至步骤350。
[0066]
在步骤350处,图形引擎电路306可标记编码帧缓冲区(诸如缓冲区 114)为无效的。因此,随后图形驱动器电路308将不使用缓冲区114以将数据显示给显示器116,直到缓冲区114再次被标记为有效的。
[0067]
方法300可返回至步骤305,或者可任选地终止。
[0068]
图4是根据本公开的实施方案的通过方法400来操作图形驱动器的图示。例如,图4可示出由图形驱动器电路108进行的操作。方法400的操作可与图形引擎(诸如图形引擎电路106)的操作(如图3中的方法300所示)并行执行,在上文进一步详细地讨论。方法400的步骤可任选地重复、省略、递归地执行,并且可以任何合适的方式执行。方法400可包括比图4所示更多或更少的步骤。
[0069]
在步骤405处,可确定图形驱动器电路108当前是否使用编码帧缓冲区(诸如缓冲区114),以将内容显示给显示器116。如果否,则方法400 可前进至步骤410。否则,方法400可前进至步骤420。
[0070]
在步骤410处,可确定图形驱动器电路108是否已经接收到来自图形引擎电路106的信号从读取来自主帧缓冲区(诸如缓冲区112)的数据切换到读取来自编码帧缓冲区(诸如缓冲区114)的数据,以将数据显示给显示器116。该信号可能已经由例如图3的步骤335中的图形引擎电路106发送。如果是,则方法400可前进至步骤420。如果否,则方法400可前进至步骤415。
[0071]
在步骤415处,图形驱动器电路108可被设定为读取来自主帧缓冲区 (诸如缓冲区112)的数据,以用于将数据显示给显示器116。因此,图形驱动器电路108可读取此类数据并
且将数据显示给显示器116。方法400可返回至步骤405。
[0072]
在步骤420处,图形驱动器电路108可确定编码帧缓冲区(诸如缓冲区114)是否已经被标记为有效的,其中图形引擎电路106已经指示将使用编码帧缓冲区而不是主帧缓冲区(诸如缓冲区112)。此类标记可在例如图 3的步骤320或350中发生。如果编码帧缓冲区已经被标记为有效的,则方法400可前进至步骤425。否则,方法400可前进至步骤415。
[0073]
在步骤425处,图形驱动器电路108可被设定为读取来自编码帧缓冲区(诸如缓冲区114)的数据,以用于将数据显示给显示器116。因此,图形驱动器电路108可读取此类数据并且将数据显示给显示器116。方法400 可返回至步骤405。
[0074]
尽管上文已描述了示例实施方案,但在不脱离这些实施方案的实质和范围的情况下,可由本公开进行其他变型和实施方案。

技术特征:


1.一种装置,所述装置包括:图形引擎电路,所述图形引擎电路被配置为:确定待输出到显示器的第一图形数据;将所述第一图形数据渲染到第一缓冲区;和图形驱动器电路,所述图形驱动器电路被配置为:将所述第一缓冲区输出到所述显示器;其中:所述图形引擎电路被进一步配置为:在所述图形驱动器电路将所述第一缓冲区输出到所述显示器的同时,将所述第一图形数据编码到第二缓冲区中;以及发信号通知所述图形驱动器电路将所述第二缓冲区输出到所述显示器。2.根据权利要求1所述的装置,其中所述图形驱动器电路被进一步配置为在接收到来自所述图形引擎电路的信号将所述第二缓冲区输出到所述显示器后:停止将所述第一缓冲区的内容输出到所述显示器;解码所述第二缓冲区的内容;以及将所述第二缓冲区的解码内容输出到所述显示器。3.根据权利要求1至2中任一项所述的装置,其中所述图形驱动器电路被进一步配置为:确定所述第二缓冲区正在用于将内容输出到所述显示器;基于所述确定所述第二缓冲区正在用于将内容输出到所述显示器,确定已经接收到信号指示所述第二缓冲区的所述内容不被使用;以及基于所述确定已经接收到所述信号指示所述第二缓冲区的内容不被使用,将所述第一缓冲区输出到所述显示器。4.根据权利要求1至3中任一项所述的装置,其中所述图形驱动器电路被进一步配置为:在接收到来自所述图形引擎电路的信号将所述第二缓冲区输出到所述显示器后,确定所述第二缓冲区是否包括有效数据;以及基于确定所述第二缓冲区不包括有效数据,继续将所述第一缓冲区输出到所述显示器。5.根据权利要求1至4中任一项所述的装置,其中所述图形引擎电路被进一步配置为:确定待输出到所述显示器的第二图形数据;确定所述第二缓冲区是否正在由所述图形驱动器电路使用;以及基于确定所述第二缓冲区正在由所述图形驱动器电路使用,将所述第二图形数据渲染到所述第一缓冲区。6.根据权利要求5所述的装置,其中所述图形引擎电路被进一步配置为在将所述第二图形数据渲染到所述第一缓冲区之后,发信号通知所述第二缓冲区的内容为无效的。7.根据权利要求1至6中任一项所述的装置,其中所述图形引擎电路被进一步配置为:确定待输出到所述显示器的第二图形数据;确定所述第二缓冲区是否正在由所述图形驱动器电路使用;以及
基于确定所述第二缓冲区并非正在由所述图形驱动器电路使用,确定所述第二缓冲区的内容是否由所述图形引擎电路发信号通知为有效的。8.根据权利要求7所述的装置,其中所述图形引擎电路被进一步配置为,基于确定将所述第二缓冲区的内容发信号通知为有效的,向所述图形驱动器电路发信号通知将所述第二缓冲区输出到所述显示器。9.根据权利要求7至8中任一项所述的装置,其中所述图形引擎电路被进一步配置为,基于确定未将所述第二缓冲区的内容发信号通知为有效的,将所述第一图形数据渲染到所述第二缓冲区。10.根据权利要求9所述的装置,其中所述图形引擎电路被进一步配置为发信号通知所述第二缓冲区的内容为无效的。11.一种方法,所述方法包括执行根据权利要求1至10中任一项所述的装置中的任一装置的操作。12.一种包括指令的制品,所述指令当由处理器读取和执行时,使得所述处理器执行根据权利要求1至10中任一项所述的图形引擎电路和图形驱动器电路中的任一者的操作中的任一操作。

技术总结


本发明提供一种装置,该装置包括图形驱动器电路和图形引擎电路。该图形引擎电路被配置为确定待输出到显示器的图形数据,并且被配置为将该图形数据渲染到缓冲区。该图形驱动器电路被配置为将该缓冲区输出到该显示器。该图形引擎电路被进一步配置为在该图形驱动器电路将第一缓冲区输出到该显示器的同时,将第一图形数据编码到另一个缓冲区中,并且被配置为发信号通知该图形驱动器电路将其他缓冲区输出到该显示器。到该显示器。到该显示器。


技术研发人员:

M

受保护的技术使用者:

微芯片技术股份有限公司

技术研发日:

2021.09.09

技术公布日:

2022/11/22

本文发布于:2024-09-20 14:53:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/716.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:缓冲区   图形   电路   驱动器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议