CN112424836B - 用于显示与光线跟踪图像相关联的着色器表的技术 - Google Patents

用于显示与光线跟踪图像相关联的着色器表的技术 Download PDF

Info

Publication number
CN112424836B
CN112424836B CN201980047001.2A CN201980047001A CN112424836B CN 112424836 B CN112424836 B CN 112424836B CN 201980047001 A CN201980047001 A CN 201980047001A CN 112424836 B CN112424836 B CN 112424836B
Authority
CN
China
Prior art keywords
shader
buffer
parameters
layout
records
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
CN201980047001.2A
Other languages
English (en)
Other versions
CN112424836A (zh
Inventor
A·N·金罗斯
A·帕特尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112424836A publication Critical patent/CN112424836A/zh
Application granted granted Critical
Publication of CN112424836B publication Critical patent/CN112424836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

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

Abstract

本文中描述的示例总体上涉及从图形处理单元(GPU)或图形驱动器拦截缓冲区,该缓冲区指定要在使用光线跟踪生成图像时使用的着色器表的一个或多个着色器记录,至少部分基于一个或多个着色器记录的标识符来确定一个或多个着色器记录的布局,至少部分基于该布局来解释缓冲区中的附加数据,以确定与一个或多个着色器记录对应的一个或多个参数,以及经由应用在界面上显示一个或多个参数的指示。

Description

用于显示与光线跟踪图像相关联的着色器表的技术
背景技术
当今,计算设备的使用变得越来越普遍。计算设备的范围从标准台式计算机到可穿戴计算技术等。近年来已经增长的计算设备的一个领域是在图像绘出的上下文中,诸如游戏、视频流等的绘出,这些图像绘出通常依赖于图形处理单元(GPU)来基于从计算设备接收的绘出指令来将图形从计算设备绘出到显示设备。图像的光线跟踪(raytracing)正在被开发作为另一种解决方案以经由应用生成图像并且经由GPU请求图像的显示。在光线跟踪中,应用可以定义要显示的图像,并且可以定义加速结构以促进在显示器上高效生成图像。
加速结构用于快速确定场景中特定光线可能与哪些对象相交,并且用于拒绝光线不会撞击的一个或多个对象。所确定的对象可以基于与相交于对象的光线有关的信息而被绘制在显示器上。此外,在光线跟踪中,应用可以定义着色器表,该着色器表指定要在光线与光线跟踪场景中的其他对象相交或以其他方式交互时调用的着色器。当光线与光线跟踪场景中的其他对象相交或交互时,GPU可以基于光线来绘制场景的对象,并且可以基于着色器表来调用适当着色器。
发明内容
下面给出了一个或多个示例的简化概述,以便提供对这样的示例的基本理解。该概述不是所有预期示例的详尽概述,并且既不旨在标识所有示例的关键或重要元素,也不旨在界定任何或所有示例的范围。其唯一目的是以简化的形式呈现一个或多个示例的某些概念,作为稍后呈现的更详细描述的序言。
在一个示例中,提供了一种用于显示在光线跟踪图像时被使用的着色器表信息的计算机实现的方法。该方法包括从图形处理单元(GPU)或图形驱动器拦截缓冲区,该缓冲区指定要在使用光线跟踪生成图像时使用的着色器表的一个或多个着色器记录,由计算设备至少部分基于一个或多个着色器记录的标识符来确定一个或多个着色器记录的布局,由计算设备至少部分基于该布局来解释缓冲区中的附加数据,以确定与一个或多个着色器记录对应的一个或多个参数,并且经由在计算设备上执行的应用在界面上显示一个或多个参数的指示。
在另一示例中,提供了一种用于显示在光线跟踪图像时被使用的着色器表信息的计算设备。该计算设备包括:存储用于执行操作系统的一个或多个参数或指令以及包括诊断应用的一个或多个应用的存储器;以及被耦合到存储器的至少一个处理器。至少一个处理器被配置为从GPU或图形驱动器拦截缓冲区,该缓冲区指定要在使用光线跟踪生成图像时使用的着色器表的一个或多个着色器记录,至少部分基于一个或多个着色器记录的标识符来确定一个或多个着色器记录的布局,至少部分基于该布局来解释缓冲区中的附加数据,以确定与一个或多个着色器记录对应的一个或多个参数,并且经由诊断应用在界面上显示一个或多个参数的指示。
在另一示例中,提供了一种计算机可读介质,该计算机可读介质包括由一个或多个处理器可执行以显示在光线跟踪图像时被使用的着色器表信息的代码。该代码包括用于以下操作的代码:从GPU或图形驱动器拦截缓冲区,该缓冲区指定要在使用光线跟踪生成图像时使用的着色器表的一个或多个着色器记录,至少部分基于一个或多个着色器记录的标识符来确定一个或多个着色器记录的布局,至少部分基于该布局来解释缓冲区中的附加数据,以确定与一个或多个着色器记录对应的一个或多个参数,并且经由应用在界面上显示一个或多个参数的指示。
为了实现前述和相关目的,一个或多个示例包括下文中充分描述并且在权利要求中特别指出的特征。以下描述和附图详细阐述了一个或多个示例的某些说明性特征。然而,这些特征仅指示可以采用各种示例的原理的各种方式中的几种,并且该描述旨在包括所有这样的示例及其等同物。
附图说明
图1是根据本文中描述的示例的用于确定和显示可以由图形处理单元(GPU)光线跟踪的图像的着色器表信息的计算设备的示例的示意图。
图2是根据本文中描述的示例的用于确定和显示着色器表信息的方法的示例的流程图。
图3示出了根据本文中描述的示例的用于拦截图像数据、以确定和显示着色器表信息的数据流的示例。
图4示出了根据本文中描述的示例的用于显示着色器表信息的界面的示例。
图5示出了根据本文中描述的示例的用于在着色器表信息中显示根变元的错误指示的界面的示例。
图6示出了根据本文中描述的示例的用于在着色器表信息中显示着色器记录的错误指示的界面的示例。
图7示出了根据本文中描述的示例的用于在着色器表信息中显示根签名关联的错误指示的界面的示例。
图8是用于执行本文中描述的功能的计算设备的示例的示意图。
具体实施方式
下面结合附图阐述的详细描述旨在作为对各种配置的描述,而非旨在表示可以实践本文中描述的概念的唯一配置。为了提供对各种概念的透彻理解,详细描述包括特定细节。然而,对于本领域技术人员而言很清楚的是,可以在没有这些具体细节的情况下实践这些概念。在某些情况中,众所周知的组件以框图形式示出,以避免使这些概念模糊。
本文中描述的是与显示与在光线跟踪图像中定义的着色器表有关的参数有关的各种示例。着色器表可以指定当光线与光线跟踪场景中的某物交互时要调用哪个着色器。例如,着色器表可以包括着色器记录数组,其中每个记录包括着色器的标识符以及一组参数,这些参数在被调用时会被传递给着色器。当对场景进行光线跟踪并且光线遇到表面时,可以对着色器表进行索引以选择要执行的着色器(以及光线、对象和着色器记录提供的输入参数)。着色器表通常以字节的集合进行存储和/或通信,并且可能不直观。在这点上,基于执行图像的对应的光线跟踪(例如,与显示或以其他方式仅获取着色器表的原始字节相反),可以拦截和解释与着色器表对应的缓冲区数据,以便以更直观的格式提供数据的显示。例如,可以拦截来自各种缓冲区的数据,以确定正在使用的着色器记录、涉及着色器记录的参数等,并且可以显示参数以允许开发人员在对图像进行光线跟踪时可视化参数并且因此标识光线跟踪中的可能错误。
在特定示例中,可以拦截表示着色器表的至少一部分的缓冲区(例如,从图形处理单元(GPU))。缓冲区可以包括基于着色器记录标识符来指示一个或多个着色器记录的数据、以及该标识符之后的对应的数据。例如,缓冲区中的数据可以指示在光线跟踪图像期间的某个时刻使用的一个或多个着色器记录。在该示例中,缓冲区或另一缓冲区可以指示着色器记录标识符与根签名或其他构造之间的关联。此外,在该示例中,缓冲区或另一缓冲区可以指示根签名与着色器记录的数据布局之间的关联。因此,可以解释着色器记录以确定一个或多个相关参数,并且可以按照指示给定着色器记录的一个或多个相关参数的格式来显示数据,并且数据可以在光线跟踪期间的某个时刻表示着色器记录。在一个示例中,缓冲区还可以指示着色器记录之间的跨度(stride)值,以允许确定每个着色器记录在缓冲区中开始的位置。
另外,在一个示例中,可以检测和标识着色器记录中的可能错误,以允许开发人员可视化可能的错误和/或纠正引起错误的指令。例如,在不能从缓冲区确定期望值的情况下和/或在缓冲区数据否则被确定为至少部分损坏的情况下,可以检测到错误。因此,本文中描述的概念用于显示否则可能难以解释的着色器表和/或对应的着色器记录的信息,以允许开发人员快速有效地标识光线跟踪中的可能错误和/或在执行光线跟踪时将对应的着色器应用于某些光线。
现在转向图1至图8,参考可以执行本文中描述的动作或操作的一个或多个组件以及一种或多种方法来描绘示例,其中虚线中的组件和/或动作/操作可以是可选的。尽管下面在图2中描述的操作以特定顺序呈现和/或由示例组件执行,但是在一些示例中,取决于实现,可以改变动作的顺序和执行动作的组件。此外,在一些示例中,以下动作、功能和/或所描述的组件中的一个或多个可以由专门编程的处理器、执行专门编程的软件或计算机可读介质的处理器、或者由能够执行所描述的动作或功能的硬件组件和/或软件组件的任何其他组合执行。
图1是用于确定和显示用于使用GPU绘出的图像的着色器表信息的计算设备100和/或相关组件的示例的示意图。例如,计算设备100可以包括处理器104和/或存储器106,或者可以按照其他方式被与处理器104和/或存储器106耦合,其中处理器104和/或存储器106可以被配置为执行或存储与确定或显示着色器表信息有关的指令或其他参数,如本文中所述。计算设备100可以执行操作系统108(例如,经由处理器104和/或存储器106)以提供用于执行一个或多个应用的环境。计算设备100还可以包括GPU 114,该GPU 114用于处理绘出指令和/或将相关联的命令传送到显示界面116以引起一个或多个图像在显示器上的显示,该显示器可以经由显示端口118被耦合到计算设备100。
在一个示例中,显示界面116可以与处理器104和/或存储器106通信耦合以经由显示端口118与显示器(未示出)通信。本文中提及的显示端口118可以包括各种类型的端口中的一种或多种,包括高清多媒体接口(HDMI)端口、显示串行接口(DSI)端口、移动工业处理器接口(MIPI)DSI端口、通用串行总线(USB)端口、火线端口、或者其他嵌入式或外部有线或无线显示端口,这些端口可以实现计算设备100与显示器之间的通信。
在一个示例中,GPU 114可以是显示界面116的一部分(例如,显示界面116的电路板上的处理器)。在另一示例中,GPU 114、显示界面116等可以与处理器104集成。硬件的基本上任何组合都是可能的,从而使得GPU 114、显示界面116等可以经由总线与处理器104通信以促进向GPU 114提供绘出指令。GPU 114可以处理绘出指令以绘出图像,并且可以通过经由显示界面116的显示端口118向显示器传输相关联的信号来发起图像的至少一部分在显示器上的显示。
在一个示例中,GPU 114可以支持光线跟踪,并且因此可以包括光线跟踪组件120,光线跟踪组件120可操作用于接收可以由图形驱动器122生成的专有结构134并且基于专有结构134来执行光线跟踪,以经由显示界面116绘出图形。图形驱动器122可以是GPU 114的制造商专用的和/或由GPU 114的制造商提供以生成专有结构134以指示光线跟踪组件120执行光线跟踪以显示图像。
在一个示例中,应用124可以操作(例如,经由操作系统108)生成图像以经由显示界面116进行显示。应用124可以生成加速结构130,该加速结构130可以为与光线跟踪有关的图像定义几何数据(geometry),该几何数据可以包括关于图像中的一个或多个对象、与图像中的一个或多个对象对应的位置等的信息,从而使得具有光线跟踪能力的GPU(例如,GPU 114)可以模拟经由光线发出的光子,确定光在哪里反射,跟踪光线从场景返回的点等以生成图像。在一个示例中,应用124可以按照可以被提供给图形驱动器122的标准化格式生成加速结构130。图形驱动器122可以基于加速结构130来生成专有结构134,以优化用于在GPU 114上进行光线跟踪的加速结构130,其中专有结构134可以是专有格式,可以包括图形驱动器122已知但应用124、诊断应用126等未必知道的效率等。
在一个示例中,GPU 114可以可选地包括用于在光线跟踪时调用着色器的着色器调用组件136。例如,着色器调用组件136可以基于与着色器相关联的一个或多个检测到的事件(例如,如由应用124定义的)来调用着色器,诸如检测到光线与光线跟踪场景中的某物交互。例如,基于检测到光线与光线跟踪场景中的结构交互,可以定义指定与用于执行的着色器有关的参数的着色器表160(例如,通过应用124)。在一个示例中,应用定义的着色器表160可以是存储在GPU存储器(例如,分配给GPU 114的存储器106的一部分、物理上在GPU114上或附近的存储器,其中GPU 114独立于处理器104等)中的字节数组,该字节数组由运行时(例如,操作系统108)和/或驱动器(例如,图形驱动器122)用来确定当光线与光线跟踪场景中的某物交互时要调用哪个着色器。着色器表160还可以指定哪些资源(例如,缓冲区、纹理等)要被绑定到每个着色器或以其他方式与每个着色器相关联。
操作系统108还可以包括诊断应用126,该诊断应用126用于确定和显示与光线跟踪图像有关的某些诊断信息,当图像被光线跟踪时,该诊断应用可以允许开发人员查看和分析参数、存储器状态等。例如,诊断应用126可以确定和显示与在光线跟踪期间调用的着色器有关的着色器表信息,并且可以在着色器在光线跟踪期间被调用和/或利用时这样做。例如,诊断应用126可以包括拦截组件138,该拦截组件138用于拦截与GPU 114在执行光线跟踪时初始化或使用的着色器有关的数据,其可以包括从来自GPU 114的应用程序编程接口(API)调用拦截数据以获取与正在调用的着色器的着色器表160有关的数据,拦截来自处理器104的数据以向GPU 114提供着色器信息,等等。例如,诊断应用126可以在应用124正在执行并且经由光线跟踪绘制图像时执行,和/或可以允许暂停应用124以在期望时刻分析光线跟踪数据。在这点上,诊断应用126还可以包括解释组件140和/或显示组件142,该解释组件140用于将所拦截的数据解释为与所拦截的数据相关联的附加着色器表信息,该显示组件142用于经由界面来显示或以其他方式绘出着色器表信息。
例如,可以经由显示界面116显示着色器表信息。在一个示例中,诊断应用126可以在同一计算设备100上执行,或者可以作为在不同计算设备150上运行的诊断应用156来执行(其中不同计算设备150可以具有单独的处理器、存储器、操作系统等,以执行诊断应用156),只要诊断应用126、156可以至少与GPU 114(或相关组件)通信以确定和/或接收着色器表信息、相关缓冲区等,如本文中所述。在显示着色器表信息时,诊断应用126、156可以提供一些其他上下文,以允许与着色器表信息进行交互,对着色器表信息中表示的可能错误进行更简化的标识,等等。
图2是用于确定和显示与由GPU在光线跟踪或以其他方式绘出图像时调用的着色器有关的着色器表信息的方法200的示例的流程图。例如,方法200可以由计算设备100执行,并且因此参考图1进行描述,作为用于执行方法200的环境的非限制性示例。
在方法200中,在动作202,可以从GPU或图形驱动器拦截缓冲区,该缓冲区指定要在使用光线跟踪生成图像时使用的着色器表的一个或多个着色器记录。在一个示例中,拦截组件138(例如,与处理器104、存储器106、诊断应用126、156等相结合)可以从GPU 114或图形驱动器122(例如,或它们之间的通信)拦截缓冲区,该缓冲区指定要在使用光线跟踪生成图像时使用的着色器表的一个或多个着色器记录。例如,拦截组件138可以拦截来自调用着色器以执行(例如,当光线与光线跟踪场景中的另一对象交互时)的着色器调用组件136的缓冲区。例如,拦截组件138可以通过基于检测到着色器的调用等获取存储器106的一部分来拦截用于调用着色器的API调用中的缓冲区,其中API调用可以从GPU 114被接收。
在一个示例中,缓冲区可以包括具有与着色器表中的多个着色器记录有关的数据的字节数组。每个着色器记录可以从缓冲区中的跨度(例如,字节数)表示的存储器位置开始,和/或初始着色器记录可以从已知存储器位置(例如,缓冲区的开始、与缓冲区的开始的已知偏移等)开始。在一个示例中,跨度可以在缓冲区中或在另一拦截或接收的信息中指示。在一个示例中,拦截组件138可以在着色器或着色器表被初始化时拦截跨度信息,作为拦截或以其他方式接收(例如,经由去往/来自GPU 114的API调用)着色器表信息的一部分。在另一示例中,拦截组件138可以从所拦截的缓冲区确定跨度信息(例如,其可以在缓冲区中的前n个字节或其他已知位置等中指示)。另外,缓冲区内的每个着色器记录可以在字节的已知部分(例如,着色器记录的前n个字节或其他已知位置)中包括着色器标识符。在这点上,如本文中进一步所述,给定跨度和标识符长度,可以从缓冲区确定着色器记录和对应的标识符,并且将其用于获取附加着色器记录信息。
在方法200中,在动作204,可以至少部分基于一个或多个着色器记录的标识符来确定一个或多个着色器记录的布局。在一个示例中,解释组件140(例如,与处理器104、存储器106、诊断应用126、156等相结合)可以至少部分基于一个或多个着色器记录的标识符来确定一个或多个着色器记录的布局。例如,解释组件140还可以接收给定着色器记录和与着色器记录的布局相关联的值之间的关系的指示。
在一个示例中,在动作204确定布局可以可选地包括在动作206,将在先缓冲区中的布局标识为与一个或多个着色器记录的根签名相关联。在一个示例中,解释组件140(例如,与处理器104、存储器106、诊断应用126、156等相结合)可以将在先缓冲区中的布局标识为与一个或多个着色器记录的根签名相关联。例如,基于应用124初始化与一个或多个着色器记录对应的着色器,基于应用124向GPU114提供与一个或多个着色器记录对应的着色器信息(例如,通过从应用124和/或GPU 114拦截着色器信息或以其他方式接收着色器信息,诸如一旦GPU 114接收并且建立着色器和/或对应的着色器表),等等,解释组件140可以接收在先缓冲区。例如,解释组件140可以基于在先缓冲区中的数据来确定根签名和着色器记录的对应的布局的列表。例如,根签名可以定义参数布局,其概念类似于通用编程语言中的功能签名。例如,在光线跟踪的情况中,根签名可以用于定义着色器记录内着色器的参数布局。例如,可以接收在先缓冲区作为初始化着色器或着色器表的一部分。
另外,在该示例中,解释组件140可以确定与着色器记录的标识符相关联的根签名,这可以基于缓冲区中的附加数据(例如,着色器记录中在着色器标识符之后的数据)。在另一示例中,解释组件140可以从应用124、GPU 114等接收布局的指示,其中布局可以针对给定根签名指示针对具有根签名的着色器记录而被定义的字段。然后,解释组件140可以将给定的接收到的着色器记录的根签名与适当布局进行匹配。例如,布局可以在着色器记录数据中定义其他字段(例如,字段名称、字节长度等)以便于解释数据。
在方法200中,在动作208,可以至少部分基于布局来解释缓冲区中的附加数据,以确定与一个或多个着色器记录对应的一个或多个参数。在一个示例中,解释组件140(例如,与处理器104、存储器106、诊断应用126、156等相结合)可以至少部分基于布局来解释缓冲区中的附加数据,以确定与一个或多个着色器记录对应的一个或多个参数。例如,解释组件140可以如上所述确定与根签名相关联的布局,并且可以相应地基于布局来确定一个或多个相关参数,诸如根常量、根描述符或根描述符句柄等。例如,布局可以指示针对每个参数的字节数,并且解释组件140可以在与标识符、根签名等对应的初始字节之后读取参数值。
在方法200中,在动作210,可以经由应用在界面上显示一个或多个参数的指示。在一个示例中,显示组件142(例如,与处理器104、存储器106、诊断应用126、156等相结合)可以经由应用(例如,诊断应用126、156)在界面上显示一个或多个参数的指示。其他绘出也可以是可能的,诸如音频渲染、虚拟现实显示等。此外,本文中描绘和描述了可能界面的示例。在一个示例中,可以显示缓冲区数据中的着色器记录表。在另一示例中,也可以在界面上指示检测到的潜在错误。另外,该方法可以继续到动作204以确定、解释和显示缓冲区数据中的其他着色器记录(例如,基于以跨度值为基础而将指针前进到后续存储器位置的后续着色器记录)。
在另一示例中,在动作212,可以显示到附加参数的链接。在一个示例中,显示组件142(例如,与处理器104、存储器106、诊断应用126、156等相结合)可以显示到附加参数的链接,这可以包括显示参数值作为链接。例如,链接可以指示与给定着色器记录对应的数据缓冲区中的偏移,并且激活链接可以引起缓冲区中与着色器记录对应的数据的实际字节的显示。在另一示例中,链接可以指示根结构,并且激活链接可以引起与根结构本身有关的参数(诸如布局)的显示。
在方法200中,可选地,在动作214,可以在一个或多个参数中检测潜在错误。在一个示例中,解释组件140(例如,与处理器104、存储器106、诊断应用126、156等相结合)可以在一个或多个参数中检测潜在错误。例如,解释组件140可以检测由缓冲区中的数据表示的无效存储器位置、缓冲区中的空值、在一个或多个位置处在缓冲区中检测到不同于预期值的值的部分损坏记录等。在该示例中,显示组件142可以显示潜在错误的指示以警告开发人员。例如,检测潜在错误可以包括在一个或多个参数中检测不在存储器位置边界内的值,检测空值(例如,根签名的空值),检测无效值(例如,根签名的无效值,诸如在根签名到布局的映射中未指出无效值的情况下)等。
在其他示例中,显示一个或多个参数的指示还可以包括将参数值映射到由应用124指示的其他值(例如,在拦截的API调用中)。例如,拦截组件138可以拦截用于将根签名与标签相关联的API调用。在该示例中,在解释数据时,解释组件140可以确定与根签名相关联的标签,并且显示组件142可以在显示着色器记录数据时显示标签而不是根签名(或除了根签名还显示标签)。
图3示出了从由应用(例如,应用124)创建的图像几何数据302到绘出的场景310的图像数据的数据流300的示例。在该示例中,诸如应用124等应用可以生成要在显示器上绘出的图像几何数据302。应用124可以将图像几何数据302与上下文信息304组合在一起,以构建表示图像几何数据302的加速结构130。例如,上下文信息304可以包括图像内对象的位置、图像内对象的颜色、用于生成图像的一个或多个着色器等。在任何情况中,应用124都可以构建加速结构130,这可以包括调用API或其他机制以生成标准化加速结构130。在一个示例中,如果加速结构130被生成以包括边界框,则还可以创建或以其他方式确定或采用一个或多个着色器表160来定义图像的某些参数,诸如对象形状/取向、阴影参数、相交点等,如上所述。
加速结构130可以用于生成专有结构134(例如,通过图形驱动器)以用于指示GPU对绘出的场景310的图像进行光线跟踪。例如,专有结构134可以用于向GPU(例如,GPU 114)调度光线以执行光线跟踪以生成绘出的场景310。在另一示例中,还可以提供着色器表160以调用着色器以基于专有结构134来生成绘出的场景310。另外,例如,着色器表160和/或相关信息、调用、参数等可以通过诊断应用126、156来拦截,诸如通过经由去往/来自来自GPU114、应用124等的API调用来接收。如上所述,诊断应用126、156可以解释该信息以确定与着色器表、对应的着色器记录等有关的参数,这些参数可以在光线跟踪图像时显示以用于诊断目的,如上所述。此外,如上所述,应用124可以提供图像几何数据302,并且诊断应用126可以允许暂停应用124或对应的光线跟踪以逐步通过光线跟踪以在给定时刻分析着色器表160。
图4示出了用于显示根据拦截的着色器表缓冲区数据而解释的着色器记录的界面400的示例,如本文中所述。例如,界面400可以显示在光线跟踪图像的时刻调用的着色器的着色器表信息。在一个示例中,诊断应用126、156可以在执行光线跟踪时执行,并且可以在发生光线跟踪时显示诸如界面400或以下描述的其他界面等界面。在一个示例中,诊断应用126、156可以包括暂停功能以暂停光线跟踪以允许检查着色器表数据,和/或可以日志记录着色器表数据以用于后续查看等。
例如,界面400可以显示对应的着色器记录的着色器记录标识符402、根签名404、根变元值或常量406、偏移408等,如诊断应用126经由其各个子组件所描述的,如上所述。另外,例如,如上所述,根签名404可以是引起关于根签名的信息的显示的链接。另外,偏移408可以是引起以指定偏移显示缓冲区中的数据的链接。在该示例中,界面400可以呈现着色器表160的用户友好显示,以帮助开发人员理解运行时/驱动器如何解释其基础字节。在这点上,诊断应用126、156采用由应用124在捕获时提供的附加上下文,诸如与着色器表160有关的跨度/大小参数、根签名、和捕获时着色器标识符映射,以示出运行时/驱动器如何解释着色器表的每个字节。这可以使得开发人员能够轻松地诊断其着色器表中的问题。此外,它可以使得诊断应用126、156能够显示自动警告,这些警告会通知开发人员其着色器表的潜在问题,诸如无效着色器标识符或空描述符句柄,如本文中进一步描述和示出的。
另外,尽管关于着色器表160进行示出和描述,但是本文中描述的概念可以与帮助GPU 114了解如何光线跟踪或以其他方式绘出场景的其他数据一起使用。一个这样的示例可以是GPU 114在执行“间接绘出”(也被称为“ExecuteIndirect”)时使用的数据。这可以涉及GPU存储器中的“变元缓冲区”,其内容指定GPU 114应当执行的绘出命令以及所使用的参数。例如,本文中描述的用于查看着色器表的概念可以被应用于对间接变元缓冲区的内容进行可视化。在这些示例以及可以应用这些技术的其他示例中,诊断应用126、156可以类似地解释和提供数据的表示(例如,作为记录列表)。
图5示出了用于显示根据拦截的着色器表缓冲区数据而解释的着色器记录以及可能的错误指示的界面500的示例,如本文中所述。例如,界面500可以在字节24至31处显示指示参数1的错误字节的图标502。例如,诊断应用126、156可能已经期望这是指向与根CBV对应的GPU存储器中的资源的指针,但是可能已经检测到缓冲区数据集中与该参数对应的字节(例如,通过解释组件140,如上所述)是无效的(例如,在参数的存储器位置的范围之外,等等)。解释组件140可以检测该潜在错误,并且显示组件142可以在对应的根变元值处显示指示符图标502。
图6示出了用于显示根据拦截的着色器表缓冲区数据而解释的着色器记录以及可能的错误指示的界面600的示例,如本文中所述。例如,界面600可以显示图标602,该图标602指示表中的最后四个着色器记录没有数据。例如,这可能是故意的(例如,如果开发人员知道他们不会在运行时使用这些着色器记录),但这可能是一个错误。解释组件140可以将该潜在错误检测为预期有记录的表中的空数据(例如,基于多个记录和/或跨度值),并且显示组件142可以在对应的记录布局处显示(多个)指示符图标602。
图7示出了用于显示根据拦截的着色器表缓冲区数据解释的着色器记录以及可能的错误指示的界面700的示例,如本文中所述。例如,界面700可以显示图标702,该图标702指示开发人员没有将根签名与着色器记录相关联。解释组件140可以检测该潜在错误(例如,基于检测着色器记录但不能确定根签名(或确定根签名的空值)),并且显示组件142可以在对应的根签名处显示指示符图标702。
图8示出了包括如在图1中所示的其他可选组件细节的计算设备100的示例。在一个示例中,计算设备100可以包括用于执行与本文中描述的一个或多个组件和功能相关联的处理功能的处理器104。处理器104可以包括单组或多组处理器或多核处理器。此外,处理器104可以被实现为集成处理系统和/或分布式处理系统。
计算设备100还可以包括诸如用于存储由处理器104执行的应用的本地版本、相关指令、参数等的存储器106。存储器106可以包括计算机可用的存储器类型,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其任何组合。另外,处理器104和存储器106可以包括并且执行在处理器104上执行的操作系统、一个或多个应用(诸如图形驱动器122、诊断应用126和/或其组件、显示驱动器等,如本文中所述)、和/或计算设备100的其他组件。
此外,计算设备100可以包括用于利用本文中描述的硬件、软件和服务来提供与一个或多个其他设备、方、实体等来建立和维护通信的通信组件802。通信组件802可以在计算设备100上的组件之间以及在计算设备100与外部设备(诸如位于通信网络上的设备和/或串行或本地连接到计算设备100的设备)之间进行通信。例如,通信组件802可以包括一个或多个总线,并且还可以包括分别与可操作以用于与外部设备接口的无线或有线发射器和接收器相关联的发射链组件和接收链组件。例如,通信组件802可以在诊断应用126与另一设备上的GPU之间,在诊断应用126的分布式组件之间等进行通信。
另外,计算设备100可以包括数据存储库804,该数据存储库504可以是硬件和/或软件的任何合适的组合,该数据存储库804提供了结合本文中描述的示例而使用的信息、数据库和程序的大容量存储。例如,数据存储库804可以是或者可以包括用于处理器104当前未执行的应用和/或相关参数的数据存储库。此外,数据存储库804可以是用于操作系统、应用(诸如在处理器104上执行的图形驱动器122、诊断应用126和/或其组件、显示驱动器等、和/或计算设备100的一个或多个其他组件)的数据存储库。
计算设备100还可以包括用户接口组件806,该用户接口组件806可操作以从计算设备100的用户接收输入并且还可以操作为生成输出以呈现给用户(例如,经由到显示设备的显示界面116)。用户接口组件806可以包括一个或多个输入设备,包括但不限于键盘、数字小键盘、鼠标、触敏显示器、导航键、功能键、麦克风、语音标识组件、手势标识组件、深度传感器、凝视跟踪传感器、能够从用户接收输入的任何其他机制、或其任何组合。此外,用户接口组件806可以包括一个或多个输出设备,包括但不限于显示界面116、扬声器、触觉反馈机制、打印机、能够向用户呈现输出的任何其他机制、或其任何组合。在一个示例中,用户接口组件806可以显示或者可以包括界面400、500、600、700或类似的界面以显示存储器使用信息,如本文中所述。
计算设备100还可以包括用于基于从处理器104接收的光线跟踪指令来绘出图像的GPU 114,如本文中所述。GPU 114可以另外经由显示界面116发送信号以引起绘出的图像被显示在显示器(未示出)上。另外,计算设备100可以包括如本文中所述用于将光线跟踪指令(例如,以专有结构)提供给GPU 114的图形驱动器122,如本文中所述。另外,计算设备100可以包括如本文中所述用于确定和显示着色器表信息的诊断应用126。
举例来说,元素或元素的任何部分或元素的任何组合可以用包括一个或多个处理器的“处理系统”而被实现。处理器的示例包括微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、状态机、门控逻辑、分立硬件电路、以及被配置为执行在整个本公开中描述的各种功能的其他合适的硬件。处理系统中的一个或多个处理器可以执行软件。软件应当广义地解释为是指指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行线程、过程、函数等,无论是被称为软件、固件、中间件、微码、硬件描述语言还是其他形式。
因此,在一个或多个示例中,所描述的一个或多个功能可以在硬件、软件、固件或它们的任何组合中被实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储或编码在计算机可读介质上。计算机可读介质包括计算机存储介质。存储介质可以是计算机可以访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储设备、或者可以用于以指令或数据结构的形式承载或存储期望的程序代码并且可以由计算机访问的任何其他介质。本文中使用的磁盘和光盘包括压缩盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)和软盘,其中磁盘通常以磁性方式复制数据,而光盘则通过激光以光学方式复制数据。上述的组合也应当被包括在计算机可读介质的范围内。
提供先前的描述以使得本领域的任何技术人员能够实践本文中描述的各种示例。对这些示例的各种修改对于本领域技术人员而言将是很清楚的,并且本文中定义的一般原理可以被应用于其他示例。因此,权利要求书不旨在限于本文中所示的示例,而是与同语言权利要求一致的全部范围一致,其中除非明确指出,否则以单数形式提及元素并不意图表示“一个并且只有一个”,而是表示“一个或多个”。除非另有特别说明,否则术语“一些”是指一个或多个。本领域普通技术人员已知或以后将知道的与本文中描述的各种示例的元素的所有结构和功能等同物均旨在由权利要求书涵盖。而且,无论在权利要求书中是否明确叙述了本文中公开的内容,都不打算将其公开给公众。除非使用短语“用于……的手段”明确叙述该要素,否则任何权利要求要素都不应当被解释为手段加功能。

Claims (19)

1.一种用于显示在光线跟踪图像时被使用的着色器表信息的计算机实现的方法,包括:
从图形处理单元GPU或图形驱动器拦截缓冲区,所述缓冲区指定着色器表信息,所述着色器表信息包括要在使用光线跟踪生成所述图像时使用的着色器的一个或多个着色器记录;
由计算设备至少部分基于所述一个或多个着色器记录的标识符来确定针对与所述一个或多个着色器记录对应的一个或多个着色器的在所述缓冲区内的参数布局;
由所述计算设备至少部分基于所述参数布局来解释所述缓冲区中的附加数据,以确定与所述一个或多个着色器记录对应的一个或多个参数;
进行以下至少之一:在所述一个或多个参数中检测无效存储器位置,或者基于所述布局来检测与所述一个或多个着色器记录相关联的空根签名;以及
经由在所述计算设备上执行的应用在界面上显示所述一个或多个参数的指示,并且显示所述无效存储器位置或所述空根签名中的至少一项的指示符。
2.根据权利要求1所述的计算机实现的方法,还包括从所述GPU或所述图形驱动器拦截在先缓冲区,所述在先缓冲区指定根签名和所述布局,其中确定所述布局包括:
将所述一个或多个着色器记录的所述标识符与所述根签名相关联;以及
在所述在先缓冲区中标识与所述根签名对应的所述布局。
3.根据权利要求2所述的计算机实现的方法,其中将所述一个或多个着色器记录的所述标识符与所述根签名相关联包括从所述缓冲区标识所述根签名。
4.根据权利要求1所述的计算机实现的方法,还包括:
从所述GPU或所述图形驱动器拦截在先缓冲区,所述在先缓冲区指定所述着色器表中的着色器记录之间的跨度;
基于来自所述一个或多个着色器记录的所述跨度的位置来标识第二着色器记录;
至少部分基于在所述缓冲区中被检测到的所述一个或多个着色器记录中的所述第二着色器记录的第二标识符来确定所述第二着色器记录的第二布局;
至少部分基于所述第二布局来解释所述缓冲区中的附加第二数据,以确定与所述第二着色器记录对应的一个或多个第二参数;以及
经由在所述计算设备上执行的所述应用在所述界面上显示所述一个或多个第二参数的第二指示。
5.根据权利要求1所述的计算机实现的方法,其中所述一个或多个参数包括以下至少一项:根常量、根描述符或根描述符句柄。
6.根据权利要求1所述的计算机实现的方法,其中显示所述一个或多个参数的所述指示包括显示到与所述一个或多个着色器记录相关联的根签名的链接,其中所述链接与显示关于所述根签名的附加参数相关联。
7.根据权利要求1所述的计算机实现的方法,其中显示所述一个或多个参数的所述指示包括显示到与所述一个或多个着色器记录相关联的所述缓冲区中的字节偏移的链接,其中所述链接与显示与所述一个或多个着色器记录相关联的字节相关联。
8.一种用于显示在光线跟踪图像时被使用的着色器表信息的计算设备,包括:
存储器,存储用于执行操作系统的一个或多个参数或指令以及包括诊断应用的一个或多个应用;以及
至少一个处理器,被耦合到所述存储器,其中所述至少一个处理器被配置为:
从图形处理单元GPU或图形驱动器拦截缓冲区,所述缓冲区指定信息,所述信息包括要在使用光线跟踪生成所述图像时使用的着色器的一个或多个着色器记录;
至少部分基于所述一个或多个着色器记录的标识符来确定针对与所述一个或多个着色器记录对应的一个或多个着色器的在所述缓冲区内的参数布局;
至少部分基于所述参数布局来解释所述缓冲区中的附加数据,以确定与所述一个或多个着色器记录对应的一个或多个参数;以及
经由所述诊断应用在界面上显示所述一个或多个参数的指示,
其中所述至少一个处理器还被配置为从所述GPU或所述图形驱动器拦截在先缓冲区,所述在先缓冲区指定根签名和所述布局,其中所述至少一个处理器被配置为至少部分通过以下来确定所述布局:
将所述一个或多个着色器记录的所述标识符与所述根签名相关联;以及
在所述在先缓冲区中标识与所述根签名对应的所述布局。
9.根据权利要求8所述的计算设备,其中所述至少一个处理器被配置为至少部分通过从所述缓冲区标识所述根签名来将所述一个或多个着色器记录的所述标识符与所述根签名相关联。
10.根据权利要求8所述的计算设备,其中所述至少一个处理器还被配置为:
从所述GPU或所述图形驱动器拦截另一在先缓冲区,所述另一在先缓冲区指定所述着色器表中的着色器记录之间的跨度;
基于来自所述一个或多个着色器记录的所述跨度的位置来标识第二着色器记录;
至少部分基于在所述缓冲区中被检测到的所述一个或多个着色器记录中的所述第二着色器记录的第二标识符来确定所述第二着色器记录的第二布局;
至少部分基于所述第二布局来解释所述缓冲区中的附加第二数据,以确定与所述第二着色器记录对应的一个或多个第二参数;以及
经由所述诊断应用在所述界面上显示所述一个或多个第二参数的第二指示。
11.根据权利要求8所述的计算设备,其中所述至少一个处理器被配置为在所述一个或多个参数中检测无效存储器位置,其中所述至少一个处理器被配置为将所述一个或多个参数的所述指示显示为与所述无效存储器位置相关联的指示符。
12.根据权利要求8所述的计算设备,其中所述至少一个处理器被配置为基于所述布局来检测与所述一个或多个着色器记录相关联的空根签名,其中所述至少一个处理器被配置为将所述一个或多个参数的所述指示显示为所述空根签名的指示符。
13.根据权利要求8所述的计算设备,其中所述一个或多个参数包括以下至少一项:根常量、根描述符或根描述符句柄。
14.根据权利要求8所述的计算设备,其中所述至少一个处理器还被配置为将所述一个或多个参数的所述指示显示为到与所述一个或多个着色器记录相关联的另一根签名的链接,其中所述链接与显示关于所述另一根签名的附加参数相关联。
15.根据权利要求8所述的计算设备,其中所述至少一个处理器还被配置为将所述一个或多个参数的所述指示显示为到与所述一个或多个着色器记录相关联的所述缓冲区中的字节偏移的链接,其中所述链接与显示与所述一个或多个着色器记录相关联的字节相关联。
16.一种非瞬态计算机可读介质,包括代码,所述代码由一个或多个处理器可执行以用于显示在光线跟踪图像时被使用的着色器表信息,所述代码包括用于以下的代码:
从图形处理单元GPU或图形驱动器拦截缓冲区,所述缓冲区指定指定信息,所述信息包括要在使用光线跟踪生成所述图像时使用的着色器的一个或多个着色器记录;
至少部分基于所述一个或多个着色器记录的标识符来确定针对与所述一个或多个着色器记录对应的一个或多个着色器的在所述缓冲区内的参数布局;
至少部分基于所述参数布局来解释所述缓冲区中的附加数据,以确定与所述一个或多个着色器记录对应的一个或多个参数;以及
经由应用在界面上显示所述一个或多个参数的指示,
其中用于显示的所述代码将所述一个或多个参数的所述指示显示为到与所述一个或多个着色器记录相关联的根签名的链接,其中所述链接与显示关于所述根签名的附加参数相关联。
17.根据权利要求16所述的非瞬态计算机可读介质,还包括用于从所述GPU或所述图形驱动器拦截在先缓冲区的代码,所述在先缓冲区指定另一根签名和所述布局,其中用于确定所述布局的所述代码:
将所述一个或多个着色器记录的所述标识符与所述另一根签名相关联;以及
在所述在先缓冲区中标识与所述另一根签名对应的所述布局。
18.根据权利要求16所述的非瞬态计算机可读介质,还包括用于在所述一个或多个参数中检测无效存储器位置的代码,其中用于显示的所述代码将所述一个或多个参数的所述指示显示为与所述无效存储器位置相关联的指示符。
19.根据权利要求16所述的非瞬态计算机可读介质,还包括用于基于所述布局来检测与所述一个或多个着色器记录相关联的空根签名的代码,其中用于显示的所述代码将所述一个或多个参数的所述指示显示为所述空根签名的指示符。
CN201980047001.2A 2018-07-19 2019-06-19 用于显示与光线跟踪图像相关联的着色器表的技术 Active CN112424836B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862700695P 2018-07-19 2018-07-19
US62/700,695 2018-07-19
US16/213,746 US10679317B2 (en) 2018-07-19 2018-12-07 Techniques for displaying a shader table associated with raytracing images
US16/213,746 2018-12-07
PCT/US2019/037825 WO2020018220A1 (en) 2018-07-19 2019-06-19 Techniques for displaying a shader table associated with raytracing images

Publications (2)

Publication Number Publication Date
CN112424836A CN112424836A (zh) 2021-02-26
CN112424836B true CN112424836B (zh) 2024-08-30

Family

ID=69161149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980047001.2A Active CN112424836B (zh) 2018-07-19 2019-06-19 用于显示与光线跟踪图像相关联的着色器表的技术

Country Status (14)

Country Link
US (1) US10679317B2 (zh)
EP (1) EP3824441B1 (zh)
JP (1) JP7308921B2 (zh)
KR (1) KR20210032379A (zh)
CN (1) CN112424836B (zh)
AU (1) AU2019306074A1 (zh)
BR (1) BR112020024909A2 (zh)
CA (1) CA3104277A1 (zh)
IL (1) IL280119A (zh)
MX (1) MX2021000534A (zh)
PH (1) PH12021550132A1 (zh)
SG (1) SG11202100066PA (zh)
WO (1) WO2020018220A1 (zh)
ZA (1) ZA202007685B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379577B2 (en) 2019-09-26 2022-07-05 Microsoft Technology Licensing, Llc Uniform resource locator security analysis using malice patterns
US11509667B2 (en) 2019-10-19 2022-11-22 Microsoft Technology Licensing, Llc Predictive internet resource reputation assessment
US11508110B2 (en) 2020-02-03 2022-11-22 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by performing geometry analysis before rendering
US11321800B2 (en) 2020-02-03 2022-05-03 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by region testing while rendering
US11170461B2 (en) 2020-02-03 2021-11-09 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering
US11263718B2 (en) 2020-02-03 2022-03-01 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by pretesting against in interleaved screen regions before rendering
US11514549B2 (en) 2020-02-03 2022-11-29 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by generating information in one rendering phase for use in another rendering phase
US12112394B2 (en) * 2020-02-03 2024-10-08 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using configurable shaders
US11120522B2 (en) 2020-02-03 2021-09-14 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by subdividing geometry
US11080814B1 (en) 2020-02-03 2021-08-03 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using prior frame information
US11431751B2 (en) 2020-03-31 2022-08-30 Microsoft Technology Licensing, Llc Live forensic browsing of URLs
CN112540810B (zh) * 2020-12-09 2024-06-14 竞技世界(北京)网络技术有限公司 一种绘制方法及装置、设备、计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102037497A (zh) * 2008-03-21 2011-04-27 柯斯提克绘图有限公司 用于光线追踪渲染的并行相交测试及着色的架构
CN102254297A (zh) * 2010-10-15 2011-11-23 威盛电子股份有限公司 多着色器系统及其处理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548238B2 (en) 1997-07-02 2009-06-16 Nvidia Corporation Computer graphics shader systems and methods
US8207966B2 (en) * 2004-05-26 2012-06-26 Sony Online Entertainment Llc Terrain editor tool for rule-based procedural terrain generation
JP4829662B2 (ja) * 2006-04-05 2011-12-07 キヤノン株式会社 自動レイアウトシステムおよび情報提供方法およびサーバーシステム
US9214007B2 (en) * 2008-01-25 2015-12-15 Via Technologies, Inc. Graphics processor having unified cache system
EP3385913B1 (en) * 2008-09-22 2020-04-01 Imagination Technologies Limited Systems and methods for a ray tracing shader api
GB2466078B (en) 2008-12-15 2013-11-13 Advanced Risc Mach Ltd Apparatus and method for tracing activities of a shader program executed on shader circuitry of a data processing apparatus
US9659404B2 (en) 2013-03-15 2017-05-23 Disney Enterprises, Inc. Normalized diffusion profile for subsurface scattering rendering
US10255650B2 (en) * 2013-05-24 2019-04-09 Sony Interactive Entertainment Inc. Graphics processing using dynamic resources
WO2015142770A2 (en) * 2014-03-19 2015-09-24 Microsoft Technology Licensing, Llc Configuring resources used by a graphics processing unit
US9792663B2 (en) * 2014-12-15 2017-10-17 Microsoft Technology Licensing, Llc User-defined command buffer formats supporting data-parallel translation
GB2543866B (en) * 2016-03-07 2017-11-01 Imagination Tech Ltd Task assembly for SIMD processing
US11069129B2 (en) * 2018-04-05 2021-07-20 Nvidia Corporation Shader binding management in ray tracing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102037497A (zh) * 2008-03-21 2011-04-27 柯斯提克绘图有限公司 用于光线追踪渲染的并行相交测试及着色的架构
CN102254297A (zh) * 2010-10-15 2011-11-23 威盛电子股份有限公司 多着色器系统及其处理方法

Also Published As

Publication number Publication date
JP2021531577A (ja) 2021-11-18
SG11202100066PA (en) 2021-02-25
BR112020024909A2 (pt) 2021-03-09
IL280119A (en) 2021-03-01
CN112424836A (zh) 2021-02-26
EP3824441A1 (en) 2021-05-26
WO2020018220A1 (en) 2020-01-23
ZA202007685B (en) 2022-04-28
US10679317B2 (en) 2020-06-09
JP7308921B2 (ja) 2023-07-14
MX2021000534A (es) 2021-03-31
KR20210032379A (ko) 2021-03-24
CA3104277A1 (en) 2020-01-23
AU2019306074A1 (en) 2021-01-07
US20200027190A1 (en) 2020-01-23
EP3824441B1 (en) 2022-09-21
PH12021550132A1 (en) 2021-09-27

Similar Documents

Publication Publication Date Title
CN112424836B (zh) 用于显示与光线跟踪图像相关联的着色器表的技术
EP3123316B1 (en) Supporting dynamic behavior in statically compiled programs
US9836290B2 (en) Supporting dynamic behavior in statically compiled programs
US11113869B2 (en) Techniques for generating visualizations of ray tracing images
US20160077850A1 (en) Methods, systems, and media for binary compatibility
US10394680B2 (en) Techniques for tracking graphics processing resource utilization
US8464226B2 (en) System and method for interoperating with foreign objects from a host computing environment
JP2007172602A (ja) イベント・ソースへのイベントを永続的に決定するための方法および装置
US9575737B1 (en) Application access to native and bundled libraries
US10546416B2 (en) Techniques for modifying graphics processing unit (GPU) operations for tracking in rendering images
US20230010932A1 (en) Automatically presenting a visualization of information within a terminal
US20190278742A1 (en) Techniques for tracking independent hardware graphics processing unit (gpu) performance
US20190057017A1 (en) Correlation Of Function Calls To Functions In Asynchronously Executed Threads
US9159160B1 (en) Texture sharing between application modules
CN115904522A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40040381

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant