CN109658487B - 一种实时渲染器优化方法及系统 - Google Patents

一种实时渲染器优化方法及系统 Download PDF

Info

Publication number
CN109658487B
CN109658487B CN201811294762.1A CN201811294762A CN109658487B CN 109658487 B CN109658487 B CN 109658487B CN 201811294762 A CN201811294762 A CN 201811294762A CN 109658487 B CN109658487 B CN 109658487B
Authority
CN
China
Prior art keywords
gpu
data
cpu
communication
rendering
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
CN201811294762.1A
Other languages
English (en)
Other versions
CN109658487A (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.)
Suzhou Snail Digital Technology Co Ltd
Original Assignee
Suzhou Snail Digital Technology Co Ltd
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 Suzhou Snail Digital Technology Co Ltd filed Critical Suzhou Snail Digital Technology Co Ltd
Priority to CN201811294762.1A priority Critical patent/CN109658487B/zh
Publication of CN109658487A publication Critical patent/CN109658487A/zh
Application granted granted Critical
Publication of CN109658487B publication Critical patent/CN109658487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

一种实时渲染器优化方法,包括以下步骤:根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据进行分类管理,并进行数据备份;在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理;在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理;对图像进行实时渲染。本发明还提供一种实时渲染器优化系统,提高CPU的性能、减少GPU和CPU的通讯数据量,避免后续渲染错误延续。

Description

一种实时渲染器优化方法及系统
技术领域
本发明涉及一种实时渲染器,特别是涉及一种实时渲染器优化方法及系统。
背景技术
在现有游戏和虚拟现实开发中,通常采用图形处理器(GPU)实时渲染器将物体绘制到屏幕上。在渲染过程中,通过中央处理器(CPU)和图形处理器(GPU)之间的数据交互,完成对图像的实时渲染。
尽管图形处理器(GPU)和中央处理器(CPU)得到了飞速发展,但由于CPU和GPU的处理性能有限,在游戏开发中,目前游戏中的GPU实时渲染系统的中仍然存在渲染不均衡的问题,会导致游戏中的GPU和CPU存在相互运行阻塞问题。这种渲染不均衡的问题,往往导致游戏卡顿,画面不流畅,给用户一种较差的体验感受;另外许多开发者自身技术水平有限,对GPU的了解也远不及对于CPU的了解,在游戏开发中针对GPU的性能优化并不能充分发挥GPU的性能。如何降低开发者的自身的技术水平,同时又能够最大限度的发挥出CPU和GPU的最佳性能,给游戏玩法更流畅的感受,已经成为一个亟待解决的技术问题。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种实时渲染器优化方法及系统,在CPU与GPU的交互通讯之间,建立数据缓存机制,将设置错误的数据恢复到之前的正确数据,只有通过数据缓存机制确认的有效数据才传送给GPU,能够最大限度的发挥出CPU和GPU的最佳性能,给游戏玩法更流畅的感受。
为实现上述目的,本发明提供的实时渲染器优化方法,包括以下步骤:
根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据进行分类管理,并进行数据备份;
在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理;
在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理;
对图像进行实时渲染。
进一步地,所述GPU的工作状态操作数据,包括,GPU在渲染过程中是否开启半透明混合方式、是否进行模板测试以及是否进行顶点剔除;
所述GPU的渲染操作数据,包括,GPU渲染过程中是否进行顶点渲染或三角形渲染、渲染时设置顶点数据、索引和贴图数据。
进一步地,所述GPU的通讯数据,包括,GPU的半透明混合数据、常量输入数据、渲染的写入数据。
进一步地,所述在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理的步骤,是将CPU发送给GPU的数据与备份数据进行比较,数据相同,则跳过此次GPU和CPU的通讯。
更进一步地,所述在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理的步骤,包括:
每次GPU和CPU的通讯中,将GPU的通讯数据与上次的渲染数据进行比较检测;
检测到本次GPU的通讯数据错误,则将GPU的通讯数据恢复为之前的数据。
为实现上述目的,本发明还提供一种实时渲染器优化系统,包括,CPU、GPU,其中,
在所述CPU 与GPU之间设置有数据缓存管理模块,所述数据缓存管理模块,在所述CPU 与GPU之间交互通讯时,对所述CPU发送给GPU的数据进行比较处理、对GPU的通讯数据进行检测处理。
进一步地,所述数据缓存管理模块,将CPU发送给GPU的数据与备份数据进行比较,数据相同,则跳过此次GPU和CPU的通讯。
更进一步地,所述数据缓存管理模块,将GPU的通讯数据与上次的渲染数据进行比较检测,在检测到本次GPU的通讯数据错误时,则将GPU的通讯数据恢复为之前的数据。
本发明的实时渲染器优化方法及系统,具有如下的优点及显著效果:在CPU与GPU的交互通讯之间,,建立了一种数据缓存机制,该数据缓存机制分别与CPU和GPU进行交互通讯,并在数据缓存机制的基础上新增GPU渲染操作中的数据恢复机制,该数据恢复机制通过与本次渲染操作之前的数据检测比对,使GPU的工作模式具有容错能力,将设置错误的数据恢复到之前的正确数据,只有通过数据缓存机制确认的有效数据才传送给GPU。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的实时渲染器优化方法流程图;
图2为根据本发明的实时渲染器优化系统结构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明的实时渲染器优化方法及系统,基于GPU和CPU的异步通讯机制特点,在GPU和CPU两者的通讯中,建立一种数据和操作的缓存机制,可以提高CPU和GPU的效率,并在缓存机制的基础上新增GPU渲染中的渲染数据恢复机制,当操作出现一定问题时,GPU的工作因为会存在有GPU渲染相关的技术错误。该机制通过与这次渲染操作之前数据检测比对方式,让GPU的工作模式具有一定容错能力,将错误数据恢复到操作之前的数据。
图1为根据本发明的实时渲染器优化方法流程图,下面将参考图1,对本发明的实时渲染器优化方法进行详细描述。
首先,在步骤101,对CPU需要发送给GPU的数据进行分类管理并备份。该步骤中,在CPU与GPU需要进行交互数据时,将CPU需要对GPU的操作数据和操作方式内容进行分类管理,管理的对象为GPU的工作状态操作数据和GPU的渲染操作数据;根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据分别区分开来做不同管理,以有效降低在管理对象的内存管理复杂度,提高CPU的性能。其中GPU的工作状态操作数据,包括,GPU在渲染过程中半透明混合方式、进行模板测试以及进行顶点剔除;GPU的渲染操作数据,包括,GPU渲染过程中进行顶点渲染还是三角形渲染以及渲染时设置顶点数据、索引和贴图数据。
在步骤102,在每次GPU和CPU的通讯中,将CPU发给GPU的数据和备份数据进行一次数据比较。数据相同则进入下一步骤,否则转到步骤104。
在步骤103,直接跳过此次GPU和CPU的通讯,减少GPU和CPU的通讯数据量,让两者相互工作状态的影响降低,提高有效工作时间。
在步骤104,比较数据不同,和上次的渲染相关数据进行检测,减少重复的GPU和CPU通讯数据,并对渲染相关数据发生的错误,进行容错机制恢复,将数据恢复到这次针对GPU操作之前的数据。例如:游戏中,在绘制渲染花草数目的时候,关闭了半透明混合状态等等。此机制会自动检测错误,给予一定程度的状态修正,避免后续渲染错误延续,确保GPU可以按照预期的状态继续工作。
由于阿法半透明的混合状态开启,必须在半透明渲染批次里面进行,如果其他批次将阿法半透明的混合状态开启这种状态,则被视为错误的渲染状态,则在当前渲染批次结束以后,直接还原为阿法半透明的混合状态关闭,以避免当前渲染批次之后的其他渲染物件的渲染。
图2为根据本发明的实时渲染器优化系统结构图,如图2所示,本发明的实时渲染器优化系统,包括,中央处理器(CPU)10、数据缓存管理模块20,以及图像处理器(GPU)30,其中,
中央处理器(CPU)10,其通过数据缓存管理模块20与图像处理器(GPU)30进行交互通讯,并对需要发送给GPU的数据进行分类管理并备份。本发明中,CPU根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据分别区分开来做不同管理,以有效降低在管理对象的内存管理复杂度,提高CPU的性能。
数据缓存管理模块20,其将CPU需要将数据分为GPU的工作状态操作数据和GPU渲染的操作数据;进行有效数据的确认将CPU发送的数据与备份数据进行比较并进行处理;进行容错机制恢复,将数据恢复到这次针对GPU操作之前的数据,确保GPU可以按照预期的状态继续工作。
图像处理器(GPU)30,其通过数据缓存管理模块20与中央处理器(CPU)10进行交互通讯,对图像进行实时渲染。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种实时渲染器优化方法,包括以下步骤:
根据对GPU操作次数的频度的不同,将GPU的工作状态操作数据和GPU的渲染操作数据进行分类管理,并进行数据备份;
在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理;
在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理;
对图像进行实时渲染;
所述GPU的工作状态操作数据,包括,
GPU在渲染过程中是否开启半透明混合方式、是否进行模板测试以及是否进行顶点剔除;
所述GPU的渲染操作数据,包括,GPU渲染过程中是否进行顶点渲染或三角形渲染、渲染时设置顶点数据、索引和贴图数据;
所述GPU的通讯数据,包括,GPU的半透明混合数据、常量输入数据、渲染的写入数据。
2.根据权利要求1所述的实时渲染器优化方法,其特征在于,所述在每次GPU和CPU的通讯中,对CPU发送给GPU的数据进行比较处理的步骤,是将CPU发送给GPU的数据与备份数据进行比较,数据相同,则跳过此次GPU和CPU的通讯。
3.根据权利要求1所述的实时渲染器优化方法,其特征在于,所述在每次GPU和CPU的通讯中,对GPU的通讯数据进行检测处理的步骤,包括:
每次GPU和CPU的通讯中,将GPU的通讯数据与上次的渲染数据进行比较检测;
检测到本次GPU的通讯数据错误,则将GPU的通讯数据恢复为之前的数据。
4.一种实时渲染器优化系统,采用权利要求1-3任一项所述的实时渲染器优化方法,包括,CPU、GPU,其特征在于,在所述CPU 与GPU之间设置有数据缓存管理模块,所述数据缓存管理模块,在所述CPU 与GPU之间交互通讯时,对所述CPU发送给GPU的数据进行比较处理、对GPU的通讯数据进行检测处理。
5.根据权利要求4所述的实时渲染器优化系统,其特征在于,所述数据缓存管理模块,将CPU发送给GPU的数据与备份数据进行比较,数据相同,则跳过此次GPU和CPU的通讯。
6.根据权利要求4所述的实时渲染器优化系统,其特征在于,所述数据缓存管理模块,将GPU的通讯数据与上次的渲染数据进行比较检测,在检测到本次GPU的通讯数据错误时,则将GPU的通讯数据恢复为之前的数据。
CN201811294762.1A 2018-11-01 2018-11-01 一种实时渲染器优化方法及系统 Active CN109658487B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811294762.1A CN109658487B (zh) 2018-11-01 2018-11-01 一种实时渲染器优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811294762.1A CN109658487B (zh) 2018-11-01 2018-11-01 一种实时渲染器优化方法及系统

Publications (2)

Publication Number Publication Date
CN109658487A CN109658487A (zh) 2019-04-19
CN109658487B true CN109658487B (zh) 2022-07-15

Family

ID=66110658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811294762.1A Active CN109658487B (zh) 2018-11-01 2018-11-01 一种实时渲染器优化方法及系统

Country Status (1)

Country Link
CN (1) CN109658487B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112258615B (zh) * 2020-10-23 2023-10-03 南京维伍网络科技有限公司 一种Revit到D5渲染器实时渲染的数据转换方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106504185A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种渲染优化方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106504185A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种渲染优化方法和装置

Also Published As

Publication number Publication date
CN109658487A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
CN104503783B (zh) 一种呈现服务器硬件初始化程度的方法及服务器
CN109032838B (zh) 虚拟机备份恢复数据一致性的自动校验方法
JP2017201470A (ja) 設定支援プログラム、設定支援方法及び設定支援装置
US20060150108A1 (en) Information processing device, information processing method, storage medium, and program
CN110766167B (zh) 交互式特征选择方法、设备及可读存储介质
JP2020530125A (ja) ディスプレイスクリーン周辺回路の検出方法、ディスプレイスクリーン周辺回路の検出装置、電子機器及び記憶媒体
US7610482B1 (en) Method and system for managing boot trace information in host bus adapters
CN110502345A (zh) 一种过载保护方法、装置、计算机设备及存储介质
CN109658487B (zh) 一种实时渲染器优化方法及系统
US20240152439A1 (en) Detection Method and Electronic Device
CN106547667B (zh) 一种移动终端的故障提示方法及系统
WO2017219872A1 (zh) 机顶盒的升级、换台方法及系统
US20120159256A1 (en) File System Resiliency Management
CN109871334A (zh) 电缆调制解调器及操作方法
WO2023082440A1 (zh) 故障复现方法、装置、设备和可读存储介质
CN111488195A (zh) 虚拟机克隆方法、装置、设备及计算机可读存储介质
CN105727556A (zh) 一种图像绘制的方法、相关设备及系统
CN115576766A (zh) 闪存管理算法调试方法、系统、设备和可读存储介质
CN113127260B (zh) 一种显示异常处理方法、装置、设备及介质
CN109445877B (zh) 一种检测游戏服务器多线程使用同一虚拟机的方法
US20020101424A1 (en) Method of testing graphic accelerator in DOS mode
CN105159804B (zh) 一种数据块处理的方法、装置及设备
US11900654B2 (en) Image difference detection
CN114138557B (zh) 一种存储快照回滚数据一致性测试方法与装置
WO2024023948A1 (ja) 分析装置、分析方法および分析プログラム

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