KR101286938B1 - Partitioning-based performance analysis for graphics imaging - Google Patents

Partitioning-based performance analysis for graphics imaging Download PDF

Info

Publication number
KR101286938B1
KR101286938B1 KR1020117004633A KR20117004633A KR101286938B1 KR 101286938 B1 KR101286938 B1 KR 101286938B1 KR 1020117004633 A KR1020117004633 A KR 1020117004633A KR 20117004633 A KR20117004633 A KR 20117004633A KR 101286938 B1 KR101286938 B1 KR 101286938B1
Authority
KR
South Korea
Prior art keywords
graphics
partitions
processors
display
graphical representation
Prior art date
Application number
KR1020117004633A
Other languages
Korean (ko)
Other versions
KR20110036947A (en
Inventor
바박 엘미에
제임스 피 리츠
앵거스 도비
Original Assignee
퀄컴 인코포레이티드
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
Priority claimed from US12/507,767 external-priority patent/US20100020069A1/en
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20110036947A publication Critical patent/KR20110036947A/en
Application granted granted Critical
Publication of KR101286938B1 publication Critical patent/KR101286938B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Abstract

일반적으로, 본 개시는 다수의 상이한 그래픽 파티션들을 포함하는 그래픽 장면의 시각적인 표현을 제공하기 위한 기술들에 관한 것이며, 그 기술들은, 사용자로 하여금 스크린 파티셔닝과 연관된 코스트들로 인해 감소된 성능을 나타내는 그래픽스 장면의 부분들을 식별하게 허용할 수도 있다. 일 예시적인 디바이스는 디스플레이 디바이스 및 하나 이상의 프로세서들을 포함한다. 하나 이상의 프로세서들은 디스플레이 디바이스 상에서 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하고, 하나 이상의 그래픽스 이미지들을 오버레이하고 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이 디바이스 상에서 디스플레이하며, 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정하도록 구성된다.In general, the present disclosure is directed to techniques for providing a visual representation of a graphical scene comprising a number of different graphic partitions, which techniques enable a user to view reduced performance due to costs associated with screen partitioning And may allow to identify portions of the graphics scene. One exemplary device includes a display device and one or more processors. One or more processors may display one or more graphics images in a graphics scene on a display device, display on the display device a graphical representation of partitions that overlay one or more graphics images and partition the scene graphically, Analyze the graphics data and determine which portions of the graphics data are associated with the multiple partitions of the partitions.

Figure R1020117004633
Figure R1020117004633

Description

그래픽스 이미징을 위한 파티셔닝-기반 성능 분석{PARTITIONING-BASED PERFORMANCE ANALYSIS FOR GRAPHICS IMAGING}PARTITIONING-BASED PERFORMANCE ANALYSIS FOR GRAPHICS IMAGING FOR GRAPHICS IMAGING

35 U.S.C.§119 하의 우선권의 주장35 Claim of priority under U.S.C. §119

본 특허 출원은, 본원의 양수인에게 양도되고 본원에 참조로 명백히 통합된, 2008년 7월 25일자로 출원된 발명의 명칭이 PARTITIONING-BASED PERFORMANCE ANALYSIS FOR GRAPHICS IMAGING 인 미국 가출원 제 61/083,659 호에 대해 우선권을 주장한다.This application is related to U.S. Provisional Application No. 61 / 083,659, entitled PARTITIONING-BASED PERFORMANCE ANALYSIS FOR GRAPHICS IMAGING, filed July 25, 2008, which is assigned to the assignee of the present application and which is expressly incorporated herein by reference. Claim priority.

공동 계류중인 특허 출원들에 대한 참조References to co-pending patent applications

본 특허 출원은 다음의 공동-계류중인 미국 특허 출원들에 관련된다:This patent application relates to the following co-pending U.S. patent applications:

본원의 양수인에게 양도되고 본원에 참조로 명백히 통합된, 본원과 동시에 출원된 대리인 관리번호 080967P1 를 갖는 2008년 7월 25일자로 출원된 제 61/083,656 호; 및61 / 083,656, filed July 25, 2008, having attorney docket 080967P1, filed concurrently herewith, assigned to the assignee of the present application and expressly incorporated herein by reference; And

본원의 양수인에게 양도되고 본원에 참조로 명백히 통합된, 본원과 동시에 출원된 대리인 관리번호 080971P1 를 갖는 2008년 7월 25일자로 출원된 제 61/083,665 호.No. 61 / 083,665, filed July 25, 2008, having attorney docket 080971P1, filed concurrently herewith, assigned to the assignee hereof and hereby expressly incorporated by reference herein.

기술 분야Technical field

본 개시는 그래픽스 이미지들의 디스플레이에 관한 것이다.This disclosure relates to the display of graphics images.

배경background

그래픽스 프로세서들은 비디오 게임들, 그래픽스 프로그램들, 컴퓨터-보조 설계 (CAD) 애플리케이션들, 시뮬레이션 및 시각화 툴들, 및 이미징과 같은 다양한 애플리케이션들에 대해 2 차원 (2D) 및 3 차원 (3D) 이미지들을 렌더링하기 위해 널리 사용된다. 디스플레이 프로세서들은 디스플레이 디바이스를 통한 사용자에 대한 제시를 위해 그래픽스 프로세서의 렌더링된 출력을 디스플레이하기 위해 사용될 수도 있다.Graphics processors can be used to render two-dimensional (2D) and three-dimensional (3D) images for a variety of applications such as video games, graphics programs, computer-aided design (CAD) applications, simulation and visualization tools, It is widely used. The display processors may be used to display the rendered output of the graphics processor for presentation to the user via the display device.

OpenGL® (Open Graphic Library) 은 2D 및 3D 그래픽스를 산출하는 애플리케이션들을 작성하는 경우에 사용될 수도 있는 API (Application Programming Interface) 를 정의하는 표준 사양이다. 자바와 같은 다른 언어들이 이들의 자신의 표준 프로세스들을 통해 OpenGL API들에 대한 바인딩들을 정의할 수도 있다. 인터페이스는 심플한 프리미티브 (primitive) 들로부터 장면들을 드로잉하기 위해 사용될 수 있는 다수의 함수 호출들 또는 명령들을 포함한다. 그 후, 그래픽스 프로세서들, 멀티미디어 프로세서들, 및 심지어 범용 CPU들은 OpenGL 함수 호출들을 사용하여 작성된 애플리케이션들을 실행할 수 있다. OpenGL ES (embedded systems) 는 이동 무선 전화기들, 디지털 멀티미디어 플레이어들, 개인용 정보 단말기 (PDA), 또는 비디오 게임 콘솔들과 같은 임베딩된 디바이스들에 대해 설계된 OpenGL 의 변종이다.OpenGL ® (Open Graphic Library) is a standard specification that defines an API (application programming interface) that can be used when creating applications that produce 2D and 3D graphics. Other languages, such as Java, may define bindings to OpenGL APIs through their own standard processes. The interface includes a number of function calls or instructions that can be used to draw scenes from simple primitives. Graphics processors, multimedia processors, and even general purpose CPUs can then execute applications written using OpenGL function calls. OpenGL ES (embedded systems) is a variant of OpenGL designed for embedded devices such as mobile wireless telephones, digital multimedia players, personal digital assistants (PDAs), or video game consoles.

3D 그래픽스 애플리케이션들과 같은 그래픽스 애플리케이션들은, 그래픽스 디바이스에서의 하나 이상의 프로세서들과 같은 기본적인 그래픽스 하드웨어를 사용하여 이미지를 생성하는, API들 또는 명령들을 인보크함으로써 장면의 컨텐츠를 설명하거나 또는 정의할 수도 있다. 그래픽스 하드웨어는 이들 API들을 통해 수행되는 일련의 상태 천이들을 경험할 수도 있다. 드로우 호출 또는 명령과 같은 각각의 API 호출에 대한 상태들의 풀 세트는 프로세스를 설명할 수 있고, 그 프로세스로 하나 이상의 삼각형들과 같은 하나 이상의 그래픽스 프리미티브들로부터 이미지가 하드웨어에 의해 렌더링된다.Graphics applications, such as 3D graphics applications, may describe or define the content of a scene by invoking APIs or instructions that generate an image using basic graphics hardware, such as one or more processors in a graphics device . Graphics hardware may experience a series of state transitions performed through these APIs. A full set of states for each API call, such as a draw call or command, can describe a process in which the image is rendered by hardware from one or more graphics primitives, such as one or more triangles.

또한, 비닝 (binning) -기반 또는 파티셔닝 (partitioning) -기반 그래픽스 하드웨어는 종종 프로세스를 이용하여 구현될 수 있는데, 그 프로세스에서 렌더링을 위해 예정된 개별적인 그래픽스 프리미티브들이 비닝 파티션들 또는 빈들로 클러스터링되어 디스플레이 디바이스의 스크린 상에 디스플레이되는 이미지들의 장면들을 분할할 수 있다. 하드웨어는 스크린 사이즈 또는 해상도 제약들, 또는 렌더링 동작들과 연관된 메모리 제한들로 인해 그렇게 행할 수도 있다. 다수의 비닝 파티션들에 걸쳐 스팬 (span) 할 수도 있는 그래픽스 프리미티브들은, 프리미티브 프래그먼트들이 렌더링되기 전에 파티션들의 에지들을 따라 하드웨어에 의해 다수의 프래그먼트들로 분할될 수도 있다. 하드웨어는 각각의 파티션에서의 모든 프리미티브 프래그먼트들을 개별적으로 렌더링할 수도 있다.In addition, binning-based or partitioning-based graphics hardware can often be implemented using a process in which individual graphics primitives intended for rendering are clustered into binaries or bins, It is possible to divide scenes of images displayed on the screen. The hardware may do so due to screen size or resolution constraints, or memory constraints associated with rendering operations. Graphics primitives that may span across multiple binning partitions may be partitioned into multiple fragments by hardware along the edges of the partitions before the primitive fragments are rendered. The hardware may render all the primitive fragments separately in each partition.

따라서, 예컨대, 2 개의 비닝 파티션들에 걸쳐 스팬할 수도 있는 개별적인 프리미티브는 2 개의 프래그먼트들로 분할될 수도 있고, 그 후, 이들 2 개의 프래그먼트들의 각각은 독립적으로 렌더링될 수도 있다. 그러나, 그 후, 이들 프래그먼트들의 각각에 의해 생성된 그래픽스 이미지들은, 디스플레이 디바이스의 스크린 상에서 디스플레이되기 전에 이미지 데이터의 프레임 내에서 재결합될 필요가 있을 수도 있다. 따라서, 상이한 파티션들에 걸쳐 스패닝하는 프리미티브 그래픽스 데이터는 개별적으로 프로세싱되고 렌더링될 수도 있으며, 그 후, 렌더링된 이미지 데이터는 재결합되어 최종 이미지를 형성할 수도 있다.Thus, for example, an individual primitive that may span across two binning partitions may be divided into two fragments, and then each of these two fragments may be rendered independently. However, thereafter, the graphics images generated by each of these fragments may need to be recombined within the frame of the image data before being displayed on the screen of the display device. Thus, the primitive graphics data spanning across different partitions may be separately processed and rendered, and then the rendered image data may be recombined to form the final image.

개요summary

일반적으로, 본 개시는, 다수의 상이한 그래픽 파티션들을 포함하는 그래픽 장면의 시각적인 표현을 제공하기 위한 기술들에 관한 것이고, 이 기술들은 사용자로 하여금 스크린 파티셔닝과 연관될 수도 있는 코스트들로 인한 감소된 성능을 나타내는 그래픽스 장면의 부분들을 식별하게 허용할 수 있다. 이동 디바이스와 같은 그래픽스 디바이스는, 그래픽스 드라이버에 의해 생성된 파티션들의 수와 타입에 기초하여, 파티셔닝 또는 비닝 정보를 외부 컴퓨팅 디바이스 (예컨대, 개인용 컴퓨터) 에 제공할 수도 있다. 또한, 그래픽스 디바이스는 그래픽스 명령들 및 상태 정보를 컴퓨팅 디바이스에 제공할 수도 있다.In general, the present disclosure is directed to techniques for providing a visual representation of a graphic scene comprising a plurality of different graphic partitions, which techniques enable a user to view reduced Allowing you to identify portions of the graphics scene that represent performance. A graphics device, such as a mobile device, may provide partitioning or binning information to an external computing device (e.g., a personal computer) based on the number and type of partitions created by the graphics driver. The graphics device may also provide graphics instructions and status information to the computing device.

컴퓨팅 디바이스는 그래픽스 명령들 및 상태 정보에 기초하여, 그래픽 장면에서 하나 이상의 그래픽스 이미지들을 디스플레이할 수 있다. 컴퓨팅 디바이스는 수신된 파티셔닝 정보에 기초하여, 장면을 오버레이하는 파티션들의 그래픽 표현을 또한 디스플레할 수도 있고, 가능한 파티셔닝 코스트들 또는 성능 오버헤드에 관한 분석 정보를 제공할 수도 있다. 애플리케이션 개발자는 이러한 정보를 사용하여, 장면의 대체 구성들을 조사함으로써, 이들 코스트들 및/또는 성능 오버헤드를 감소시키는 것을 보조할 수도 있다.The computing device may display one or more graphics images in a graphics scene based on graphics instructions and state information. The computing device may also display a graphical representation of the partitions overlaying the scene based on the received partitioning information and may provide analysis information regarding possible partitioning costs or performance overhead. The application developer may use this information to assist in reducing these costs and / or performance overhead by examining alternate configurations of scenes.

일 양태에서, 방법은, 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하는 단계, 하나 이상의 그래픽스 이미지들을 오버레이하고 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이하는 단계, 및 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정하기 위해, 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하는 단계를 포함한다.In one aspect, a method includes displaying one or more graphics images in a graphics scene, overlaying one or more graphics images, displaying a graphical representation of the partitions partitioning the scene graphically, And analyzing the graphics data for the one or more graphics images to determine which one of the plurality of partitions is associated with the plurality of partitions.

일 양태에서, 디바이스는, 디스플레이 디바이스 및 하나 이상의 프로세서들을 포함한다. 하나 이상의 프로세서들은, 디스플레이 디바이스 상에서, 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하고, 디스플레이 디바이스 상에서, 하나 이상의 그래픽스 이미지들을 오버레이하고 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이하며, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정하기 위해, 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하도록 구성된다.In an aspect, a device includes a display device and one or more processors. The one or more processors, on the display device, display one or more graphics images in a graphics scene, display on the display device a graphical representation of partitions that overlay one or more graphics images and partition the scene graphically, Is configured to analyze graphics data for one or more graphics images to determine whether portions are associated with multiple ones of the partitions.

일 양태에서, 컴퓨터 판독가능 매체는, 하나 이상의 프로세서들로 하여금, 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하게 하고, 하나 이상의 그래픽스 이미지들을 오버레이하고 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이하게 하며, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정하게 하기 위해, 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하게 하기 위한 컴퓨터 실행가능 명령들을 포함한다.In one aspect, a computer-readable medium includes instructions that cause one or more processors to display one or more graphics images in a graphics scene, overlay one or more graphics images, and display a graphical representation of the partitions that partition the scene graphically And includes computer-executable instructions for causing the processor to analyze graphics data for one or more graphics images to determine which portions of the graphics data are associated with multiple of the partitions.

본 개시에서 설명되는 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우에, 소프트웨어는 프로세서에서 실행될 수도 있으며, 그 프로세서는, 마이크로프로세서, 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 디지털 신호 프로세서 (DSP) 와 같은 하나 이상의 프로세서들, 또는 다른 균등한 집적 또는 이산 로직 회로를 나타낼 수도 있다. 기술들을 실행하기 위한 명령들을 포함하는 소프트웨어는 컴퓨터 판독가능 매체에 초기에 저장되고, 프로세서에 의해 로딩 및 실행될 수도 있다.The techniques described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the software may be executed in a processor, which may be one or more processors such as a microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or a digital signal processor (DSP) Or other equivalent integrated or discrete logic circuitry. Software containing instructions for executing the techniques may be initially stored on a computer readable medium and loaded and executed by the processor.

따라서, 본 개시는, 프로세서로 하여금, 본 개시에서 설명되는 바와 같은 다양한 기술들 중 임의의 기술을 수행하게 하기 위한 명령들을 포함하는 컴퓨터 판독가능 매체를 또한 고려한다. 몇몇 경우들에서, 컴퓨터 판독가능 매체는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있으며, 그 컴퓨터 프로그램 제품은 제조자들에 판매될 수도 있고/있거나 디바이스에서 사용될 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있고, 몇몇 경우들에서, 또한 패키징 재료들을 포함할 수도 있다.Accordingly, the present disclosure also contemplates a computer readable medium comprising instructions for causing a processor to perform any of the various techniques described in this disclosure. In some cases, the computer readable medium may form part of a computer program product, which may be sold to manufacturers and / or used in a device. The computer program product may comprise a computer-readable medium and, in some cases, may also include packaging materials.

하나 이상의 양태들의 세부사항들이 첨부 도면들 및 이하의 설명에서 제시된다. 다른 특징들, 목적들, 및 유리한 점들은 상세한 설명 및 도면들로부터, 그리고 청구의 범위로부터 명백하게 될 것이다.The details of one or more aspects are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.

도면의 간단한 설명Brief Description of Drawings

도 1은 본 개시의 일 양태에 따른, 그래픽스 명령들, 상태 및/또는 성능 정보, 및 파티셔닝 정보를 애플리케이션 컴퓨팅 디바이스에 제공할 수도 있는 그래픽스 디바이스를 예시하는 블록도이다.1 is a block diagram illustrating a graphics device, which may provide graphics commands, status and / or performance information, and partitioning information to an application computing device, in accordance with an aspect of the present disclosure.

도 2는 본 개시의 일 양태에 따른, 도 1에서 도시된, 그래픽스 프로세싱 시스템, 그래픽스 드라이버, 및 애플리케이션 컴퓨팅 디바이스의 특정 세부사항들을 예시하는 블록도이다.Figure 2 is a block diagram illustrating certain details of the graphics processing system, graphics driver, and application computing device shown in Figure 1, in accordance with an aspect of the present disclosure.

도 3은 본 개시의 일 양태에 따른, 도 1에서 도시된, 제어 프로세서, 그래픽스 프로세서, 버텍스 프로세서, 및 디스플레이 프로세서에 의해 수행될 수도 있는 동작들의 추가적인 세부사항들을 예시하는 플로우도이다.3 is a flow diagram illustrating additional details of operations that may be performed by a control processor, a graphics processor, a vertex processor, and a display processor, shown in FIG. 1, in accordance with an aspect of the present disclosure.

도 4는 본 개시의 일 양태에 따른, 도 2에서 도시된 그래픽스 드라이버의 추가적인 세부사항들을 예시하는 블록도이다.Figure 4 is a block diagram illustrating additional details of the graphics driver shown in Figure 2, in accordance with an aspect of the present disclosure.

도 5a는 본 개시의 일 양태에 따른, 디스플레이 디바이스에 의해 제공된 스크린 영역의 4 개의 파티션들에 걸쳐 스팬할 수도 있는 그래픽스 데이터의 제 1 예를 예시하는 개념도이다.5A is a conceptual diagram illustrating a first example of graphics data that may span across four partitions of a screen region provided by a display device, in accordance with an aspect of the present disclosure;

도 5b는 파티션 경계들을 따라 분리된 도 5a의 제 1 예의 그래픽스 데이터를 예시하는 개념도이다.FIG. 5B is a conceptual diagram illustrating graphics data of the first example of FIG. 5A separated along partition boundaries. FIG.

도 6은 본 개시의 일 양태에 따른, 디스플레이 디바이스에 의해 제공된 스키린 영역의 8 개의 파티션들에 걸쳐 스팬할 수도 있는 그래픽스 데이터의 제 2 예를 예시하는 개념도이다.6 is a conceptual diagram illustrating a second example of graphics data that may span eight partitions of a scrolling region provided by a display device, according to one aspect of the present disclosure;

도 7은 본 개시의 일 양태에 따른, 도 1에서 도시된 애플리케이션 컴퓨팅 디바이스에 의해 수행될 수도 있는 제 1 방법의 플로우도이다.Figure 7 is a flow diagram of a first method that may be performed by the application computing device shown in Figure 1, in accordance with an aspect of the present disclosure.

도 8은 본 개시의 일 양태에 따른, 도 1에서 도시된 애플리케이션 컴퓨팅 디바이스에 의해 수행될 수도 있는 제 2 방법의 플로우도이다.Figure 8 is a flow diagram of a second method that may be performed by the application computing device shown in Figure 1, in accordance with an aspect of the present disclosure.

도 9는 본 개시의 일 양태에 따른, 그래픽 윈도우에서 정보를 디스플레이하기 위한 디스플레이 디바이스에 커플링된 그래픽스 디바이스의 예를 예시하는 개념도이다.9 is a conceptual diagram illustrating an example of a graphics device coupled to a display device for displaying information in a graphics window, in accordance with an aspect of the present disclosure.

도 10은 본 개시의 일 양태에 따른, 그래픽 윈도우 내에서 정보를 디스플레이하는 디스플레이 디바이스에 커플링된 그래픽스 디바이스의 다른 예를 예시하는 개념도이다.10 is a conceptual diagram illustrating another example of a graphics device coupled to a display device for displaying information within a graphics window, in accordance with an aspect of the present disclosure;

상세한 설명details

도 1은 본 개시의 일 양태에 따른, 그래픽스 명령들 (30), 상태 및/또는 성능 정보 (32), 및 파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수도 있는 그래픽스 디바이스 (2) 를 예시하는 블록도이다. 그래픽스 디바이스 (2) 는 독립형 디바이스일 수도 있거나, 또는 더 큰 시스템의 일부일 수도 있다. 예컨대, 그래픽스 디바이스 (2) 는 (무선 이동 핸드셋과 같은) 무선 통신 디바이스의 일부를 형성할 수도 있거나, 또는 디지털 카메라, 비디오 카메라, 디지털 멀티미디어 플레이어, 개인용 정보 단말기 (PDA), 비디오 게임 콘솔, 다른 비디오 디바이스 또는 (텔레비전과 같은) 전용 뷰잉 스테이션의 일부일 수도 있다. 또한, 그래픽스 디바이스 (2) 는 개인용 컴퓨터 또는 랩톱 디바이스를 포함할 수도 있다. 또한, 그래픽스 디바이스 (2) 는, 상술된 디바이스들의 일부 또는 전부에서 사용될 수도 있는 하나 이상의 집적 회로들, 칩들, 또는 칩셋들에 포함될 수도 있다.1 is a block diagram of a graphics device 2 (which may provide graphics commands 30, status and / or performance information 32) and partitioning information 33 to an application computing device 20, according to one aspect of the present disclosure. Fig. The graphics device 2 may be a standalone device, or it may be part of a larger system. For example, the graphics device 2 may form part of a wireless communication device (such as a wireless mobile handset) or may be part of a wireless communication device such as a digital camera, a video camera, a digital multimedia player, a personal digital assistant (PDA) Device or part of a dedicated viewing station (such as a television). The graphics device 2 may also include a personal computer or a laptop device. The graphics device 2 may also be included in one or more integrated circuits, chips, or chipsets that may be used in some or all of the devices described above.

몇몇 경우들에서, 그래픽스 디바이스 (2) 는, 그래픽스 애플리케이션들, 비디오 애플리케이션들, 오디오 애플리케이션들, 및/또는 다른 멀티미디어 애플리케이션들과 같은 다양한 애플리케이션들을 실행하는 것이 가능할 수도 있다. 예컨대, 그래픽스 디바이스 (2) 는 그래픽스 애플리케이션들, 비디오 게임 애플리케이션들, 비디오 재생 애플리케이션들, 디지털 카메라 애플리케이션들, 인스턴트 메시징 애플리케이션들, 비디오 화상회의 애플리케이션들, 이동 애플리케이션들, 또는 비디오 스트리밍 애플리케이션들에 대해 사용될 수도 있다.In some cases, the graphics device 2 may be capable of executing various applications, such as graphics applications, video applications, audio applications, and / or other multimedia applications. For example, the graphics device 2 may be used for graphics applications, video game applications, video playback applications, digital camera applications, instant messaging applications, video conferencing applications, mobile applications, or video streaming applications It is possible.

그래픽스 디바이스 (2) 는 다양한 상이한 데이터 타입들 및 포맷들을 프로세싱하는 것이 가능할 수도 있다. 예컨대, 그래픽스 디바이스 (2) 는, 이하 더 상세히 설명될 바와 같이, 스틸 이미지 데이터, 무빙 이미지 (비디오) 데이터, 또는 다른 멀티미디어 데이터를 프로세싱할 수도 있다. 이미지 데이터는 컴퓨터-생성된 그래픽스 데이터를 포함할 수도 있다. 도 1의 예에서, 그래픽스 디바이스 (2) 는 그래픽스 프로세싱 시스템 (4), (메모리를 포함할 수도 있는) 저장 매체 (8), 및 디스플레이 디바이스 (6) 를 포함한다. 프로그래머블 프로세서들 (10, 12, 14, 및 16) 은 그래픽스 프로세싱 시스템 (4) 내에 포함될 수도 있다. 프로그래머블 프로세서 (10) 는 제어 또는 범용 프로세서이다. 프로그래머블 프로세서 (12) 는 그래픽스 프로세서이고, 프로그래머블 프로세서 (14) 는 버텍스 프로세서이며, 프로그래머블 프로세서 (16) 는 디스플레이 프로세서이다. 제어 프로세서 (10) 는 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및/또는 디스플레이 프로세서 (16) 를 제어하는 것이 가능할 수도 있다. 일 양태에서, 그래픽스 프로세싱 시스템 (4) 은 멀티미디어 프로세서들의 다른 형태들을 포함할 수도 있다.Graphics device 2 may be capable of processing a variety of different data types and formats. For example, the graphics device 2 may process still image data, moving image (video) data, or other multimedia data, as will be described in more detail below. The image data may include computer-generated graphics data. In the example of FIG. 1, the graphics device 2 includes a graphics processing system 4, a storage medium 8 (which may include a memory), and a display device 6. The programmable processors 10, 12, 14, and 16 may be included within the graphics processing system 4. The programmable processor 10 is a control or general purpose processor. The programmable processor 12 is a graphics processor, the programmable processor 14 is a vertex processor, and the programmable processor 16 is a display processor. The control processor 10 may be capable of controlling the graphics processor 12, the vertex processor 14, and / or the display processor 16. In an aspect, the graphics processing system 4 may include other forms of multimedia processors.

그래픽스 디바이스 (2) 에서, 그래픽스 프로세싱 시스템 (4) 은 저장 매체 (8) 및 디스플레이 디바이스 (6) 양자 모두에 커플링된다. 저장 매체 (8) 는, 예컨대, 동기식 동적 랜덤 액세스 메모리 (SDRAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 임베디드 동적 랜덤 액세스 메모리 (eDRAM), 정적 랜덤 액세스 메모리 (SRAM), 또는 플래시 메모리와 같은, 명령들 및/또는 데이터를 저장할 수 있는 임의의 비소멸성 또는 휘발성 메모리를 포함할 수도 있다. 디스플레이 디바이스 (6) 는, LCD (liquid crystal display), 플라즈마 디스플레이 디바이스, 또는 다른 텔레비전 (TV) 디스플레이 디바이스와 같은, 디스플레이 목적들을 위한 이미지 데이터를 디스플레이할 수 있는 임의의 디바이스일 수도 있다.In the graphics device 2, the graphics processing system 4 is coupled to both the storage medium 8 and the display device 6. The storage medium 8 may be any suitable storage medium such as, for example, a synchronous dynamic random access memory (SDRAM), a read only memory (ROM), a nonvolatile random access memory (NVRAM), an embedded dynamic random access memory (eDRAM), a static random access memory , Or any non-destructive or volatile memory capable of storing instructions and / or data, such as flash memory. The display device 6 may be any device capable of displaying image data for display purposes, such as a liquid crystal display (LCD), a plasma display device, or other television (TV) display device.

버텍스 프로세서 (14) 는 버텍스 정보를 관리하고 버텍스 변환들을 프로세싱할 수 있다. 일 양태에서, 버텍스 프로세서 (14) 는 디지털 신호 프로세서 (DSP) 를 포함할 수도 있다. 그래픽스 프로세서 (12) 는 전산화된 그래픽스를 렌더링, 조작 (manipulate), 및 디스플레이하기 위해 이용되는 전용 그래픽스 렌더링 디바이스일 수도 있다. 그래픽스 프로세서 (12) 는 다양한 복잡한 그래픽스-관련된 알고리즘들을 구현할 수도 있다. 예컨대, 복잡한 알고리즘들은 2 차원 또는 3 차원 전산화된 그래픽스의 표현들에 대응할 수도 있다. 그래픽스 프로세서 (12) 는, 포인트들, 라인들, 및 삼각형들, 또는 다른 폴리곤 면들을 형성하는 것과 같은, 다수의 소위 "프리미티브" 그래픽스 동작들을 구현하여, 디스플레이 디바이스 (6) 와 같은 디스플레이 상에 복잡한 3 차원 이미지들을 생성할 수도 있다.The vertex processor 14 can manage vertex information and process vertex transforms. In an aspect, the vertex processor 14 may include a digital signal processor (DSP). Graphics processor 12 may be a dedicated graphics rendering device used to render, manipulate, and display the computerized graphics. Graphics processor 12 may implement various complex graphics-related algorithms. For example, complex algorithms may correspond to representations of two- or three-dimensional computerized graphics. The graphics processor 12 implements a number of so-called "primitive" graphics operations, such as forming points, lines, and triangles, or other polygonal surfaces, You can also create three-dimensional images.

그래픽스 프로세서 (12) 는 저장 매체 (8) 에 저장된 명령들을 수행할 수도 있다. 저장 매체 (8) 는 (그래픽스 또는 비디오 애플리케이션과 같은) 애플리케이션에 대한 애플리케이션 명령들 (21) 뿐만 아니라 하나 이상의 그래픽스 드라이버들 (18) 을 저장할 수 있다. 애플리케이션 명령들 (21) 은 실행을 위해 저장 매체 (8) 로부터 그래픽스 프로세싱 시스템 (4) 으로 로딩될 수도 있다. 예컨대, 제어 프로세서 (10), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상이 명령들 (21) 을 실행할 수도 있다. 일 양태에서, 애플리케이션 명령들 (21) 은, 공중을 통해 저장 매체 (8) 로 동적으로 다운로딩되는 하나 이상의 다운로딩 가능한 모듈들을 포함할 수도 있다. 일 양태에서, 애플리케이션 명령들 (21) 은 애플리케이션 개발자에 의해 생성된 애플리케이션 프로그래밍 인터페이스 (API) 명령들로부터 생성되거나 또는 컴파일된 이진 명령들의 호출 스트림을 포함할 수도 있다.The graphics processor 12 may perform instructions stored in the storage medium 8. The storage medium 8 may store one or more graphics drivers 18 as well as application instructions 21 for an application (such as a graphics or video application). The application instructions 21 may be loaded from the storage medium 8 to the graphics processing system 4 for execution. For example, one or more of the control processor 10, the graphics processor 12, and the display processor 16 may execute instructions 21. In one aspect, the application instructions 21 may include one or more downloadable modules that are dynamically downloaded to the storage medium 8 via the air. In one aspect, the application instructions 21 may comprise a call stream of binary instructions generated or compiled from application programming interface (API) instructions generated by an application developer.

또한, 그래픽스 드라이버들 (18) 은 실행을 위해 저장 매체 (8) 로부터 그래픽스 프로세싱 시스템 (4) 으로 로딩될 수도 있다. 예컨대, 제어 프로세서 (10), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상이 그래픽스 드라이버들 (18) 로부터의 특정 명령들을 실행할 수도 있다. 일 예시적인 양태에서, 그래픽스 드라이버들 (18) 은 그래픽스 프로세서 (12) 에 의해 로딩 및 실행된다. 그래픽스 드라이버들 (18) 은 이하 더 상세히 설명될 것이다.The graphics drivers 18 may also be loaded from the storage medium 8 to the graphics processing system 4 for execution. For example, one or more of the control processor 10, the graphics processor 12, and the display processor 16 may execute specific instructions from the graphics drivers 18. In one exemplary aspect, the graphics drivers 18 are loaded and executed by the graphics processor 12. The graphics drivers 18 will be described in more detail below.

또한, 저장 매체 (8) 는 그래픽스 데이터 매핑 정보 (23) 를 포함한다. 그래픽스 데이터 매핑 정보 (23) 는 애플리케이션 명령들 (21) 중 하나 이상을 애플리케이션 명령들 (21) 의 실행 동안에 렌더링될 수도 있는 그래픽스 데이터로 매핑하기 위한 정보를 포함한다. 저장 매체 (8) 및/또는 버퍼들 (15) 에 저장될 수도 있는 그래픽스 데이터는 하나 이상의 프리미티브들 (예컨대, 폴리곤들) 을 포함할 수도 있다. 그래픽스 데이터 매핑 정보 (23) 는 개별적인 명령들로의 렌더링될 개별적인 프리미티브들의 매핑을 유지할 수도 있다. 프리미티브들이 렌더링된 이후에, 매핑 정보 (23) 는 개별적인 명령들로부터, 궁극적으로 그래픽스 디바이스 (6) 상에서 디스플레이된 하나 이상의 이미지들을 생성하기 위해 사용되었던 오리지널 그래픽스 데이터로의 매핑을 허용한다. 몇몇 경우들에서, 매핑 정보 (23) 는 디버깅 및/또는 성능 분석에 대해 유용할 수도 있다.In addition, the storage medium 8 includes graphics data mapping information 23. The graphics data mapping information 23 includes information for mapping one or more of the application instructions 21 to graphics data that may be rendered during execution of the application instructions 21. The graphics data, which may be stored in the storage medium 8 and / or the buffers 15, may include one or more primitives (e.g., polygons). The graphics data mapping information 23 may maintain a mapping of individual primitives to be rendered into separate instructions. After the primitives are rendered, the mapping information 23 allows mapping from individual instructions to original graphics data that was ultimately used to generate one or more images displayed on the graphics device 6. In some cases, the mapping information 23 may be useful for debugging and / or performance analysis.

또한, 도 1에서 도시된 바와 같이, 그래픽스 프로세싱 시스템 (4) 은 하나 이상의 버퍼들 (15) 을 포함한다. 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및/또는 디스플레이 프로세서 (16) 는 각각 버퍼들 (15) 로의 액세스를 갖고, 버퍼들 (15) 에 데이터를 저장하거나 또는 버퍼들 (15) 로부터 데이터를 검색할 수도 있다. 버퍼들 (15) 은 캐시 메모리를 포함할 수도 있고, 데이터 및 명령들 양자 모두를 저장하는 것이 가능할 수도 있다. 예컨대, 버퍼들 (15) 은 저장 매체 (8) 로부터 그래픽스 프로세싱 시스템 (4) 으로 로딩된, 그래픽스 드라이버들 (18) 로부터의 하나 이상의 명령들 또는 애플리케이션 명령들 (21) 중 하나 이상을 포함할 수도 있다. 또한, 버퍼들 (15) 및/또는 저장 매체 (8) 는 명령 실행 동안에 사용된 그래픽스 데이터를 포함할 수도 있다.1, the graphics processing system 4 also includes one or more buffers 15. In one embodiment, The control processor 10, the graphics processor 12, the vertex processor 14, and / or the display processor 16 each have access to the buffers 15 and store data in the buffers 15, (15). ≪ / RTI > The buffers 15 may comprise a cache memory and may be capable of storing both data and instructions. For example, the buffers 15 may include one or more of the one or more instructions or application instructions 21 from the graphics drivers 18, which are loaded into the graphics processing system 4 from the storage medium 8 have. The buffers 15 and / or the storage medium 8 may also contain graphics data used during instruction execution.

특정 경우들에서, 애플리케이션 명령들 (21) 은 3D 그래픽스 애플리케이션과 같은 그래픽스 애플리케이션에 대한 명령들을 포함할 수도 있다. 애플리케이션 명령들 (21) 은 하나 이상의 그래픽스 이미지들을 포함하는 그래픽스 장면의 컨텐츠를 설명하거나 또는 정의하는 명령들을 포함할 수도 있다. 애플리케이션 명령들 (21) 이 그래픽스 프로세싱 시스템 (4) 에 의해 로딩 및 실행되는 경우에, 그래픽스 프로세싱 시스템 (4) 은 일련의 상태 천이들을 경험할 수도 있다. 또한, 애플리케이션 명령들 (21) 의 실행 동안에, 그래픽스 드라이버들 (18) 내의 하나 이상의 명령들이 디스플레이 디바이스 (6) 상에서 그래픽스 이미지들을 디스플레이하거나 또는 렌더링하기 위해 실행될 수도 있다.In certain instances, application instructions 21 may include instructions for a graphics application, such as a 3D graphics application. Application instructions 21 may include instructions that describe or define the content of a graphics scene that includes one or more graphics images. In case the application instructions 21 are loaded and executed by the graphics processing system 4, the graphics processing system 4 may experience a series of state transitions. Also, during execution of the application instructions 21, one or more instructions in the graphics drivers 18 may be executed to display or render graphics images on the display device 6.

드로우 (draw) 호출과 같은 명령에 대한 상태들의 풀 세트는, 그래픽스 프로세싱 시스템 (4) 에 의해 이미지가 렌더링되는 프로세스를 설명할 수도 있다. 그러나, 애플리케이션 명령들 (21) 을 작성한 애플리케이션 개발자는 종종, 정의된 장면에서의 이미지들을 설명하거나 또는 렌더링하는 교체 방법들로, 디버깅 또는 시험하는 목적들을 위해 이들 상태들을 상호작용적으로 뷰잉하거나 또는 변형하기 위한 제한된 능력을 가질 수도 있다. 또한, 상이한 하드웨어 플랫폼들은 이들 상태들 및/또는 상태 천이들의 상이한 하드웨어 설계들 및 구현들을 가질 수도 있다.A full set of states for a command, such as a draw call, may describe the process by which the graphics are rendered by the graphics processing system 4. However, the application developer who created the application commands 21 may often interactively view these states for purposes of debugging or testing, or alternate ways of describing or rendering images in a defined scene, It may have limited ability to do so. In addition, different hardware platforms may have different hardware designs and implementations of these states and / or state transitions.

또한, 프로세서들 (10, 12, 14, 및 16) 중 하나 이상과 같은 비닝-기반 그래픽스 하드웨어는 종종, 디스플레이 디바이스 (6) 의 스크린 상에서 디스플레이되는 이미지들의 장면을 분할하기 위해, 렌더링에 대해 예정된 개별적인 프리미티브들이 사각형 비닝 파티션들 또는 빈들로 클러스터링되는 프로세스를 사용하여 구현될 수도 있다. 하드웨어는 디스플레이 디바이스 (6) 의 스크린 사이즈 또는 해상도 제약들에 기초하거나, 또는 렌더링 동작들과 연관된 저장 매체 (8) 의 메모리 제한들에 기초하여 그렇게 행할 수도 있다. 다수의 비닝 파티션들에 걸쳐 스팬할 수도 있는 프리미티브들은, 프리미티브 프래그먼트들이 렌더링되기 전에, 파티션들의 에지들을 따라 프로세서들 (10, 12, 14, 또는 16) 중 하나 이상에 의해 다수의 프래그먼트들로 분할될 수도 있다. 그 후, 각각의 파티션에서의 프리미티브 프래그먼트들은 개별적으로 렌더링될 수도 있다. 일반적으로, 비닝 파티션들은 하드웨어 아키텍쳐에 따라 수가 변화될 수도 있고, 다양한 사이즈들 및 형상들을 가질 수도 있다. 예컨대, 비닝 파티션들은 다수의 (예컨대, 4 개, 8 개) 사각형 파티션들을 포함할 수도 있다.In addition, binning-based graphics hardware, such as one or more of processors 10,12, 14, and 16, is often used to divide the scene of images displayed on the screen of the display device 6, Primitives may be implemented using a process that is clustered into quadrangular binning partitions or bins. The hardware may do so based on screen size or resolution constraints of the display device 6, or based on memory constraints of the storage medium 8 associated with rendering operations. Primitives that may span across multiple binning partitions are divided into multiple fragments by one or more of the processors 10, 12, 14, or 16 along the edges of the partitions before the primitive fragments are rendered It is possible. The primitive fragments in each partition may then be rendered separately. In general, the binning partitions may vary in number depending on the hardware architecture, and may have various sizes and shapes. For example, the binning partitions may include a plurality of (e.g., four, eight) rectangular partitions.

따라서, 예컨대, 2 개의 비닝 파티션들에 걸쳐 스팬할 수도 있는 개별적인 프리미티브가 2 개의 프래그먼트들로 분할될 수도 있고, 그 후, 이들 2 개의 프래그먼트들의 각각은 독립적으로 렌더링될 수도 있다. 그러나, 그 후, 이들 프래그먼트들의 각각에 의해 생성된 그래픽스 이미지들은, 디스플레이 디바이스 (6) 의 스크린 상에서 디스플레이되기 전에 이미지 데이터의 프레임 내에서 재결합될 필요가 있을 수도 있다. 따라서, 다수의 비닝 파티션들에 걸쳐 스팬하는 개별적인 프리미티브들을 분할하는 것은 가능한 프로세싱 오버헤드를 가질 수 있고, 전체 성능을 열화시킬 수 있다.Thus, for example, an individual primitive that may span across two binning partitions may be divided into two fragments, and then each of these two fragments may be rendered independently. However, thereafter, the graphics images produced by each of these fragments may need to be recombined within the frame of the image data before being displayed on the screen of the display device 6. [ Thus, partitioning individual primitives spanning across multiple binning partitions may have possible processing overhead and degrade overall performance.

일 양태에서, 애플리케이션 개발자는 도 1에서 도시된 애플리케이션 컴퓨팅 디바이스 (20) 를 사용하여, 장면에서의 이미지들을 설명하거나 또는 렌더링하는 교체 방법들로 디버깅하고 시험하는 프로세싱을 보조할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 장면을 디스플레이하고, 그래픽스 디바이스 (2) 에 의해 구현될 수도 있는 비닝 파티션들의 그래픽 표현을 오버레이하는 것이 가능할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 디바이스 (2) 에 커플링된다. 예컨대, 일 양태에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 유니버설 시리얼 버스 (USB) 접속을 통해 그래픽스 디바이스 (2) 에 커플링된다. 다른 양태들에서, 무선 또는 유선 접속들의 다른 형태들과 같은 접속들의 다른 타입들이 사용될 수도 있다.In one aspect, an application developer may use the application computing device 20 shown in FIG. 1 to assist in debugging and testing with alternative methods of describing or rendering images in a scene. The application computing device 20 may be capable of displaying a scene and overlaying a graphical representation of the binning partitions that may be implemented by the graphics device 2. [ The application computing device 20 is coupled to the graphics device 2. For example, in one aspect, the application computing device 20 is coupled to the graphics device 2 via a universal serial bus (USB) connection. In other aspects, other types of connections may be used, such as other forms of wireless or wired connections.

애플리케이션 컴퓨팅 디바이스 (20) 는 하나 이상의 프로세서들 (22), 디스플레이 디바이스 (24), 및 (메모리를 포함할 수도 있는) 저장 매체 (26) 를 포함한다. 프로세서들 (22) 은 일 양태에 따라 제어 프로세서, 그래픽스 프로세서, 버텍스 프로세서, 및 디스플레이 프로세서 중 하나 이상을 포함할 수도 있다. 저장 매체 (26) 는 예컨대, 동기식 동적 랜덤 액세스 메모리 (SDRAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 정적 랜덤 액세스 메모리 (SRAM), 또는 플래시 메모리와 같은, 명령들 및/또는 데이터를 저장할 수 있는 임의의 비소멸성 또는 휘발성 메모리를 포함할 수도 있다. 디스플레이 디바이스 (24) 는, LCD (liquid crystal display), 플라즈마 디스플레이 디바이스, 또는 다른 텔레비전 (TV) 디스플레이 디바이스와 같은, 디스플레이 목적들을 위한 이미지 데이터를 디스플레이할 수 있는 임의의 디바이스일 수도 있다.The application computing device 20 includes one or more processors 22, a display device 24, and a storage medium 26 (which may include a memory). Processors 22 may include one or more of a control processor, a graphics processor, a vertex processor, and a display processor in accordance with an aspect. The storage medium 26 may store instructions and instructions, such as, for example, synchronous dynamic random access memory (SDRAM), read only memory (ROM), nonvolatile random access memory (NVRAM), static random access memory / RTI > and / or any non-destructive or volatile memory capable of storing data. The display device 24 may be any device capable of displaying image data for display purposes, such as a liquid crystal display (LCD), a plasma display device, or other television (TV) display device.

애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 디바이스 (2) 로부터 전송된, 상태 및/또는 성능 정보 (32) 와 함께 그래픽스 명령들 (30) 을 캡쳐링 및 분석할 수 있다. 일 양태에서, 그래픽스 드라이버들 (18) 은 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 전송하도록 구성된다. 그래픽스 명령들 (30) 은 애플리케이션 명령들 (21) 중 하나 이상을 포함할 수도 있고, 상태/성능 정보 (32) 는 그래픽스 프로세싱 시스템 (4) 내에서의 그래픽스 명령들 (30) 의 실행 동안에 생성되거나 또는 캡쳐링될 수도 있다.The application computing device 20 may capture and analyze the graphics instructions 30 with the status and / or performance information 32 transmitted from the graphics device 2. In one aspect, the graphics drivers 18 are configured to transmit graphics instructions 30 and status / performance information 32 to the application computing device 20. The graphics commands 30 may include one or more of the application instructions 21 and the status / performance information 32 may be generated during execution of the graphics instructions 30 within the graphics processing system 4 Or may be captured.

상태/성능 정보 (32) 는 명령 실행 동안의 그래픽스 프로세싱 시스템 (4) 의 상태 및/또는 성능에 관한 정보를 포함하고, 이하 더 상세히 설명될 것이다. 상태/성능 정보 (32) 는 그래픽스 명령들 (30) 에 대해 사용될 수도 있는 그래픽스 데이터 (예컨대, 프리미티브 및/또는 래스터화된 그래픽스 데이터) 를 포함할 수도 있거나, 또는 그렇지 않은 경우에, 그래픽스 명령들 (30) 과 연관된다. 그래픽스 프로세싱 시스템 (4) 은 그래픽스 명령들 (30) 을 실행하여, 디스플레이 디바이스 (6) 상에서 이미지 또는 이미지들의 장면을 디스플레이할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는, 상태/성능 정보 (32) 와 함께 그래픽스 명령들 (30) 을 사용하여, 그래픽스 디바이스 (2) 의 디스플레이 디바이스 (6) 상에서 또한 나타내어지는 그래픽스 이미지 또는 장면을 재생성할 수 있다.The state / performance information 32 includes information regarding the state and / or performance of the graphics processing system 4 during instruction execution and will be described in greater detail below. State / performance information 32 may include graphics data (e.g., primitive and / or rasterized graphics data) that may be used for graphics instructions 30, 30). The graphics processing system 4 may execute the graphics instructions 30 to display a scene of an image or images on the display device 6. [ The application computing device 20 can use the graphics instructions 30 in conjunction with the status / performance information 32 to recreate a graphics image or scene that is also displayed on the display device 6 of the graphics device 2 have.

또한, 그래픽스 디바이스 (2) 는 매핑 및/또는 파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 전송할 수도 있다. 일 양태에서, 그래픽스 드라이버들 (18) 은 매핑/파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 전송하도록 구성된다. 매핑/파티셔닝 정보 (33) 는, 그래픽스 데이터를 그래픽스 명령들 (30) 내의 개별적인 명령들로 매핑하기 위한 정보를 포함하는 그래픽스 데이터 매핑 정보 (23) 의 하나 이상의 부분들을 포함할 수도 있다. 예컨대, 매핑/파티셔닝 정보 (33) 는 하나 이상의 프리미티브들 (예컨대, 폴리곤들) 을 그래픽스 명령들 (30) 내의 개별적인 명령들로 매핑하기 위한 정보를 포함할 수도 있다.In addition, the graphics device 2 may send the mapping and / or partitioning information 33 to the application computing device 20. In one aspect, the graphics drivers 18 are configured to transfer the mapping / partitioning information 33 to the application computing device 20. The mapping / partitioning information 33 may include one or more portions of the graphics data mapping information 23 that includes information for mapping the graphics data into separate instructions within the graphics instructions 30. For example, the mapping / partitioning information 33 may include information for mapping one or more primitives (e.g., polygons) to separate instructions within the graphics instructions 30.

또한, 매핑/파티셔닝 정보 (33) 는 그래픽스 디바이스 (2) 에 의해 생성되고 제공된 파티셔닝 정보를 포함할 수도 있다. 몇몇 경우들에서, 이러한 파티셔닝 정보는 제어 프로세서 (10) 와 같은 프로세서들 (10, 12, 14, 및 16) 중 하나 이상에 의해 생성되고 제공될 수도 있다. 파티셔닝 정보는, 그래픽스 데이터를 하나 이상의 그래픽스 이미지들로 렌더링하고 그러한 이미지들을 디스플레이 디바이스 (6) 상에서 디스플레이하기 위해 그래픽스 프로세싱 시스템 (4) 내에서 사용될 수도 있는 비닝 파티션들 또는 빈들의 수, 타입, 사이즈, 및/또는 형상을 식별하는 정보를 포함할 수도 있다. 이전에 설명된 바와 같이, 그래픽스 디바이스 (2) 는, 예컨대, 렌더링 동작들 동안에 버퍼들 (15) 및/또는 저장 매체 (8) 의 메모리 사이즈 제한들에 기초하여, 디스플레이 디바이스 (6) 의 스크린 공간 또는 사이즈를 파티션들로 파티셔닝할 수도 있다. 파티셔닝 정보는 생성되고 사용되는 파티션들에 관한 정보를 제공한다. 도 5 및 도 6은 그러한 파티션들의 예들을 도시한다.In addition, the mapping / partitioning information 33 may include partitioning information generated and provided by the graphics device 2. In some cases, such partitioning information may be generated and provided by one or more of processors 10, 12, 14, and 16, such as control processor 10. [ The partitioning information may include information such as the number, type, size, and size of binaries or bins that may be used in the graphics processing system 4 to render the graphics data into one or more graphics images and display such images on the display device 6, And / or information identifying the shape. As previously described, the graphics device 2 can be configured to display the screen size of the display device 6, for example, based on memory size constraints of the buffers 15 and / or the storage medium 8 during rendering operations, Or partition the size into partitions. The partitioning information provides information about the partitions that are created and used. Figures 5 and 6 illustrate examples of such partitions.

시뮬레이션 애플리케이션 (28) 은 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 를 수신할 시에 그래픽스 이미지 또는 장면을 재생성하고, 디스플레이 디바이스 (24) 상에 이미지 또는 이미지들의 장면을 디스플레이하기 위해, 애플리케이션 컴퓨팅 디바이스 (20) 의 하나 이상의 프로세서들 (22) 에 의해 실행될 수도 있다. 시뮬레이션 애플리케이션 (28) 은 다수의 애플리케이션 명령들을 포함하는 소프트웨어 모듈을 포함할 수도 있다. 시뮬레이션 애플리케이션 (28) 은 저장 매체 (26) 에 저장되고, 프로세서들 (22) 에 의해 로딩되고 실행될 수도 있다. 시뮬레이션 애플리케이션 (28) 은 저장 매체 (26) 로 미리-로딩될 수도 있고, 그래픽스 디바이스 (2) 와 동작하도록 커스터마이징될 수도 있다.The simulation application 28 may be used to regenerate a graphics image or scene upon receipt of graphics instructions 30 and status / performance information 32 and to display a scene of images or images on the display device 24, May be executed by one or more processors 22 of the application computing device 20. The simulation application 28 may include a software module containing a plurality of application instructions. The simulation application 28 may be stored on the storage medium 26 and loaded and executed by the processors 22. The simulation application 28 may be pre-loaded into the storage medium 26 and may be customized to operate with the graphics device 2.

일 양태에서, 시뮬레이션 애플리케이션 (28) 은 그래픽스 디바이스 (2) 의 하드웨어 동작을 시뮬레이트한다. 시뮬레이션 애플리케이션 (28) 의 상이한 버전들이 저장 매체 (26) 에 저장되고, 상이한 하드웨어 설계들을 갖는 상이한 그래픽스 디바이스들에 대해 프로세서들 (22) 에 의해 실행될 수도 있다. 몇몇 경우들에서, 소프트웨어 라이브러리들이 저장 매체 (26) 내에 또한 저장될 수도 있으며, 그 소프트웨어 라이브러리들은 시뮬레이션 애플리케이션 (28) 과 함께 사용된다. 일 양태에서, 시뮬레이션 애플리케이션 (28) 은 일반적인 애플리케이션일 수도 있고, 특정 하드웨어 또는 그래픽스 디바이스 시뮬레이션 기능이, 실행 동안에 시뮬레이션 애플리케이션 (28) 과 링크될 수도 있는 각각의 개별적인 라이브러리 내에 포함될 수도 있다.In one aspect, the simulation application 28 simulates the hardware operation of the graphics device 2. Different versions of the simulation application 28 may be stored on the storage medium 26 and executed by the processors 22 for different graphics devices having different hardware designs. In some cases, software libraries may also be stored in the storage medium 26, which software libraries are used in conjunction with the simulation application 28. In one aspect, the simulation application 28 may be a generic application, or a particular hardware or graphics device simulation function may be included in each individual library that may be linked with the simulation application 28 during execution.

일 양태에서, 상태/성능 정보 (32) 의 시각적인 표현이 디스플레이 디바이스 (24) 상에서 애플리케이션 개발자들에게 디스플레이될 수도 있다. 또한, 그래픽스 명령들 (30) 의 시각적인 표현이 디스플레이될 수도 있다. 다수의 경우들에서, 그래픽스 명령들 (30) 이 이진 명령들을 포함할 수도 있기 때문에, 애플리케이션 컴퓨팅 디바이스 (20) 는 명령 매핑 정보 (31) 를 사용하여, 디스플레이 디바이스 (24) 상에서 그래픽스 명령들 (30) 의 시각적인 표현을 생성할 수도 있다. 명령 매핑 정보 (31) 는 저장 매체 (26) 내에 저장되고, 그래픽스 명령들 (30) 의 시각적인 표현을 디스플레이하기 위해 프로세서들 (22) 로 로딩될 수도 있다.In one aspect, a visual representation of the state / performance information 32 may be displayed to the application developers on the display device 24. In addition, a visual representation of the graphics instructions 30 may be displayed. The application computing device 20 may use the command mapping information 31 to create graphics instructions 30 on the display device 24 because the graphics instructions 30 may include binary instructions. ) ≪ / RTI > The command mapping information 31 is stored in the storage medium 26 and may be loaded into the processors 22 to display a visual representation of the graphics instructions 30.

일 양태에서, 명령 매핑 정보 (31) 는, 그래픽스 명령들 (30) 을 그래픽스 명령들 (30) 을 생성하는 경우에 이전에 컴파일되었을 수도 있는 대응하는 API 명령들로 매핑하기 위한 매핑 정보를 예컨대 룩업 테이블 내에 포함할 수도 있다. 애플리케이션 개발자들은 API 명령들을 사용하는 프로그램들을 작성할 수도 있지만, 통상적으로, 이들 API 명령들은 그래픽스 디바이스 (2) 상에서의 실행을 위해 (애플리케이션 명령들 (21) 내에 포함된) 그래픽스 명령들 (30) 과 같은 이진 명령들로 컴파일된다. 그래픽스 명령들 (30) 내의 하나 이상의 명령들은 개별적인 API 명령으로 매핑될 수도 있다. 그 후, 매핑된 API 명령들은 디스플레이 디바이스 (24) 상에서 애플리케이션 개발자에게 디스플레이되어, 실제로 실행되고 있는 그래픽스 명령들 (30) 의 시각적인 표현을 제공할 수도 있다.In one aspect, the instruction mapping information 31 includes mapping information for mapping graphics instructions 30 to corresponding API instructions that may have been compiled previously in the case of generating graphics instructions 30, It can also be included in the table. Application developers may create programs that use API commands, but these API commands are typically used by graphics commands 30 (included in application commands 21) for execution on graphics device 2, It is compiled into binary instructions. One or more instructions in graphics instructions 30 may be mapped to individual API instructions. The mapped API instructions may then be displayed to the application developer on the display device 24 to provide a visual representation of the graphics instructions 30 being actually executed.

일 양태에서, 애플리케이션 개발자와 같은 사용자는, 그래픽스 명령들 (30) 중 하나 이상을 변화시켜서, 예컨대 성능에 대한 그러한 변화들의 효과들을 결정하기를 원할 수도 있다. 이 양태에서, 사용자는 그래픽스 명령들 (30) 의 시각적인 표현을 변화시킬 수도 있다. 그 후, 이하 더 상세히 설명될 바와 같이, 매핑 정보 (31) 는, 그래픽스 명령들 (30) 의 시각적인 표현 내에서의 이들 변화들을, 요청된 변형들 (34) 내에서 그래픽스 디바이스 (2) 에 제공될 수 있는 이진 명령들로 매핑하기 위해 사용될 수도 있다.In an aspect, a user, such as an application developer, may want to change one or more of the graphics instructions 30 to, for example, determine the effects of such changes on performance. In this aspect, the user may change the visual representation of the graphics instructions 30. [ The mapping information 31 then provides these changes in the visual representation of the graphics instructions 30 to the graphics device 2 within the requested transformations 34, May be used to map to binary instructions that may be provided.

상술된 바와 같이, 애플리케이션 컴퓨팅 디바이스 (20) 의 디스플레이 디바이스 (24) 상에서 디스플레이되는 그래픽스 이미지는 그래픽스 디바이스 (2) 상에서 디스플레이되는 이미지의 표현일 수도 있다. 시뮬레이션 애플리케이션 (28) 이 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 를 사용하여, 그래픽스 디바이스 (2) 상에서 제시된 것과 정확히 같은 이미지 또는 장면을 재생성할 수도 있기 때문에, 애플리케이션 컴퓨팅 디바이스 (20) 를 사용하는 애플리케이션 개발자들은 그래픽스 애플리케이션들 (30) 의 실행 동안의 가능한 성능 이슈들 또는 병목현상들을 신속하게 식별하고 변형들의 원형을 만드는 것 (prototype) 이 가능하여, 그래픽스 애플리케이션들 (30) 의 전체 성능을 개선할 수도 있다.As described above, the graphics image displayed on the display device 24 of the application computing device 20 may be a representation of the image displayed on the graphics device 2. [ Because the simulation application 28 may use the graphics instructions 30 and state / performance information 32 to regenerate exactly the same image or scene as presented on the graphics device 2, May be able to quickly identify possible performance issues or bottlenecks during execution of the graphics applications 30 and prototype the variations so that the overall performance of the graphics applications 30 May be improved.

예컨대, 애플리케이션 개발자는, 애플리케이션 컴퓨팅 디바이스 (20) 상에서의 시뮬레이션 애플리케이션 (28) 의 실행 및 디스플레이 디바이스 (24) 상에서의 재생성된 이미지의 디스플레이 동안에 그래픽스 명령들 (30) 및/또는 상태/성능 정보 (32) 에 대해 하나 이상의 요청된 변형들 (34) 을 행하는 것을 선택할 수도 있다. 임의의 그러한 요청된 변형들 (34) 은, 그래픽스 명령들 (30) 의 실행 또는 상태/성능 정보 (32) 의 분석 동안에, 관찰된 성능 이슈들 또는 병목현상들에 기초할 수도 있다. 그 후, 이들 요청된 변형들 (34) 은 애플리케이션 컴퓨팅 디바이스 (20) 로부터, 그래픽스 프로세싱 시스템 (4) 에 의해 이들이 프로세싱되는 그래픽스 디바이스 (2) 로 전송될 수도 있다. 일 양태에서, 그래픽스 드라이버들 (18) 중 하나 이상이 요청된 변형들 (34) 을 프로세싱하기 위해, 그래픽스 프로세싱 시스템 (4) 내에서 실행된다. 몇몇 경우들에서, 요청된 변형들 (34) 은 변형된 명령들을 포함할 수도 있다. 몇몇 경우들에서, 요청된 변형들은 변형된 상태 및/또는 성능 정보를 포함할 수도 있다.For example, the application developer may determine that the graphics commands 30 and / or status / performance information 32 (i. E., ≪ RTI ID = Gt; (34) < / RTI > with respect to each other. Any such requested variants 34 may be based on observed performance issues or bottlenecks during execution of the graphics instructions 30 or analysis of the state / performance information 32. These requested variants 34 may then be sent by the graphics processing system 4 from the application computing device 20 to the graphics device 2 to which they are to be processed. In an aspect, one or more of the graphics drivers 18 is executed within the graphics processing system 4 to process the requested transformations 34. [ In some cases, the requested variants 34 may include modified instructions. In some cases, the requested variants may include modified status and / or performance information.

요청된 변형들 (34) 의 프로세싱 시에, 업데이트된 명령들 및/또는 정보 (35) 가, 예컨대 하나 이상의 그래픽스 드라이버들 (18) 에 의해, 애플리케이션 컴퓨팅 디바이스 (20) 에 전송된다. 업데이트된 명령들/정보 (35) 는 그래픽스 디바이스 (2) 에 의해 프로세싱되었던 요청된 변형들 (34) 에 기초하여, 실행을 위한 업데이트된 그래픽스 명령들을 포함할 수도 있다. 또한, 업데이트된 명령들/정보 (35) 는 그래픽스 디바이스 (2) 에 의해 프로세싱되었던 요청된 변형들 (34) 에 기초하여, 업데이트된 상태 및/또는 성능 정보를 포함할 수도 있다.The updated instructions and / or information 35 are sent to the application computing device 20, e.g., by one or more graphics drivers 18, upon processing of the requested variants 34. [ The updated instructions / information 35 may include updated graphics instructions for execution, based on the requested transformations 34 that have been processed by the graphics device 2. [ In addition, the updated instructions / information 35 may include updated status and / or performance information based on the requested variants 34 that have been processed by the graphics device 2.

업데이트된 명령들/정보 (35) 는 시뮬레이션 애플리케이션 (28) 에 의해 프로세싱되어, 디스플레이 디바이스 (24) 상에서 재생성된 이미지 정보의 디스플레이를 업데이트하고, 또한, 업데이트된 명령들/정보 (35) 의 시각적인 표현을 애플리케이션 개발자에게 제공한다 (다시, 명령 매핑 정보 (31) 를 사용하는 것을 포함할 수 있다). 그 후, 애플리케이션 개발자는 디스플레이 디바이스 (24) 상에서의 업데이트된 이미지 정보, 뿐만 아니라 업데이트된 명령들/정보 (35) 의 시각적인 표현을 뷰잉하여, 성능 이슈들이 해소되거나 또는 완화되었는지를 결정할 수도 있다. 애플리케이션 개발자는 반복 프로세스를 사용하여, 그래픽스 명령들 (30) 또는 프로토타입 변형들을 디버깅함으로써, 전체 성능 그래픽스 애플리케이션 (30) 을 개선할 수도 있다.The updated instructions / information 35 are processed by the simulation application 28 to update the display of the image information regenerated on the display device 24 and also to update the visual representation of the updated instructions / (Again, it may include using the command mapping information 31). The application developer may then view the updated image information on the display device 24 as well as the visual representation of the updated instructions / information 35 to determine if performance issues have been resolved or mitigated. The application developer may use an iterative process to improve the overall performance graphics application 30 by debugging the graphics instructions 30 or prototype variants.

일 양태에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 매핑/파티셔닝 정보 (23) 를 사용하여, 디스플레이 디바이스 (24) 상에서 디스플레이되는 그래픽스 이미지들을 오버레이하는 파티션들의 시각적인 그래픽 표현을 디스플레이한다. 이들 파티션들은 디스플레이 디바이스 (24) 상에서 이들 이미지들을 포함하는 장면을 도식적으로 분할한다. 예컨대, 시뮬레이션 애플리케이션 (28) 은 파티셔닝 모듈 (27) 을 사용하여, 매핑/파티셔닝 정보 (33) 를 프로세싱함으로써, 디스플레이 디바이스 (24) 의 스크린 상에서의 이들 파티션들 (예컨대, 다수의 사각형 파티션들) 의 그래픽스 표현을 생성할 수도 있다.In one aspect, the application computing device 20 uses the mapping / partitioning information 23 to display a visual graphical representation of the partitions that overlay the graphics images displayed on the display device 24. These partitions graphically partition the scene containing these images on the display device 24. [ For example, the simulation application 28 may use the partitioning module 27 to process the mapping / partitioning information 33 to determine the location of these partitions (e.g., a plurality of rectangular partitions) on the screen of the display device 24 A graphics representation may also be generated.

파티셔닝 모듈 (27) 은 저장 매체 (26) 로부터 로딩되고, 프로세서들 (22) 에 의해 실행될 수도 있다. 실행되는 경우에, 파티셔닝 모듈 (27) 은 또한, 하나 이상의 그래픽스 이미지들에 대해, 상태/성능 정보 (32) 내에 포함될 수도 있는 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 예컨대, 이하 더 상세히 설명될 바와 같이, 파티셔닝 모듈 (27) 은, 디스플레이 디바이스 (24) 상에서의 디스플레이를 위한 그래픽스 이미지들을 생성하기 위해 사용된 하나 이상의 폴리곤들을 분석하고, 이들 폴리곤들 중 어떤 폴리곤들이 다수의 파티션들에 걸쳐 스팬할 수도 있는지를 결정할 수도 있다.The partitioning module 27 may be loaded from the storage medium 26 and executed by the processors 22. If executed, the partitioning module 27 may also analyze graphics data, which may be included in the state / performance information 32, for one or more graphics images so that certain portions of the graphics data are partitioned into a plurality of partitions Or < / RTI > For example, as will be described in greater detail below, the partitioning module 27 analyzes one or more polygons used to generate graphics images for display on the display device 24, and determines which polygons Lt; RTI ID = 0.0 > partitions. ≪ / RTI >

저장 매체 (26) 는 프로세서들 (22) 에 의해 또한 실행될 수도 있는 네비게이션 모듈 (29) 을 더 포함한다. 실행 동안에, 시뮬레이션 애플리케이션 (28) 은 네비게이션 모듈 (29) 을 사용하여 디스플레이 디바이스 상에서 네비게이션 제어기를 디스플레이할 수도 있다. 애플리케이션 개발자와 같은 사용자는 네비게이션 제어기와 상호작용하여, 디스플레이 디바이스 (24) 상에서 디스플레이되는 장면 내에서 그래픽스 이미지들의 변형된 투시뷰를 뷰잉할 수도 있다. 그 후, 파티셔닝 모듈 (27) 은 그래픽스 이미지들의 변형된 투시뷰를 오버레이하는 파티션들의 그래픽 표현을 디스플레이하여, 변형된 장면을 도식적으로 분할할 수도 있다. 또한, 그 후, 파티셔닝 모듈 (27) 은 변형된 투시뷰에서 그래픽스 이미지들을 생성하기 위해 사용된 하나 이상의 폴리곤들을 분석하여, 폴리곤들 중 어떤 폴리곤들이 다수의 파티션들에 걸쳐 스팬할 수도 있는지를 결정할 수도 있다.The storage medium 26 further includes a navigation module 29 that may also be executed by the processors 22. During execution, the simulation application 28 may use the navigation module 29 to display the navigation controller on the display device. A user, such as an application developer, may interact with the navigation controller to view a modified perspective view of the graphics images within the scene being displayed on the display device 24. The partitioning module 27 may then graphically display the graphic representation of the partitions overlaying the modified perspective view of the graphics images, thereby transforming the modified scene. The partitioning module 27 may then also analyze one or more polygons used to generate the graphics images in the modified perspective view to determine which of the polygons may span across the plurality of partitions have.

도 2는 일 양태에 따른, 도 1에서 도시된, 그래픽스 프로세싱 시스템 (4), 그래픽스 드라이버 (18), 및 애플리케이션 컴퓨팅 디바이스 (20) 의 특정 세부사항들을 예시하는 블록도이다. 도 2에서, 애플리케이션 컴퓨팅 디바이스 (20) 가 디바이스 (2) 의 그래픽스 프로세싱 시스템 (4) 에 커플링된다고 가정된다. 그러나, 이는 예시의 목적들을 위해 도시될 뿐이다. 다른 시나리오들에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 프로세싱 시스템들 및 디바이스들의 다수의 다른 형태들에 커플링될 수도 있다.FIG. 2 is a block diagram illustrating certain details of graphics processing system 4, graphics driver 18, and application computing device 20 shown in FIG. 1, according to an aspect. In FIG. 2, it is assumed that the application computing device 20 is coupled to the graphics processing system 4 of the device 2. However, this is only shown for illustrative purposes. In other scenarios, the application computing device 20 may be coupled to a number of other types of graphics processing systems and devices.

도 2에서 도시된 바와 같이, 그래픽스 프로세싱 시스템 (4) 은 4 개의 프로그래머블 프로세서들: 도 1에서 또한 도시된, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 를 포함한다. 제어 프로세서 (10) 는 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 또는 디스플레이 프로세서 (16) 중 임의의 것을 제어할 수도 있다. 다수의 경우들에서, 이들 프로세서들 (10, 12, 14, 및 16) 은 시스템 (4) 내의 그래픽스 프로세싱 파이프라인의 일부일 수도 있다.2, the graphics processing system 4 includes four programmable processors: a control processor 10, a vertex processor 14, a graphics processor 12, and a display processor (not shown) 16). The control processor 10 may control any of the vertex processor 14, the graphics processor 12, or the display processor 16. In many cases, these processors 10, 12, 14, and 16 may be part of the graphics processing pipeline in system 4. [

제어 프로세서 (10) 는 파이프라인을 통해 데이터 또는 명령 실행의 플로우의 하나 이상의 양태들을 제어할 수도 있고, 또한, 그래픽스 이미지에 대한 지오메트리 정보를 버텍스 프로세서 (14) 에 제공할 수도 있다. 버텍스 프로세서 (14) 는, 프리미티브 지오메트리 형태로 다수의 버텍스들에 따라 설명되거나 또는 정의될 수도 있는, 그래픽스 이미지의 버텍스 변환 또는 지오메트리 프로세싱을 관리할 수도 있다. 버텍스 프로세서 (14) 는 그 출력을, 그래픽스 이미지에 대해 렌더링 또는 래스터화 동작들을 수행할 수도 있는 그래픽스 프로세서 (12) 에 제공할 수도 있다. 그래픽스 프로세서 (12) 는 그 출력을, 디스플레이를 위해 픽셀 형태로 그래픽스 이미지를 준비하는 디스플레이 프로세서 (16) 에 제공할 수도 있다. 또한, 그래픽스 프로세서 (12) 는 쉐이딩 또는 스케일링과 같은, 픽셀 데이터에 대한 다양한 동작들을 수행할 수도 있다.The control processor 10 may control one or more aspects of the flow of data or instruction execution via the pipeline and may also provide geometry information for the graphics image to the vertex processor 14. [ Vertex processor 14 may manage vertex transformation or geometry processing of a graphics image, which may be described or defined in terms of primitive geometry in accordance with multiple vertices. The vertex processor 14 may provide its output to the graphics processor 12, which may perform rendering or rasterizing operations on the graphics image. The graphics processor 12 may provide its output to the display processor 16, which prepares the graphics image in pixel form for display. In addition, the graphics processor 12 may perform various operations on the pixel data, such as shading or scaling.

종종, 그래픽스 이미지 데이터는, 애플리케이션 명령들 (21) (도 1) 의 일부일 수도 있는 그래픽스 명령들 (30) 의 실행 동안에 이 프로세싱 파이프라인에서 프로세싱될 수도 있다. 결과로서, 그래픽스 명령들 (30) 은, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 의해 실행될 수도 있다. 통상적으로, 애플리케이션 개발자들은, 그래픽스 프로세싱 시스템 (4) 내의 어떤 특정한 프로세서들이 그래픽스 명령들 (30) 중 어떤 그래픽스 명령들을 실행할지에 대한 많은 지식 또는 제어를 갖지 않을 수도 있다.Often, graphics image data may be processed in this processing pipeline during execution of graphics instructions 30, which may be part of application instructions 21 (Figure 1). As a result, the graphics instructions 30 may be executed by one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16. Typically, application developers may not have much knowledge or control over which particular ones of the graphics instructions 30 within the graphics processing system 4 will execute graphics instructions.

몇몇 경우들에서, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상은, 그래픽스 명령들 (30) 의 실행 동안에, 성능 이슈들을 갖거나 또는 프로세싱 파이프라인 내에서 가능한 병목현상들로서 서빙할 수도 있다. 이들 경우들에서, 그래픽스 프로세싱 시스템 (4) 내의 전체 성능이 악화될 수도 있고, 애플리케이션 개발자는 그래픽스 명령들 (30) 을 변화시켜서 성능을 개선하기를 원할 수도 있다. 그러나, 개발자가 프로세서들 (10, 12, 14, 또는 16) 중 어떤 프로세서들이 성능 이슈들을 갖는 프로세서들일 수도 있는지를 인지할 필요는 없을 수도 있다. 예컨대, 이들 성능 이슈들은 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 대한 프로세서 사용 또는 이용에 관련된 이슈들을 포함할 수도 있다.In some cases, one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16 may have performance issues during execution of the graphics instructions 30, Or serve as possible bottlenecks in the processing pipeline. In these cases, overall performance in the graphics processing system 4 may be degraded, and the application developer may wish to change the graphics instructions 30 to improve performance. However, it may not be necessary for the developer to be aware of which of the processors 10, 12, 14, or 16 may be processors with performance issues. For example, these performance issues may include issues related to processor use or use for one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16.

특히, 렌더링 전에 프리미티브 그래픽스 데이터가 다수의 비닝 파티션들에 걸쳐 분할되는 비닝 기반 동작들은 종종, 특정 성능 이슈들을 생성할 수도 있다. 예컨대, (도 5a의 예에서 도시된 삼각형 (146) 과 같은) 폴리곤이 2 개의 상이한 파티션들 (예컨대, 도 5a에서 도시된 파티션들 (136 및 138)) 에 걸쳐 스팬하는 경우에, 폴리곤은 각각의 파티션에 대해 하나씩 2 개의 구성 프래그먼트들로 분할될 수도 있고, 그 후, 이들 2 개의 구성 프래그먼트들 (예컨대, 도 5b에서 도시된 프래그먼트들 (146A 및 146B)) 은 픽셀 데이터를 포함하는 개별적인 그래픽스 이미지들로 독립적으로 렌더링될 수도 있다. 그 후, 이들 2 개의 개별적인 그래픽스 이미지들은, 삼각형 (146) 의 시각적인 표현을 생성하기 위해 디스플레이하기 전에 결합될 필요가 있을 수도 있다. 2 개의 관련된 그래픽스 이미지들에 대한 결합 동작과 함께, 삼각형 (146) 의 2 개의 프래그먼트들에 대한 독립적인 렌더링 동작들은 성능 오버헤드를 발생시킬 수 있다.In particular, binning-based operations in which primitive graphics data is partitioned across multiple binning partitions before rendering may often generate certain performance issues. For example, if a polygon spans across two different partitions (e.g., partitions 136 and 138 shown in FIG. 5A) (such as triangle 146 shown in the example of FIG. 5A) (E.g., fragments 146A and 146B shown in FIG. 5B) may be partitioned into two configuration fragments, one for each partition of the image data, and then the two configuration fragments Lt; / RTI > may be rendered independently. These two separate graphics images may then need to be combined before displaying to produce a visual representation of the triangle 146. Independent rendering operations for the two fragments of the triangle 146, along with the joining operation for two related graphics images, can result in performance overhead.

성능 병목현상들 및 가능한 솔루션들을 식별하는 문제를 보조하기 위해, 도 2에서 도시된 바와 같이, 그래픽스 디바이스 (2) 의 그래픽스 드라이버 (18A) 는 그래픽스 프로세싱 시스템 (4) 으로부터 그래픽스 명령들 (30) 을 캡쳐링 또는 수집할 수도 있고, 이들을 애플리케이션 컴퓨팅 디바이스 (20) 로 라우팅할 수도 있다. 그래픽스 드라이버 (18A) 는 도 1에서 도시된 그래픽스 드라이버들 (18) 의 일부이다. 그래픽스 드라이버 (18A) 는 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 의해 로딩되고 실행될 수도 있다. 또한, 그래픽스 드라이버 (18A) 는 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상으로부터 상태 및/또는 성능 정보 (32) 를 수집하고, 그 정보 (32) 를 애플리케이션 컴퓨팅 디바이스 (20) 로 마찬가지로 라우팅할 수도 있다. 일 양태에서, 그래픽스 명령들 (30) 이 OpenGL ES API 명령들로부터 생성되거나 또는 컴파일되었을 수도 있는 이진 명령들을 포함하는 경우에, 그래픽스 드라이버 (18A) 는 OpenGL ES 드라이버를 포함할 수도 있다.To aid in the problem of identifying performance bottlenecks and possible solutions, the graphics driver 18A of the graphics device 2 receives the graphics instructions 30 from the graphics processing system 4, Capture, or gather and route them to the application computing device 20. The graphics driver 18A is a part of the graphics drivers 18 shown in Fig. The graphics driver 18A may be loaded and executed by one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16. The graphics driver 18A may also collect status and / or performance information 32 from one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16, Information 32 may be routed to the application computing device 20 as well. In one aspect, the graphics driver 18A may include an OpenGL ES driver if the graphics instructions 30 include binary instructions that may have been generated or compiled from OpenGL ES API instructions.

상태 데이터의 다양한 형태들이 상태/성능 정보 (32) 내에 포함될 수도 있다. 예컨대, 상태 데이터는, 그래픽스 명령들 (30) 의 실행 동안에 사용되거나, 또는 그렇지 않은 경우에, 그래픽스 명령들 (30) 과 연관된 그래픽스 데이터를 포함할 수도 있다. 상태 데이터는 위치, 컬러, 좌표들, 사이즈, 또는 무게 데이터와 같은 버텍스 어레이에 관련될 수도 있다. 상태 데이터는 텍스쳐 상태 데이터, 포인트 상태 데이터, 라인 상태 데이터, 폴리곤 상태 데이터, 컬링 (culling) 상태 데이터, 알파 테스트 상태 데이터, 블렌딩 (blending) 상태 데이터, 깊이 상태 데이터, 스텐실 (stencil) 상태 데이터, 또는 컬러 상태 데이터를 더 포함할 수도 있다. 이전에 설명된 바와 같이, 상태 데이터는 상태 정보 및 실제 데이터 양자 모두를 포함할 수도 있다. 몇몇 경우들에서, 상태 데이터는 하나 이상의 OpenGL 토큰들과 연관된 데이터를 포함할 수도 있다.Various types of status data may be included in the status / performance information 32. For example, the state data may be used during execution of the graphics instructions 30, or may include graphics data associated with the graphics instructions 30, if not. The state data may be related to a vertex array such as position, color, coordinates, size, or weight data. The state data may include texture state data, point state data, line state data, polygon state data, culling state data, alpha test state data, blending state data, depth state data, stencil state data, And may further include color state data. As previously described, state data may include both state information and actual data. In some cases, the state data may include data associated with one or more OpenGL tokens.

또한, 성능 데이터의 다양한 형태들이 상태/성능 정보 (32) 내에 포함될 수도 있다. 일반적으로, 성능 데이터는 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상으로부터의 메트릭들 또는 하드웨어 카운터 데이터를 포함할 수도 있다. 성능 데이터는 프레임 레이트 또는 싸이클 데이터를 포함할 수도 있다. 싸이클 데이터는 프로파일링, 커맨드 에러이들, 버텍스 및 인덱스 데이터, 또는 다른 동작들에 대해 사용된 싸이클들에 대한 데이터를 포함할 수도 있다. 다양한 양태들에서, 상태 및 성능 데이터의 다양한 형태들이, 그래픽스 드라이버 (18A) 에 의해 그래픽스 프로세싱 시스템 (4) 으로부터 수집된 상태/성능 정보 (32) 내에 포함될 수도 있다.In addition, various types of performance data may be included in the state / performance information 32. In general, performance data may include metrics or hardware counter data from one or more of control processor 10, vertex processor 14, graphics processor 12, and display processor 16. The performance data may include a frame rate or cycle data. The cycle data may include data on profiling, command errors, vertex and index data, or cycles used for other operations. In various aspects, various forms of status and performance data may be included in the status / performance information 32 collected from the graphics processing system 4 by the graphics driver 18A.

이전에 설명된 바와 같이, 애플리케이션 컴퓨팅 디바이스 (20) 는 수신된 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 에 따라, 그래픽스 이미지의 표현을 디스플레이할 수도 있다. 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 상태/성능 정보 (32) 의 시각적인 표현을 디스플레이할 수도 있다. 상태/성능 정보 (32) 의 재생성된 그래픽스 이미지 및/또는 시각적인 표현을 뷰잉하고 상호작용함으로써, 애플리케이션 개발자는 그래픽스 명령들 (30) 의 실행 동안의 그래픽스 디바이스 (2) 의 그래픽스 프로세싱 시스템 (4) 내에서의 성능 이슈들을 신속하게 식별하고 해소하는 것이 가능할 수도 있다. 예컨대, 애플리케이션 개발자는 프로세서들 (10, 12, 14, 및/또는 16) 중 어떤 특정 프로세서들이 성능 이슈들을 가질 수도 있는지를 식별하는 것이 가능할 수도 있다.As previously described, the application computing device 20 may display a representation of the graphics image, in accordance with the received graphics instructions 30 and the status / performance information 32. In addition, the application computing device 20 may display a visual representation of the status / performance information 32. By viewing and interacting with the regenerated graphics images and / or visual representations of the state / performance information 32, the application developer can view the graphics processing system 4 of the graphics device 2 during execution of the graphics instructions 30, It may be possible to quickly identify and resolve performance issues within the system. For example, an application developer may be able to identify which of the processors 10, 12, 14, and / or 16 may have performance issues.

또한, 그래픽스 드라이버 (18A) 는 매핑 및/또는 파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공한다. 도 1을 참조하여 이전에 설명된 바와 같이, 파티셔닝 모듈 (27) 은 수신된 매핑/파티셔닝 정보 (33) 를 프로세싱하여, 장면을 도식적으로 분할하기 위해, 장면에서의 그래픽스 이미지를 오버레이하는, 디스플레이 디바이스 (24) 상에서의 파티션들의 그래픽 표현을 디스플레이할 수도 있다. 또한, 파티셔닝 모듈 (27) 은 매핑/파티셔닝 정보 (33) 를 사용하여, 상태/성능 정보 (32) 내에 포함될 수도 있는 그래픽스 데이터를 분석함으로써, 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 매핑/파티셔닝 정보 (33) 는, 하나 이상의 그래픽스 이미지들을 생성하기 위해 사용될 수도 있는 그래픽스 데이터를 그래픽스 명령들 (30) 내의 식별된 명령들로 매핑하는 매핑 정보를 포함할 수도 있다.The graphics driver 18A also provides mapping and / or partitioning information 33 to the application computing device 20. As described previously with reference to Figure 1, the partitioning module 27 processes the received mapping / partitioning information 33 to display the graphics image in a scene, Lt; RTI ID = 0.0 > 24 < / RTI > Partitioning module 27 also uses mapping / partitioning information 33 to analyze graphics data that may be included in state / performance information 32 so that certain parts of the data are associated with multiple partitions of the partitions . The mapping / partitioning information 33 may include mapping information that maps graphics data, which may be used to generate one or more graphics images, to identified instructions within the graphics instructions 30. [

임의의 식별된 성능 이슈들에 대한 대책 또는 해결책을 식별하기 위한 시도에서, 개발자는 애플리케이션 컴퓨팅 디바이스 (20) 상에서 하나 이상의 요청된 변형들 (34) 을 개시할 수도 있다. 예컨대, 개발자는 상태/성능 정보 (32) 의 표현 또는 재생성된 이미지와 상호작용하여, 요청된 변형들 (34) 을 생성할 수도 있다. 몇몇 경우들에서, 개발자는, 이하 더 상세히 설명되는 바와 같이, 상태/성능 정보 (32) 를 직접 변화시켜서, 요청된 변형들 (34) 을 생성할 수도 있다. 특정 경우들에서, 요청된 변형들 (34) 은, 그래픽스 디바이스 (2) 의 그래픽스 프로세싱 시스템 (4) 에서의 그래픽스 명령들 (30) 중 하나 이상의 실행을 디스에이블하기 위한 하나 이상의 요청들, 또는 그래픽스 명령들 (30) 중 하나 이상을 변형하기 위한 요청들을 포함할 수도 있다.In an attempt to identify a countermeasure or solution to any identified performance issues, the developer may initiate one or more of the requested variations 34 on the application computing device 20. For example, the developer may interact with the representation of the state / performance information 32 or the regenerated image to generate the requested transformations 34. [ In some cases, the developer may directly change the state / performance information 32, as described in more detail below, to generate the requested transformations 34. [ In certain cases, the requested variants 34 may be implemented as one or more requests to disable the execution of one or more of the graphics instructions 30 in the graphics processing system 4 of the graphics device 2, May include requests to modify one or more of the instructions (30).

몇몇 경우들에서, 사용자는 디스플레이 디바이스 (24) 상에서 디스플레이되는 네비게이션 제어기와 상호작용하여, 그래픽스 장면의 변형된 투시뷰가 디스플레이되는 것을 요청할 수도 있다. 네비게이션 모듈 (29) 은 이 네비게이션 제어기의 디스플레이 및 네비게이션 제어기와의 상호작용을 관리할 수도 있다. 사용자 인터페이스를 통해 사용자에 의해 입력되는 임의의 요청들은 요청된 변형들 (34) 에 포함될 수도 있다. 예컨대, 이들 요청들은, 장면내에서 하나 이상의 그래픽스 이미지들을 회전시키기 위한 요청들, 줌인하기 위한 요청들, 줌아웃하기 위한 요청들, 또는 장면 내에서 이미지들의 투시뷰를 변화시키기 위한 다른 유사한 요청들을 포함할 수도 있다.In some cases, the user may interact with the navigation controller displayed on the display device 24 to request that a modified perspective view of the graphics scene be displayed. The navigation module 29 may manage the display of this navigation controller and its interaction with the navigation controller. Any requests entered by the user via the user interface may be included in the requested transformations 34. [ For example, these requests may include requests to rotate one or more graphics images in the scene, requests to zoom in, requests to zoom out, or other similar requests to change the perspective view of images in the scene It is possible.

요청된 변형들 (34) 은 애플리케이션 컴퓨팅 디바이스 (20) 로부터 그래픽스 드라이버 (18A) 로 전송되고, 그래픽스 드라이버 (18A) 는 동작 동안에 그래픽스 디바이스 (2) 에 대한 요청들을 핸들링한다. 다수의 경우들에서, 요청된 변형들 (34) 은, 그래픽스 명령들 (30) 의 실행 동안에 그래픽스 프로세싱 시스템 (4) 내에서의 프로세서들 (10, 12, 14, 또는 16) 중 하나 이상 내의, 데이터를 포함할 수도 있는 상태 정보를 변형시키기 위한 요청들을 포함할 수도 있다. 그 후, 그래픽스 드라이버 (18A) 는 요청된 변형들 (34) 내에 포함된 그래픽스 프로세싱 시스템 (4) 내에서의 변화들을 구현할 수도 있다. 이들 변화들은 그래픽스 명령들 (30) 의 실행에 대해, 프로세서들 (10, 12, 14, 및/또는 16) 사이의 실행의 플로우를 변경할 수도 있다. 특정 경우들에서, 그래픽스 명령들 (30) 중 하나 이상은 요청된 변형들 (34) 에 따라 그래픽스 프로세싱 시스템 (4) 에서의 실행 동안에 디스에이블될 수도 있다.The requested variants 34 are sent from the application computing device 20 to the graphics driver 18A and the graphics driver 18A handles requests for the graphics device 2 during operation. The requested variants 34 may be implemented within one or more of the processors 10, 12, 14, or 16 within the graphics processing system 4 during execution of the graphics instructions 30. For example, And may include requests to transform state information that may include data. The graphics driver 18A may then implement changes within the graphics processing system 4 included within the requested transformations 34. [ These changes may change the flow of execution between processors 10, 12, 14, and / or 16 for execution of graphics instructions 30. [ In certain instances, one or more of the graphics instructions 30 may be disabled during execution in the graphics processing system 4 in accordance with the requested transformations 34. [

그래픽스 드라이버 (18A) 는, 요청된 변형들 (34) 의 프로세싱에 응답하여, 업데이트된 명령들 및/또는 정보 (35) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 전송할 수 있다. 업데이트된 명령들/정보 (35) 는, 성능 정보를 포함하는, 그래픽스 드라이버 (18A) 에 의해 그래픽스 프로세싱 시스템 (4) 으로부터 수집된 업데이트된 상태 정보를 포함할 수도 있다. 업데이트된 명령들/정보 (35) 는 업데이트된 그래픽스 명령들 및/또는 그래픽스 데이터를 포함할 수도 있다.The graphics driver 18A may send the updated instructions and / or information 35 to the application computing device 20 in response to processing of the requested variants 34. [ The updated instructions / information 35 may include updated status information collected from the graphics processing system 4 by the graphics driver 18A, including performance information. The updated instructions / information 35 may include updated graphics instructions and / or graphics data.

애플리케이션 컴퓨팅 디바이스 (20) 는 업데이트된 명령들/정보 (35) 를 사용하여, 그래픽스 이미지의 업데이트된 표현, 뿐만 아니라 업데이트된 명령들/정보 (35) 의 시각적인 표현을 디스플레이할 수도 있다. 그 후, 애플리케이션 개발자는 이전에 식별된 성능 이슈들이 해소되었는지 또는 그렇지 않으면 대처되었는지를 평가하는 것이 가능할 수도 있다. 예컨대, 애플리케이션 개발자는 업데이트된 이미지, 뿐만 아니라 업데이트된 명령들/정보 (35) 의 시각적인 표현을 분석하는 것이 가능하여, 특정 텍스쳐들, 폴리곤들, 또는 다른 특징들이 최적화되었는지, 또는 다른 성능 파라미터들이 개선되었는지를 결정할 수도 있다.The application computing device 20 may use the updated instructions / information 35 to display an updated representation of the graphics image, as well as a visual representation of the updated instructions / information 35. The application developer may then be able to assess whether previously identified performance issues have been resolved or otherwise addressed. For example, the application developer can analyze the visual representation of the updated image as well as the updated instructions / information 35 to determine if certain textures, polygons, or other features have been optimized, or other performance parameters It may be determined whether it has improved.

또한, 업데이트된 명령들/정보 (35) 는, 명령들/정보 (35) 내에 또한 포함되는 명령들로의 그래픽스 데이터의 업데이트된 매핑과 같은 업데이트된 매핑 및/또는 파티셔닝 정보를 포함할 수도 있다. 장면의 업데이트된 투시뷰가 업데이트된 명령들/정보 (35) 의 결과로서 디스플레이 디바이스 (24) 상에서 디스플레이되는 경우에, 파티셔닝 모듈 (27) 은 변형된 투시뷰를 오버레이하고 변형된 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이할 수도 있다. 또한, 파티셔닝 모듈 (27) 은 (업데이트된 명령들/정보 (35) 내에 또한 포함될 수도 있는) 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 파티션들은 그래픽스 데이터에 대해 수행된 렌더링 동작들에 기초하여 결정될 수도 있다.The updated instructions / information 35 may also include updated mapping and / or partitioning information, such as updated mappings of graphics data to instructions also included in the instructions / When the updated perspective view of the scene is displayed on the display device 24 as a result of updated instructions / information 35, the partitioning module 27 overlays the modified perspective view and graphically splits the modified scene Lt; RTI ID = 0.0 > partitioned < / RTI > In addition, the partitioning module 27 may analyze the graphics data for the modified perspective view (which may also be included in the updated instructions / information 35) to determine which portions of the graphics data correspond to multiple partitions Or < / RTI > The partitions may be determined based on rendering operations performed on the graphics data.

그러한 방식으로, 애플리케이션 개발자는, 그래픽스 디바이스 (2) 상에서의 그래픽스 프로세싱 시스템 (4) 의 동작을 시뮬레이트하는 애플리케이션 컴퓨팅 디바이스 (20) 상의 환경 내에서 그래픽스 명령들 (30) 의 실행을 신속하고 효과적으로 디버깅 또는 분석하는 것이 가능할 수도 있다. 개발자는 애플리케이션 컴퓨팅 디바이스 (20) 상에서 디스플레이된 이미지 및 상태/성능 정보와 반복적으로 상호작용하여, 장면 또는 다수의 이미지 프레임들에서 다수의 그래픽스 이미지들을 분석함으로써, 그래픽스 명령들 (30) 의 실행 성능을 최대화할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 상에서의 그러한 상호작용 및 디스플레이된 정보의 예들은 이하 더 상세히 제시될 것이다.In such a manner, the application developer can quickly and effectively debug or otherwise execute the execution of the graphics instructions 30 within the environment on the application computing device 20 that simulates the operation of the graphics processing system 4 on the graphics device 2 It may be possible to analyze it. The developer repeatedly interacts with the displayed image and state / performance information on the application computing device 20 to analyze the performance of graphics instructions 30 by analyzing multiple graphics images in a scene or multiple image frames It can also be maximized. Examples of such interaction and displayed information on the application computing device 20 will be presented in more detail below.

도 3은 일 양태에 따른, 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및 디스플레이 프로세서 (16) 에 의해 수행될 수도 있는 동작들의 추가적인 세부사항들을 예시하는 플로우도이다. 또한, 도 3은 프레임 버퍼 저장부 (100) 및 디스플레이 (102) 에 대한 동작들을 도시한다. 일 양태에서, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및/또는 디스플레이 프로세서 (16) 는 그래픽스 명령들 (30) 중 하나 이상의 실행의 결과로서 다양한 동작들을 수행한다.3 is a flow diagram illustrating additional details of operations that may be performed by control processor 10, graphics processor 12, vertex processor 14, and display processor 16, in accordance with an aspect. 3 also shows operations for the frame buffer storage unit 100 and the display 102. As shown in FIG. In one aspect, the control processor 10, the vertex processor 14, the graphics processor 12, and / or the display processor 16 perform various operations as a result of the execution of one or more of the graphics instructions 30.

이전에 설명된 바와 같이, 제어 프로세서 (10) 는 그래픽스 프로세싱 파이프라인을 통해 데이터 또는 명령 실행의 플로우의 하나 이상의 양태들을 제어할 수도 있고, 또한, 지오메트리 정보를 버텍스 프로세서 (14) 에 제공할 수도 있다. 도 3에서 도시된 바와 같이, 제어 프로세서 (10) 는 90 에서 지오메트리 저장을 수행할 수도 있다. 몇몇 경우들에서, 하나 이상의 프리미티브들에 대한 지오메트리 정보는 제어 프로세서 (10) 에 의해 버퍼들 (15) (도 1) 에 저장될 수도 있다. 몇몇 경우들에서, 지오메트리 정보는 저장 매체 (8) 에 저장될 수도 있다.As previously described, the control processor 10 may control one or more aspects of the flow of data or instruction execution via the graphics processing pipeline, and may also provide geometry information to the vertex processor 14 . As shown in FIG. 3, the control processor 10 may perform geometry storage at 90. In some cases, the geometry information for one or more primitives may be stored in the buffers 15 (FIG. 1) by the control processor 10. In some cases, the geometry information may be stored in the storage medium 8.

그 후, 버텍스 프로세서 (14) 는, 92에서의 프로세싱을 위해, 제어 프로세서에 의해 제공되고/되거나 버퍼들 (15) 에 저장된 소정의 프리미티브에 대한 지오메트리 정보를 획득할 수도 있다. 특정 경우들에서, 버텍스 프로세서 (14) 는 지오메트리 정보의 버텍스 변환을 관리할 수도 있다. 특정 경우들에서, 버텍스 프로세서 (14) 는 지오메트리 정보에 대해 조명 동작들을 수행할 수도 있다.The vertex processor 14 may then obtain geometry information for certain primitives provided by the control processor and / or stored in the buffers 15, for processing at 92. In certain cases, the vertex processor 14 may manage the vertex transformation of the geometry information. In certain instances, the vertex processor 14 may perform lighting operations on geometry information.

버텍스 프로세서 (14) 는 그 출력을, 94 에서 데이터에 대해 렌더링 또는 래스터화 동작들을 수행할 수도 있는 그래픽스 프로세서 (12) 에 제공할 수도 있다. 그래픽스 프로세서 (12) 는 그 출력을, 디스플레이를 위해 픽셀 형태로 하나 이상의 그래픽스 이미지들을 준비하는 디스플레이 프로세서 (16) 에 제공할 수도 있다. 몇몇 경우들에서, 그래픽스 프로세서 (12) 는, 결정된 비닝 파티션들에 기초하여, 하나 이상의 폴리곤들과 같은 지오메트리에 대한 그래픽스 데이터를 분리할 수도 있다. 이전에 설명된 바와 같이, 그래픽스 프로세서 (12) 와 같은, 그래픽스 디바이스 (2) 내의 프로세서들 중 하나 이상은, 메모리 요구조건들 또는 제한들과 같은 특정 요인들에 기초하여, 디스플레이 (102) 의 상이한 스크린 영역들과 연관된 다수의 비닝 파티션들을 생성할 수도 있다. 특정 지오메트리 (예컨대, 삼각형) 가 다수의 파티션들에 걸쳐 스팬하는 경우에, 그래픽스 프로세서는 파티션 경계들을 따라 지오메트리를 프래그먼트들로 분리할 수도 있고, 그 프래그먼트들을 독립적으로 렌더링할 수도 있다. 몇몇 경우들에서, 그래픽스 프로세서 (12) 는, 결정된 파티션들의 수, 타입, 사이즈, 형상 등에 기초하여, 매핑/파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수도 있다.The vertex processor 14 may provide its output to the graphics processor 12, which may perform rendering or rasterizing operations on the data at 94. The graphics processor 12 may provide its output to the display processor 16, which prepares one or more graphics images in pixel form for display. In some cases, the graphics processor 12 may separate graphics data for geometry, such as one or more polygons, based on the determined binning partitions. One or more of the processors in the graphics device 2, such as the graphics processor 12, may be configured to display different (or different) And may create multiple binning partitions associated with screen areas. In the case where a particular geometry (e.g., a triangle) spans across multiple partitions, the graphics processor may separate the geometry into fragments along the partition boundaries, and render the fragments independently. In some cases, the graphics processor 12 may provide mapping / partitioning information 33 to the application computing device 20 based on the number, type, size, shape, etc. of the determined partitions.

디스플레이 프로세서 (16) 는, 98 에서 데이터의 다양한 프래그먼트들을 프로세싱하기 위해 프래그먼트 프로세싱을 포함하는, 픽셀 데이터에 대한 다양한 동작들을 수행할 수도 있다. 특정 경우들에서, 이는, 당업계에 알려져 있는, 깊이 테스팅, 스텐실 테스팅, 블렌딩, 또는 텍스쳐 매핑 중 하나 이상을 포함할 수도 있다. 그래픽스 프로세서 (12) 가 다수의 지오메트리 프래그먼트들을 이전에 렌더링하였던 경우에, 디스플레이 프로세서 (16) 의 프래그먼트 프로세싱 (98) 은 프레임 버퍼로의 저장을 위해 렌더링된 프래그먼트들을 결합할 수도 있다. 텍스쳐 매핑을 수행하는 경우에, 디스플레이 프로세서 (16) 는 96 에서 텍스쳐 저장 및 필터링 정보를 통합할 수도 있다. 몇몇 경우들에서, 그래픽스 프로세서 (16) 는 쉐이딩 또는 스케일링 동작들과 같은, 래스터화된 데이터에 대한 다른 동작들을 수행할 수도 있다.Display processor 16 may perform various operations on the pixel data, including fragment processing, to process the various fragments of data at 98. In certain instances, this may include one or more of the following: depth testing, stencil testing, blending, or texture mapping, as is known in the art. When the graphics processor 12 has previously rendered multiple geometry fragments, the fragment processing 98 of the display processor 16 may combine the rendered fragments for storage in a frame buffer. In performing texture mapping, the display processor 16 may incorporate texture storage and filtering information at 96. In some cases, the graphics processor 16 may perform other operations on the rasterized data, such as shading or scaling operations.

디스플레이 프로세서 (16) 는 100 에서의 프레임 버퍼로의 저장을 위해 출력 픽셀 정보를 제공한다. 몇몇 경우들에서, 프레임 버퍼는 버퍼들 (15) (도 1) 내에 포함될 수도 있다. 다른 경우들에서, 프레임 버퍼는 저장 매체 (8) 내에 포함될 수도 있다. 프레임 버퍼는 102 에서, 예컨대 디스플레이 디바이스 (6) 상에서 디스플레이될 수 있는 이미지 데이터의 하나 이상의 프레임들을 저장한다.The display processor 16 provides output pixel information for storage in a frame buffer at 100. [ In some cases, the frame buffer may be included in buffers 15 (Figure 1). In other cases, the frame buffer may be included in the storage medium 8. The frame buffer stores one or more frames of image data that can be displayed, for example, on the display device 6 at 102.

이전에 설명된 바와 같이, 그래픽스 명령들 (30) 은 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 의해 실행될 수도 있다. 통상적으로, 애플리케이션 개발자들은, 그래픽스 프로세싱 시스템 (4) 내의 어떤 특정한 프로세서들이 그래픽스 명령들 (30) 중 어떤 그래픽스 명령들을 실행하는지에 대한 많은 지식 또는 제어를 갖지 않을 수도 있다. 특정 경우들에서, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상은, 그래픽스 명령들 (30) 의 실행 동안에, 프로세싱 파이프라인 내에서 가능한 병목현상들로서 서빙할 수도 있거나 또는 성능 이슈들을 가질 수도 있다.The graphics instructions 30 may be executed by one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16, as previously described. Typically, application developers may not have much knowledge or control over which of the graphics processors 30 execute certain graphics instructions within the graphics processing system 4. In certain instances, one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16 may, during execution of the graphics instructions 30, Serve as bottlenecks, or have performance issues.

애플리케이션 개발자가 병목현상의 위치, 또는 그러한 병목현상의 효과들을 어떻게 가장 잘 해소하거나 또는 완화할지를 찾아내는 것은 종종 어려울 수도 있다. 따라서, 일 양태에서, 그래픽스 명령들 (30) 및/또는 상태 정보가 그래픽스 디바이스 (2) 로부터 애플리케이션 컴퓨팅 디바이스 (20) 와 같은 외부 컴퓨팅 디바이스로 제공될 수도 있다. 상태 정보는, 그래픽스 명령들 (30) 의 실행 동안에 발생하는 도 3에서 도시된 동작들과 같은 다양한 동작들에 대한, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상으로부터의 데이터를 포함할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는, 효율적이고 효과적인 방식으로 병목현상들을 식별하고 해소하는 것을 보조하기 위해, 디바이스 (2) 상에서 나타내어지는 그래픽스 이미지를 생성할 수도 있다. 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 파티셔닝 정보를 디스플레이하고, 하나 이상의 지오메트리들에 대한 그래픽스 데이터를 분석하여, 데이터의 어떤 부분들이 파티션들 중 복수의 파티션들과 연관되는지를 결정할 수도 있다.It may often be difficult for an application developer to determine the location of bottlenecks, or how to best resolve or mitigate the effects of those bottlenecks. Thus, in one aspect, graphics instructions 30 and / or status information may be provided from the graphics device 2 to an external computing device, such as the application computing device 20. The state information may be stored in the control processor 10, the vertex processor 14, the graphics processor 12, and the display 14 for various operations, such as those shown in Figure 3, that occur during the execution of the graphics instructions 30. [ The processor 16 may include data from one or more of. The application computing device 20 may generate a graphics image represented on the device 2 to assist in identifying and resolving bottlenecks in an efficient and effective manner. In addition, the application computing device 20 may display the partitioning information, analyze the graphics data for one or more geometries, and determine which portions of the data are associated with the plurality of partitions of the partitions.

도 4는 일 양태에 따른, 도 2에서 도시된 그래픽스 드라이버 (18A) 의 추가적인 세부사항들을 예시하는 블록도이다. 이전에 설명된 바와 같이, 그래픽스 드라이버 (18A) 는 (예컨대, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 의해) 그래픽스 프로세싱 시스템 (4) 내에서 실행될 수 있는 명령들을 포함할 수도 있고, 그래픽스 드라이버들 (18) 의 일부일 수도 있다. 그래픽스 드라이버 (18A) 의 실행은 그래픽스 프로세싱 시스템 (4) 으로 하여금 애플리케이션 컴퓨팅 디바이스 (20) 와 통신하게 허용한다. 일 양태에서, 그래픽스 드라이버 (18A) 는 그래픽스 프로세싱 시스템 (54) 내에서 실행될 수 있는 명령들을 포함할 수도 있고, 그래픽스 드라이버들 (68) 의 일부일 수도 있다.FIG. 4 is a block diagram illustrating additional details of the graphics driver 18A shown in FIG. 2, in accordance with an aspect. As previously described, the graphics driver 18A may be coupled to the graphics processing system (e.g., by one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16) 4), and may be part of the graphics drivers 18. Execution of the graphics driver 18A allows the graphics processing system 4 to communicate with the application computing device 20. In one aspect, the graphics driver 18A may include instructions that may be executed within the graphics processing system 54, and may be part of the graphics drivers 68. [

실행되는 경우에, 그래픽스 드라이버 (18A) 는, 전송 인터페이스 (110), 프로세서 사용 모듈 (112), 하드웨어 카운터 모듈 (114), 다른 상태 및/또는 성능 데이터를 관리할 수 있는 상태/성능 데이터 모듈 (116), API 트레이스 모듈 (118), 및 오버라이드 모듈 (120) 로서 도 4에서 도시된 다양한 기능 블록들을 포함한다. 그래픽스 드라이버 (18A) 는 전송 인터페이스 모듈 (110) 을 사용하여 애플리케이션 컴퓨팅 디바이스 (20) 와 통신한다.The graphics driver 18A may include a transport interface 110, a processor usage module 112, a hardware counter module 114, a status / performance data module (e.g., 116, an API trace module 118, and an override module 120, as shown in FIG. The graphics driver 18A communicates with the application computing device 20 using the transfer interface module 110. [

프로세서 사용 모듈 (112) 은 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 대한 프로세서 사용 정보를 수집하고 유지한다. 프로세서 사용 정보는 프로세서 싸이클 및/또는 성능 정보를 포함할 수도 있다. 싸이클 데이터는 프로파일링, 커맨드 어레이들, 버텍스 및 인덱스 데이터, 또는 다른 동작들에 대해 사용되는 클럭 싸이클들에 대한 데이터를 포함할 수도 있다. 그 후, 프로세서 사용 모듈 (112) 은 그러한 프로세서 사용 정보를 전송 인터페이스 모듈 (110) 을 통해 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수도 있다. 몇몇 경우들에서, 프로세서 사용 모듈 (112) 은 비동기 방식으로 프로세스 사용 정보를 수신할 때 프로세스 사용 정보를 디바이스 (20) 에 제공한다. 다른 경우들에서, 프로세서 사용 모듈 (112) 은 디바이스 (20) 로부터의 요청의 수신 시에 정보를 제공할 수도 있다.The processor usage module 112 collects and maintains processor usage information for one or more of the control processor 10, the vertex processor 14, the graphics processor 12, and the display processor 16. The processor usage information may include processor cycles and / or performance information. The cycle data may include data on profiling, command arrays, vertex and index data, or clock cycles used for other operations. The processor usage module 112 may then provide such processor usage information to the application computing device 20 via the transfer interface module 110. [ In some instances, the processor usage module 112 provides process usage information to the device 20 when receiving process usage information in an asynchronous manner. In other instances, the processor usage module 112 may provide information upon receipt of a request from the device 20.

하드웨어 카운터 모듈 (114) 은 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 또는 디스플레이 프로세서 (16) 중 하나 이상에 의한 명령들의 실행 동안에 다양한 하드웨어 카운터들을 수집하고 유지한다. 카운터들은 그래픽스 프로세싱 시스템 (4) 내에서의 명령 실행에 대한 다양한 상태 표시자들 및/또는 메트릭들을 추적할 수도 있다. 하드웨어 카운터 모듈 (114) 은 비동기식으로 또는 요청 시에 디바이스 (20) 에 정보를 제공할 수도 있다.The hardware counter module 114 collects and maintains various hardware counters during execution of instructions by one or more of the control processor 10, the graphics processor 12, the vertex processor 14, or the display processor 16. The counters may track various status indicators and / or metrics for instruction execution within the graphics processing system 4. The hardware counter module 114 may provide information to the device 20 asynchronously or upon request.

상태/성능 데이터 모듈 (116) 은, 그래픽스 프로세싱 시스템 (4) 에서의 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및 디스플레이 프로세서 (16) 중 하나 이상에 대한 다른 상태 및/또는 성능 데이터를 수집하고 유지한다. 예컨대, 몇몇 경우들에서, 상태 데이터는 그래픽스 데이터를 포함할 수도 있다. 상태 데이터는, 위치, 컬러, 좌표들, 사이즈, 또는 무게 데이터와 같은 버텍스 어레이에 관련된 데이터를 포함할 수도 있다. 상태 데이터는 텍스쳐 상태 데이터, 포인트 상태 데이터, 라인 상태 데이터, 폴리곤 상태 데이터, 컬링 상태 데이터, 알파 테스트 상태 데이터, 블렌딩 상태 데이터, 깊이 상태 데이터, 스텐실 상태 데이터, 또는 컬러 상태 데이터를 더 포함할 수도 있다. 성능 데이터는 다양한 다른 메트릭들 또는 싸이클 데이터를 포함할 수도 있다. 상태/성능 데이터 모듈 (116) 은 정보를 비동기식으로 또는 요청 시에 디바이스 (20) 에 제공할 수도 있다.The status / performance data module 116 may be used to determine the status and / or performance of one or more of the control processor 10, the graphics processor 12, the vertex processor 14, and the display processor 16 in the graphics processing system 4, / / Collect and maintain performance data. For example, in some cases, the status data may include graphics data. The state data may include data related to the vertex array, such as position, color, coordinates, size, or weight data. The state data may further include texture state data, point state data, line state data, polygon state data, culling state data, alpha test state data, blending state data, depth state data, stencil state data, or color state data . The performance data may include various other metrics or cycle data. The status / performance data module 116 may provide information to the device 20 asynchronously or upon request.

매핑/파티셔닝 모듈 (117) 은 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및 디스플레이 프로세서 (16) 중 하나 이상으로부터의 매핑 및/또는 파티셔닝 정보 (33) 를 수집하고, 또한, 그래픽스 데이터 매핑 정보 (23) (도 1) 로부터의 정보를 수집할 수도 있다. 매핑 정보는, 디스플레이를 위한 그래픽스 이미지들을 생성하기 위해 렌더링되는 그래픽스 데이터의 식별된 부분들을 그래픽스 명령들 (30) 중 하나 이상으로 매핑하기 위한 정보를 포함할 수도 있다. 이 매핑 정보는, 개별적인 명령들을, 출력 이미지들을 렌더링하기 위해 사용되었던 오리지널 그래픽스 데이터로 매핑하는데 유익할 수도 있다. 파티셔닝 정보는, 렌더링 전에 그래픽스 데이터를 구성 프래그먼트들로 분리하는 경우에, 그래픽스 프로세싱 시스템 (4) 내에서 생성되고 사용되는 파티션들의 수, 타입, 사이즈, 형상 등을 식별하는 정보를 포함할 수도 있다. 매핑/파티셔닝 모듈 (117) 은 매핑/파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수도 있다.The mapping / partitioning module 117 collects mapping and / or partitioning information 33 from one or more of the control processor 10, the graphics processor 12, the vertex processor 14, and the display processor 16, In addition, information from the graphics data mapping information 23 (FIG. 1) may be collected. The mapping information may include information for mapping identified portions of graphics data rendered to generate graphics images for display to one or more of graphics instructions 30. [ This mapping information may be useful for mapping individual instructions into original graphics data that was used to render the output images. The partitioning information may include information identifying the number, type, size, shape, and the like of the partitions created and used in the graphics processing system 4 when separating the graphics data into constituent fragments before rendering. The mapping / partitioning module 117 may provide the mapping / partitioning information 33 to the application computing device 20.

API 트레이스 모듈 (118) 은, 그래픽스 프로세싱 시스템 (4) 에 의해 실행되고 전송 인터페이스 모듈 (110) 을 통해 애플리케이션 컴퓨팅 디바이스 (20) 로 전송되는 그래픽스 명령들의 플로우 및/또는 트레이스를 관리한다. 이전에 설명된 바와 같이, 그래픽스 디바이스 (2) 는, 그래픽스 프로세싱 시스템 (4) 의 프로세싱 파리프라인에서 그래픽스 프로세싱 시스템 (4) 에 의해 실행되는 그래픽스 명령들 (30) 의 카피를 디바이스 (20) 에 제공한다. API 트레이스 모듈 (118) 은 이들 그래픽스 명령들 (30) 의 캡쳐링 및 전송을 관리한다. 또한, API 트레이스 모듈 (118) 은, 명령 매핑 정보 (31) (도 1) 와 함께 사용되는 특정 정보를 제공하여, 그래픽스 명령들 (30) 을, 그래픽스 명령들 (30) 을 생성하기 위해 사용되었을 수도 있는 API 명령들과 같은 그래픽스 명령들 (30) 의 시각적인 표현으로 매핑할 수도 있다.The API trace module 118 manages the flow and / or trace of graphics instructions executed by the graphics processing system 4 and transmitted to the application computing device 20 via the transfer interface module 110. The graphics device 2 provides a copy of the graphics instructions 30 executed by the graphics processing system 4 to the device 20 at the processing parity line of the graphics processing system 4, do. API trace module 118 manages the capture and transmission of these graphics instructions 30. [ The API trace module 118 also provides specific information to be used with the command mapping information 31 (Figure 1) to determine whether the graphics instructions 30 were used to generate the graphics instructions 30 Or may be mapped to a visual representation of graphics instructions 30, such as API commands.

오버라이드 모듈 (120) 은 그래픽스 드라이버 (18A) 로 하여금 그래픽스 프로세싱 시스템 (4) 내에서의 특정 명령들의 실행을 변화시키거나 또는 오버라이드하게 허용한다. 이전에 설명된 바와 같이, 애플리케이션 컴퓨팅 디바이스 (20) 는 변형들 (34) 과 같은 하나 이상의 요청된 변형들을 그래픽스 디바이스 (2) 에 전송할 수도 있다. 특정 경우들에서, 요청된 변형들 (34) 은, 그래픽스 프로세싱 시스템 (4) 에서의 그래픽스 명령들 (30) 중 하나 이상의 실행을 디스에이블하기 위한 하나 이상의 요청들, 또는 그래픽스 명령들 (30) 중 하나 이상을 변형하기 위한 요청들을 포함할 수도 있다. 몇몇 경우들에서, 요청된 변형들 (34) 은 상태/성능 정보 (32) 를 변화시키기 위한 요청들을 포함할 수도 있다.The override module 120 allows the graphics driver 18A to change or override the execution of certain instructions in the graphics processing system 4. [ As previously described, the application computing device 20 may send one or more requested variations, such as transformations 34, to the graphics device 2. In certain instances, the requested variants 34 may include one or more requests for disabling the execution of one or more of the graphics instructions 30 in the graphics processing system 4, And may include requests to transform more than one. In some cases, the requested variants 34 may include requests to change state / performance information 32. In some cases,

오버라이드 모듈 (120) 은 요청된 변형들 (34) 을 수용하고 프로세싱할 수도 있다. 예컨대, 오버라이드 모듈 (120) 은, 상태/성능 정보 (32) 를 변형하기 위한 임의의 요청들과 함께, 그래픽스 명령들 (30) 중 하나 이상을 변형하기 위한 임의의 요청들을 디바이스 (20) 로부터 수신하고, 그러한 요청들을 그래픽스 프로세싱 시스템 (4) 에 전송할 수도 있다. 그 후, 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및 디스플레이 프로세서 (16) 중 하나 이상은 이들 요청들을 프로세싱하고 업데이트된 명령들/정보 (35) 를 생성할 수도 있다. 그 후, 오버라이드 모듈 (120) 은, 이전에 설명된 바와 같이, 프로세싱을 위한 업데이트된 명령들/정보 (35) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 전송할 수도 있다.The override module 120 may also accept and process the requested transformations 34. [ For example, the override module 120 may receive from the device 20 any requests to modify one or more of the graphics instructions 30, along with any requests to modify the state / performance information 32 And send those requests to the graphics processing system 4. One or more of the control processor 10, the graphics processor 12, the vertex processor 14, and the display processor 16 may then process these requests and generate updated instructions / information 35 . The override module 120 may then send the updated instructions / information 35 for processing to the application computing device 20, as previously described.

이러한 방식으로, 그래픽스 드라이버 (18A) 는 그래픽스 디바이스 (2) 와 애플리케이션 컴퓨팅 디바이스 (20) 사이에서 인터페이스를 제공한다. 그래픽스 드라이버 (18A) 는 그래픽스 명령들 및 상태/성능 정보 (32) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공하고, 또한, 애플리케이션 컴퓨팅 디바이스 (20) 로부터 요청된 변형들 (34) 을 수신하는 것이 가능하다. 그러한 요청된 변형들 (34) 을 프로세싱한 후에, 후속하여, 그래픽스 드라이버 (18A) 는 업데이트된 명령들/정보 (35) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수 있다.In this way, the graphics driver 18A provides an interface between the graphics device 2 and the application computing device 20. The graphics driver 18A is capable of providing the graphics commands and status / performance information 32 to the application computing device 20 and also receiving the requested modifications 34 from the application computing device 20 . After processing such requested variants 34, the graphics driver 18A can subsequently provide updated instructions / information 35 to the application computing device 20. [

도 5a는 도 1에서의 애플리케이션 컴퓨팅 디바이스 (20) 의 디스플레이 디바이스 (24) 또는 그래픽스 디바이스 (2) 의 디스플레이 디바이스 (6) 와 같은 디스플레이 디바이스에 의해 제공되는 스크린 영역 (130) 의 4 개의 파티션들에 걸쳐 스팬할 수도 있는 그래픽스 데이터의 제 1 예를 예시하는 개념도이다. 몇몇 경우들에서, 도 5a에서 도시된 데이터는 디스플레이 디바이스 (6) 상에서 디스플레이될 수도 있다. 일 양태에서, 도 5a에서 도시된 데이터는, 그래픽스 디바이스 (2) 로부터 수신된 상태/성능 정보 (32) 및 또한 그래픽스 디바이스 (2) 로부터 수신된 매핑/파티셔닝 정보 (33) 에 기초하여, 애플리케이션 컴퓨팅 디바이스 (20) 의 디스플레이 디바이스 (24) 상에서 도식적으로 나타내어진다. 상태/성능 정보 (32) 는 폴리곤들 (즉, 지오메트리들) (140, 142, 144, 및 146) 에 대한 그래픽스 데이터를 포함할 수도 있고, 매핑/파티셔닝 정보 (33) 는 파티션들 (132, 134, 136, 및 138) 에 대한 정보를 포함할 수도 있다. 예컨대, 애플리케이션 컴퓨팅 디바이스 (20) 에 의해 수신된 매핑/파티셔닝 정보 (33) 는, 그래픽스 디바이스 (2) 가, 그래픽스 데이터를 렌더링하는 경우에, 132, 134, 136, 및 138 에 의해 표현되는 4 개의 별개의 파티션들을 사용하는 것을 표시할 수도 있다.Figure 5A is a graphical representation of a screen area 130 provided by a display device such as the display device 24 of the application computing device 20 or the display device 6 of the graphics device 2 in Figure 1, Is a conceptual diagram illustrating a first example of graphics data that may span across. In some cases, the data shown in Fig. 5A may be displayed on the display device 6. Fig. In one aspect, the data shown in FIG. 5A is based on the state / performance information 32 received from the graphics device 2 and also the mapping / partitioning information 33 received from the graphics device 2, Is graphically represented on the display device 24 of the device 20. The state / performance information 32 may include graphics data for the polygons (i.e., geometry) 140, 142, 144, and 146 and the mapping / partitioning information 33 may include partitions 132, , 136, and 138, respectively. For example, the mapping / partitioning information 33 received by the application computing device 20 may be used by the graphics device 2 to render graphics data in the form of four It may also indicate the use of separate partitions.

도 5a의 예에서, 4 개의 비닝 파티션들 (132, 134, 136, 및 138) 이 구현된다. 이들 파티션들은 디스플레이 디바이스 (6) 또는 디스플레이 디바이스 (24) 상에서 디스플레이될 수도 있는 스크린 영역 (130) 내에서의 4 개의 대응하는 영역들을 표현한다. 도면에서 볼 수 있는 바와 같이, 폴리곤들 (140 및 142) 은 대응하는 파티션 내에서 완전히 위치되거나 또는 배치되도록 애플리케이션 명령들 (21) (도 1) 에 의해 각각 정의된다. 폴리곤 (140) 은 파티션 (132) 내에 위치되고, 폴리곤 (142) 은 파티션 (134) 내에 위치된다. 그래픽스 데이터를 렌더링하는 경우에, 예컨대, 그래픽스 프로세서 (12) 는 파티션들 (132, 134, 136, 및 138) 의 각각 내에서의 데이터를 개별적으로, 그리고 독립적인 렌더링 동작들 동안에 렌더링할 수도 있다. 폴리곤 (140) 이 완전히 파티션 (132) 내에 있기 때문에, 폴리곤 (140) 은 파티션 (132) 과 연관된 렌더링 동작 동안에 완전한 지오메트리로서 렌더링될 수도 있다. 마찬가지로, 폴리곤 (142) 이 완전히 파티션 (134) 내에 있기 때문에, 폴리곤 (142) 은 파티션 (134) 과 연관된 렌더링 동작 동안에 완전한 지오메트리로서 렌더링될 수도 있다.In the example of FIG. 5A, four binning partitions 132, 134, 136, and 138 are implemented. These partitions represent four corresponding areas within the screen area 130 that may be displayed on the display device 6 or the display device 24. [ As can be seen, polygons 140 and 142 are each defined by application instructions 21 (FIG. 1) to be fully located or placed within the corresponding partitions. The polygon 140 is located in the partition 132 and the polygon 142 is located in the partition 134. For example, when rendering graphics data, the graphics processor 12 may render data within each of the partitions 132, 134, 136, and 138 separately and during independent rendering operations. Because polygon 140 is entirely within partition 132, polygon 140 may be rendered as complete geometry during the rendering operation associated with partition 132. Likewise, since polygon 142 is entirely within partition 134, polygon 142 may be rendered as complete geometry during rendering operations associated with partition 134.

반면에, 폴리곤들 (144 및 146) 은 다수의 파티션들에 걸쳐 스팬한다. 폴리곤 (144) 이 모든 4 개의 파티션들 (132, 134, 136, 및 138) 에 걸쳐 스팬하는 한편, 폴리곤 (146) 은 2 개의 파티션들 (136 및 138) 에 걸쳐 스팬한다. 폴리곤 (144) 을 렌더링하기 위해, 그래픽스 프로세서 (12) 는 폴리곤 (144) 을 4 개의 구성 프래그먼트들 (144A, 144B, 144C, 및 144D) (도 5b에서 도시됨) 로 분리할 수도 있다. 그 후, 그래픽스 프로세서 (12) 는 독립적인 렌더링 동작들 동안에 프래그먼트들 (144A, 144B, 144C, 및 144D) 을 독립적으로 렌더링할 수도 있다. 예컨대, 파티션 (132) 과 연관된 렌더링 동작 동안에, 그래픽스 프로세서 (12) 는 프래그먼트 (144A) 를 렌더링할 수도 있고; 파티션 (134) 과 연관된 렌더링 동작 동안에, 그래픽스 프로세서 (12) 는 프래그먼트 (144B) 를 렌더링할 수도 있고; 파티션 (138) 과 연관된 렌더링 동작 동안에, 그래픽스 프로세서 (12) 는 프래그먼트 (144C) 를 렌더링할 수도 있으며; 그리고, 파티션 (136) 과 연관된 렌더링 동작 동안에, 그래픽스 프로세서 (12) 는 프래그먼트 (144D) 를 렌더링할 수도 있다.On the other hand, polygons 144 and 146 span across multiple partitions. The polygon 144 spans across all four partitions 132, 134, 136, and 138 while the polygon 144 spans across the two partitions 136 and 138. To render the polygon 144, the graphics processor 12 may separate the polygon 144 into four configuration fragments 144A, 144B, 144C, and 144D (shown in FIG. 5B). The graphics processor 12 may then independently render the fragments 144A, 144B, 144C, and 144D during independent rendering operations. For example, during a rendering operation associated with partition 132, graphics processor 12 may render fragment 144A; During the rendering operation associated with the partition 134, the graphics processor 12 may render the fragment 144B; During a rendering operation associated with the partition 138, the graphics processor 12 may render the fragment 144C; And, during the rendering operation associated with the partition 136, the graphics processor 12 may render the fragment 144D.

이들 프래그먼트들 (144A, 144B, 144C, 및 144D) 가 독립적으로 렌더링된 후에, 디스플레이 프로세서 (16) 는 폴리곤 (144) 의 정확한 그래픽 표현을 디스플레이하기 위해 이들 프래그먼트들의 각각에 대한 렌더링된 이미지들을 결합할 필요가 있을 수도 있다. 이들 개별적인 렌더링 및 결합 동작들은 성능 오버헤드를 발생시킬 수도 있다.After these fragments 144A, 144B, 144C, and 144D are independently rendered, the display processor 16 combines the rendered images for each of these fragments to display an accurate graphical representation of the polygon 144 It may be necessary. These individual rendering and combining operations may result in performance overhead.

유사하게, 폴리곤 (146) 을 렌더링하기 위해, 그래픽스 프로세서 (12) 는 폴리곤 (146) 을 2 개의 구성 프래그먼트들 (146A 및 146B) (도 5b에서 도시됨) 로 분리할 수도 있다. 그 후, 그래픽스 프로세서 (12) 는 독립적인 렌더링 동작들 동안에 프래그먼트들 (146A 및 146B) 을 독립적으로 렌더링할 수도 있다. 예컨대, 파티션 (138) 과 연관된 렌더링 동작 동안에, 그래픽스 프로세서 (12) 는 프래그먼트 (146A) 를 렌더링할 수도 있고, 파티션 (136) 과 연관된 렌더링 동작 동안에, 그래픽스 프로세서 (12) 는 프래그먼트 (146B) 를 렌더링할 수도 있다. 이들 프래그먼트들 (146A 및 146B) 이 독립적으로 렌더링된 후에, 디스플레이 프로세서 (16) 는 폴리곤 (146) 의 정확한 그래픽 표현을 디스플레이하기 위해 이들 프래그먼트들의 각각에 대한 렌더링된 이미지들을 결합할 수도 있다.Similarly, to render the polygon 146, the graphics processor 12 may separate the polygon 146 into two configuration fragments 146A and 146B (shown in FIG. 5B). The graphics processor 12 may then independently render the fragments 146A and 146B during independent rendering operations. For example, during the rendering operation associated with the partition 138, the graphics processor 12 may render the fragment 146A, and during the rendering operation associated with the partition 136, the graphics processor 12 may render the fragment 146B You may. After these fragments 146A and 146B are independently rendered, the display processor 16 may combine the rendered images for each of these fragments to display an accurate graphical representation of the polygon 146. [

몇몇 경우들에서, 도 5a 및 도 5b에서 도시된 정보는 애플리케이션 컴퓨팅 디바이스 (20) 의 디스플레이 디바이스 (24) 상에서 디스플레이될 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 를 사용하여, 디스플레이 디바이스 (24) 의 스크린 영역 (130) 내에서 폴리곤들 (140, 142, 144, 및 146) 의 표현 또는 그래픽스 이미지들을 디스플레이할 수도 있다. 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 매핑/파티셔닝 정보 (33) 를 사용하여, 그래픽스 이미지들을 오버레이하고 이들 이미지들의 장면을 도식적으로 분할하는 파티션들 (132, 134, 136, 및 138) 의 그래픽 표현을 디스플레이할 수도 있다. 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 폴리곤들 (140, 142, 144, 146) 에 대한 그래픽스 데이터를 분석하여, 이들 폴리곤들 중 어떤 폴리곤들이 파티션들 (132, 134, 136, 및/또는 138) 중 다수의 파티션들에 걸쳐 스팬하는지를 결정할 수도 있다.In some instances, the information shown in Figures 5A and 5B may be displayed on the display device 24 of the application computing device 20. The application computing device 20 uses the graphics commands 30 and state / performance information 32 to generate polygons 140, 142, 144, and 146 in the screen region 130 of the display device 24. [ Or display graphics images. The application computing device 20 also uses the mapping / partitioning information 33 to create a graphical representation of the partitions 132, 134, 136, and 138 that overlay the graphics images and graphically partition the scene of these images Display. The application computing device 20 may also analyze the graphics data for the polygons 140,142, 144,146 to determine which of the polygons are partitions 132,134, 136, and / or 138 It may be determined whether spanning across multiple partitions.

애플리케이션 개발자가 윈도우 (130) 내에서 디스플레이되는 정보를 뷰잉하는 경우에, 개발자는, 폴리곤들이 다수의 파티션들에 걸쳐 스팬하기 때문에 어떤 폴리곤들이 하드웨어에 의해 분리될 수도 있는지 및 또한 그러한 파티션들이 어디에 위치되는지에 대한 아이디어를 획득할 수 있다. 개발자는 그 정보를 사용하여, 장면을 정의하는 경우에, 애플리케이션 명령들 (21) (도 1) 을 사용하는 애플리케이션과 같은 그래픽스 애플리케이션 내에서 특정 그래픽스 데이터의 최적화된 구성 또는 위치를 결정하는 것이 가능할 수도 있다. 예컨대, 도 5a에서 제시된 정보를 리뷰잉할 시에, 개발자는 폴리곤들 (144 및 146) 이 다수의 파티션들에 걸쳐 스팬하지 않도록, 폴리곤들 (144 및 146) 을 재배열 또는 재구성하는 것을 결정할 수도 있다.In the case where an application developer views information displayed in window 130, the developer can determine which polygons may be separated by hardware because polygons span across multiple partitions, and also where they are located Can be obtained. The developer may use the information to determine the optimal configuration or location of a particular graphics data within a graphics application, such as an application using application commands 21 (Figure 1), when defining a scene have. For example, when reviewing the information presented in FIG. 5A, the developer may decide to rearrange or reconfigure polygons 144 and 146 so that polygons 144 and 146 do not span across multiple partitions have.

윈도우 (130) 내에서 그래픽스 이미지들을 오버레이하는 파티션들의 표현이 개발자에게 제시되기 때문에, 파티션들이 그래픽스 디바이스 (2) 에 의해 정의될 때, 개발자는, 폴리곤들 (144 및 146) 을 어떻게 정의하거나, 구성하거나, 또는 위치시킬지를 더 양호하게 이해할 수 있어, 폴리곤들 (144 및 146) 이 다수의 파티션들에 걸쳐 스팬하지 않도록 하거나, 또는 폴리곤들 (144 및 146) 이 최소의 수의 파티션들에만 걸쳐 스팬하도록 한다. 몇몇 경우들에서, 개발자는, 폴리곤이 렌더링 후에 디스플레이 프로세서 (16) 에 의해 결합될 필요가 없을 수도 있도록, 폴리곤을 서브-폴리곤들로서 재정의하는 것을 결정할 수도 있다. 예컨대, 개발자는, 도 5b에서 도시된 바와 같이, 2 개의 개별적인 폴리곤들 (146A 및 146B) 로서 애플리케이션 명령들 (21) 의 변형된 버전에서의 폴리곤 (146) 을 재정의할 수도 있다. 이들 폴리곤들이 최초에 개별적으로 정의되는 경우에, 이들 폴리곤들의 렌더링된 버전들은 디스플레이 전에 결합될 필요가 없을 수도 있으며, 이는 성능 오버헤드를 감소시킬 수도 있다.Since the representation of partitions that overlay the graphics images within window 130 is presented to the developer, when the partitions are defined by the graphics device 2, the developer can define how the polygons 144 and 146 are defined, The polygons 144 and 146 may not span across multiple partitions or the polygons 144 and 146 may be spanned across a minimal number of partitions . In some cases, the developer may decide to redefine the polygons as sub-polygons, so that the polygons may not need to be combined by the display processor 16 after rendering. For example, the developer may redefine polygon 146 in a modified version of application instructions 21 as two separate polygons 146A and 146B, as shown in FIG. 5B. If these polygons are initially defined separately, then the rendered versions of these polygons may not need to be combined before display, which may reduce performance overhead.

도 6은 도 1에서 도시된 (애플리케이션 컴퓨팅 디바이스 (20) 에서의) 디스플레이 디바이스 (24) 또는 (그래픽스 디바이스 (2) 에서의) 디스플레이 디바이스 (6) 와 같은 디스플레이 디바이스에 의해 제공되는 스크린 영역 (150) 의 8 개의 파티션들에 걸쳐 스팬할 수도 있는 그래픽스 데이터의 제 2 예를 예시하는 개념도이다. 이전에 설명된 바와 같이, 그래픽스 디바이스 (2) 의 그래픽스 프로세싱 시스템 (4) 은, 메모리 사이즈 요구조건들 또는 제약들과 같은 다양한 요인들 또는 다른 성능 고려사항들에 의존할 수도 있는 다양한 상이한 형상들, 사이즈들, 및 타입들의 디스플레이 디바이스 (6) 의 스크린 영역과 연관된 비닝 파티션들을 생성하거나 또는 사용할 수도 있다. 도 6의 제 2 예에서, 프로세서들 (10, 12, 14, 또는 16) 중 하나 이상은 도 5a 및 도 5b에서의 예들에서 도시된 4 개의 파티션들이 아니라 8 개의 개별적인 파티션들을 생성하고 사용하는 것을 결정할 수도 있다.Figure 6 illustrates a screen area 150 (shown in Figure 1) provided by a display device 24 (at the application computing device 20) or a display device 6 (at the graphics device 2) ≪ RTI ID = 0.0 > 8 < / RTI > As described previously, the graphics processing system 4 of the graphics device 2 may be implemented in a variety of different shapes, such as memory size requirements or constraints, that may rely on various factors or other performance considerations, Sizes, and types of display devices 6 associated with the screen area. In the second example of FIG. 6, one or more of the processors 10,12, 14, or 16 may be used to create and use eight separate partitions instead of the four partitions shown in the examples in FIGS. 5A and 5B You can decide.

스크린 영역 (150) 내에서, 8 개의 파티션들은 파티션들 (152, 154, 156, 158, 160, 162, 164, 및 166) 이다. 이들 파티션들의 각각은 형상이 사각형이다. 예시의 목적을 위해, 스크린 영역 (150) 이 스크린 영역 (130) (도 5a 및 도 5b) 과 영역에서 실질적으로 동일한 사이즈인 경우에, 도 6에서 도시된 각각의 파티션은 도 5a 및 도 5b에서 도시된 각각의 파티션의 사이즈의 절반이다.Within the screen area 150, the eight partitions are partitions 152, 154, 156, 158, 160, 162, 164, and 166. Each of these partitions is square in shape. For purposes of illustration, if the screen area 150 is substantially the same size as the screen area 130 (Figs. 5A and 5B) and the area, each partition shown in Fig. 6 is shown in Figs. 5A and 5B It is half the size of each partition shown.

도 6의 예에서, 애플리케이션 명령들 (21) 은 폴리곤들 (140, 142, 144, 및 146) 을 생성하고/하거나 렌더링하기 위해 다시 실행될 수도 있다. 도 5a 및 도 5b에서, 4 개의 파티션들만이 사용되었던 경우에, 폴리곤들 (140 및 142) 은 다수의 파티션들에 걸쳐 스팬하지 않았었다. 따라서, 그래픽스 디바이스 (2) 는 4 개의 비닝 파티션들만을 구현하는 경우에, 애플리케이션 명령들 (21) 을 포함하는 그래픽스 애플리케이션은, 폴리곤들 (140 및 142) 이 다수의 파티션들에 걸쳐 스팬하지 않으므로, 폴리곤들 (140 및 142) 의 렌더링으로부터 발생되는 추가적인 성능 오버헤드를 경험하지 않을 수도 있다. 그러나, 도 6에서 도시된 바와 같이, 그래픽스 디바이스 (2) 가 8 개의 비닝 파티션들을 구현하는 경우에, 폴리곤들 (140 및 140) 은 2 개의 개별적인 파티션들에 걸쳐 각각 스팬한다 - 폴리곤 (140) 이 파티션들 (152 및 154) 에 걸쳐 스팬하는 한편, 폴리곤 (142) 이 파티션들 (156 및 158) 에 걸쳐 스팬한다.In the example of FIG. 6, application instructions 21 may be executed again to generate and / or render polygons 140, 142, 144, and 146. In Figures 5A and 5B, if only four partitions were used, the polygons 140 and 142 would not span across multiple partitions. Thus, in the case where the graphics device 2 implements only four binning partitions, the graphics application containing the application instructions 21 will not be able to span multiple partitions because the polygons 140 and 142 do not span across multiple partitions, It may not experience any additional performance overhead resulting from the rendering of polygons 140 and 142. 6, polygons 140 and 140 span over two separate partitions, respectively, when graphics device 2 implements eight binning partitions-polygon 140 is a polygon, While spanning across partitions 152 and 154, polygon 142 spans across partitions 156 and 158.

일 양태에서, 파티션들 (152, 154, 156, 158, 160, 162, 164, 및 166) 의 그래픽 표현은 디스플레이 디바이스 (24) 상에서 애플리케이션 개발자에게 디스플레이될 수도 있다. 폴리곤들 (140, 142, 144, 및 146) 의 표현들과 같은 그래픽스 이미지들을 오버레이하는 그러한 파티션들의 그래픽 디스플레이는 개발자에게 상당히 유용할 수도 있다. 종종, 개발자는 그래픽스 디바이스 (2) 와 같은 임의의 개별적인 디바이스에 의해 생성되고 사용되는 파티션들의 수, 타입, 형상, 사이즈 등에 대해 정보 또는 아이디어를 거의 갖지 않을 것이다. 장면에서의 그래픽스 이미지들 상에서 오버레이되는 그러한 파티션들의 그래픽 표현을 뷰잉할 수 있음으로써, 개발자는, 예컨대, 어떤 그래픽스 이미지들 또는 프리미티브 그래픽스 데이터가 다수의 파티션들에 걸쳐 스팬할 수도 있고, 따라서 특정 렌더링 성능 오버헤드를 가질 수도 있는지에 대한 더 양호한 아이디어를 획득한다. 결과로서, 개발자는, 애플리케이션 명령들 (21) 을 포함하는 것과 같은 그래픽스 애플리케이션에 의해 생성되고 조작되는 그래픽스 데이터를 재정의, 재구성, 리사이징, 또는 그렇지 않은 경우에 변화시키는 것이 가능할 수도 있다.In one aspect, a graphical representation of the partitions 152, 154, 156, 158, 160, 162, 164, and 166 may be displayed to the application developer on the display device 24. Graphics display of such partitions that overlay graphics images, such as representations of polygons 140, 142, 144, and 146, may be quite useful to the developer. Often, the developer will have little or no information or idea about the number, type, shape, size, etc. of the partitions created and used by any individual device, such as graphics device 2. By being able to view a graphical representation of such partitions overlaid on the graphics images in the scene, the developer can, for example, have certain graphics images or primitive graphics data spanned across multiple partitions, Obtain a better idea of whether you have overhead. As a result, the developer may be able to redefine, reconfigure, resize, or otherwise change the graphics data generated and manipulated by the graphics application, such as including application instructions 21. [

도 7은 일 양태에 따른 시뮬레이션 애플리케이션 (28) (도 1) 의 실행을 통해 애플리케이션 컴퓨팅 디바이스 (20) 에 의해 수행될 수도 있는 방법의 플로우도이다. 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 디바이스 (2) 와 같은 외부 그래픽스 디바이스로부터 매핑/파티셔닝 정보 (33) 를 수신할 수도 있다 (170). 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 디바이스 (2) 로부터 그래픽스 명령들 (30) 을 수신할 수도 있다 (172). 그래픽스 명령들 (30) 은 디스플레이 디바이스 (6) 상에서 3 차원 (3D) 그래픽스 이미지들과 같은 하나 이상의 그래픽스 이미지들을 디스플레이하기 위해, 그래픽스 디바이스 (2) 에 의해 실행된다. 일 양태에서, 그래픽스 명령들 (30) 은, 실행되는 경우에 그래픽스 이미지들을 렌더링하는 호출 스트림을 포함한다. 일 양태에서, 호출 스트림은 애플리케이션 프로그래밍 인터페이스 (API) 명령들로부터 생성된 이진 명령들을 포함한다.FIG. 7 is a flow diagram of a method that may be performed by an application computing device 20 through execution of a simulation application 28 (FIG. 1) in accordance with an aspect. The application computing device 20 may receive the mapping / partitioning information 33 from an external graphics device such as the graphics device 2 (170). In addition, the application computing device 20 may receive graphics instructions 30 from the graphics device 2 (172). Graphics instructions 30 are executed by the graphics device 2 to display one or more graphics images, such as three-dimensional (3D) graphics images, on a display device 6. In one aspect, graphics instructions 30 include a call stream that, when executed, renders graphics images. In an aspect, the call stream includes binary instructions generated from application programming interface (API) instructions.

애플리케이션 컴퓨팅 디바이스 (20) 는 또한, 그래픽스 디바이스 (2) 로부터 상태 및/또는 성능 정보 (32) 를 수신할 수도 있다 (174). 상태/성능 정보 (32) 는 그래픽스 디바이스 (2) 상에서의 그래픽스 명령들 (30) 의 실행과 연관된다. 상태/성능 정보 (32) 는, 그래픽스 디바이스 (2) 가 그래픽스 이미지를 렌더링함에 따라 그래픽스 디바이스 (2) 의 하나 이상의 상태들을 표시하는 상태 정보를 포함할 수도 있다. 상태 정보는, 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및/또는 디스플레이 프로세서 (16) 와 같은 그래픽스 명령들 (30) 을 실행하는 그래픽스 디바이스 (2) 의 하나 이상의 프로세서들로부터의 상태 정보를 포함할 수도 있다. 몇몇 경우들에서, 상태 정보는, 그래픽스 이미지 데이터를 렌더링하기 위해 그래픽스 프로세서 (12) 에 의해 사용되는 프리미티브 폴리곤 데이터와 같은 그래픽스 데이터를 포함할 수도 있다.The application computing device 20 may also receive status and / or performance information 32 from the graphics device 2 (174). The state / performance information 32 is associated with the execution of the graphics instructions 30 on the graphics device 2. The status / performance information 32 may include status information indicating one or more states of the graphics device 2 as the graphics device 2 renders the graphics image. The state information may be stored in one or more of the processors 2 of the graphics device 2 executing graphics instructions 30, such as control processor 10, graphics processor 12, vertex processor 14, and / Lt; / RTI > In some cases, the state information may include graphics data, such as primitive polygon data used by the graphics processor 12 to render the graphics image data.

애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽 장면에서의 상태/성능 정보 (32) 및 그래픽스 명령들 (30) 에 기초하여, 하나 이상의 그래픽스 이미지들의 표현을 디스플레이할 수도 있다 (176). 그러한 방식으로, 애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 디바이스 (2) 를 시뮬레이트하는 시뮬레이트된 환경 내에서 이들 그래픽스 이미지들의 표현을 디스플레이할 수 있다. 시뮬레이트된 환경은 애플리케이션 컴퓨팅 디바이스 (20) 의 프로세서들 (22) 상에서의 시뮬레이션 애플리케이션 (28) 의 실행을 통해 제공될 수도 있다.The application computing device 20 may display 176 a representation of one or more graphics images based on status / performance information 32 and graphics instructions 30 in a graphics scene. In such a manner, the application computing device 20 may display a representation of these graphics images in a simulated environment that simulates the graphics device 2. The simulated environment may be provided through execution of the simulation application 28 on the processors 22 of the application computing device 20.

애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 이미지들을 오버레이하고 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이할 수도 있다 (178). 예컨대, 일 시나리오에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 도 5a 및 도 5b에서 도시된 파티션들의 그래픽 표현을 디스플레이할 수도 있다. 몇몇 경우들에서, 파티션들은 사각형 파티션들을 포함할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 수신된 매핑/파티셔닝 정보 (33) 에 기초하여 파티션들의 그래픽 표현을 디스플레이할 수도 있다.The application computing device 20 may display a graphical representation of the partitions overlaying the graphics images and partitioning the scene graphically (178). For example, in one scenario, the application computing device 20 may display a graphical representation of the partitions shown in Figures 5A and 5B. In some cases, partitions may include rectangular partitions. The application computing device 20 may display a graphical representation of the partitions based on the received mapping / partitioning information 33. [

또한, 애플리케이션 컴퓨팅 디바이스 (20) 는, 디스플레이되는 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하여, 어떤 부분들이 다수의 파티션들과 연관되는지를 결정할 수도 있다 (180). 예컨대, 애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 이미지들을 생성하거나 또는 렌더링하기 위해 사용되는 폴리곤 데이터와 같은 그래픽스 프리미티브들을 분석하고, 어떤 폴리곤들 (예컨대, 삼각형들) 이 다수의 파티션들에 걸쳐 스팬하는지를 결정할 수도 있다.In addition, the application computing device 20 may analyze the graphics data for the displayed graphics images to determine which portions are associated with multiple partitions (180). For example, the application computing device 20 may analyze graphics primitives, such as polygon data used to create or render graphics images, and determine which polygons (e.g., triangles) span across the plurality of partitions It is possible.

그래픽스 명령들의 수신 (172), 상태 정보의 수신 (174), 그래픽스 이미지의 표현의 디스플레이 (176), 파티션들의 디스플레이 (178), 및 그래픽스 데이터 (180) 의 분석은, 프로세싱될 더 많은 프레임들이 존재하는 경우에, 하나 이상의 그래픽스 이미지들의 다수의 이미지 프레임들에 대해 반복될 수도 있다. 이러한 방식으로, 애플리케이션 컴퓨팅 디바이스 (20) 는 디스플레이 디바이스 (24) 상에서 (3D 이미지들을 포함하는) 스틸 및 무빙 그래픽스 이미지들 양자 모두를 디스플레이할 수 있고, 이미지들을 오버레이하고 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이할 수 있다. 그래픽스 이미지들이 변화하거나 또는 이미지들의 교체 투시뷰들이 나타내어지므로, 애플리케이션 개발자는 이미지들과 연관된 그래픽스 데이터와 파티션들의 위치 사이의 관계를 지속적으로 확인할 수 있다.Analysis of the reception of graphics commands 172, reception of status information 174, display of a representation of graphics images 176, display of partitions 178, and graphics data 180 may result in the presence of more frames to be processed , It may be repeated for multiple image frames of one or more graphics images. In this manner, the application computing device 20 can display both still and moving graphics images (including 3D images) on the display device 24, and can overlay the images and display partitions A graphical representation can be displayed. Since the graphics images change or alternate perspective views of the images are shown, the application developer can constantly check the relationship between the graphics data associated with the images and the location of the partitions.

도 8은 일 양태에 따른 시뮬레이션 애플리케이션 (28) (도 1) 의 실행을 통해 애플리케이션 컴퓨팅 디바이스 (20) 에 의해 수행될 수도 있는 방법의 플로우도이다. 일 양태에서, 프로세서들 (22) 은 시뮬레이션 애플리케이션 (28) 을 실행하여, 디스플레이 디바이스 (24) 상에서 네비게이션 제어기를 디스플레이할 수도 있다.FIG. 8 is a flow diagram of a method that may be performed by an application computing device 20 via execution of a simulation application 28 (FIG. 1) in accordance with an aspect. In an aspect, the processors 22 may execute the simulation application 28 to display the navigation controller on the display device 24. [

애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 디바이스 (2) 와 같은 외부 그래픽스 디바이스로부터 매핑/파티셔닝 정보 (33) 를 수신할 수도 있다 (190). 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 애플리케이션 컴퓨팅 디바이스 (20) 의 디스플레이 디바이스 (24) 상에서 하나 이상의 그래픽스 이미지들의 투시뷰를 디스플레이할 수도 있다 (191). 예컨대, 애플리케이션 컴퓨팅 디바이스 (20) 는 수신된 그래픽스 명령들 (30) 및/또는 상태/성능 정보 (32) 에 기초하여, 그래픽스 이미지들의 투시뷰를 디스플레이할 수도 있다.The application computing device 20 may receive mapping / partitioning information 33 from an external graphics device, such as graphics device 2 (190). In addition, the application computing device 20 may display a perspective view of one or more graphics images on the display device 24 of the application computing device 20 (191). For example, the application computing device 20 may display a perspective view of the graphics images based on the received graphics instructions 30 and / or status / performance information 32.

애플리케이션 컴퓨팅 디바이스 (20) 는 수신된 매핑/파티셔닝 정보 (33) 에 기초하여, 디스플레이 디바이스 (24) 상에서 그래픽스 이미지들을 오버레이하는 파티션들의 그래픽스 표현을 디스플레이할 수도 있다 (192). 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 상태/성능 정보 (32) 내에 포함된 그래픽스 데이터와 같은 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 예컨대, 그래픽스 데이터는 삼각형들과 같은 복수의 그래픽스 프리미티브들을 포함할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 삼각형들 중 어떤 삼각형들이 파티션들 중 다수의 파티션들에 걸쳐 스팬하는지를 결정할 수도 있다 (193). 이들 삼각형들은 다수의 파티션들에서 적어도 부분적으로 렌더링된 삼각형들을 포함할 수도 있다.The application computing device 20 may display a graphics representation of the partitions overlaying the graphics images on the display device 24 based on the received mapping / partitioning information 33 (192). In addition, the application computing device 20 may analyze the graphics data for graphics images, such as graphics data contained within the state / performance information 32, to determine which portions of the graphics data are associated with multiple of the partitions . For example, the graphics data may include a plurality of graphics primitives, such as triangles. The application computing device 20 may determine 193 which triangles of the triangles span multiple partitions of the partitions. These triangles may include triangles rendered at least partially in a plurality of partitions.

일 양태에서, 애플리케이션 컴퓨팅 디바이스 (20) 는, 파티션들의 그래픽 표현을 디스플레이하는 것과 함께, 디스플레이 디바이스 (24) 상에서 파티션들 중 다수의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이한다. 몇몇 경우들에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 다수의 파티션들에 걸쳐 스팬하는 각각의 삼각형에 대해, 컬러와 같은 그래픽 표시를 디스플레이할 수도 있다 (194).In one aspect, the application computing device 20 displays a graphical representation of the triangles spanning across multiple partitions of the partitions on the display device 24, along with displaying a graphical representation of the partitions. In some instances, the application computing device 20 may display graphical representations such as color (194) for each triangle spanning across multiple partitions.

예컨대, 일 양태에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 디스플레이 디바이스 (24) 상에서 삼각형들의 "히트 맵 (heat map)" 표현을 디스플레이하며, 여기에서 각각의 삼각형은 컬러와 같은 연관된 그래픽 표시자를 갖는다. 컬러에 추가하여, 그래픽 표시자들의 다른 형태들 (예컨대, 점선들, 블링킹 표시자들, 하이라이트된 표시자들) 이 삼각형들을 서로 구별하기 위해 특정 시나리오들에서 사용될 수도 있다. 다수의 파티션들에 걸쳐 스팬하지 않는 삼각형들은 하나의 컬러 (예컨대, 블루) 로 디스플레이될 수도 있다. 다수의 파티션들 (예컨대, 2 개 및 3 개의 파티션들) 에 걸쳐 스팬하는 삼각형들은 제 2 컬러 (예컨대, 퍼플) 로 디스플레이될 수도 있다. 3 개보다 더 많은 파티션들에 걸쳐 스팬하는 삼각형들은 제 3 컬러 (예컨대, 레드) 로 두드러지게 디스플레이될 수도 있다. 따라서, 이 예에서, 애플리케이션 개발자는 어떤 삼각형들이 다수의 파티션들에 걸쳐 스팬하는지, 그리고 어떤 삼각형들이 다른 삼각형들보다 더 많은 파티션들에 걸쳐 스팬하는지를 신속하게 결정할 수 있다. 개발자는 이 정보를 사용하여, 다수의 파티션들에 걸쳐 스팬하는 삼각형들을 어떻게 재구성하거나, 재정의하거나, 또는 그렇지 않은 경우에 제구축할지를 결정함으로써, 성능 (예컨대, 렌더링) 오버헤드를 감소시키는 것이 가능할 수도 있다.For example, in one aspect, the application computing device 20 displays a "heat map" representation of the triangles on the display device 24, where each triangle has an associated graphics indicator, such as color. In addition to color, other types of graphical indicators (e.g., dotted lines, blinking indicators, highlighted indicators) may be used in certain scenarios to distinguish the triangles from one another. Triangles that do not span across multiple partitions may be displayed in one color (e.g., blue). Triangles spanning across multiple partitions (e.g., two and three partitions) may be displayed in a second color (e.g., purple). Triangles spanning across more than three partitions may be displayed prominently with a third color (e.g., red). Thus, in this example, an application developer can quickly determine which triangles span across multiple partitions, and which triangles span more partitions than other triangles. Using this information, the developer may be able to reduce performance (e.g., rendering) overhead by determining how to reconstruct, redefine, or otherwise rebuild triangles spanning across multiple partitions have.

애플리케이션 컴퓨팅 디바이스 (20) 는 네비게이션 모듈 (29) (도 1) 을 사용하여, 디스플레이 디바이스 (24) 상에서 디스플레이되는 사용자 인터페이스 내에서 네비게이션 제어기를 디스플레이할 수도 있다. 예컨대, 네비게이션 제어기는 3D 카메라 제어기를 포함할 수도 있다. 애플리케이션 개발자는 네비게이션 제어기와 상호작용하여, 디스플레이 디바이스 (24) 상에서 디스플레이되는 그래픽스 이미지들의 장면 주위를 네비게이팅할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 네비게이션 제어기를 통해 개발자로부터 사용자 입력을 수신하여, 이미지들의 투시뷰를 변형할 수도 있다 (195).The application computing device 20 may use the navigation module 29 (Figure 1) to display the navigation controller within the user interface displayed on the display device 24. [ For example, the navigation controller may include a 3D camera controller. The application developer may interact with the navigation controller to navigate around the scene of the graphics images displayed on the display device 24. [ The application computing device 20 may receive user input from the developer via the navigation controller to modify the perspective view of the images (195).

그 후, 애플리케이션 컴퓨팅 디바이스 (20) 는 네비게이션 제어기에 대한 사용자 입력에 기초하여, 변형된 그래픽스 장면에서의 그래픽스 이미지들의 변형된 투시뷰를 디스플레이할 수도 있다. 예컨대, 개발자는 네비게이션 제어기와 상호작용하여, 이미지들의 장면을 회전시키거나, 장면을 줌인 또는 줌아웃하거나, 또는 그렇지 않은 경우에 장면의 투시뷰를 변화시킬 수도 있으며, 그 후, 이는 새로운 이미지들을 포함하는 변형된 장면 내에서의 이미지들의 변형된 투시뷰를 디스플레이할 수도 있다. 네비게이션 제어기에 제공되는 사용자 입력은 요청된 변형들 (34) 로서 그래픽스 디바이스 (2) 에 전송될 수도 있고, 업데이트된 투시뷰의 디스플레이는, 그래픽스 디바이스 (2) 에 의해 애플리케이션 컴퓨팅 디바이스 (20) 에 제공된 업데이트된 명령들/정보 (35) 에 기초할 수도 있다. 일 양태에서, 요청된 변형들 (34) 은 그래픽스 디바이스 (2) 상에서의 그래픽스 명령들 (30) 중 하나 이상의 실행을 디스에이블하기 위한 요청, 그래픽스 디바이스 (2) 상에서의 그래픽스 명령들 (30) 중 하나 이상을 변형하기 위한 요청, 및 그래픽스 디바이스 (2) 상에서의 상태/성능 정보 (32) 를 변형하기 위한 요청 중 적어도 하나를 포함할 수도 있다.The application computing device 20 may then display a modified perspective view of the graphics images in the modified graphics scene based on user input to the navigation controller. For example, the developer may interact with the navigation controller to rotate the scene of the images, zoom in or out of the scene, or otherwise change the perspective view of the scene, A modified perspective view of the images within the modified scene may be displayed. The user input provided to the navigation controller may be transmitted to the graphics device 2 as the requested variants 34 and the display of the updated perspective view may be provided to the application computing device 20 by the graphics device 2 May be based on updated instructions / information 35. In one aspect, the requested variants 34 include a request to disable execution of one or more of the graphics instructions 30 on the graphics device 2, a request to disable execution of one or more of the graphics instructions 30 on the graphics device 2, A request to modify one or more of the graphics device 2, and a request to modify the state / performance information 32 on the graphics device 2.

일 양태에서, 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 이미지들의 변형된 투시뷰를 오버레이하고 변형된 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 이미지들의 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다.In one aspect, the application computing device 20 may also display a graphical representation of the partitions that overlay the modified perspective view of the graphics images and graphically partition the modified scene. The application computing device 20 may analyze the graphics data for the modified perspective view of the graphics images to determine which portions of the graphics data are associated with multiple of the partitions.

그래픽스 이미지(들)의 투시뷰의 디스플레이 (191), 그래픽스 이미지(들)를 오버레이하는 파티션들의 디스플레이 (192), 어떤 프리미티브 삼각형(들)이 다수의 파티션들에 걸쳐 스팬하는지를 결정하는 것 (193), 각각의 결정된 삼각형에 대한 그래픽 표시의 디스플레이 (194), 및 네비게이션 제어기를 통해 사용자 입력을 수신하여 장면의 투시뷰를 변형하는 것 (195) 은 장면의 다수의 투시뷰들에 대해 반복될 수도 있다 (196). 그래픽스 이미지들이 변화하므로, 또는 이미지들의 교체 투시뷰들이 나타내어지므로, 애플리케이션 개발자는 이미지들과 연관된 그래픽스 데이터와 파티션들의 위치 사이의 관계를 지속적으로 확인할 수 있다.Display 191 of the perspective view of the graphics image (s), display 192 of partitions overlaying the graphics image (s), determining 193 which primitive triangle (s) spans across the plurality of partitions, A display 194 of a graphical representation of each determined triangle, and receiving user input via the navigation controller to modify the perspective view of the scene 195 may be repeated for multiple perspective views of the scene (196). Because the graphics images change or alternate perspective views of the images are shown, the application developer can constantly check the relationship between the graphics data associated with the images and the location of the partitions.

도 9는 일 양태에 따른 그래픽 윈도우 (203) 에서 정보를 디스플레이하기 위한 디스플레이 디바이스 (201) 에 커플링된 그래픽스 디바이스 (200) 의 예를 예시하는 개념도이다. 예컨대, 그래픽스 디바이스 (200) 가 그래픽스 디바이스 (2) (도 1) 의 일부인 경우에, 디스플레이 디바이스 (201) 는 애플리케이션 컴퓨팅 디바이스 (20) 에서의 그래픽스 디바이스 (24) 의 일부일 수도 있다. 그래픽스 디바이스 (200) 는 3D 그래픽스 이미지 (202) 를 디스플레이할 수 있다. 디스플레이 디바이스 (201) 는 그래픽스 디바이스 (200) 로부터 전송된 그래픽스 명령들 및 상태/성능 정보에 기초하여, 그래픽스 이미지 (202) 의 재생성인 3D 그래픽스 이미지 (210) 를 윈도우 (203) 내에서 디스플레이할 수 있다. 또한, 디스플레이 디바이스 (201) 는, 개발자가 이들 명령들 및 정보를 변화시켜서 그래픽스 이미지 (210) 또는 그래픽스 이미지 (210) 를 포함하는 전체 장면을 변형하도록, 이들 명령들 및 상태/성능 정보의 시각적인 표현들을 디스플레이할 수 있다. 디스플레이 디바이스 (201) 는 그래픽스 디바이스 (200) 에 커플링된 컴퓨팅 디바이스 (미도시) 의 임의의 타입 내에 포함될 수도 있고, 그래픽스 디바이스 (200) 로부터 그러한 명령들 및 상태/성능 정보를 수신할 수 있다. (간략화의 목적들을 위해, 디스플레이 디바이스 (201) 를 포함하는 컴퓨팅 디바이스는 도 10에서 도시된 개념도에서 제외되었다).9 is a conceptual diagram illustrating an example of a graphics device 200 coupled to a display device 201 for displaying information in a graphics window 203 according to an aspect. For example, if the graphics device 200 is part of the graphics device 2 (Figure 1), the display device 201 may be part of the graphics device 24 at the application computing device 20. The graphics device 200 can display the 3D graphics image 202. [ The display device 201 can display within the window 203 a 3D graphics image 210 that is playable of the graphics image 202 based on the graphics commands and status / performance information sent from the graphics device 200 have. The display device 201 may also be configured to allow the developer to modify these commands and information to modify the entire scene including the graphics image 210 or the graphics image 210, Expressions can be displayed. The display device 201 may be included in any type of computing device (not shown) coupled to the graphics device 200 and may receive such commands and status / performance information from the graphics device 200. (For purposes of simplification, the computing device including the display device 201 is excluded from the conceptual diagram shown in FIG. 10).

이전에 설명된 바와 같이, 그래픽스 디바이스 (200) 는 (도 9의 예에서 큐브인) 3D 그래픽스 이미지 (202) 를 디스플레이할 수 있다. 도 9의 예에서, 그래픽스 디바이스 (200) 는 또한 키패드 (204) 를 갖는다. 사용자는 키패드 (204) 와 상호작용하여 그래픽스 디바이스 (200) 를 조작할 수도 있다. 키패드 (204) 는 다수의 키들 및/또는 버튼들을 포함할 수도 있다. 그래픽스 디바이스 (200) 는 커넥터 (206) 를 통해 그래픽스 디바이스 (201) 를 포함하는 디바이스 (예컨대, 애플리케이션 컴퓨팅 디바이스 (20)) 에 그래픽스 명령들 및 상태/성능 정보를 전송할 수 있다. 일 양태에서, 커넥터 (206) 는 유니버설 시리얼 버스 (USB) 커넥터를 포함한다. 다른 양태들에서, 커넥터들의 상이한 형태들이 사용될 수도 있다. 몇몇 양태들에서, 무선 통신이 커넥터 (206) 를 대체할 수도 있다.As previously described, the graphics device 200 may display a 3D graphics image 202 (which is a cube in the example of FIG. 9). In the example of FIG. 9, the graphics device 200 also has a keypad 204. The user may interact with the keypad 204 to manipulate the graphics device 200. The keypad 204 may include a plurality of keys and / or buttons. The graphics device 200 can send graphics commands and status / performance information to a device (e.g., an application computing device 20) that includes the graphics device 201 via the connector 206. [ In an aspect, the connector 206 includes a universal serial bus (USB) connector. In other aspects, different types of connectors may be used. In some aspects, the wireless communication may replace the connector 206.

도 9의 예에서 도시된 바와 같이, 디스플레이 디바이스 (201) 는 그래픽 사용자 인터페이스 내에서 정보의 다양한 타입들을 디스플레이할 수도 있다. 이 예에서, 디스플레이 디바이스 (201) 는 그래픽 사용자 인터페이스 내에서 그래픽 윈도우 (203) 를 디스플레이한다. 윈도우 (203) 는 디스플레이 영역 (211), 그래픽스 명령 영역 (208), 및 상태/성능 정보 영역 (214) 을 포함한다. 디스플레이 영역 (211) 은, 이전에 설명된 바와 같이 3D 그래픽스 이미지 (202) 의 재생성인 3D 그래픽스 이미지 (210) 를 포함한다. 이 예에서, 3D 그래픽스 이미지는 큐브를 포함한다. 일 양태에 따르면, 디스플레이 디바이스 (201) 상에서 디스플레이되는 정보는 디버깅 및 테스팅의 목적들을 위해 그래픽스 디바이스 (202) 상에서 디스플레이되는 정보의 표현 또는 시뮬레이션을 포함한다.As shown in the example of FIG. 9, the display device 201 may display various types of information within the graphical user interface. In this example, the display device 201 displays the graphics window 203 within the graphical user interface. The window 203 includes a display area 211, a graphics command area 208, and a status / performance information area 214. Display area 211 includes a 3D graphics image 210 that is playable in 3D graphics image 202 as previously described. In this example, the 3D graphics image includes a cube. According to one aspect, the information displayed on the display device 201 includes a representation or simulation of the information displayed on the graphics device 202 for debugging and testing purposes.

그래픽스 명령 영역 (208) 은 그래픽스 디바이스 (200) 로부터 수신된 하나 이상의 그래픽스 명령들의 시각적인 표현을 포함한다. 이전에 설명된 바와 같이, 그러한 명령들의 시각적인 표현은 그러한 명령들의 표현을 포함할 수도 있다. 예컨대, 그래픽스 디바이스 (200) 가 이진 그래픽스 명령들을 전송하는 경우에, 디스플레이 디바이스 (201) 는, 상위-레벨 애플리케이션 프로그래밍 인터페이스 (API) 명령들 (예컨대, OpenGL 명령들) 과 같은 다른 형태로 그러한 이진 명령들의 표현을 디스플레이할 수도 있다. (도 1에서 도시된 매핑 정보 (31) 와 같은) 매핑 정보는 그래픽스 명령 영역 (208) 내에서 디스플레이될 수도 있는 다른 포맷으로 수신된 이진 명령들을 매핑하기 위해 사용될 수도 있다.The graphics command area 208 contains a visual representation of one or more graphics instructions received from the graphics device 200. As previously described, a visual representation of such instructions may include a representation of such instructions. For example, in the case where the graphics device 200 transmits binary graphics instructions, the display device 201 may display such binary instructions in other forms, such as high-level application programming interface (API) instructions (e.g., OpenGL commands) Lt; / RTI > The mapping information (such as the mapping information 31 shown in FIG. 1) may be used to map binary instructions received in a different format that may be displayed in the graphics command area 208.

상태/성능 정보 영역 (214) 은 그래픽스 디바이스 (200) 로부터 수신된 상태 및/또는 성능 정보의 시각적인 표현을 포함한다. 수신된 그래픽스 명령들 및 상태/성능 정보는 디스플레이 영역 내에서 3D 그래픽스 이미지 (210) 를 디스플레이하기 위해 사용될 수도 있다. 일 양태에서, 그래픽스 디바이스 (200) 는 (도 4에서 도시된 상태/성능 데이터 모듈 (116) 과 같은) 상태/성능 데이터 모듈을 구현하는 그래픽스 드라이버를 이용하여, 다양한 상태 및/또는 성능 데이터를 제공할 수도 있다. 수신된 상태/성능 정보는 그래픽스 데이터 (예컨대, 프리미티브 데이터 및/또는 래스터화된 데이터) 를 포함할 수도 있다.The state / performance information area 214 includes a visual representation of the status and / or performance information received from the graphics device 200. The received graphics commands and status / performance information may be used to display the 3D graphics image 210 within the display area. In an aspect, the graphics device 200 may provide various status and / or performance data using a graphics driver that implements the status / performance data module (such as the status / performance data module 116 shown in FIG. 4) You may. The received state / performance information may include graphics data (e.g., primitive data and / or rasterized data).

또한, 윈도우 (203) 는 하나 이상의 선택기들 (212A 내지 212N) 을 포함한다. 사용자는 이들 선택기들 (212A 내지 212N) 중 어느 것을 선택할 수 있다. 각각의 선택기 (212A 내지 212N) 는, 이하 더 상세히 설명될 바와 같이, 통계적 및 네비게이션 기능들과 같은 상이한 기능들과 연관될 수도 있다. 윈도우 (203) 는, 사용자에 의해 각각이 선택될 수도 있는 선택기들 (216A 내지 216N 및 218A 내지 218N) 을 더 포함한다. 또한, 각각의 선택기 (216A 내지 216N 및 218A 내지 218N) 는, 도 10을 참조하여 이하 더 상세히 설명될 바와 같이, 메트릭 기능들, 오버라이드 기능들, 및/또는 텍스쳐 기능들과 같은 상이한 기능들과 연관될 수도 있다.In addition, window 203 includes one or more selectors 212A through 212N. The user may select any of these selectors 212A through 212N. Each selector 212A through 212N may be associated with different functions, such as statistical and navigation functions, as will be described in more detail below. Window 203 further includes selectors 216A through 216N and 218A through 218N, each of which may be selected by the user. Each selector 216A through 216N and 218A through 218N may also be associated with different functions such as metric functions, override functions, and / or texture functions, as will be described in more detail below with reference to Fig. .

애플리케이션 개발자와 같은 사용자는 윈도우 (203) 내에서 디스플레이되는 정보를 변화시킬 수도 있다. 예컨대, 사용자는 그래픽스 명령 영역 (208) 내에서 디스플레이되는 명령들 중 하나 이상, 또는 상태/성능 정보 영역 (214) 내에서의 상태/성능 정보의 임의의 것을 변형할 수도 있다.A user, such as an application developer, may change the information displayed in window 203. For example, the user may modify one or more of the instructions displayed in the graphics command area 208, or any of the status / performance information in the status / performance information area 214. [

그 후, 윈도우 (203) 내에서 사용자에 의해 개시된 임의의 변화들은 요청된 변형들로서 그래픽스 디바이스 (200) 에 전송될 수도 있다. 그 후, 그래픽스 디바이스 (200) 는 이들 변형들을 프로세싱하고, 그래픽스 명령 영역 (208) 및/또는 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있는 업데이트된 명령들 및/또는 정보를 제공할 수도 있다. 또한, 업데이트된 명령들 및/또는 정보는 디스플레이 영역 (211) 내에서 3D 그래픽스 이미지 (210) 의 변형된 버전을 디스플레이하기 위해 사용될 수도 있다.Any changes initiated by the user in the window 203 may then be transmitted to the graphics device 200 as the requested variants. The graphics device 200 may then process these variants and provide updated instructions and / or information that may be displayed within the graphics command area 208 and / or the state / performance information area 214 have. In addition, updated instructions and / or information may be used to display a modified version of the 3D graphics image 210 within the display area 211. [

일 양태에서, 영역 (214) 내에서 디스플레이될 수도 있는 상태 및/또는 성능 정보는, 그래픽스 디바이스 (200) 상에서의 그래픽스 명령들의 실행 동안에 가능한 병목현상들을 식별하기 위해, (도 1에서 도시된 애플리케이션 컴퓨팅 디바이스 (20) 와 같은) 디스플레이 디바이스 (201) 를 포함하는 컴퓨팅 디바이스에 의해 분석될 수도 있다. 결국, 애플리케이션 개발자와 같은 사용자는, 그래픽스 디바이스 (200) 상에서의 그래픽스 명령들의 실행을 최적화하기 위해, 디버깅 프로세스 동안에 윈도우 (203) 에서 제시되는 정보를 뷰잉하기를 원할 수도 있다. 이전에 설명된 바와 같이, 병목현상들은 그래픽스 디바이스 (200) 에서의 그래픽스 프로세싱 파이프라인 내의 임의의 곳에서 도입될 수도 있고, 애플리케이션 개발자가 성능 최적화를 위해 그러한 병목현상들을 분리시키는 것은 어려울 수도 있다. 상태 및/또는 성능 정보의 분석을 통해, 가능한 병목현상들 및 가능한 대안들이, 윈도우 (203) 에서, 예컨대 하나 이상의 서브-윈도우들 또는 팝-업 윈도우들 내에서 또는 윈도우 (203) 의 영역 (214) 내에서 디스플레이될 수 있다.In one aspect, state and / or performance information, which may be displayed in area 214, may be used to identify bottlenecks possible during execution of graphics instructions on graphics device 200 (such as application computing May be analyzed by a computing device comprising a display device 201 (e.g., device 20). As a result, a user, such as an application developer, may want to view the information presented in the window 203 during the debugging process to optimize the execution of graphics instructions on the graphics device 200. As previously described, bottlenecks may be introduced anywhere within the graphics processing pipeline in graphics device 200, and it may be difficult for an application developer to isolate such bottlenecks for performance optimization. Through analysis of the state and / or performance information, possible bottlenecks and possible alternatives are determined in the window 203, for example in one or more sub-windows or pop-up windows, or in the area 214 of the window 203 ≪ / RTI >

일 양태에서, 윈도우 (203) 는 그래픽스 디바이스 (200) 로부터 수신된 그래픽스 명령들의 호출 스트림에서 조우된 병목현상들에 대한 리포트를 디스플레이할 수도 있고, 또한, 가능한 대안들을 디스플레이할 수도 있다. 몇몇 경우들에서, 이들 가능한 대안들은 "가정 (what-if)" 시나리오들로서 사용자에게 제시될 수도 있다. 예컨대, 호출 스트림에서 비-최적화된 삼각형-리스트를 렌더링하는 것이 하나의 가능한 시나리오로서 제시될 수도 있는 한편, 삼각형-스트립 최적화 프레임워크를 통해 그 리스트를 프리-프로세싱하는 것이 제 2의 가능한 시나리오로서 제시될 수도 있다. 사용자는 이들 가능한 대안 시나리오들 중 임의의 것을 요청된 변형들로서 선택할 수도 있고, 그 후, 요청된 변형들은 그래픽스 디바이스 (200) 에 송신되며, 그래픽스 디바이스 (200) 에서 성능이 측정될 수도 있다. 그 후, 그래픽스 디바이스 (200) 는, 그래픽스 명령 영역 (208) 및/또는 상태/성능 정보 영역 (214) 내에서 제시될 수도 있는 업데이트된 명령들/정보를 전송한다. 그 후, 사용자는 결과들을 뷰잉하고, 다양한 상이한 가능한 대안들에 대한 결과들을 비교하여 최적의 솔루션을 식별할 수 있다. 사용자는 이 프로세스를 사용하여, 이들의 애플리케이션으로부터 병목현상들을 제거하기 위해 취해질 수 있는 일련의 단계들을 신속하게 식별할 수 있다.In one aspect, the window 203 may display a report of encountered bottlenecks in the call stream of graphics commands received from the graphics device 200, and may also display possible alternatives. In some cases, these possible alternatives may be presented to the user as "what-if" scenarios. For example, rendering a non-optimized triangle-list in the call stream may be presented as one possible scenario, while pre-processing the list through a triangle-strip optimization framework is presented as a second possible scenario . The user may select any of these possible alternative scenarios as the requested variants and then the requested variants are transmitted to the graphics device 200 and the performance may be measured at the graphics device 200. [ The graphics device 200 then sends updated instructions / information that may be presented in the graphics command area 208 and / or the state / performance information area 214. The user can then view the results and compare the results for a variety of different possible alternatives to identify the optimal solution. The user can use this process to quickly identify a set of steps that can be taken to remove bottlenecks from their applications.

사용자는 시험 또는 트라이얼/에러 디버깅의 목적들을 위해 윈도우 (203) 내에서 조정들을 행하는 것을 반복적으로 계속할 수도 있다. 사용자는 그래픽스 명령들 및 상태/성능 정보의 다양한 상이한 형태들 또는 결합들로 시험하여, 디스플레이 영역 (211) 내에서 디스플레이되는 이미지들 또는 장면들에서 변화들을 식별할 수도 있다. 사용자는 윈도우 (203) 의 컨텐츠에 의해 제공되는 시뮬레이션 환경을 사용하여, 그래픽스 디바이스 (200) 상에서 임의의 소스 코드를 재컴파일하고 컴파일된 코드를 재실행할 필요 없이 그래픽스 디바이스 (200) 에 의해 제공되는 상태들 및 호출 스트림의 일부일 수도 있는 그래픽스 명령들을 상호작용적으로 뷰잉하고 변형할 수 있다.The user may repeatedly continue to make adjustments within the window 203 for purposes of testing or trial / error debugging. The user may examine a variety of different forms or combinations of graphics commands and state / performance information to identify changes in the images or scenes being displayed within the display area 211. The user can use the simulation environment provided by the contents of the window 203 to recompile any source code on the graphics device 200 and use the state provided by the graphics device 200 without having to redo the compiled code And graphics commands that may be part of the call stream.

몇몇 경우들에서, 사용자는 버튼들 (212A 내지 212N) 중 하나 이상을 조작하여, 그래픽 카메라와 같은 그래픽 네비게이션 제어기를 조작함으로써, 그래픽스 이미지 (210) 의 투시뷰를 변형할 수도 있다. 그러한 조작은, 그래픽스 디바이스 (200) 에 전송되는 요청된 변형들로서 캡쳐링될 수도 있다. 그 후, 그래픽스 디바이스 (200) 에 의해 제공된 업데이트된 명령들/정보는 그래픽스 이미지 (210) 의 투시뷰를 변형하기 위해 사용된다.In some instances, the user may manipulate one or more of the buttons 212A through 212N to manipulate the perspective view of the graphics image 210 by manipulating a graphical navigation controller, such as a graphics camera. Such an operation may be captured as the requested variants to be transmitted to the graphics device 200. The updated instructions / information provided by the graphics device 200 are then used to transform the perspective view of the graphics image 210.

몇몇 경우들에서, 다양한 텍스쳐 및/또는 상태 정보가 변형가능한 엔티티들로서 윈도우 (203) 의 영역 (214) 에서 제공될 수도 있다. 또한, 예컨대, 사용자는, 그래픽스 명령 영역 (208) 내에서의 하나 이상의 대응하는 명령들이 식별되도록, 디스플레이 영역 (211) 내에서의 그래픽스 이미지 (210) 의 픽셀을 선택할 수도 있다. 이러한 방식으로, 사용자는, 그래픽스 이미지 (210) 의 픽셀 또는 다른 부분들을 렌더링하거나 또는 생성하기 위해 사용되었던 렌더링 명령 또는 호출로 효과적으로 역방향으로 반복연습할 수 있다. 그래픽스 디바이스 (201) 가 정확히 그래픽스 디바이스 (200) 상에서 제시된 것과 같이 윈도우 (203) 에서 이미지 (210) 를 재생성할 수도 있기 때문에, 사용자는 이들의 애플리케이션에서 이슈들을 신속하게 분리시키고 (이는 그래픽스 명령 영역 (208) 에서 디스플레이된 다양한 그래픽스 명령들에 기초할 수도 있다), 상태/성능 영역 (214) 내의 임의의 상태들을 변형하여 새로운 효과들의 원형을 만들 수 있다.In some cases, various texture and / or status information may be provided in the area 214 of the window 203 as deformable entities. Also, for example, the user may select pixels of the graphics image 210 within the display area 211, such that one or more corresponding instructions within the graphics command area 208 are identified. In this manner, the user can effectively re-practice reverse in the rendering command or call that was used to render or create pixels or other portions of the graphics image 210. Because the graphics device 201 may regenerate the image 210 in the window 203 as exactly shown on the graphics device 200, the user can quickly isolate the issues in these applications 208), and may modify any of the states in the state / performance area 214 to create a prototype of new effects.

일 양태에서, 또한, 디스플레이 디바이스 (201) 는 파티셔닝 정보, 뿐만 아니라 다수의 파티션들에 걸쳐 스팬할 수도 있는 폴리곤 데이터를 디스플레이할 수 있다. 예컨대, 애플리케이션 개발자는 버튼들 (212A 내지 212N) 중 하나와 같은 버튼을 선택하여, 디스플레이 디바이스 (201) 로 하여금, 이미지 (210) 를 오버레이하고 디스플레이 영역 (211) 에서 장면을 도식적으로 분할하는 파티션들의 그래픽 표현 (예컨대, 사각형 파티션들) 을 디스플레이하게 할 수도 있다. 몇몇 경우들에서, 디바이스 (200) 가 그래픽스 디바이스 (2) 의 일부인 경우에, 디스플레이된 파티션들은 수신된 매핑/파티셔닝 정보 (33) (도 1) 에 기초할 수도 있다. 또한, 디스플레이 디바이스 (201) 를 포함하는 디바이스는 그래픽스 이미지 (210) 에 대한 그래픽스 데이터 (예컨대, 폴리곤 데이터) 를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 예컨대, 다수의 폴리곤들이 그래픽스 이미지 (210) 를 렌더링하기 위해 사용되었던 경우에, 디바이스는 폴리곤들을 분석하여, 이들 폴리곤들 중 어떤 폴리곤들이 다수의 파티션들에 걸쳐 스팬하는지를 결정할 수도 있다.In one aspect, the display device 201 may also display partitioning information, as well as polygon data that may span across multiple partitions. For example, the application developer may select a button, such as one of the buttons 212A through 212N, to cause the display device 201 to display the partitions that overlay the image 210 and graphically partition the scene in the display area 211 To display a graphical representation (e.g., rectangular partitions). In some cases, if the device 200 is part of the graphics device 2, the displayed partitions may be based on the received mapping / partitioning information 33 (FIG. 1). The device including the display device 201 may also analyze the graphics data (e.g., polygon data) for the graphics image 210 to determine which portions of the graphics data are associated with multiple of the partitions have. For example, if a number of polygons were used to render the graphics image 210, the device may analyze the polygons to determine which of the polygons spans across the plurality of partitions.

도 10은 일 양태에 따른 그래픽 윈도우 (220) 내에서 정보를 디스플레이하는 디스플레이 디바이스 (201) 에 커플링된 그래픽스 디바이스 (200) 의 다른 예를 예시하는 개념도이다. 이 양태에서, 윈도우 (220) 는 다양한 명령 정보 뿐만 아니라 메트릭 정보를 포함한다.10 is a conceptual diagram illustrating another example of a graphics device 200 coupled to a display device 201 that displays information within a graphics window 220 according to an aspect. In this aspect, window 220 includes metric information as well as various command information.

예컨대, 그래픽스 명령 영역 (208) 내에서, 다양한 그래픽스 명령들 (242) 이 도시된다. 그래픽스 명령들 (242) 은 그래픽스 디바이스 (200) 에 의해 제공되는 그래픽스 명령들의 서브세트일 수도 있다. 예컨대, 그래픽스 디바이스 (200) 가 그래픽스 디바이스 (2) 의 일부인 경우에, 그래픽스 명령들 (242) 은 그래픽스 명령들 (30) 의 서브세트일 수도 있다. 몇몇 경우들에서, (도 1에서 도시된 매핑 정보 (31) 와 같은) 매핑 정보는, 그래픽스 디바이스 (200) 로부터 수신된 인입 명령들을, 그래픽스 명령 영역 (208) 내에서 디스플레이되는 명령들 (242) 로서 구체화된 이들 명령들의 시각적인 표현으로 매핑하기 위해 사용될 수도 있다. 예컨대, 수신된 명령들이 이진 형태인 경우에, 명령들 (242) 은 이진 형태로 명령들을 생성하기 위해 사용되었던 API 명령들을 포함할 수도 있다.For example, within graphics command area 208, various graphics commands 242 are shown. The graphics instructions 242 may be a subset of the graphics instructions provided by the graphics device 200. For example, if the graphics device 200 is part of the graphics device 2, the graphics instructions 242 may be a subset of the graphics instructions 30. In some cases, the mapping information (such as the mapping information 31 shown in FIG. 1) may include incoming instructions received from the graphics device 200, instructions 242 being displayed in the graphics command area 208, Lt; / RTI > may be used to map to a visual representation of these instructions embodied as < RTI ID = 0.0 > For example, if the received instructions are in binary form, instructions 242 may include API instructions that were used to generate instructions in binary form.

도 10의 예에서 도시된 바와 같이, 그래픽스 명령들 (242) 은 고-레벨 명령들 및 저-레벨 명령들 양자 모두를 포함한다. 애플리케이션 개발자와 같은 사용자는 스크롤바 (244) 를 사용하여 명령들 (242) 의 풀-세트를 뷰잉할 수도 있다. 특정 고-레벨 명령들은 하위-레벨 API 명령들과 같은 하나 이상의 저-레벨 명령들을 포함할 수도 있다. 몇몇 경우들에서, 애플리케이션 개발자는, 연관된 고-레벨 명령의 일부이거나 또는 그 연관된 고-레벨 명령에 의해 실행되는 임의의 저-레벨 명령들을 뷰잉하기 위해, 특정한 고-레벨 명령을 (예컨대, 클릭함으로써) 선택할 수도 있다. 이전에 설명된 바와 같이, 명령들 (242) 과 같은 수신된 그래픽스 명령들은, 윈도우 (220) 의 디스플레이 영역 (211) 에서 나타내어진 그래픽스 이미지 (210) 를 포함하는 그래픽스 이미지 (202) 의 표현을 생성하기 위해 사용된다.As shown in the example of FIG. 10, graphics instructions 242 include both high-level commands and low-level commands. A user, such as an application developer, may use the scroll bar 244 to view a full set of commands 242. Certain high-level instructions may include one or more low-level instructions, such as low-level API instructions. In some cases, an application developer may be able to access a particular high-level instruction (e.g., by clicking on a particular high-level instruction) to view any low-level instructions that are part of an associated high- ). The received graphics instructions such as instructions 242 may be used to generate a representation of the graphics image 202 that includes the graphics image 210 represented in the display area 211 of the window 220, Lt; / RTI >

다양한 선택 버튼들이 도 10에서의 상태/성능 정보 영역 (214) 아래에 도시된다. 이들 선택 버튼들은 텍스쳐 버튼 (236), 오버라이드 버튼 (238), 및 메트릭 버튼 (240) 을 포함한다. 도 10의 예에서, 애플리케이션 개발자는 메트릭 버튼 (240) 을 선택하였다. 이 버튼의 선택 시에, 다양한 메트릭 옵션들이 디스플레이될 수도 있다. 예컨대, 하나 이상의 메트릭 버튼들 (234A 내지 234N) 이 상태/성능 영역 (214) 위에서 디스플레이될 수도 있다. 각각의 메트릭 버튼 (234A 내지 234N) 은 특정한 메트릭과 연관될 수도 있다. 몇몇 경우들에서, 이들 메트릭들 중 하나 이상은 미리 정의되거나 또는 미리 구성된 메트릭 타입들일 수도 있고, 몇몇 경우들에서, 애플리케이션 개발자는 메트릭들 중 하나 이상을 선택하거나 또는 커스터마이징할 수도 있다. 예시적인 메트릭들은, 에컨대, 다음 중 임의의 하나 이상을 포함할 수도 있으며: 이들은 초당 프레임, (하나 이상의 프로세서들에 대한) % 비지, 버스 비지, 메모리 비지, 버텍스 비지, 초당 버텍스, 초당 삼각형, 초당 픽셀 클럭, 초당 프래그먼트 등이다. 애플리케이션 개발자는 메트릭 버튼들 (234A 내지 234N) 중 임의의 것을 선택하여, 선택된 메트릭들에 관한 추가적인 세부사항들을 뷰잉할 수도 있다.Various selection buttons are shown below the status / performance information area 214 in FIG. These select buttons include a texture button 236, an override button 238, and a metric button 240. In the example of FIG. 10, the application developer has selected the metric button 240. Upon selection of this button, various metric options may be displayed. For example, one or more of the metric buttons 234A-234N may be displayed on the status / performance area 214. Each metric button 234A-234N may be associated with a particular metric. In some cases, one or more of these metrics may be predefined or preconfigured metric types, and in some cases, an application developer may select or customize one or more of the metrics. Exemplary metrics may include any one or more of the following: frames per second,% busy (for one or more processors), bus busy, memory busy, vertex busy, vertex per second, triangle per second, Pixel clock per second, and fragments per second. The application developer may select any of the metric buttons 234A-234N to view additional details about the selected metrics.

예컨대, 메트릭 버튼 (234A) 이 초당 프레임들의 수와 연관되는 경우에, 애플리케이션 개발자는 메트릭 버튼 (234A) 을 선택하여, 그래픽스 이미지 (210) 에 대한 (성능에 관련된) 초당 프레임들의 수에 대한 추가적인 세부사항들을 뷰잉하거나, 또는 그래픽스 이미지 (210) 의 부분들을 선택할 수도 있다. 몇몇 경우들에서, 개발자는 메트릭 버튼 (234A) 을 선택하거나, 또는 메트릭 버튼 (234A) 을 상태/성능 정보 영역 (214) 으로 드래그할 수도 있다. 초당 프레임들의 수에 대한 상세한 정보는 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있다. 또한, 개발자는 메트릭 버튼 (234A) 을 디스플레이 영역 (211) 으로 드래그하거나, 또는 메트릭 버튼 (234A) 의 애플리케이션에 대한 그래픽스 이미지 (210) 의 부분을 선택할 수도 있다. 예컨대, 개발자는 메트릭 버튼 (234A) 을 선택한 후에 그래픽스 이미지 (210) 의 부분을 선택할 수도 있고, 그 후, 선택된 부분에 대한 초당 프레임들의 수에 대한 상세한 정보가 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있다. 그러한 방식으로, 개발자는 메트릭 버튼들 (234A 내지 234N) 중 하나 이상의 선택, 및 그래픽스 이미지 (210) (또는 그 일부) 의 가능한 선택에 기초하여, 임의의 수의 상이한 메트릭 타입들에 대한 성능 데이터를 뷰잉할 수도 있다.For example, if the metric button 234A is associated with a number of frames per second, the application developer may select the metric button 234A to provide additional details about the number of frames per second (relative to performance) for the graphics image 210 View portions of the graphics image 210, or portions of the graphics image 210. In some cases, the developer may select the metric button 234A, or may drag the metric button 234A into the status / performance information area 214. [ Detailed information about the number of frames per second may be displayed within the state / performance information area 214. [ The developer may also drag the metric button 234A to the display area 211 or select a portion of the graphics image 210 for the application of the metric button 234A. For example, the developer may select a portion of the graphics image 210 after selecting the metric button 234A, and then the detailed information about the number of frames per second for the selected portion is stored in the state / performance information area 214 May be displayed. In such a manner, the developer may generate performance data for any number of different metric types based on the selection of one or more of the metric buttons 234A-234N and the possible selection of the graphics image 210 (or portion thereof) You can also view it.

일 양태에서, 윈도우 (220) 내에서 디스플레이될 수도 있는 메트릭 데이터가 그래픽스 디바이스 (200) 의 그래픽스 드라이버 (예컨대, 도 4에서 도시된 그래픽스 드라이버 (18)) 에 의해 제공될 수도 있다. 그래픽스 드라이버는 하드웨어 카운터 모듈 (예컨대, 도 4의 하드웨어 카운터 모듈 (114)) 및/또는 프로세서 사용 모듈 (예컨대, 도 4의 프로세서 사용 모듈 (112)) 을 구현하여, 윈도우 (220) 내에서 메트릭 데이터로서 디스플레이될 수도 있는 다양한 데이터를 제공할 수도 있다.In one aspect, metric data that may be displayed in window 220 may be provided by a graphics driver (e.g., graphics driver 18 shown in FIG. 4) of graphics device 200. The graphics driver may implement the hardware counter module (e.g., the hardware counter module 114 of FIG. 4) and / or the processor usage module (e.g., the processor usage module 112 of FIG. 4) And may provide various data that may be displayed as < RTI ID = 0.0 >

몇몇 경우들에서, 개발자는 텍스쳐 버튼 (236) 을 선택할 수도 있다. 선택 시에, 그래픽스 이미지 (210) 에 관련된 텍스쳐 정보의 다양한 형태들이 그래픽스 디바이스 (201) 에 의해 디스플레이될 수도 있다. 예컨대, 텍스쳐 정보는, 윈도우 (220) 내에서, 예컨대 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있다. 몇몇 경우들에서, 텍스쳐 정보는 추가적인 (예컨대, 팝-업) 윈도우 (미도시) 내에서 디스플레이될 수도 있다. 개발자는 디스플레이된 텍스쳐 정보를 뷰잉할 수도 있지만, 몇몇 경우들에서, 텍스쳐 정보를 또한 변형할 수도 있다. 이들 경우들에서, 텍스쳐 정보에 대한 임의의 변형들은 요청된 변형들로서 그래픽스 디바이스 (200) 로 전파될 수도 있다. 그래픽스 디바이스 (200) 로부터의 업데이트된 명령들/정보의 수신 시에, 그래픽스 이미지들 (210) 에 대한 변화들이 디스플레이 영역 (211) 내에서 디스플레이될 수도 있다. 도 11은 텍스쳐 버튼 (236) 의 선택 시에 디스플레이될 수도 있는 특정 텍스쳐 정보를 포함한다.In some cases, the developer may select the texture button 236. Various types of texture information associated with the graphics image 210 may be displayed by the graphics device 201 when selected. For example, the texture information may be displayed within the window 220, e.g., in the state / performance information area 214. In some cases, the texture information may be displayed within an additional (e.g., pop-up) window (not shown). The developer may view the displayed texture information, but in some cases, the texture information may also be modified. In these cases, any modifications to the texture information may be propagated to the graphics device 200 as the requested variants. Upon receiving updated instructions / information from the graphics device 200, changes to the graphics images 210 may be displayed in the display area 211. FIG. 11 includes specific texture information that may be displayed upon selection of the texture button 236. FIG.

몇몇 경우들에서, 또한, 개발자는 오버라이드 버튼 (238) 을 선택할 수도 있다. 오버라이드 버튼 (238) 의 선택 후에, 개발자에 의해 변형되거나 또는 오버라이드될 수도 있는, 명령 및/또는 상태 정보와 같은 특정 정보가 (예컨대, 윈도우 (220) 또는 다른 윈도우 내에서) 디스플레이될 수도 있다. 임의의 변형들 또는 오버라이드들이 그래픽스 디바이스 (200) 에 전송되는 하나 이상의 요청된 변형들 내에 포함될 수도 있다. 일 양태에서, 그래픽스 디바이스 (200) 는 그래픽스 드라이버 (18A) (도 4) 와 같은 그래픽스 드라이버를 구현하여 임의의 요청된 변형들을 프로세싱할 수도 있다. 예컨대, 그래픽스 디바이스 (200) 는 오버라이드 모듈 (120) 을 사용하여, 하나 이상의 오버라이드들을 포함하는 그러한 요청된 변형들을 프로세싱할 수도 있다.In some cases, the developer may also select an override button 238. [ After selection of the override button 238, specific information such as instructions and / or status information, which may be modified or overridden by the developer, may be displayed (e.g., within the window 220 or other window). Any variations or overrides may be included in one or more requested variations sent to the graphics device 200. [ In an aspect, the graphics device 200 may implement a graphics driver such as the graphics driver 18A (FIG. 4) to process any requested variations. For example, the graphics device 200 may use the override module 120 to process such requested modifications, including one or more overrides.

몇몇 경우들에서, 개발자는 그래픽스 명령 영역 (208) 내에서 나타내어진 하나 이상의 그래픽스 명령들 (242) 을 오버라이드할 수도 있다. 이들 경우들에서, 개발자는 그래픽스 명령 영역 (208) 내에서 정보를 타이핑하거나 또는 그렇지 않은 경우에 입력하여, 그래픽스 명령들 (242) 중 하나 이상을 변형하거나 또는 오버라이드할 수도 있다. 그 후, 이들 변형들은 그래픽스 디바이스 (200) 에 전송될 수도 있고, 그래픽스 디바이스 (200) 는 업데이트된 명령들/정보를 제공하여, 디스플레이 영역 (211) 내에서 그래픽스 이미지 (210) 의 디스플레이를 업데이트할 것이다. 예컨대, 개발자는 그래픽스 명령들 (242) 의 파라미터들, 순서, 타입 등을 변화시켜서, 명령들 (242) 에 의해 제공된 하나 이상의 기능들을 오버라이드할 수도 있다. 일 양태에서, 매핑 정보 (31) (도 1) 는, 그래픽스 명령들 (242) 에 대한 변화들을 그래픽스 디바이스 (200) 에 제공될 수도 있는 다른 포맷의 대응하는 명령들 (예컨대, 이진 명령들) 로 매핑 또는 컨버팅하기 위해 사용될 수도 있다.In some cases, the developer may override one or more graphics instructions 242 represented in the graphics command area 208. [ In these cases, the developer may modify or override one or more of the graphics instructions 242 by typing or otherwise entering information within the graphics command area 208. [ These variants may then be transmitted to the graphics device 200 and the graphics device 200 may provide updated instructions / information to update the display of the graphics image 210 within the display area 211 will be. For example, the developer may override one or more functions provided by the instructions 242, changing the parameters, order, type, etc. of the graphics instructions 242. In one aspect, the mapping information 31 (Figure 1) may be used to map changes to graphics instructions 242 to corresponding instructions (e.g., binary instructions) in other formats that may be provided to the graphics device 200 Mapping, or converting.

몇몇 경우들에서, 또한, 개발자는 오버라이드 버튼 (238) 을 선택하여, 그래픽스 디바이스 (200) 에 의해 구현된 프로세싱 파이프라인과 연관된 하나 이상의 기능들을 오버라이드할 수도 있다. 도 12는 오버라이드 버튼 (238) 의 선택 시에 개발자에게 디스플레이될 수도 있는 오버라이드 스크린의 예를 도시한다.In some cases, the developer may also select the override button 238 to override one or more functions associated with the processing pipeline implemented by the graphics device 200. Figure 12 shows an example of an override screen that may be displayed to the developer upon selection of the override button 238. [

윈도우 (220) 는 선택 버튼들 (231 및 232) 을 더 포함한다. 선택 버튼 (231) 은 파티션 버튼이고, 선택 버튼 (232) 은 네비게이션 버튼이다. 개발자는 파티션 버튼 (231) 을 선택하여, 그래픽스 이미지 (210) 를 오버레이하고 디스플레이 영역 (211) 에서 디스플레이되는 장면을 도식적으로 분할하는 사각형 파티션들과 같은 파티션들의 그래픽 표현을 뷰잉할 수도 있다. 파티션 버튼 (231) 의 사용자 선택 시에, 그래픽 파티션들이 디스플레이 영역 (211) 에서 디스플레이될 수도 있다.The window 220 further includes select buttons 231 and 232. [ The select button 231 is a partition button, and the select button 232 is a navigation button. The developer may select the partition button 231 to view a graphical representation of partitions such as rectangular partitions that overlay the graphics image 210 and graphically divide the scene being displayed in the display area 211. [ Upon user selection of the partition button 231, graphic partitions may be displayed in the display area 211.

또한, 디스플레이 영역 (211), 또는 개별적인 디스플레이 영역 또는 윈도우는, 데이터의 어떤 부분들이 다수의 파티션들과 연관되는지를 결정하는 그래픽스 이미지 (210) 에 대한 그래픽스 데이터의 분석에 기초하여, 정보를 디스플레이할 수도 있다. 예컨대, 디스플레이 영역 (211), 또는 개별적인 디스플레이 영역 또는 윈도우는, 파티션들의 그래픽 표현과 함께, 그래픽스 이미지 (210) 를 렌더링하기 위해 사용된 어떤 폴리곤들이 다수의 파티션들에 걸쳐 스팬하는지를 디스플레이할 수도 있다. 몇몇 경우들에서, 컬러와 같은 그래픽 표시가 다수의 파티션들에 걸쳐 스팬하는 각각의 폴리곤 (예컨대, 삼각형) 에 대해 디스플레이될 수도 있다.In addition, the display area 211, or an individual display area or window, may display information based on an analysis of the graphics data for the graphics image 210 that determines which portions of the data are associated with the plurality of partitions It is possible. For example, the display area 211, or an individual display area or window, may display, along with a graphical representation of the partitions, which polygons used to render the graphics image 210 span across the plurality of partitions. In some cases, a graphical display such as color may be displayed for each polygon spanning across multiple partitions (e.g., a triangle).

예컨대, 일 양태에서, 각각의 삼각형이 특정한 컬러로 디스플레이되는 "히트 맵" 이 디스플레이될 수도 있다. 다수의 파티션들에 걸쳐 스팬하지 않는 삼각형들은 하나의 컬러 (예컨대, 블루) 로 디스플레이될 수도 있다. 다수의 파티션들 (예컨대, 2 개 및 3 개의 파티션들) 에 걸쳐 스팬하는 삼각형들은 제 2 컬러 (예컨대, 퍼플) 로 디스플레이될 수도 있다. 3 개보다 더 많은 파티션들에 걸쳐 스팬하는 삼각형들은 제 3 컬러 (예컨대, 레드) 로 두드러지게 디스플레이될 수도 있다. 따라서, 이 예에서, 애플리케이션 개발자는 어떤 삼각형들이 다수의 파티션들에 걸쳐 스팬하는지, 그리고 어떤 삼각형들이 다른 삼각형들보다 더 많은 파티션들에 걸쳐 스팬하는지를 신속하게 결정할 수 있다. 개발자는 이 정보를 사용하여, 다수의 파티션들에 걸쳐 스팬하는 삼각형들을 어떻게 재구성하거나, 재정의하거나, 또는 그렇지 않은 경우에 재구축할지를 결정함으로써, 그래픽스 이미지 (210) 를 생성하는 경우에 성능 (예컨대, 렌더링) 오버헤드를 감소시키는 것이 가능할 수도 있다.For example, in an aspect, a "heat map" may be displayed in which each triangle is displayed in a particular color. Triangles that do not span across multiple partitions may be displayed in one color (e.g., blue). Triangles spanning across multiple partitions (e.g., two and three partitions) may be displayed in a second color (e.g., purple). Triangles spanning across more than three partitions may be displayed prominently with a third color (e.g., red). Thus, in this example, an application developer can quickly determine which triangles span across multiple partitions, and which triangles span more partitions than other triangles. The developer may use this information to determine the performance (e. G., The performance of the graphics image 210) when creating the graphics image 210 by determining how to reconstruct, redefine, or otherwise rebuild the triangles spanning across multiple partitions. Rendering) overhead.

또한, 개발자는 네비게이션 버튼 (232) 을 선택하여, 디스플레이 영역 (211) 내에서 네비게이팅하고, 가능하게는, 디스플레이 영역 (211) 내에서 그래픽스 이미지 (210) 의 투시뷰를 변화시킬 수도 있다. 예컨대, 네비게이션 버튼 (232) 의 선택 시에, 3D 그래픽 카메라 또는 네비게이션 제어기가 디스플레이될 수도 있다. 개발자는 제어기와 상호작용하여, 디스플레이 영역 (211) 내에서의 임의의 영역으로 네비게이팅할 수도 있다. 또한, 개발자는 제어기를 사용하여, 예컨대 그래픽스 이미지 (210) 를 회전시키거나 줌인/아웃함으로써, 그래픽스 이미지 (210) 의 투시뷰를 변화시킬 수도 있다.The developer may also select the navigation button 232 to navigate within the display area 211 and possibly change the perspective view of the graphics image 210 within the display area 211. [ For example, at the time of selection of the navigation button 232, a 3D graphic camera or a navigation controller may be displayed. The developer may interact with the controller to navigate to any area within the display area 211. The developer may also use the controller to change the perspective view of the graphics image 210, e.g., by rotating or zooming in or out of the graphics image 210.

일 양태에서, 네비게이션 버튼 (232) 의 선택 및 그래픽 네비게이션 제어기와의 상호작용을 통한 임의의 개발자-개시된 변화들은 요청된 변형들 (예컨대, 도 1에서 도시된 요청된 변형들 (84) 의 일부) 로서 그래픽스 디바이스 (200) 로 전파될 수도 있다. 그 후, 그래픽스 디바이스 (200) 에 의해 제공된 업데이트된 명령들/정보는 그래픽스 이미지 (210) 의 디스플레이 (예컨대, 투시뷰) 를 업데이트하기 위해 사용될 수도 있다. 또한, 업데이트된 명령들은 그래픽스 명령 영역 (208) 내에서 디스플레이될 수도 있다. 업데이트된 상태/성능 정보는 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있다.In one aspect, the selection of the navigation button 232 and any developer-initiated changes through interaction with the graphical navigation controller may cause the requested modifications (e.g., some of the requested variants 84 shown in Figure 1) To the graphics device 200 as shown in FIG. The updated instructions / information provided by the graphics device 200 may then be used to update the display (e.g., perspective view) of the graphics image 210. In addition, the updated instructions may be displayed within the graphics command area 208. The updated state / performance information may be displayed in the state / performance information area 214.

일 양태에서, 그래픽 파티션들이 디스플레이되고 그래픽스 이미지 (210) 의 변형된 투시뷰 위에 오버레이될 수도 있다. 또한, 그래픽스 이미지 (210) 의 변형된 투시뷰에 대한 업데이트된 명령들/정보 내에 포함된 그래픽스 데이터는, 데이터의 어떤 부분들이 다수의 파티션들과 연관되는지를 결정하기 위해 분석될 수도 있다.In one aspect, the graphics partitions may be displayed and overlaid on a modified perspective view of the graphics image 210. Further, the graphics data contained in the updated instructions / information for the modified perspective view of the graphics image 210 may be analyzed to determine which portions of the data are associated with multiple partitions.

결과로서, 개발자는, 그래픽스 이미지 (210) 를 렌더링하고 디스플레이하기 위한 교체 시점들, 배향들, 뷰들 등이 그래픽스 디바이스 (200) 의 성능 및 상태에 어떻게 영향을 미칠 수도 있는지를 효과적이고 효율적으로 결정할 수도 있다. 이는, 디스플레이 디바이스 (201) 상에서 디스플레이되는 시뮬레이션 환경에서 그래픽스 이미지 (210), 그리고 효과적으로, 그래픽스 디바이스 (200) 상에서 디스플레이되는 그래픽스 이미지 (202) 를 생성하고 렌더링하기 위해 사용되는 그래픽스 명령들 (242) 을 최적화하는데 있어서 개발자에게 매우 유용할 수도 있다. 일 양태에서, 윈도우 (220) 내에서의 개발자-개시된 선택들 및 제어들에 기초한, 그래픽스 이미지 (210) 의 위치, 시점, 배향 등에서의 임의의 변화들이 또한, 테스팅 프로세스 동안에 그래픽스 디바이스 (200) 상에서 디스플레이될 수도 있는 그래픽스 이미지 (202) 에 대한 변화들로서 나타내어질 수도 있다.As a result, the developer can effectively and efficiently determine how replacement points, orientations, views, etc., for rendering and displaying the graphics image 210 may affect the performance and state of the graphics device 200 have. This is accomplished by using graphics instructions 210 that are used to create and render a graphics image 202 that is displayed on a graphics device 210 and effectively on a graphics device 210 in a simulation environment displayed on a display device 201 It can be very useful for developers to optimize. In one aspect, any changes in the location, viewpoint, orientation, etc. of the graphics image 210 based on developer-initiated selections and controls within the window 220 may also be performed on the graphics device 200 during the testing process And may be represented as changes to the graphics image 202 that may be displayed.

그래픽 사용자 인터페이스 내에서의 그래픽 윈도우 (220) 와의 상호작용을 통해, 애플리케이션 개발자는, 그래픽스 이미지 (202) 를 생성하기 위해 그래픽스 디바이스 (200) 에 의해 실행되는 그래픽스 명령들의 시각적인 표현인 그래픽스 명령들 (242) 의 실행 동안에 성능 이슈들 및/또는 병목현상들을 식별하기 위해 시도할 수 있다. 그래픽스 이미지 (202) (즉, 그래픽스 이미지 (210)) 의 표현은 그래픽스 디바이스 (200) 에 의해 수신된 그래픽스 명령들 (242) 및 상태/성능 데이터에 기초하여, 디스플레이 영역 (211) 내에서 디스플레이된다. 그래픽스 명령들 (242), 그래픽스 이미지 (210) 및 상태/성능 정보, 뿐만 아니라 이들 중 하나 이상에 대한 사용자-개시된 변형들에 기초한 효과들을 뷰잉함으로써, 애플리케이션 개발자는 트라이얼-및-에러 또는 디버깅 프로세스에 상호작용적이고 동적으로 관여하여, 그래픽스 디바이스 (200) 상에서의 명령들의 실행을 최적화하고, 명령 실행 동안의 임의의 성능 이슈들 (예컨대, 병목현상들) 을 제거하거나 또는 완화할 수 있다.Through interaction with the graphics window 220 within the graphical user interface, the application developer can generate graphics instructions (e.g., graphics commands) that are visual representations of graphics instructions executed by the graphics device 200 to create the graphics images 202 242 may be attempted to identify performance issues and / or bottlenecks during execution. The representation of the graphics image 202 (i.e., the graphics image 210) is displayed in the display area 211 based on the graphics commands 242 and status / performance data received by the graphics device 200 . By viewing graphics commands 242, graphics image 210 and state / performance information, as well as effects based on user-initiated transformations for one or more of them, the application developer can perform a trial-and-error or debugging process Interactively and dynamically engaged to optimize execution of instructions on the graphics device 200 and to eliminate or mitigate any performance issues (e.g., bottlenecks) during instruction execution.

또한, 다수의 상이한 그래픽 파티션들을 포함하는 그래픽 장면의 시각적인 표현은, 개발자로 하여금, 스크린 파티셔닝과 연관될 수도 있는 코스트들로 인해 감소된 성능을 나타내는 그래픽스 장면의 부분들을 식별하게 허용할 수도 있다. 개발자는 파티셔닝 및 연관된 분석 정보를 리뷰잉하여, 장면의 대체 구성들을 조사함으로써, 이들 코스트들 및/또는 관련된 성능 오버헤드를 감소시키는 것을 보조할 수도 있다.In addition, a visual representation of a graphics scene that includes a number of different graphics partitions may allow the developer to identify portions of the graphics scene that exhibit reduced performance due to costs that may be associated with screen partitioning. The developer may review the partitioning and associated analysis information to assist in reducing these costs and / or associated performance overhead by examining alternate configurations of the scene.

본 개시에서 설명된 기술들은 범용 마이크로프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 다른 균등한 로직 디바이스들 내에서 구현될 수도 있다. 따라서, 본 명세서에서 사용되는 바와 같이, "프로세서" 또는 "제어기" 라는 용어들은 전술한 구조들 또는 본 명세서에서 설명된 기술들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다.The techniques described in this disclosure may be implemented within a general purpose microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other equivalent logic devices. Thus, as used herein, the terms "processor" or "controller" may refer to any of the structures described above or any other structure suitable for implementation of the techniques described herein.

본 명세서에서 예시된 다양한 컴포넌트들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합의 임의의 적합한 조합에 의해 실현될 수도 있다. 도면들에서, 다양한 컴포넌트들이 개별적인 유닛들 또는 모듈들로서 도시된다. 그러나, 이들 도면들을 참조하여 설명된 다양한 컴포넌트들의 전부 또는 여러개가 공통 하드웨어 및/또는 소프트웨어 내에서 결합된 유닛들 또는 모듈들로 통합될 수도 있다. 따라서, 컴포넌트들, 유닛들, 또는 모듈들로서의 특징들의 표현은 예시의 편의를 위해 하이라이트된 특정한 기능 특징들로 의도되고, 개별적인 하드웨어 또는 소프트웨어 컴포넌트들에 의해 그러한 특징들의 실현을 요구할 필요는 없다. 몇몇 경우들에서, 다양한 유닛들은 하나 이상의 프로세서들에 의해 수행되는 프로그래머블 프로세스들로서 구현될 수도 있다.The various components illustrated herein may be implemented by any suitable combination of hardware, software, firmware, or any combination thereof. In the drawings, the various components are shown as separate units or modules. However, all or part of the various components described with reference to these figures may be combined into units or modules that are combined within common hardware and / or software. Thus, the representation of features as components, units, or modules is intended to be pointed to specific functional features highlighted for convenience of illustration and not required to be realized by individual hardware or software components. In some cases, the various units may be implemented as programmable processes performed by one or more processors.

그래픽스 디바이스 (100) 및/또는 그래픽스 디바이스 (100) 의 구성 컴포넌트들을 포함하는 모듈들, 디바이스들, 또는 컴포넌트들로서 본 명세서에서 설명된 임의의 특징들은 집적 로직 디바이스에서 함께 구현될 수도 있거나, 또는 이산되지만 상호 동작가능한 로직 디바이스들로서 개별적으로 구현될 수도 있다. 다양한 양태들에서, 그러한 컴포넌트들은, 집적 회로 칩 또는 칩셋과 같은 집적 회로 디바이스로서 일괄적으로 지칭될 수도 있는 하나 이상의 집적 회로 디바이스들로서 적어도 부분적으로 형성될 수도 있다. 그러한 회로는 단일의 집적 회로 칩 디바이스에서 제공될 수도 있거나, 또는 다수의 상호 동작가능한 집적 회로 칩 디바이스들에서 제공될 수도 있으며, 다양한 이미지, 디스플레이, 오디오, 또는 다른 멀티미디어 애플리케이션들 및 디바이스들 중 임의의 것에서 사용될 수도 있다. 예컨대, 몇몇 양태들에서, 그러한 컴포넌트들은 무선 통신 디바이스 핸드셋과 같은 이동 디바이스의 일부를 형성할 수도 있다.Any of the features described herein as modules, devices, or components comprising the components of graphics device 100 and / or graphics device 100 may be implemented together in an integrated logic device or may be discrete Or may be implemented separately as interoperable logic devices. In various aspects, such components may be formed, at least in part, as one or more integrated circuit devices, which may be collectively referred to as an integrated circuit device such as an integrated circuit chip or chipset. Such circuitry may be provided in a single integrated circuit chip device or may be provided in a plurality of interoperable integrated circuit chip devices and may be implemented in any of a variety of image, display, audio, or other multimedia applications and devices May be used. For example, in some aspects, such components may form part of a mobile device, such as a wireless communication device handset.

소프트웨어로 구현되는 경우에, 기술들은, 하나 이상의 프로세서들에 의해 실행되는 경우에 상술된 방법들 중 하나 이상을 수행하는 명령들을 갖는 코드를 포함하는 컴퓨터 판독가능 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 매체는 패키징 재료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능 매체는, 동기식 동적 랜덤 애게슷 메모리 (SDRAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래머블 판독 전용 메모리 (EEPROM), 임베딩된 동적 랜덤 액세스 메모리 (eDRAM), 정적 랜덤 액세스 메모리 (SRAM), 플래시 메모리, 자기 또는 광학 데이터 저장 매체와 같은 랜덤 액세스 메모리 (RAM) 를 포함할 수도 있다.Where implemented in software, the techniques may be at least partially realized by a computer-readable medium comprising code having instructions for performing one or more of the methods described above when executed by one or more processors . The computer readable medium may form part of a computer program product that may include packaging materials. The computer-readable medium may be any type of storage medium such as synchronous dynamic random access memory (SDRAM), read only memory (ROM), nonvolatile random access memory (NVRAM), electrically erasable programmable read only memory (EEPROM) (eDRAM), static random access memory (SRAM), flash memory, random access memory (RAM) such as magnetic or optical data storage media.

추가적으로 또는 다르게는, 기술들은, 하나 이상의 프로세서들에 의해 액세스, 판독, 및/또는 실행될 수 있는 명령들 또는 데이터 구조들의 형태로 코드를 운반 또는 통신하는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다. 임의의 접속이 컴퓨터 판독가능 매체라 적절하게 지칭될 수도 있다. 예컨대, 소프트웨어가, 동축 케이블, 광섬유 케이블, 꼬임 쌍, 디지털 가입자 라인 (DSL), 또는 적외선, 무선 및 마이크로파와 같은 무선 기술들을 사용하여, 웹싸이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우에, 동축 케이블, 광섬유 케이블, 꼬임 쌍, DSL, 또는 적외선, 무선 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 상기의 조합들이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다. 이용되는 임의의 소프트웨어가, 하나 이상의 DSP들, 범용 마이크로프로세서들, ASIC들, FPGA들, 또는 다른 균등한 집적 또는 이산 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다.Additionally or alternatively, the techniques may be implemented, at least in part, by a computer readable communication medium that carries or communicates code in the form of instructions or data structures that may be accessed, read, and / or executed by one or more processors It is possible. Any connection may be suitably referred to as a computer-readable medium. For example, if the software is transmitted from a web site, server, or other remote source, using wireless technologies such as coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or infrared, wireless and microwave, Wireless technologies such as coaxial cable, fiber optic cable, twisted pair, DSL, or infrared, radio and microwave are included in the definition of the medium. Combinations of the above should also be included within the scope of computer readable media. Any software utilized may be executed by one or more processors, such as one or more DSPs, general purpose microprocessors, ASICs, FPGAs, or other equivalent integrated or discrete logic circuitry.

다양한 양태들이 본 명세서에서 설명되었다. 이들 및 다른 양태들은 다음의 청구의 범위 내에 있다.Various aspects are described herein. These and other aspects are within the scope of the following claims.

Claims (80)

그래픽스 데이터를 프로세싱하는 방법으로서,
외부 그래픽스 디바이스를 시뮬레이션하기 위한 시뮬레이션된 환경을 제공하는 시뮬레이션 애플리케이션을 실행하는 단계;
상기 시뮬레이션 애플리케이션의 실행 동안, 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하는 단계;
상기 외부 그래픽스 디바이스에 의해 제공된 파티셔닝 정보를 수신하는 단계;
상기 시뮬레이션 애플리케이션의 실행 동안, 상기 수신된 파티셔닝 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 오버레이 (overlay) 하고 상기 그래픽 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이하는 단계; 및
상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 2 개 이상의 파티션들과 연관되는지를 결정하기 위해, 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
CLAIMS 1. A method for processing graphics data,
Executing a simulation application that provides a simulated environment for simulating an external graphics device;
Displaying one or more graphics images in a graphics scene during execution of the simulation application;
Receiving partitioning information provided by the external graphics device;
Displaying, during execution of the simulation application, a graphical representation of partitions that overlay the one or more graphics images and graphically partition the graphics scene based on the received partitioning information; And
And analyzing graphics data for the one or more graphics images to determine which portions of the graphics data for the one or more graphics images are associated with two or more partitions of the partitions. / RTI >
제 1 항에 있어서,
상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 것, 복수의 파티션들의 그래픽 표현을 디스플레이하는 것, 상기 하나 이상의 그래픽스 이미지들의 다수의 프레임들에 대한 그래픽스 데이터를 분석하는 것을 반복하는 단계를 더 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 1,
Further comprising repeating the steps of displaying the one or more graphics images, displaying a graphical representation of the plurality of partitions, analyzing graphics data for a plurality of frames of the one or more graphics images, How to process.
제 1 항에 있어서,
상기 하나 이상의 그래픽스 이미지들 중 적어도 하나는 3 차원 그래픽스 이미지를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 1,
Wherein at least one of the one or more graphics images comprises a three-dimensional graphics image.
제 1 항에 있어서,
복수의 상기 파티션들의 그래픽 표현을 디스플레이하는 단계는, 상기 하나 이상의 그래픽스 이미지들을 오버레이하고 상기 그래픽 장면을 도식적으로 분할하는 복수의 사각형 파티션들의 그래픽 표현을 디스플레이하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 1,
Wherein displaying a graphical representation of the plurality of partitions comprises displaying graphical representations of a plurality of rectangular partitions overlaying the one or more graphics images and graphically partitioning the graphic scene, .
제 1 항에 있어서,
상기 그래픽스 데이터는 상기 하나 이상의 그래픽스 이미지들을 렌더링하기 위해 사용되는 복수의 그래픽스 프리미티브들을 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 1,
Wherein the graphics data comprises a plurality of graphics primitives used to render the one or more graphics images.
제 5 항에 있어서,
상기 복수의 그래픽스 프리미티브들은 복수의 삼각형들을 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
6. The method of claim 5,
Wherein the plurality of graphics primitives comprises a plurality of triangles.
제 6 항에 있어서,
상기 그래픽스 데이터를 분석하는 단계는, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는지를 결정하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 6,
Wherein analyzing the graphics data comprises determining which of the triangles spans at least two of the partitions.
제 7 항에 있어서,
상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는지를 결정하는 단계는, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에서 적어도 부분적으로 렌더링되었는지를 결정하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
8. The method of claim 7,
Wherein determining which of the triangles spans at least two of the partitions determines whether any of the triangles is at least partially rendered in at least two of the partitions And processing the graphics data.
제 7 항에 있어서,
상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하는 단계를 더 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
8. The method of claim 7,
Further comprising displaying a graphical representation of triangles spanning across two or more of the partitions.
제 9 항에 있어서,
상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하는 단계는, 상기 파티션들의 그래픽 표현을 디스플레이하는 단계와 함께, 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
10. The method of claim 9,
Wherein displaying a graphical representation of triangles spanning across two or more of the partitions comprises displaying a graphical representation of the partitions and displaying a graphical representation of the triangles spanning across two or more of the partitions A method for processing graphics data, the method comprising: displaying a graphical representation.
제 9 항에 있어서,
상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하는 단계는, 각각의 삼각형에 대한 그래픽 표시를 디스플레이하는 단계를 포함하며,
상기 그래픽 표시는 각각의 대응하는 삼각형에 의해 스팬되어 걸쳐진 파티션들의 수의 시각적인 표시를 제공하는, 그래픽스 데이터를 프로세싱하는 방법.
10. The method of claim 9,
Wherein displaying a graphical representation of triangles spanning across two or more of the partitions comprises displaying a graphical representation of each triangle,
Wherein the graphical representation provides a visual indication of the number of partitions spanned by each corresponding triangle.
제 11 항에 있어서,
상기 각각의 대응하는 삼각형에 대한 그래픽 표시는 컬러를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
12. The method of claim 11,
Wherein the graphical representation of each corresponding triangle comprises a color.
제 11 항에 있어서,
상기 각각의 삼각형에 대한 그래픽 표시를 디스플레이하는 단계는, 상기 각각의 삼각형이 스팬되는 파티션들의 갯수에 따라서 상기 각각의 삼각형에 대한 상기 그래픽 표시를 상이하게 디스플레이하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
12. The method of claim 11,
Wherein displaying the graphical representation of each triangle comprises differently displaying the graphical representation for each triangle according to the number of partitions in which each triangle spans. Way.
제 1 항에 있어서,
상기 수신된 파티셔닝 정보는, 상기 외부 그래픽스 디바이스의 하드웨어 아키텍쳐에 기초하여 상기 그래픽스 데이터를 렌더링할 때 상기 외부 그래픽스 디바이스에 의해 사용된 파티션들을 식별하는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 1,
Wherein the received partitioning information identifies partitions used by the external graphics device when rendering the graphics data based on a hardware architecture of the external graphics device.
제 1 항에 있어서,
네비게이션 제어기를 디스플레이하는 단계;
상기 네비게이션 제어기와 상호작용하기 위해 사용자 입력을 수신하는 단계; 및
상기 네비게이션 제어기에 대한 상기 사용자 입력에 기초하여, 변형된 그래픽스 장면에서의 상기 하나 이상의 그래픽스 이미지들의 변형된 투시뷰 (perspective view) 를 디스플레이하는 단계를 더 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 1,
Displaying a navigation controller;
Receiving user input to interact with the navigation controller; And
Further comprising displaying a modified perspective view of the one or more graphics images in the modified graphics scene based on the user input to the navigation controller.
제 15 항에 있어서,
복수의 상기 파티션들의 그래픽 표현을 디스플레이하는 단계는, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰를 오버레이하고 상기 변형된 그래픽스 장면을 도식적으로 분할하는 복수의 상기 파티션들의 그래픽 표현을 디스플레이하는 단계를 포함하며,
상기 그래픽스 데이터를 분석하는 단계는, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 상기 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 2 개 이상의 파티션들과 연관되는지를 결정하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
16. The method of claim 15,
Wherein displaying the graphical representation of the plurality of partitions includes displaying a graphical representation of a plurality of the partitions that overlay the modified perspective view of the one or more graphics images and graphically partition the modified graphics scene In addition,
Wherein analyzing the graphics data comprises analyzing graphics data for the modified perspective view of the one or more graphics images to determine which portions of the graphics data are associated with two or more partitions of the partitions And processing the graphics data.
제 1 항에 있어서,
상기 외부 그래픽스 디바이스로부터 그래픽스 명령들을 수신하는 단계; 및
상기 외부 그래픽스 디바이스로부터 상태 정보를 수신하는 단계로서, 상기 상태 정보는 상기 외부 그래픽스 디바이스 상에서의 상기 그래픽스 명령들의 실행과 연관되는, 상기 상태 정보를 수신하는 단계를 더 포함하며,
상기 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하는 단계는, 상기 그래픽스 명령들 및 상기 상태 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 1,
Receiving graphics commands from the external graphics device; And
Receiving status information from the external graphics device, the status information being associated with execution of the graphics commands on the external graphics device;
Wherein displaying one or more graphics images in the graphics scene comprises displaying the one or more graphics images based on the graphics instructions and the status information.
제 17 항에 있어서,
상기 상태 정보는 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
18. The method of claim 17,
Wherein the status information comprises graphics data for the one or more graphics images.
제 17 항에 있어서,
상기 그래픽스 데이터를 상기 그래픽스 명령들로 매핑하는 매핑 정보를 상기 외부 그래픽스 디바이스로부터 수신하는 단계를 더 포함하는, 그래픽스 데이터를 프로세싱하는 방법.
18. The method of claim 17,
Further comprising receiving mapping information from the external graphics device to map the graphics data to the graphics instructions.
제 1 항에 있어서,
상기 파티션들은 상기 그래픽스 데이터에 대해 수행되는 렌더링 동작들에 기초하여 결정되는, 그래픽스 데이터를 프로세싱하는 방법.
The method according to claim 1,
Wherein the partitions are determined based on rendering operations performed on the graphics data.
그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체로서,
하나 이상의 프로세서들로 하여금,
외부 그래픽스 디바이스를 시뮬레이션하기 위한 시뮬레이션된 환경을 제공하는 시뮬레이션 애플리케이션을 실행하게 하고;
상기 시뮬레이션 애플리케이션의 실행 동안, 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하게 하고;
상기 외부 그래픽스 디바이스에 의해 제공된 파티셔닝 정보를 수신하게 하고;
상기 시뮬레이션 애플리케이션의 실행 동안, 상기 수신된 파티셔닝 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 오버레이 (overlay) 하고 상기 그래픽 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이하게 하며;
상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 2 개 이상의 파티션들과 연관되는지를 결정하기 위해, 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하게 하기 위한
컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
A computer-readable medium for processing graphics data,
One or more processors,
Execute a simulation application that provides a simulated environment for simulating an external graphics device;
To display one or more graphics images in a graphics scene during execution of the simulation application;
Receive the partitioning information provided by the external graphics device;
During execution of the simulation application, to display a graphical representation of partitions that overlay the one or more graphics images and graphically partition the graphics scene based on the received partitioning information;
To analyze graphics data for the one or more graphics images to determine which portions of the graphics data for the one or more graphics images are associated with two or more partitions of the partitions
A computer-readable medium for processing graphics data, comprising computer executable instructions.
제 21 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 것, 복수의 파티션들의 그래픽 표현을 디스플레이하는 것, 및 상기 하나 이상의 그래픽스 이미지들의 다수의 프레임들에 대한 그래픽스 데이터를 분석하는 것을 반복하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
22. The method of claim 21,
The one or more processors,
Further comprising computer executable instructions for causing the computer to repeat displaying the one or more graphics images, displaying a graphical representation of the plurality of partitions, and analyzing graphics data for a plurality of frames of the one or more graphics images. A computer-readable medium for processing graphics data.
제 21 항에 있어서,
상기 하나 이상의 그래픽스 이미지들 중 적어도 하나는 3 차원 그래픽스 이미지를 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
22. The method of claim 21,
Wherein at least one of the one or more graphics images comprises a three-dimensional graphics image.
제 21 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 복수의 상기 파티션들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 하나 이상의 그래픽스 이미지들을 오버레이하고 상기 그래픽 장면을 도식적으로 분할하는 복수의 사각형 파티션들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
22. The method of claim 21,
The computer-executable instructions for causing the one or more processors to display a graphical representation of a plurality of the partitions may cause the one or more processors to overlay the one or more graphics images and to graphically A computer-readable medium for processing graphics data, the computer-executable instructions for causing a computer to display a graphical representation of a plurality of rectangular partitions.
제 21 항에 있어서,
상기 그래픽스 데이터는 상기 하나 이상의 그래픽스 이미지들을 렌더링하기 위해 사용되는 복수의 그래픽스 프리미티브들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
22. The method of claim 21,
Wherein the graphics data comprises a plurality of graphics primitives used to render the one or more graphics images.
제 25 항에 있어서,
상기 복수의 그래픽스 프리미티브들은 복수의 삼각형들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
26. The method of claim 25,
Wherein the plurality of graphics primitives comprises a plurality of triangles.
제 26 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 그래픽스 데이터를 분석하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는지를 결정하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
27. The method of claim 26,
The computer-executable instructions for causing the one or more processors to analyze the graphics data cause the one or more processors to determine whether any of the triangles spans more than one of the partitions Comprising computer-executable instructions for causing a computer to perform the steps of:
제 27 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는지를 결정하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에서 적어도 부분적으로 렌더링되었는지를 결정하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
28. The method of claim 27,
The computer-executable instructions for causing the one or more processors to determine which triangles of the triangles span two or more partitions of the partitions, wherein the one or more processors cause the one or more processors to select among the triangles Computer-executable instructions for causing a processor to determine whether certain triangles are at least partially rendered in two or more of the partitions.
제 27 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
28. The method of claim 27,
The one or more processors,
Further comprising computer executable instructions for displaying a graphical representation of triangles spanning across two or more of the partitions.
제 29 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 파티션들의 그래픽 표현을 디스플레이하는 것과 함께, 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
30. The method of claim 29,
The computer-executable instructions for causing the one or more processors to display a graphical representation of triangles spanning across two or more of the partitions may cause the one or more processors to display a graphical representation of the partitions Computer-executable instructions for displaying a graphical representation of triangles spanning across two or more of the partitions in conjunction with displaying the graphical representation of the triangles.
제 29 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 각각의 삼각형에 대한 그래픽 표시를 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하며,
상기 그래픽 표시는 각각의 대응하는 삼각형에 의해 스팬되어 걸쳐진 파티션들의 수의 시각적인 표시를 제공하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
30. The method of claim 29,
The computer-executable instructions for causing the one or more processors to display a graphical representation of triangles spanning across two or more of the partitions may cause the one or more processors to display graphics for each triangle Computer-executable instructions for causing a display to be displayed,
Wherein the graphical representation provides a visual indication of the number of partitions spanned by each corresponding triangle. ≪ Desc / Clms Page number 19 >
제 31 항에 있어서,
상기 각각의 대응하는 삼각형에 대한 그래픽 표시는 컬러를 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
32. The method of claim 31,
Wherein the graphic representation for each corresponding triangle comprises a color. ≪ Desc / Clms Page number 21 >
제 31 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 각각의 삼각형에 대한 그래픽 표시를 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 각각의 삼각형이 스팬되는 파티션들의 갯수에 따라서 상기 각각의 삼각형에 대한 상기 그래픽 표시를 상이하게 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
32. The method of claim 31,
The computer-executable instructions for causing the one or more processors to display a graphical representation of each triangle, wherein the one or more processors cause the one or more processors to display a graphical representation of each of the triangles according to the number of partitions to which each triangle spans. Comprising: computer-executable instructions for causing the computer to display differently the graphical representation for the computer-readable medium for processing graphics data.
제 21 항에 있어서,
상기 수신된 파티셔닝 정보는, 상기 외부 그래픽스 디바이스의 하드웨어 아키텍쳐에 기초하여 상기 그래픽스 데이터를 렌더링할 때 상기 외부 그래픽스 디바이스에 의해 사용된 파티션들을 식별하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
22. The method of claim 21,
Wherein the received partitioning information identifies partitions used by the external graphics device when rendering the graphics data based on a hardware architecture of the external graphics device.
제 21 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
네비게이션 제어기를 디스플레이하게 하고;
상기 네비게이션 제어기와 상호작용하기 위해 사용자 입력을 수신하게 하며;
상기 네비게이션 제어기에 대한 상기 사용자 입력에 기초하여, 변형된 그래픽스 장면에서의 상기 하나 이상의 그래픽스 이미지들의 변형된 투시뷰 (perspective view) 를 디스플레이하게 하기 위한
컴퓨터 실행가능 명령들을 더 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
22. The method of claim 21,
The one or more processors,
Display the navigation controller;
Receive user input to interact with the navigation controller;
For displaying a modified perspective view of the one or more graphics images in the modified graphics scene based on the user input to the navigation controller
A computer-readable medium for processing graphics data, the computer-executable instructions further comprising computer executable instructions.
제 35 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 복수의 상기 파티션들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰를 오버레이하고 상기 변형된 그래픽스 장면을 도식적으로 분할하는 복수의 상기 파티션들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하며;
상기 하나 이상의 프로세서들로 하여금, 상기 그래픽스 데이터를 분석하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 상기 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 2 개 이상의 파티션들과 연관되는지를 결정하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
36. The method of claim 35,
The computer-executable instructions for causing the one or more processors to display a graphical representation of a plurality of the partitions may cause the one or more processors to overlay the modified perspective view of the one or more graphics images, Comprising: computer-executable instructions for causing a computer to display a graphical representation of a plurality of said partitions that graphically partition a resulting graphics scene;
Wherein the computer-executable instructions for causing the one or more processors to analyze the graphics data cause the one or more processors to analyze graphics data for the modified perspective view of the one or more graphics images, Computer-executable instructions for causing a processor to determine which portions of graphics data are associated with two or more of the partitions.
제 21 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
상기 외부 그래픽스 디바이스로부터 그래픽스 명령들을 수신하게 하며;
상기 외부 그래픽스 디바이스로부터 상태 정보를 수신하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하며;
상기 상태 정보는 상기 외부 그래픽스 디바이스 상에서의 상기 그래픽스 명령들의 실행과 연관되고,
상기 하나 이상의 프로세서들로 하여금, 상기 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 그래픽스 명령들 및 상기 상태 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
22. The method of claim 21,
The one or more processors,
Receive graphics commands from the external graphics device;
Further comprising computer executable instructions for causing the external graphics device to receive status information;
Wherein the status information is associated with execution of the graphics instructions on the external graphics device,
The computer-executable instructions for causing the one or more processors to display one or more graphics images in the graphical scene may cause the one or more processors to cause the one or more processors to display, based on the graphics commands and the status information, The computer program product comprising computer executable instructions for causing the computer to perform the following steps:
제 37 항에 있어서,
상기 상태 정보는 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
39. The method of claim 37,
Wherein the status information comprises graphics data for the one or more graphics images. ≪ Desc / Clms Page number 19 >
제 37 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
상기 그래픽스 데이터를 상기 그래픽스 명령들로 매핑하는 매핑 정보를 상기 외부 그래픽스 디바이스로부터 수신하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
39. The method of claim 37,
The one or more processors,
Further comprising computer-executable instructions for causing the external graphics device to receive mapping information for mapping the graphics data to the graphics commands.
제 21 항에 있어서,
상기 파티션들은 상기 그래픽스 데이터에 대해 수행되는 렌더링 동작들에 기초하여 결정되는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.
22. The method of claim 21,
Wherein the partitions are determined based on rendering operations performed on the graphics data. ≪ Desc / Clms Page number 19 >
그래픽스 데이터를 프로세싱하는 디바이스로서,
외부 그래픽스 디바이스를 시뮬레이션하기 위한 시뮬레이션된 환경을 제공하는 시뮬레이션 애플리케이션을 실행하는 수단;
상기 시뮬레이션 애플리케이션의 실행 동안, 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하는 수단;
상기 외부 그래픽스 디바이스에 의해 제공된 파티셔닝 정보를 수신하는 수단;
상기 시뮬레이션 애플리케이션의 실행 동안, 상기 수신된 파티셔닝 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 오버레이 (overlay) 하고 상기 그래픽 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이하는 수단; 및
상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 2 개 이상의 파티션들과 연관되는지를 결정하기 위해, 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하는 수단을 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.
A device for processing graphics data,
Means for executing a simulation application that provides a simulated environment for simulating an external graphics device;
Means for displaying one or more graphics images in a graphics scene during execution of the simulation application;
Means for receiving partitioning information provided by the external graphics device;
Means for overlaying the one or more graphics images based on the received partitioning information during execution of the simulation application and displaying a graphical representation of the partitions partitioning graphically the graphics scene; And
Means for analyzing graphics data for the one or more graphics images to determine which portions of the graphics data for the one or more graphics images are associated with two or more partitions of the partitions, A device that processes data.
제 41 항에 있어서,
상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 수단, 및 상기 하나 이상의 그래픽스 이미지들을 오버레이하고 상기 그래픽 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이하는 수단은, 디스플레이 디바이스를 포함하고,
상기 파티셔닝 정보를 수신하는 수단, 및 상기 그래픽스 데이터를 분석하는 수단은 하나 이상의 프로세서들을 포함하며,
상기 하나 이상의 프로세서들은,
상기 외부 그래픽스 디바이스에 의해 제공된 상기 파티셔닝 정보를 수신하며,
상기 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 2 개 이상의 파티션들과 연관되는지를 결정하기 위해, 상기 하나 이상의 그래픽스 이미지들에 대한 상기 그래픽스 데이터를 분석하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
42. The method of claim 41,
Means for displaying the one or more graphics images and means for displaying a graphical representation of partitions overlaying the one or more graphics images and graphically partitioning the graphics scene comprises a display device,
Means for receiving the partitioning information, and means for analyzing the graphics data comprises one or more processors,
The one or more processors,
Receiving the partitioning information provided by the external graphics device,
And to analyze the graphics data for the one or more graphics images to determine which portions of the graphics data are associated with two or more partitions of the partitions.
제 42 항에 있어서,
상기 하나 이상의 프로세서들은 또한, 상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 것, 복수의 파티션들의 그래픽 표현을 디스플레이하는 것, 및 상기 하나 이상의 그래픽스 이미지들의 다수의 프레임들에 대한 그래픽스 데이터를 분석하는 것을 반복하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
43. The method of claim 42,
The one or more processors may also be configured to repeat displaying the one or more graphics images, displaying a graphical representation of the plurality of partitions, and analyzing graphics data for a plurality of frames of the one or more graphics images Lt; RTI ID = 0.0 > graphics data. ≪ / RTI >
제 42 항에 있어서,
상기 하나 이상의 그래픽스 이미지들 중 적어도 하나는 3 차원 그래픽스 이미지를 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.
43. The method of claim 42,
Wherein at least one of the one or more graphics images comprises a three-dimensional graphics image.
제 42 항에 있어서,
상기 하나 이상의 프로세서들은, 적어도, 상기 하나 이상의 그래픽스 이미지들을 오버레이하고 상기 그래픽 장면을 도식적으로 분할하는 복수의 사각형 파티션들의 그래픽 표현을 디스플레이함으로써, 복수의 상기 파티션들의 그래픽 표현을 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
43. The method of claim 42,
Wherein the one or more processors are configured to display a graphical representation of a plurality of the partitions by displaying at least a graphical representation of a plurality of rectangular partitions that overlay the one or more graphics images and graphically divide the graphics scene, / RTI >
제 42 항에 있어서,
상기 그래픽스 데이터는 상기 하나 이상의 그래픽스 이미지들을 렌더링하기 위해 사용되는 복수의 그래픽스 프리미티브들을 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.
43. The method of claim 42,
Wherein the graphics data comprises a plurality of graphics primitives used to render the one or more graphics images.
제 46 항에 있어서,
상기 복수의 그래픽스 프리미티브들은 복수의 삼각형들을 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.
47. The method of claim 46,
Wherein the plurality of graphics primitives comprise a plurality of triangles.
제 47 항에 있어서,
상기 하나 이상의 프로세서들은, 적어도, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는지를 결정함으로써, 상기 그래픽스 데이터를 분석하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
49. The method of claim 47,
Wherein the one or more processors are configured to analyze the graphics data by at least determining which of the triangles spans at least two of the partitions.
제 48 항에 있어서,
상기 하나 이상의 프로세서들은, 적어도, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에서 적어도 부분적으로 렌더링되었는지를 결정함으로써, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는지를 결정하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
49. The method of claim 48,
Wherein the one or more processors determine at least some of the triangles to be at least partially rendered in two or more of the partitions, Wherein the span of spans is spanned across the device.
제 48 항에 있어서,
상기 하나 이상의 프로세서들은 또한, 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
49. The method of claim 48,
Wherein the one or more processors are further configured to display a graphical representation of triangles spanning across two or more of the partitions.
제 50 항에 있어서,
상기 하나 이상의 프로세서들은, 적어도, 상기 파티션들의 그래픽 표현을 디스플레이하는 것과 함께, 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이함으로써, 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
51. The method of claim 50,
Wherein the one or more processors are configured to display a graphical representation of triangles spanning at least two of the partitions, at least displaying a graphical representation of the partitions, And to display a graphical representation of the triangles spanning over.
제 50 항에 있어서,
상기 하나 이상의 프로세서들은, 적어도, 각각의 삼각형에 대한 그래픽 표시를 디스플레이함으로써, 상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하도록 구성되며,
상기 그래픽 표시는 각각의 대응하는 삼각형에 의해 스팬되어 걸쳐진 파티션들의 수의 시각적인 표시를 제공하는, 그래픽스 데이터를 프로세싱하는 디바이스.
51. The method of claim 50,
Wherein the one or more processors are configured to display a graphical representation of triangles spanning at least two of the partitions by displaying, at least, a graphical representation of each triangle,
Wherein the graphical representation provides a visual indication of the number of partitions spanned by each corresponding triangle.
제 52 항에 있어서,
상기 각각의 대응하는 삼각형에 대한 그래픽 표시는 컬러를 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.
53. The method of claim 52,
Wherein the graphic representation for each corresponding triangle comprises a color.
제 52 항에 있어서,
상기 하나 이상의 프로세서들은, 적어도, 상기 각각의 삼각형이 스팬되는 파티션들의 갯수에 따라서 상기 각각의 삼각형에 대한 상기 그래픽 표시를 상이하게 디스플레이함으로써, 상기 각각의 삼각형에 대한 그래픽 표시를 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
53. The method of claim 52,
Wherein the one or more processors are configured to display a graphical representation of each of the triangles by at least displaying the graphical representation for each triangle in accordance with the number of partitions in which each triangle spans. A device that processes data.
제 42 항에 있어서,
상기 수신된 파티셔닝 정보는, 상기 외부 그래픽스 디바이스의 하드웨어 아키텍쳐에 기초하여 상기 그래픽스 데이터를 렌더링할 때 상기 외부 그래픽스 디바이스에 의해 사용된 파티션들을 식별하는, 그래픽스 데이터를 프로세싱하는 디바이스.
43. The method of claim 42,
Wherein the received partitioning information identifies partitions used by the external graphics device when rendering the graphics data based on a hardware architecture of the external graphics device.
제 42 항에 있어서,
상기 하나 이상의 프로세서들은 또한, 네비게이션 제어기를 디스플레이하고, 상기 네비게이션 제어기와 상호작용하기 위해 사용자 입력을 수신하며, 상기 네비게이션 제어기에 대한 상기 사용자 입력에 기초하여, 변형된 그래픽스 장면에서의 상기 하나 이상의 그래픽스 이미지들의 변형된 투시뷰 (perspective view) 를 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
43. The method of claim 42,
The one or more processors also display a navigation controller, receive user input to interact with the navigation controller, and determine, based on the user input to the navigation controller, the one or more graphics images Wherein the display device is configured to display a modified perspective view of the graphics data.
제 56 항에 있어서,
상기 하나 이상의 프로세서들은, 적어도, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰를 오버레이하고 상기 변형된 그래픽스 장면을 도식적으로 분할하는 복수의 상기 파티션들의 그래픽 표현을 디스플레이함으로써, 복수의 상기 파티션들의 그래픽 표현을 디스플레이하도록 구성되며;
상기 하나 이상의 프로세서들은, 적어도, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 상기 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 2 개 이상의 파티션들과 연관되는지를 결정함으로써, 상기 그래픽스 데이터를 분석하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
57. The method of claim 56,
Wherein the one or more processors display a graphical representation of a plurality of the partitions that at least overlay the modified perspective view of the one or more graphics images and graphically partition the modified graphics scene, ;
Wherein the one or more processors analyze at least the graphics data for the modified perspective view of the one or more graphics images to determine which portions of the graphics data are associated with two or more of the partitions, And to analyze the graphics data.
제 42 항에 있어서,
상기 하나 이상의 프로세서들은 또한, 상기 외부 그래픽스 디바이스로부터 그래픽스 명령들을 수신하고, 상기 외부 그래픽스 디바이스로부터 상태 정보를 수신하도록 구성되며,
상기 상태 정보는 상기 외부 그래픽스 디바이스 상에서의 상기 그래픽스 명령들의 실행과 연관되고,
상기 하나 이상의 프로세서들은, 적어도, 상기 그래픽스 명령들 및 상기 상태 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 디스플레이함으로써, 상기 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
43. The method of claim 42,
Wherein the one or more processors are further configured to receive graphics instructions from the external graphics device and to receive status information from the external graphics device,
Wherein the status information is associated with execution of the graphics instructions on the external graphics device,
Wherein the one or more processors are configured to display one or more graphics images in the graphics scene by displaying the one or more graphics images based at least on the graphics instructions and the status information, .
제 58 항에 있어서,
상기 상태 정보는 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.
59. The method of claim 58,
Wherein the status information comprises graphics data for the one or more graphics images.
제 58 항에 있어서,
상기 하나 이상의 프로세서들은 또한, 상기 그래픽스 데이터를 상기 그래픽스 명령들로 매핑하는 매핑 정보를 상기 외부 그래픽스 디바이스로부터 수신하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.
59. The method of claim 58,
Wherein the one or more processors are further configured to receive mapping information from the external graphics device to map the graphics data to the graphics instructions.
제 42 항에 있어서,
상기 파티션들은 상기 그래픽스 데이터에 대해 수행되는 렌더링 동작들에 기초하여 결정되는, 그래픽스 데이터를 프로세싱하는 디바이스.
43. The method of claim 42,
Wherein the partitions are determined based on rendering operations performed on the graphics data.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020117004633A 2008-07-25 2009-07-24 Partitioning-based performance analysis for graphics imaging KR101286938B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US8365908P 2008-07-25 2008-07-25
US61/083,659 2008-07-25
US12/507,767 US20100020069A1 (en) 2008-07-25 2009-07-22 Partitioning-based performance analysis for graphics imaging
US12/507,767 2009-07-22
PCT/US2009/051772 WO2010011980A1 (en) 2008-07-25 2009-07-24 Partitioning-based performance analysis for graphics imaging

Publications (2)

Publication Number Publication Date
KR20110036947A KR20110036947A (en) 2011-04-12
KR101286938B1 true KR101286938B1 (en) 2013-07-23

Family

ID=41268228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117004633A KR101286938B1 (en) 2008-07-25 2009-07-24 Partitioning-based performance analysis for graphics imaging

Country Status (7)

Country Link
EP (1) EP2319015A1 (en)
JP (1) JP5242788B2 (en)
KR (1) KR101286938B1 (en)
CN (1) CN102089784A (en)
CA (1) CA2730298A1 (en)
TW (1) TW201015483A (en)
WO (1) WO2010011980A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2745892B1 (en) * 2012-12-21 2018-12-12 Dassault Systèmes Partition of a 3D scene into a plurality of zones processed by a computing resource
JP6392370B2 (en) 2014-04-05 2018-09-19 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー An efficient re-rendering method for objects to change the viewport under various rendering and rasterization parameters
CN109656106B (en) * 2019-01-25 2020-12-04 墨研计算科学(南京)有限公司 Processing method and device for mask in computational lithography
CN110221715A (en) * 2019-06-19 2019-09-10 南京孜博汇信息科技有限公司 A kind of multi-interface displaying method and system of motion track information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005031640A2 (en) * 2003-09-26 2005-04-07 Rensselaer Polytechnic Institute System and method of computing and displaying property-encoded surface translator descriptors
WO2005116930A1 (en) * 2004-05-24 2005-12-08 Koninklijke Philips Electronics N.V. Tile based graphics rendering
US7095416B1 (en) * 2003-09-22 2006-08-22 Microsoft Corporation Facilitating performance analysis for processing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701405A (en) * 1995-06-21 1997-12-23 Apple Computer, Inc. Method and apparatus for directly evaluating a parameter interpolation function used in rendering images in a graphics system that uses screen partitioning
JP3175757B2 (en) * 1996-08-13 2001-06-11 日本電気株式会社 Debug system
US20030156131A1 (en) * 2002-02-21 2003-08-21 Samir Khazaka Method and apparatus for emulating a mobile device
US7167171B2 (en) * 2004-06-29 2007-01-23 Intel Corporation Methods and apparatuses for a polygon binning process for rendering
US8589142B2 (en) * 2005-06-29 2013-11-19 Qualcomm Incorporated Visual debugging system for 3D user interface program
DE102006014902B4 (en) * 2006-03-30 2009-07-23 Siemens Ag Image processing device for the extended display of three-dimensional image data sets

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095416B1 (en) * 2003-09-22 2006-08-22 Microsoft Corporation Facilitating performance analysis for processing
WO2005031640A2 (en) * 2003-09-26 2005-04-07 Rensselaer Polytechnic Institute System and method of computing and displaying property-encoded surface translator descriptors
WO2005116930A1 (en) * 2004-05-24 2005-12-08 Koninklijke Philips Electronics N.V. Tile based graphics rendering

Also Published As

Publication number Publication date
JP2011529236A (en) 2011-12-01
CN102089784A (en) 2011-06-08
CA2730298A1 (en) 2010-01-28
WO2010011980A1 (en) 2010-01-28
KR20110036947A (en) 2011-04-12
JP5242788B2 (en) 2013-07-24
EP2319015A1 (en) 2011-05-11
TW201015483A (en) 2010-04-16

Similar Documents

Publication Publication Date Title
US20100020069A1 (en) Partitioning-based performance analysis for graphics imaging
KR101286318B1 (en) Displaying a visual representation of performance metrics for rendered graphics elements
US9792718B2 (en) Mapping graphics instructions to associated graphics data during performance analysis
KR102475212B1 (en) Foveated rendering in tiled architectures
US8982136B2 (en) Rendering mode selection in graphics processing units
KR101431311B1 (en) Performance analysis during visual creation of graphics images
KR20170040698A (en) Method and apparatus for performing graphics pipelines
KR101286938B1 (en) Partitioning-based performance analysis for graphics imaging
RU2680355C1 (en) Method and system of removing invisible surfaces of a three-dimensional scene
CN115701305A (en) Shadow screening

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee