KR101286938B1 - Partitioning-based performance analysis for graphics imaging - Google Patents
Partitioning-based performance analysis for graphics imaging Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
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.
Description
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
몇몇 경우들에서, 그래픽스 디바이스 (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
그래픽스 디바이스 (2) 에서, 그래픽스 프로세싱 시스템 (4) 은 저장 매체 (8) 및 디스플레이 디바이스 (6) 양자 모두에 커플링된다. 저장 매체 (8) 는, 예컨대, 동기식 동적 랜덤 액세스 메모리 (SDRAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 임베디드 동적 랜덤 액세스 메모리 (eDRAM), 정적 랜덤 액세스 메모리 (SRAM), 또는 플래시 메모리와 같은, 명령들 및/또는 데이터를 저장할 수 있는 임의의 비소멸성 또는 휘발성 메모리를 포함할 수도 있다. 디스플레이 디바이스 (6) 는, LCD (liquid crystal display), 플라즈마 디스플레이 디바이스, 또는 다른 텔레비전 (TV) 디스플레이 디바이스와 같은, 디스플레이 목적들을 위한 이미지 데이터를 디스플레이할 수 있는 임의의 디바이스일 수도 있다.In the graphics device 2, the
버텍스 프로세서 (14) 는 버텍스 정보를 관리하고 버텍스 변환들을 프로세싱할 수 있다. 일 양태에서, 버텍스 프로세서 (14) 는 디지털 신호 프로세서 (DSP) 를 포함할 수도 있다. 그래픽스 프로세서 (12) 는 전산화된 그래픽스를 렌더링, 조작 (manipulate), 및 디스플레이하기 위해 이용되는 전용 그래픽스 렌더링 디바이스일 수도 있다. 그래픽스 프로세서 (12) 는 다양한 복잡한 그래픽스-관련된 알고리즘들을 구현할 수도 있다. 예컨대, 복잡한 알고리즘들은 2 차원 또는 3 차원 전산화된 그래픽스의 표현들에 대응할 수도 있다. 그래픽스 프로세서 (12) 는, 포인트들, 라인들, 및 삼각형들, 또는 다른 폴리곤 면들을 형성하는 것과 같은, 다수의 소위 "프리미티브" 그래픽스 동작들을 구현하여, 디스플레이 디바이스 (6) 와 같은 디스플레이 상에 복잡한 3 차원 이미지들을 생성할 수도 있다.The
그래픽스 프로세서 (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
또한, 그래픽스 드라이버들 (18) 은 실행을 위해 저장 매체 (8) 로부터 그래픽스 프로세싱 시스템 (4) 으로 로딩될 수도 있다. 예컨대, 제어 프로세서 (10), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상이 그래픽스 드라이버들 (18) 로부터의 특정 명령들을 실행할 수도 있다. 일 예시적인 양태에서, 그래픽스 드라이버들 (18) 은 그래픽스 프로세서 (12) 에 의해 로딩 및 실행된다. 그래픽스 드라이버들 (18) 은 이하 더 상세히 설명될 것이다.The
또한, 저장 매체 (8) 는 그래픽스 데이터 매핑 정보 (23) 를 포함한다. 그래픽스 데이터 매핑 정보 (23) 는 애플리케이션 명령들 (21) 중 하나 이상을 애플리케이션 명령들 (21) 의 실행 동안에 렌더링될 수도 있는 그래픽스 데이터로 매핑하기 위한 정보를 포함한다. 저장 매체 (8) 및/또는 버퍼들 (15) 에 저장될 수도 있는 그래픽스 데이터는 하나 이상의 프리미티브들 (예컨대, 폴리곤들) 을 포함할 수도 있다. 그래픽스 데이터 매핑 정보 (23) 는 개별적인 명령들로의 렌더링될 개별적인 프리미티브들의 매핑을 유지할 수도 있다. 프리미티브들이 렌더링된 이후에, 매핑 정보 (23) 는 개별적인 명령들로부터, 궁극적으로 그래픽스 디바이스 (6) 상에서 디스플레이된 하나 이상의 이미지들을 생성하기 위해 사용되었던 오리지널 그래픽스 데이터로의 매핑을 허용한다. 몇몇 경우들에서, 매핑 정보 (23) 는 디버깅 및/또는 성능 분석에 대해 유용할 수도 있다.In addition, the
또한, 도 1에서 도시된 바와 같이, 그래픽스 프로세싱 시스템 (4) 은 하나 이상의 버퍼들 (15) 을 포함한다. 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및/또는 디스플레이 프로세서 (16) 는 각각 버퍼들 (15) 로의 액세스를 갖고, 버퍼들 (15) 에 데이터를 저장하거나 또는 버퍼들 (15) 로부터 데이터를 검색할 수도 있다. 버퍼들 (15) 은 캐시 메모리를 포함할 수도 있고, 데이터 및 명령들 양자 모두를 저장하는 것이 가능할 수도 있다. 예컨대, 버퍼들 (15) 은 저장 매체 (8) 로부터 그래픽스 프로세싱 시스템 (4) 으로 로딩된, 그래픽스 드라이버들 (18) 로부터의 하나 이상의 명령들 또는 애플리케이션 명령들 (21) 중 하나 이상을 포함할 수도 있다. 또한, 버퍼들 (15) 및/또는 저장 매체 (8) 는 명령 실행 동안에 사용된 그래픽스 데이터를 포함할 수도 있다.1, the
특정 경우들에서, 애플리케이션 명령들 (21) 은 3D 그래픽스 애플리케이션과 같은 그래픽스 애플리케이션에 대한 명령들을 포함할 수도 있다. 애플리케이션 명령들 (21) 은 하나 이상의 그래픽스 이미지들을 포함하는 그래픽스 장면의 컨텐츠를 설명하거나 또는 정의하는 명령들을 포함할 수도 있다. 애플리케이션 명령들 (21) 이 그래픽스 프로세싱 시스템 (4) 에 의해 로딩 및 실행되는 경우에, 그래픽스 프로세싱 시스템 (4) 은 일련의 상태 천이들을 경험할 수도 있다. 또한, 애플리케이션 명령들 (21) 의 실행 동안에, 그래픽스 드라이버들 (18) 내의 하나 이상의 명령들이 디스플레이 디바이스 (6) 상에서 그래픽스 이미지들을 디스플레이하거나 또는 렌더링하기 위해 실행될 수도 있다.In certain instances,
드로우 (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
또한, 프로세서들 (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
따라서, 예컨대, 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
일 양태에서, 애플리케이션 개발자는 도 1에서 도시된 애플리케이션 컴퓨팅 디바이스 (20) 를 사용하여, 장면에서의 이미지들을 설명하거나 또는 렌더링하는 교체 방법들로 디버깅하고 시험하는 프로세싱을 보조할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 장면을 디스플레이하고, 그래픽스 디바이스 (2) 에 의해 구현될 수도 있는 비닝 파티션들의 그래픽 표현을 오버레이하는 것이 가능할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 디바이스 (2) 에 커플링된다. 예컨대, 일 양태에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 유니버설 시리얼 버스 (USB) 접속을 통해 그래픽스 디바이스 (2) 에 커플링된다. 다른 양태들에서, 무선 또는 유선 접속들의 다른 형태들과 같은 접속들의 다른 타입들이 사용될 수도 있다.In one aspect, an application developer may use the
애플리케이션 컴퓨팅 디바이스 (20) 는 하나 이상의 프로세서들 (22), 디스플레이 디바이스 (24), 및 (메모리를 포함할 수도 있는) 저장 매체 (26) 를 포함한다. 프로세서들 (22) 은 일 양태에 따라 제어 프로세서, 그래픽스 프로세서, 버텍스 프로세서, 및 디스플레이 프로세서 중 하나 이상을 포함할 수도 있다. 저장 매체 (26) 는 예컨대, 동기식 동적 랜덤 액세스 메모리 (SDRAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 정적 랜덤 액세스 메모리 (SRAM), 또는 플래시 메모리와 같은, 명령들 및/또는 데이터를 저장할 수 있는 임의의 비소멸성 또는 휘발성 메모리를 포함할 수도 있다. 디스플레이 디바이스 (24) 는, LCD (liquid crystal display), 플라즈마 디스플레이 디바이스, 또는 다른 텔레비전 (TV) 디스플레이 디바이스와 같은, 디스플레이 목적들을 위한 이미지 데이터를 디스플레이할 수 있는 임의의 디바이스일 수도 있다.The
애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 디바이스 (2) 로부터 전송된, 상태 및/또는 성능 정보 (32) 와 함께 그래픽스 명령들 (30) 을 캡쳐링 및 분석할 수 있다. 일 양태에서, 그래픽스 드라이버들 (18) 은 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 전송하도록 구성된다. 그래픽스 명령들 (30) 은 애플리케이션 명령들 (21) 중 하나 이상을 포함할 수도 있고, 상태/성능 정보 (32) 는 그래픽스 프로세싱 시스템 (4) 내에서의 그래픽스 명령들 (30) 의 실행 동안에 생성되거나 또는 캡쳐링될 수도 있다.The
상태/성능 정보 (32) 는 명령 실행 동안의 그래픽스 프로세싱 시스템 (4) 의 상태 및/또는 성능에 관한 정보를 포함하고, 이하 더 상세히 설명될 것이다. 상태/성능 정보 (32) 는 그래픽스 명령들 (30) 에 대해 사용될 수도 있는 그래픽스 데이터 (예컨대, 프리미티브 및/또는 래스터화된 그래픽스 데이터) 를 포함할 수도 있거나, 또는 그렇지 않은 경우에, 그래픽스 명령들 (30) 과 연관된다. 그래픽스 프로세싱 시스템 (4) 은 그래픽스 명령들 (30) 을 실행하여, 디스플레이 디바이스 (6) 상에서 이미지 또는 이미지들의 장면을 디스플레이할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는, 상태/성능 정보 (32) 와 함께 그래픽스 명령들 (30) 을 사용하여, 그래픽스 디바이스 (2) 의 디스플레이 디바이스 (6) 상에서 또한 나타내어지는 그래픽스 이미지 또는 장면을 재생성할 수 있다.The state /
또한, 그래픽스 디바이스 (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
또한, 매핑/파티셔닝 정보 (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
시뮬레이션 애플리케이션 (28) 은 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 를 수신할 시에 그래픽스 이미지 또는 장면을 재생성하고, 디스플레이 디바이스 (24) 상에 이미지 또는 이미지들의 장면을 디스플레이하기 위해, 애플리케이션 컴퓨팅 디바이스 (20) 의 하나 이상의 프로세서들 (22) 에 의해 실행될 수도 있다. 시뮬레이션 애플리케이션 (28) 은 다수의 애플리케이션 명령들을 포함하는 소프트웨어 모듈을 포함할 수도 있다. 시뮬레이션 애플리케이션 (28) 은 저장 매체 (26) 에 저장되고, 프로세서들 (22) 에 의해 로딩되고 실행될 수도 있다. 시뮬레이션 애플리케이션 (28) 은 저장 매체 (26) 로 미리-로딩될 수도 있고, 그래픽스 디바이스 (2) 와 동작하도록 커스터마이징될 수도 있다.The
일 양태에서, 시뮬레이션 애플리케이션 (28) 은 그래픽스 디바이스 (2) 의 하드웨어 동작을 시뮬레이트한다. 시뮬레이션 애플리케이션 (28) 의 상이한 버전들이 저장 매체 (26) 에 저장되고, 상이한 하드웨어 설계들을 갖는 상이한 그래픽스 디바이스들에 대해 프로세서들 (22) 에 의해 실행될 수도 있다. 몇몇 경우들에서, 소프트웨어 라이브러리들이 저장 매체 (26) 내에 또한 저장될 수도 있으며, 그 소프트웨어 라이브러리들은 시뮬레이션 애플리케이션 (28) 과 함께 사용된다. 일 양태에서, 시뮬레이션 애플리케이션 (28) 은 일반적인 애플리케이션일 수도 있고, 특정 하드웨어 또는 그래픽스 디바이스 시뮬레이션 기능이, 실행 동안에 시뮬레이션 애플리케이션 (28) 과 링크될 수도 있는 각각의 개별적인 라이브러리 내에 포함될 수도 있다.In one aspect, the
일 양태에서, 상태/성능 정보 (32) 의 시각적인 표현이 디스플레이 디바이스 (24) 상에서 애플리케이션 개발자들에게 디스플레이될 수도 있다. 또한, 그래픽스 명령들 (30) 의 시각적인 표현이 디스플레이될 수도 있다. 다수의 경우들에서, 그래픽스 명령들 (30) 이 이진 명령들을 포함할 수도 있기 때문에, 애플리케이션 컴퓨팅 디바이스 (20) 는 명령 매핑 정보 (31) 를 사용하여, 디스플레이 디바이스 (24) 상에서 그래픽스 명령들 (30) 의 시각적인 표현을 생성할 수도 있다. 명령 매핑 정보 (31) 는 저장 매체 (26) 내에 저장되고, 그래픽스 명령들 (30) 의 시각적인 표현을 디스플레이하기 위해 프로세서들 (22) 로 로딩될 수도 있다.In one aspect, a visual representation of the state /
일 양태에서, 명령 매핑 정보 (31) 는, 그래픽스 명령들 (30) 을 그래픽스 명령들 (30) 을 생성하는 경우에 이전에 컴파일되었을 수도 있는 대응하는 API 명령들로 매핑하기 위한 매핑 정보를 예컨대 룩업 테이블 내에 포함할 수도 있다. 애플리케이션 개발자들은 API 명령들을 사용하는 프로그램들을 작성할 수도 있지만, 통상적으로, 이들 API 명령들은 그래픽스 디바이스 (2) 상에서의 실행을 위해 (애플리케이션 명령들 (21) 내에 포함된) 그래픽스 명령들 (30) 과 같은 이진 명령들로 컴파일된다. 그래픽스 명령들 (30) 내의 하나 이상의 명령들은 개별적인 API 명령으로 매핑될 수도 있다. 그 후, 매핑된 API 명령들은 디스플레이 디바이스 (24) 상에서 애플리케이션 개발자에게 디스플레이되어, 실제로 실행되고 있는 그래픽스 명령들 (30) 의 시각적인 표현을 제공할 수도 있다.In one aspect, the
일 양태에서, 애플리케이션 개발자와 같은 사용자는, 그래픽스 명령들 (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
상술된 바와 같이, 애플리케이션 컴퓨팅 디바이스 (20) 의 디스플레이 디바이스 (24) 상에서 디스플레이되는 그래픽스 이미지는 그래픽스 디바이스 (2) 상에서 디스플레이되는 이미지의 표현일 수도 있다. 시뮬레이션 애플리케이션 (28) 이 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 를 사용하여, 그래픽스 디바이스 (2) 상에서 제시된 것과 정확히 같은 이미지 또는 장면을 재생성할 수도 있기 때문에, 애플리케이션 컴퓨팅 디바이스 (20) 를 사용하는 애플리케이션 개발자들은 그래픽스 애플리케이션들 (30) 의 실행 동안의 가능한 성능 이슈들 또는 병목현상들을 신속하게 식별하고 변형들의 원형을 만드는 것 (prototype) 이 가능하여, 그래픽스 애플리케이션들 (30) 의 전체 성능을 개선할 수도 있다.As described above, the graphics image displayed on the
예컨대, 애플리케이션 개발자는, 애플리케이션 컴퓨팅 디바이스 (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
요청된 변형들 (34) 의 프로세싱 시에, 업데이트된 명령들 및/또는 정보 (35) 가, 예컨대 하나 이상의 그래픽스 드라이버들 (18) 에 의해, 애플리케이션 컴퓨팅 디바이스 (20) 에 전송된다. 업데이트된 명령들/정보 (35) 는 그래픽스 디바이스 (2) 에 의해 프로세싱되었던 요청된 변형들 (34) 에 기초하여, 실행을 위한 업데이트된 그래픽스 명령들을 포함할 수도 있다. 또한, 업데이트된 명령들/정보 (35) 는 그래픽스 디바이스 (2) 에 의해 프로세싱되었던 요청된 변형들 (34) 에 기초하여, 업데이트된 상태 및/또는 성능 정보를 포함할 수도 있다.The updated instructions and / or
업데이트된 명령들/정보 (35) 는 시뮬레이션 애플리케이션 (28) 에 의해 프로세싱되어, 디스플레이 디바이스 (24) 상에서 재생성된 이미지 정보의 디스플레이를 업데이트하고, 또한, 업데이트된 명령들/정보 (35) 의 시각적인 표현을 애플리케이션 개발자에게 제공한다 (다시, 명령 매핑 정보 (31) 를 사용하는 것을 포함할 수 있다). 그 후, 애플리케이션 개발자는 디스플레이 디바이스 (24) 상에서의 업데이트된 이미지 정보, 뿐만 아니라 업데이트된 명령들/정보 (35) 의 시각적인 표현을 뷰잉하여, 성능 이슈들이 해소되거나 또는 완화되었는지를 결정할 수도 있다. 애플리케이션 개발자는 반복 프로세스를 사용하여, 그래픽스 명령들 (30) 또는 프로토타입 변형들을 디버깅함으로써, 전체 성능 그래픽스 애플리케이션 (30) 을 개선할 수도 있다.The updated instructions /
일 양태에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 매핑/파티셔닝 정보 (23) 를 사용하여, 디스플레이 디바이스 (24) 상에서 디스플레이되는 그래픽스 이미지들을 오버레이하는 파티션들의 시각적인 그래픽 표현을 디스플레이한다. 이들 파티션들은 디스플레이 디바이스 (24) 상에서 이들 이미지들을 포함하는 장면을 도식적으로 분할한다. 예컨대, 시뮬레이션 애플리케이션 (28) 은 파티셔닝 모듈 (27) 을 사용하여, 매핑/파티셔닝 정보 (33) 를 프로세싱함으로써, 디스플레이 디바이스 (24) 의 스크린 상에서의 이들 파티션들 (예컨대, 다수의 사각형 파티션들) 의 그래픽스 표현을 생성할 수도 있다.In one aspect, the
파티셔닝 모듈 (27) 은 저장 매체 (26) 로부터 로딩되고, 프로세서들 (22) 에 의해 실행될 수도 있다. 실행되는 경우에, 파티셔닝 모듈 (27) 은 또한, 하나 이상의 그래픽스 이미지들에 대해, 상태/성능 정보 (32) 내에 포함될 수도 있는 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 예컨대, 이하 더 상세히 설명될 바와 같이, 파티셔닝 모듈 (27) 은, 디스플레이 디바이스 (24) 상에서의 디스플레이를 위한 그래픽스 이미지들을 생성하기 위해 사용된 하나 이상의 폴리곤들을 분석하고, 이들 폴리곤들 중 어떤 폴리곤들이 다수의 파티션들에 걸쳐 스팬할 수도 있는지를 결정할 수도 있다.The
저장 매체 (26) 는 프로세서들 (22) 에 의해 또한 실행될 수도 있는 네비게이션 모듈 (29) 을 더 포함한다. 실행 동안에, 시뮬레이션 애플리케이션 (28) 은 네비게이션 모듈 (29) 을 사용하여 디스플레이 디바이스 상에서 네비게이션 제어기를 디스플레이할 수도 있다. 애플리케이션 개발자와 같은 사용자는 네비게이션 제어기와 상호작용하여, 디스플레이 디바이스 (24) 상에서 디스플레이되는 장면 내에서 그래픽스 이미지들의 변형된 투시뷰를 뷰잉할 수도 있다. 그 후, 파티셔닝 모듈 (27) 은 그래픽스 이미지들의 변형된 투시뷰를 오버레이하는 파티션들의 그래픽 표현을 디스플레이하여, 변형된 장면을 도식적으로 분할할 수도 있다. 또한, 그 후, 파티셔닝 모듈 (27) 은 변형된 투시뷰에서 그래픽스 이미지들을 생성하기 위해 사용된 하나 이상의 폴리곤들을 분석하여, 폴리곤들 중 어떤 폴리곤들이 다수의 파티션들에 걸쳐 스팬할 수도 있는지를 결정할 수도 있다.The
도 2는 일 양태에 따른, 도 1에서 도시된, 그래픽스 프로세싱 시스템 (4), 그래픽스 드라이버 (18), 및 애플리케이션 컴퓨팅 디바이스 (20) 의 특정 세부사항들을 예시하는 블록도이다. 도 2에서, 애플리케이션 컴퓨팅 디바이스 (20) 가 디바이스 (2) 의 그래픽스 프로세싱 시스템 (4) 에 커플링된다고 가정된다. 그러나, 이는 예시의 목적들을 위해 도시될 뿐이다. 다른 시나리오들에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 프로세싱 시스템들 및 디바이스들의 다수의 다른 형태들에 커플링될 수도 있다.FIG. 2 is a block diagram illustrating certain details of
도 2에서 도시된 바와 같이, 그래픽스 프로세싱 시스템 (4) 은 4 개의 프로그래머블 프로세서들: 도 1에서 또한 도시된, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 를 포함한다. 제어 프로세서 (10) 는 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 또는 디스플레이 프로세서 (16) 중 임의의 것을 제어할 수도 있다. 다수의 경우들에서, 이들 프로세서들 (10, 12, 14, 및 16) 은 시스템 (4) 내의 그래픽스 프로세싱 파이프라인의 일부일 수도 있다.2, the
제어 프로세서 (10) 는 파이프라인을 통해 데이터 또는 명령 실행의 플로우의 하나 이상의 양태들을 제어할 수도 있고, 또한, 그래픽스 이미지에 대한 지오메트리 정보를 버텍스 프로세서 (14) 에 제공할 수도 있다. 버텍스 프로세서 (14) 는, 프리미티브 지오메트리 형태로 다수의 버텍스들에 따라 설명되거나 또는 정의될 수도 있는, 그래픽스 이미지의 버텍스 변환 또는 지오메트리 프로세싱을 관리할 수도 있다. 버텍스 프로세서 (14) 는 그 출력을, 그래픽스 이미지에 대해 렌더링 또는 래스터화 동작들을 수행할 수도 있는 그래픽스 프로세서 (12) 에 제공할 수도 있다. 그래픽스 프로세서 (12) 는 그 출력을, 디스플레이를 위해 픽셀 형태로 그래픽스 이미지를 준비하는 디스플레이 프로세서 (16) 에 제공할 수도 있다. 또한, 그래픽스 프로세서 (12) 는 쉐이딩 또는 스케일링과 같은, 픽셀 데이터에 대한 다양한 동작들을 수행할 수도 있다.The
종종, 그래픽스 이미지 데이터는, 애플리케이션 명령들 (21) (도 1) 의 일부일 수도 있는 그래픽스 명령들 (30) 의 실행 동안에 이 프로세싱 파이프라인에서 프로세싱될 수도 있다. 결과로서, 그래픽스 명령들 (30) 은, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 의해 실행될 수도 있다. 통상적으로, 애플리케이션 개발자들은, 그래픽스 프로세싱 시스템 (4) 내의 어떤 특정한 프로세서들이 그래픽스 명령들 (30) 중 어떤 그래픽스 명령들을 실행할지에 대한 많은 지식 또는 제어를 갖지 않을 수도 있다.Often, graphics image data may be processed in this processing pipeline during execution of
몇몇 경우들에서, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상은, 그래픽스 명령들 (30) 의 실행 동안에, 성능 이슈들을 갖거나 또는 프로세싱 파이프라인 내에서 가능한 병목현상들로서 서빙할 수도 있다. 이들 경우들에서, 그래픽스 프로세싱 시스템 (4) 내의 전체 성능이 악화될 수도 있고, 애플리케이션 개발자는 그래픽스 명령들 (30) 을 변화시켜서 성능을 개선하기를 원할 수도 있다. 그러나, 개발자가 프로세서들 (10, 12, 14, 또는 16) 중 어떤 프로세서들이 성능 이슈들을 갖는 프로세서들일 수도 있는지를 인지할 필요는 없을 수도 있다. 예컨대, 이들 성능 이슈들은 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 대한 프로세서 사용 또는 이용에 관련된 이슈들을 포함할 수도 있다.In some cases, one or more of the
특히, 렌더링 전에 프리미티브 그래픽스 데이터가 다수의 비닝 파티션들에 걸쳐 분할되는 비닝 기반 동작들은 종종, 특정 성능 이슈들을 생성할 수도 있다. 예컨대, (도 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.,
성능 병목현상들 및 가능한 솔루션들을 식별하는 문제를 보조하기 위해, 도 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
상태 데이터의 다양한 형태들이 상태/성능 정보 (32) 내에 포함될 수도 있다. 예컨대, 상태 데이터는, 그래픽스 명령들 (30) 의 실행 동안에 사용되거나, 또는 그렇지 않은 경우에, 그래픽스 명령들 (30) 과 연관된 그래픽스 데이터를 포함할 수도 있다. 상태 데이터는 위치, 컬러, 좌표들, 사이즈, 또는 무게 데이터와 같은 버텍스 어레이에 관련될 수도 있다. 상태 데이터는 텍스쳐 상태 데이터, 포인트 상태 데이터, 라인 상태 데이터, 폴리곤 상태 데이터, 컬링 (culling) 상태 데이터, 알파 테스트 상태 데이터, 블렌딩 (blending) 상태 데이터, 깊이 상태 데이터, 스텐실 (stencil) 상태 데이터, 또는 컬러 상태 데이터를 더 포함할 수도 있다. 이전에 설명된 바와 같이, 상태 데이터는 상태 정보 및 실제 데이터 양자 모두를 포함할 수도 있다. 몇몇 경우들에서, 상태 데이터는 하나 이상의 OpenGL 토큰들과 연관된 데이터를 포함할 수도 있다.Various types of status data may be included in the status /
또한, 성능 데이터의 다양한 형태들이 상태/성능 정보 (32) 내에 포함될 수도 있다. 일반적으로, 성능 데이터는 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상으로부터의 메트릭들 또는 하드웨어 카운터 데이터를 포함할 수도 있다. 성능 데이터는 프레임 레이트 또는 싸이클 데이터를 포함할 수도 있다. 싸이클 데이터는 프로파일링, 커맨드 에러이들, 버텍스 및 인덱스 데이터, 또는 다른 동작들에 대해 사용된 싸이클들에 대한 데이터를 포함할 수도 있다. 다양한 양태들에서, 상태 및 성능 데이터의 다양한 형태들이, 그래픽스 드라이버 (18A) 에 의해 그래픽스 프로세싱 시스템 (4) 으로부터 수집된 상태/성능 정보 (32) 내에 포함될 수도 있다.In addition, various types of performance data may be included in the state /
이전에 설명된 바와 같이, 애플리케이션 컴퓨팅 디바이스 (20) 는 수신된 그래픽스 명령들 (30) 및 상태/성능 정보 (32) 에 따라, 그래픽스 이미지의 표현을 디스플레이할 수도 있다. 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 상태/성능 정보 (32) 의 시각적인 표현을 디스플레이할 수도 있다. 상태/성능 정보 (32) 의 재생성된 그래픽스 이미지 및/또는 시각적인 표현을 뷰잉하고 상호작용함으로써, 애플리케이션 개발자는 그래픽스 명령들 (30) 의 실행 동안의 그래픽스 디바이스 (2) 의 그래픽스 프로세싱 시스템 (4) 내에서의 성능 이슈들을 신속하게 식별하고 해소하는 것이 가능할 수도 있다. 예컨대, 애플리케이션 개발자는 프로세서들 (10, 12, 14, 및/또는 16) 중 어떤 특정 프로세서들이 성능 이슈들을 가질 수도 있는지를 식별하는 것이 가능할 수도 있다.As previously described, the
또한, 그래픽스 드라이버 (18A) 는 매핑 및/또는 파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공한다. 도 1을 참조하여 이전에 설명된 바와 같이, 파티셔닝 모듈 (27) 은 수신된 매핑/파티셔닝 정보 (33) 를 프로세싱하여, 장면을 도식적으로 분할하기 위해, 장면에서의 그래픽스 이미지를 오버레이하는, 디스플레이 디바이스 (24) 상에서의 파티션들의 그래픽 표현을 디스플레이할 수도 있다. 또한, 파티셔닝 모듈 (27) 은 매핑/파티셔닝 정보 (33) 를 사용하여, 상태/성능 정보 (32) 내에 포함될 수도 있는 그래픽스 데이터를 분석함으로써, 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 매핑/파티셔닝 정보 (33) 는, 하나 이상의 그래픽스 이미지들을 생성하기 위해 사용될 수도 있는 그래픽스 데이터를 그래픽스 명령들 (30) 내의 식별된 명령들로 매핑하는 매핑 정보를 포함할 수도 있다.The
임의의 식별된 성능 이슈들에 대한 대책 또는 해결책을 식별하기 위한 시도에서, 개발자는 애플리케이션 컴퓨팅 디바이스 (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
몇몇 경우들에서, 사용자는 디스플레이 디바이스 (24) 상에서 디스플레이되는 네비게이션 제어기와 상호작용하여, 그래픽스 장면의 변형된 투시뷰가 디스플레이되는 것을 요청할 수도 있다. 네비게이션 모듈 (29) 은 이 네비게이션 제어기의 디스플레이 및 네비게이션 제어기와의 상호작용을 관리할 수도 있다. 사용자 인터페이스를 통해 사용자에 의해 입력되는 임의의 요청들은 요청된 변형들 (34) 에 포함될 수도 있다. 예컨대, 이들 요청들은, 장면내에서 하나 이상의 그래픽스 이미지들을 회전시키기 위한 요청들, 줌인하기 위한 요청들, 줌아웃하기 위한 요청들, 또는 장면 내에서 이미지들의 투시뷰를 변화시키기 위한 다른 유사한 요청들을 포함할 수도 있다.In some cases, the user may interact with the navigation controller displayed on the
요청된 변형들 (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
그래픽스 드라이버 (18A) 는, 요청된 변형들 (34) 의 프로세싱에 응답하여, 업데이트된 명령들 및/또는 정보 (35) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 전송할 수 있다. 업데이트된 명령들/정보 (35) 는, 성능 정보를 포함하는, 그래픽스 드라이버 (18A) 에 의해 그래픽스 프로세싱 시스템 (4) 으로부터 수집된 업데이트된 상태 정보를 포함할 수도 있다. 업데이트된 명령들/정보 (35) 는 업데이트된 그래픽스 명령들 및/또는 그래픽스 데이터를 포함할 수도 있다.The
애플리케이션 컴퓨팅 디바이스 (20) 는 업데이트된 명령들/정보 (35) 를 사용하여, 그래픽스 이미지의 업데이트된 표현, 뿐만 아니라 업데이트된 명령들/정보 (35) 의 시각적인 표현을 디스플레이할 수도 있다. 그 후, 애플리케이션 개발자는 이전에 식별된 성능 이슈들이 해소되었는지 또는 그렇지 않으면 대처되었는지를 평가하는 것이 가능할 수도 있다. 예컨대, 애플리케이션 개발자는 업데이트된 이미지, 뿐만 아니라 업데이트된 명령들/정보 (35) 의 시각적인 표현을 분석하는 것이 가능하여, 특정 텍스쳐들, 폴리곤들, 또는 다른 특징들이 최적화되었는지, 또는 다른 성능 파라미터들이 개선되었는지를 결정할 수도 있다.The
또한, 업데이트된 명령들/정보 (35) 는, 명령들/정보 (35) 내에 또한 포함되는 명령들로의 그래픽스 데이터의 업데이트된 매핑과 같은 업데이트된 매핑 및/또는 파티셔닝 정보를 포함할 수도 있다. 장면의 업데이트된 투시뷰가 업데이트된 명령들/정보 (35) 의 결과로서 디스플레이 디바이스 (24) 상에서 디스플레이되는 경우에, 파티셔닝 모듈 (27) 은 변형된 투시뷰를 오버레이하고 변형된 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이할 수도 있다. 또한, 파티셔닝 모듈 (27) 은 (업데이트된 명령들/정보 (35) 내에 또한 포함될 수도 있는) 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 파티션들은 그래픽스 데이터에 대해 수행된 렌더링 동작들에 기초하여 결정될 수도 있다.The updated instructions /
그러한 방식으로, 애플리케이션 개발자는, 그래픽스 디바이스 (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
도 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
이전에 설명된 바와 같이, 제어 프로세서 (10) 는 그래픽스 프로세싱 파이프라인을 통해 데이터 또는 명령 실행의 플로우의 하나 이상의 양태들을 제어할 수도 있고, 또한, 지오메트리 정보를 버텍스 프로세서 (14) 에 제공할 수도 있다. 도 3에서 도시된 바와 같이, 제어 프로세서 (10) 는 90 에서 지오메트리 저장을 수행할 수도 있다. 몇몇 경우들에서, 하나 이상의 프리미티브들에 대한 지오메트리 정보는 제어 프로세서 (10) 에 의해 버퍼들 (15) (도 1) 에 저장될 수도 있다. 몇몇 경우들에서, 지오메트리 정보는 저장 매체 (8) 에 저장될 수도 있다.As previously described, the
그 후, 버텍스 프로세서 (14) 는, 92에서의 프로세싱을 위해, 제어 프로세서에 의해 제공되고/되거나 버퍼들 (15) 에 저장된 소정의 프리미티브에 대한 지오메트리 정보를 획득할 수도 있다. 특정 경우들에서, 버텍스 프로세서 (14) 는 지오메트리 정보의 버텍스 변환을 관리할 수도 있다. 특정 경우들에서, 버텍스 프로세서 (14) 는 지오메트리 정보에 대해 조명 동작들을 수행할 수도 있다.The
버텍스 프로세서 (14) 는 그 출력을, 94 에서 데이터에 대해 렌더링 또는 래스터화 동작들을 수행할 수도 있는 그래픽스 프로세서 (12) 에 제공할 수도 있다. 그래픽스 프로세서 (12) 는 그 출력을, 디스플레이를 위해 픽셀 형태로 하나 이상의 그래픽스 이미지들을 준비하는 디스플레이 프로세서 (16) 에 제공할 수도 있다. 몇몇 경우들에서, 그래픽스 프로세서 (12) 는, 결정된 비닝 파티션들에 기초하여, 하나 이상의 폴리곤들과 같은 지오메트리에 대한 그래픽스 데이터를 분리할 수도 있다. 이전에 설명된 바와 같이, 그래픽스 프로세서 (12) 와 같은, 그래픽스 디바이스 (2) 내의 프로세서들 중 하나 이상은, 메모리 요구조건들 또는 제한들과 같은 특정 요인들에 기초하여, 디스플레이 (102) 의 상이한 스크린 영역들과 연관된 다수의 비닝 파티션들을 생성할 수도 있다. 특정 지오메트리 (예컨대, 삼각형) 가 다수의 파티션들에 걸쳐 스팬하는 경우에, 그래픽스 프로세서는 파티션 경계들을 따라 지오메트리를 프래그먼트들로 분리할 수도 있고, 그 프래그먼트들을 독립적으로 렌더링할 수도 있다. 몇몇 경우들에서, 그래픽스 프로세서 (12) 는, 결정된 파티션들의 수, 타입, 사이즈, 형상 등에 기초하여, 매핑/파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수도 있다.The
디스플레이 프로세서 (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
이전에 설명된 바와 같이, 그래픽스 명령들 (30) 은 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 의해 실행될 수도 있다. 통상적으로, 애플리케이션 개발자들은, 그래픽스 프로세싱 시스템 (4) 내의 어떤 특정한 프로세서들이 그래픽스 명령들 (30) 중 어떤 그래픽스 명령들을 실행하는지에 대한 많은 지식 또는 제어를 갖지 않을 수도 있다. 특정 경우들에서, 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상은, 그래픽스 명령들 (30) 의 실행 동안에, 프로세싱 파이프라인 내에서 가능한 병목현상들로서 서빙할 수도 있거나 또는 성능 이슈들을 가질 수도 있다.The
애플리케이션 개발자가 병목현상의 위치, 또는 그러한 병목현상의 효과들을 어떻게 가장 잘 해소하거나 또는 완화할지를 찾아내는 것은 종종 어려울 수도 있다. 따라서, 일 양태에서, 그래픽스 명령들 (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,
도 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
실행되는 경우에, 그래픽스 드라이버 (18A) 는, 전송 인터페이스 (110), 프로세서 사용 모듈 (112), 하드웨어 카운터 모듈 (114), 다른 상태 및/또는 성능 데이터를 관리할 수 있는 상태/성능 데이터 모듈 (116), API 트레이스 모듈 (118), 및 오버라이드 모듈 (120) 로서 도 4에서 도시된 다양한 기능 블록들을 포함한다. 그래픽스 드라이버 (18A) 는 전송 인터페이스 모듈 (110) 을 사용하여 애플리케이션 컴퓨팅 디바이스 (20) 와 통신한다.The
프로세서 사용 모듈 (112) 은 제어 프로세서 (10), 버텍스 프로세서 (14), 그래픽스 프로세서 (12), 및 디스플레이 프로세서 (16) 중 하나 이상에 대한 프로세서 사용 정보를 수집하고 유지한다. 프로세서 사용 정보는 프로세서 싸이클 및/또는 성능 정보를 포함할 수도 있다. 싸이클 데이터는 프로파일링, 커맨드 어레이들, 버텍스 및 인덱스 데이터, 또는 다른 동작들에 대해 사용되는 클럭 싸이클들에 대한 데이터를 포함할 수도 있다. 그 후, 프로세서 사용 모듈 (112) 은 그러한 프로세서 사용 정보를 전송 인터페이스 모듈 (110) 을 통해 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수도 있다. 몇몇 경우들에서, 프로세서 사용 모듈 (112) 은 비동기 방식으로 프로세스 사용 정보를 수신할 때 프로세스 사용 정보를 디바이스 (20) 에 제공한다. 다른 경우들에서, 프로세서 사용 모듈 (112) 은 디바이스 (20) 로부터의 요청의 수신 시에 정보를 제공할 수도 있다.The
하드웨어 카운터 모듈 (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
상태/성능 데이터 모듈 (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
매핑/파티셔닝 모듈 (117) 은 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및 디스플레이 프로세서 (16) 중 하나 이상으로부터의 매핑 및/또는 파티셔닝 정보 (33) 를 수집하고, 또한, 그래픽스 데이터 매핑 정보 (23) (도 1) 로부터의 정보를 수집할 수도 있다. 매핑 정보는, 디스플레이를 위한 그래픽스 이미지들을 생성하기 위해 렌더링되는 그래픽스 데이터의 식별된 부분들을 그래픽스 명령들 (30) 중 하나 이상으로 매핑하기 위한 정보를 포함할 수도 있다. 이 매핑 정보는, 개별적인 명령들을, 출력 이미지들을 렌더링하기 위해 사용되었던 오리지널 그래픽스 데이터로 매핑하는데 유익할 수도 있다. 파티셔닝 정보는, 렌더링 전에 그래픽스 데이터를 구성 프래그먼트들로 분리하는 경우에, 그래픽스 프로세싱 시스템 (4) 내에서 생성되고 사용되는 파티션들의 수, 타입, 사이즈, 형상 등을 식별하는 정보를 포함할 수도 있다. 매핑/파티셔닝 모듈 (117) 은 매핑/파티셔닝 정보 (33) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수도 있다.The mapping /
API 트레이스 모듈 (118) 은, 그래픽스 프로세싱 시스템 (4) 에 의해 실행되고 전송 인터페이스 모듈 (110) 을 통해 애플리케이션 컴퓨팅 디바이스 (20) 로 전송되는 그래픽스 명령들의 플로우 및/또는 트레이스를 관리한다. 이전에 설명된 바와 같이, 그래픽스 디바이스 (2) 는, 그래픽스 프로세싱 시스템 (4) 의 프로세싱 파리프라인에서 그래픽스 프로세싱 시스템 (4) 에 의해 실행되는 그래픽스 명령들 (30) 의 카피를 디바이스 (20) 에 제공한다. API 트레이스 모듈 (118) 은 이들 그래픽스 명령들 (30) 의 캡쳐링 및 전송을 관리한다. 또한, API 트레이스 모듈 (118) 은, 명령 매핑 정보 (31) (도 1) 와 함께 사용되는 특정 정보를 제공하여, 그래픽스 명령들 (30) 을, 그래픽스 명령들 (30) 을 생성하기 위해 사용되었을 수도 있는 API 명령들과 같은 그래픽스 명령들 (30) 의 시각적인 표현으로 매핑할 수도 있다.The
오버라이드 모듈 (120) 은 그래픽스 드라이버 (18A) 로 하여금 그래픽스 프로세싱 시스템 (4) 내에서의 특정 명령들의 실행을 변화시키거나 또는 오버라이드하게 허용한다. 이전에 설명된 바와 같이, 애플리케이션 컴퓨팅 디바이스 (20) 는 변형들 (34) 과 같은 하나 이상의 요청된 변형들을 그래픽스 디바이스 (2) 에 전송할 수도 있다. 특정 경우들에서, 요청된 변형들 (34) 은, 그래픽스 프로세싱 시스템 (4) 에서의 그래픽스 명령들 (30) 중 하나 이상의 실행을 디스에이블하기 위한 하나 이상의 요청들, 또는 그래픽스 명령들 (30) 중 하나 이상을 변형하기 위한 요청들을 포함할 수도 있다. 몇몇 경우들에서, 요청된 변형들 (34) 은 상태/성능 정보 (32) 를 변화시키기 위한 요청들을 포함할 수도 있다.The override module 120 allows the
오버라이드 모듈 (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
이러한 방식으로, 그래픽스 드라이버 (18A) 는 그래픽스 디바이스 (2) 와 애플리케이션 컴퓨팅 디바이스 (20) 사이에서 인터페이스를 제공한다. 그래픽스 드라이버 (18A) 는 그래픽스 명령들 및 상태/성능 정보 (32) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공하고, 또한, 애플리케이션 컴퓨팅 디바이스 (20) 로부터 요청된 변형들 (34) 을 수신하는 것이 가능하다. 그러한 요청된 변형들 (34) 을 프로세싱한 후에, 후속하여, 그래픽스 드라이버 (18A) 는 업데이트된 명령들/정보 (35) 를 애플리케이션 컴퓨팅 디바이스 (20) 에 제공할 수 있다.In this way, the
도 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
도 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
반면에, 폴리곤들 (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,
이들 프래그먼트들 (144A, 144B, 144C, 및 144D) 가 독립적으로 렌더링된 후에, 디스플레이 프로세서 (16) 는 폴리곤 (144) 의 정확한 그래픽 표현을 디스플레이하기 위해 이들 프래그먼트들의 각각에 대한 렌더링된 이미지들을 결합할 필요가 있을 수도 있다. 이들 개별적인 렌더링 및 결합 동작들은 성능 오버헤드를 발생시킬 수도 있다.After these
유사하게, 폴리곤 (146) 을 렌더링하기 위해, 그래픽스 프로세서 (12) 는 폴리곤 (146) 을 2 개의 구성 프래그먼트들 (146A 및 146B) (도 5b에서 도시됨) 로 분리할 수도 있다. 그 후, 그래픽스 프로세서 (12) 는 독립적인 렌더링 동작들 동안에 프래그먼트들 (146A 및 146B) 을 독립적으로 렌더링할 수도 있다. 예컨대, 파티션 (138) 과 연관된 렌더링 동작 동안에, 그래픽스 프로세서 (12) 는 프래그먼트 (146A) 를 렌더링할 수도 있고, 파티션 (136) 과 연관된 렌더링 동작 동안에, 그래픽스 프로세서 (12) 는 프래그먼트 (146B) 를 렌더링할 수도 있다. 이들 프래그먼트들 (146A 및 146B) 이 독립적으로 렌더링된 후에, 디스플레이 프로세서 (16) 는 폴리곤 (146) 의 정확한 그래픽 표현을 디스플레이하기 위해 이들 프래그먼트들의 각각에 대한 렌더링된 이미지들을 결합할 수도 있다.Similarly, to render the
몇몇 경우들에서, 도 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
애플리케이션 개발자가 윈도우 (130) 내에서 디스플레이되는 정보를 뷰잉하는 경우에, 개발자는, 폴리곤들이 다수의 파티션들에 걸쳐 스팬하기 때문에 어떤 폴리곤들이 하드웨어에 의해 분리될 수도 있는지 및 또한 그러한 파티션들이 어디에 위치되는지에 대한 아이디어를 획득할 수 있다. 개발자는 그 정보를 사용하여, 장면을 정의하는 경우에, 애플리케이션 명령들 (21) (도 1) 을 사용하는 애플리케이션과 같은 그래픽스 애플리케이션 내에서 특정 그래픽스 데이터의 최적화된 구성 또는 위치를 결정하는 것이 가능할 수도 있다. 예컨대, 도 5a에서 제시된 정보를 리뷰잉할 시에, 개발자는 폴리곤들 (144 및 146) 이 다수의 파티션들에 걸쳐 스팬하지 않도록, 폴리곤들 (144 및 146) 을 재배열 또는 재구성하는 것을 결정할 수도 있다.In the case where an application developer views information displayed in
윈도우 (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
도 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
스크린 영역 (150) 내에서, 8 개의 파티션들은 파티션들 (152, 154, 156, 158, 160, 162, 164, 및 166) 이다. 이들 파티션들의 각각은 형상이 사각형이다. 예시의 목적을 위해, 스크린 영역 (150) 이 스크린 영역 (130) (도 5a 및 도 5b) 과 영역에서 실질적으로 동일한 사이즈인 경우에, 도 6에서 도시된 각각의 파티션은 도 5a 및 도 5b에서 도시된 각각의 파티션의 사이즈의 절반이다.Within the
도 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,
일 양태에서, 파티션들 (152, 154, 156, 158, 160, 162, 164, 및 166) 의 그래픽 표현은 디스플레이 디바이스 (24) 상에서 애플리케이션 개발자에게 디스플레이될 수도 있다. 폴리곤들 (140, 142, 144, 및 146) 의 표현들과 같은 그래픽스 이미지들을 오버레이하는 그러한 파티션들의 그래픽 디스플레이는 개발자에게 상당히 유용할 수도 있다. 종종, 개발자는 그래픽스 디바이스 (2) 와 같은 임의의 개별적인 디바이스에 의해 생성되고 사용되는 파티션들의 수, 타입, 형상, 사이즈 등에 대해 정보 또는 아이디어를 거의 갖지 않을 것이다. 장면에서의 그래픽스 이미지들 상에서 오버레이되는 그러한 파티션들의 그래픽 표현을 뷰잉할 수 있음으로써, 개발자는, 예컨대, 어떤 그래픽스 이미지들 또는 프리미티브 그래픽스 데이터가 다수의 파티션들에 걸쳐 스팬할 수도 있고, 따라서 특정 렌더링 성능 오버헤드를 가질 수도 있는지에 대한 더 양호한 아이디어를 획득한다. 결과로서, 개발자는, 애플리케이션 명령들 (21) 을 포함하는 것과 같은 그래픽스 애플리케이션에 의해 생성되고 조작되는 그래픽스 데이터를 재정의, 재구성, 리사이징, 또는 그렇지 않은 경우에 변화시키는 것이 가능할 수도 있다.In one aspect, a graphical representation of the
도 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
애플리케이션 컴퓨팅 디바이스 (20) 는 또한, 그래픽스 디바이스 (2) 로부터 상태 및/또는 성능 정보 (32) 를 수신할 수도 있다 (174). 상태/성능 정보 (32) 는 그래픽스 디바이스 (2) 상에서의 그래픽스 명령들 (30) 의 실행과 연관된다. 상태/성능 정보 (32) 는, 그래픽스 디바이스 (2) 가 그래픽스 이미지를 렌더링함에 따라 그래픽스 디바이스 (2) 의 하나 이상의 상태들을 표시하는 상태 정보를 포함할 수도 있다. 상태 정보는, 제어 프로세서 (10), 그래픽스 프로세서 (12), 버텍스 프로세서 (14), 및/또는 디스플레이 프로세서 (16) 와 같은 그래픽스 명령들 (30) 을 실행하는 그래픽스 디바이스 (2) 의 하나 이상의 프로세서들로부터의 상태 정보를 포함할 수도 있다. 몇몇 경우들에서, 상태 정보는, 그래픽스 이미지 데이터를 렌더링하기 위해 그래픽스 프로세서 (12) 에 의해 사용되는 프리미티브 폴리곤 데이터와 같은 그래픽스 데이터를 포함할 수도 있다.The
애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽 장면에서의 상태/성능 정보 (32) 및 그래픽스 명령들 (30) 에 기초하여, 하나 이상의 그래픽스 이미지들의 표현을 디스플레이할 수도 있다 (176). 그러한 방식으로, 애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 디바이스 (2) 를 시뮬레이트하는 시뮬레이트된 환경 내에서 이들 그래픽스 이미지들의 표현을 디스플레이할 수 있다. 시뮬레이트된 환경은 애플리케이션 컴퓨팅 디바이스 (20) 의 프로세서들 (22) 상에서의 시뮬레이션 애플리케이션 (28) 의 실행을 통해 제공될 수도 있다.The
애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 이미지들을 오버레이하고 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이할 수도 있다 (178). 예컨대, 일 시나리오에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 도 5a 및 도 5b에서 도시된 파티션들의 그래픽 표현을 디스플레이할 수도 있다. 몇몇 경우들에서, 파티션들은 사각형 파티션들을 포함할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 수신된 매핑/파티셔닝 정보 (33) 에 기초하여 파티션들의 그래픽 표현을 디스플레이할 수도 있다.The
또한, 애플리케이션 컴퓨팅 디바이스 (20) 는, 디스플레이되는 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하여, 어떤 부분들이 다수의 파티션들과 연관되는지를 결정할 수도 있다 (180). 예컨대, 애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 이미지들을 생성하거나 또는 렌더링하기 위해 사용되는 폴리곤 데이터와 같은 그래픽스 프리미티브들을 분석하고, 어떤 폴리곤들 (예컨대, 삼각형들) 이 다수의 파티션들에 걸쳐 스팬하는지를 결정할 수도 있다.In addition, the
그래픽스 명령들의 수신 (172), 상태 정보의 수신 (174), 그래픽스 이미지의 표현의 디스플레이 (176), 파티션들의 디스플레이 (178), 및 그래픽스 데이터 (180) 의 분석은, 프로세싱될 더 많은 프레임들이 존재하는 경우에, 하나 이상의 그래픽스 이미지들의 다수의 이미지 프레임들에 대해 반복될 수도 있다. 이러한 방식으로, 애플리케이션 컴퓨팅 디바이스 (20) 는 디스플레이 디바이스 (24) 상에서 (3D 이미지들을 포함하는) 스틸 및 무빙 그래픽스 이미지들 양자 모두를 디스플레이할 수 있고, 이미지들을 오버레이하고 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이할 수 있다. 그래픽스 이미지들이 변화하거나 또는 이미지들의 교체 투시뷰들이 나타내어지므로, 애플리케이션 개발자는 이미지들과 연관된 그래픽스 데이터와 파티션들의 위치 사이의 관계를 지속적으로 확인할 수 있다.Analysis of the reception of graphics commands 172, reception of
도 8은 일 양태에 따른 시뮬레이션 애플리케이션 (28) (도 1) 의 실행을 통해 애플리케이션 컴퓨팅 디바이스 (20) 에 의해 수행될 수도 있는 방법의 플로우도이다. 일 양태에서, 프로세서들 (22) 은 시뮬레이션 애플리케이션 (28) 을 실행하여, 디스플레이 디바이스 (24) 상에서 네비게이션 제어기를 디스플레이할 수도 있다.FIG. 8 is a flow diagram of a method that may be performed by an
애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 디바이스 (2) 와 같은 외부 그래픽스 디바이스로부터 매핑/파티셔닝 정보 (33) 를 수신할 수도 있다 (190). 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 애플리케이션 컴퓨팅 디바이스 (20) 의 디스플레이 디바이스 (24) 상에서 하나 이상의 그래픽스 이미지들의 투시뷰를 디스플레이할 수도 있다 (191). 예컨대, 애플리케이션 컴퓨팅 디바이스 (20) 는 수신된 그래픽스 명령들 (30) 및/또는 상태/성능 정보 (32) 에 기초하여, 그래픽스 이미지들의 투시뷰를 디스플레이할 수도 있다.The
애플리케이션 컴퓨팅 디바이스 (20) 는 수신된 매핑/파티셔닝 정보 (33) 에 기초하여, 디스플레이 디바이스 (24) 상에서 그래픽스 이미지들을 오버레이하는 파티션들의 그래픽스 표현을 디스플레이할 수도 있다 (192). 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는 상태/성능 정보 (32) 내에 포함된 그래픽스 데이터와 같은 그래픽스 이미지들에 대한 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 예컨대, 그래픽스 데이터는 삼각형들과 같은 복수의 그래픽스 프리미티브들을 포함할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 삼각형들 중 어떤 삼각형들이 파티션들 중 다수의 파티션들에 걸쳐 스팬하는지를 결정할 수도 있다 (193). 이들 삼각형들은 다수의 파티션들에서 적어도 부분적으로 렌더링된 삼각형들을 포함할 수도 있다.The
일 양태에서, 애플리케이션 컴퓨팅 디바이스 (20) 는, 파티션들의 그래픽 표현을 디스플레이하는 것과 함께, 디스플레이 디바이스 (24) 상에서 파티션들 중 다수의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이한다. 몇몇 경우들에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 다수의 파티션들에 걸쳐 스팬하는 각각의 삼각형에 대해, 컬러와 같은 그래픽 표시를 디스플레이할 수도 있다 (194).In one aspect, the
예컨대, 일 양태에서, 애플리케이션 컴퓨팅 디바이스 (20) 는 디스플레이 디바이스 (24) 상에서 삼각형들의 "히트 맵 (heat map)" 표현을 디스플레이하며, 여기에서 각각의 삼각형은 컬러와 같은 연관된 그래픽 표시자를 갖는다. 컬러에 추가하여, 그래픽 표시자들의 다른 형태들 (예컨대, 점선들, 블링킹 표시자들, 하이라이트된 표시자들) 이 삼각형들을 서로 구별하기 위해 특정 시나리오들에서 사용될 수도 있다. 다수의 파티션들에 걸쳐 스팬하지 않는 삼각형들은 하나의 컬러 (예컨대, 블루) 로 디스플레이될 수도 있다. 다수의 파티션들 (예컨대, 2 개 및 3 개의 파티션들) 에 걸쳐 스팬하는 삼각형들은 제 2 컬러 (예컨대, 퍼플) 로 디스플레이될 수도 있다. 3 개보다 더 많은 파티션들에 걸쳐 스팬하는 삼각형들은 제 3 컬러 (예컨대, 레드) 로 두드러지게 디스플레이될 수도 있다. 따라서, 이 예에서, 애플리케이션 개발자는 어떤 삼각형들이 다수의 파티션들에 걸쳐 스팬하는지, 그리고 어떤 삼각형들이 다른 삼각형들보다 더 많은 파티션들에 걸쳐 스팬하는지를 신속하게 결정할 수 있다. 개발자는 이 정보를 사용하여, 다수의 파티션들에 걸쳐 스팬하는 삼각형들을 어떻게 재구성하거나, 재정의하거나, 또는 그렇지 않은 경우에 제구축할지를 결정함으로써, 성능 (예컨대, 렌더링) 오버헤드를 감소시키는 것이 가능할 수도 있다.For example, in one aspect, the
애플리케이션 컴퓨팅 디바이스 (20) 는 네비게이션 모듈 (29) (도 1) 을 사용하여, 디스플레이 디바이스 (24) 상에서 디스플레이되는 사용자 인터페이스 내에서 네비게이션 제어기를 디스플레이할 수도 있다. 예컨대, 네비게이션 제어기는 3D 카메라 제어기를 포함할 수도 있다. 애플리케이션 개발자는 네비게이션 제어기와 상호작용하여, 디스플레이 디바이스 (24) 상에서 디스플레이되는 그래픽스 이미지들의 장면 주위를 네비게이팅할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 네비게이션 제어기를 통해 개발자로부터 사용자 입력을 수신하여, 이미지들의 투시뷰를 변형할 수도 있다 (195).The
그 후, 애플리케이션 컴퓨팅 디바이스 (20) 는 네비게이션 제어기에 대한 사용자 입력에 기초하여, 변형된 그래픽스 장면에서의 그래픽스 이미지들의 변형된 투시뷰를 디스플레이할 수도 있다. 예컨대, 개발자는 네비게이션 제어기와 상호작용하여, 이미지들의 장면을 회전시키거나, 장면을 줌인 또는 줌아웃하거나, 또는 그렇지 않은 경우에 장면의 투시뷰를 변화시킬 수도 있으며, 그 후, 이는 새로운 이미지들을 포함하는 변형된 장면 내에서의 이미지들의 변형된 투시뷰를 디스플레이할 수도 있다. 네비게이션 제어기에 제공되는 사용자 입력은 요청된 변형들 (34) 로서 그래픽스 디바이스 (2) 에 전송될 수도 있고, 업데이트된 투시뷰의 디스플레이는, 그래픽스 디바이스 (2) 에 의해 애플리케이션 컴퓨팅 디바이스 (20) 에 제공된 업데이트된 명령들/정보 (35) 에 기초할 수도 있다. 일 양태에서, 요청된 변형들 (34) 은 그래픽스 디바이스 (2) 상에서의 그래픽스 명령들 (30) 중 하나 이상의 실행을 디스에이블하기 위한 요청, 그래픽스 디바이스 (2) 상에서의 그래픽스 명령들 (30) 중 하나 이상을 변형하기 위한 요청, 및 그래픽스 디바이스 (2) 상에서의 상태/성능 정보 (32) 를 변형하기 위한 요청 중 적어도 하나를 포함할 수도 있다.The
일 양태에서, 또한, 애플리케이션 컴퓨팅 디바이스 (20) 는, 그래픽스 이미지들의 변형된 투시뷰를 오버레이하고 변형된 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이할 수도 있다. 애플리케이션 컴퓨팅 디바이스 (20) 는 그래픽스 이미지들의 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다.In one aspect, the
그래픽스 이미지(들)의 투시뷰의 디스플레이 (191), 그래픽스 이미지(들)를 오버레이하는 파티션들의 디스플레이 (192), 어떤 프리미티브 삼각형(들)이 다수의 파티션들에 걸쳐 스팬하는지를 결정하는 것 (193), 각각의 결정된 삼각형에 대한 그래픽 표시의 디스플레이 (194), 및 네비게이션 제어기를 통해 사용자 입력을 수신하여 장면의 투시뷰를 변형하는 것 (195) 은 장면의 다수의 투시뷰들에 대해 반복될 수도 있다 (196). 그래픽스 이미지들이 변화하므로, 또는 이미지들의 교체 투시뷰들이 나타내어지므로, 애플리케이션 개발자는 이미지들과 연관된 그래픽스 데이터와 파티션들의 위치 사이의 관계를 지속적으로 확인할 수 있다.Display 191 of the perspective view of the graphics image (s),
도 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
이전에 설명된 바와 같이, 그래픽스 디바이스 (200) 는 (도 9의 예에서 큐브인) 3D 그래픽스 이미지 (202) 를 디스플레이할 수 있다. 도 9의 예에서, 그래픽스 디바이스 (200) 는 또한 키패드 (204) 를 갖는다. 사용자는 키패드 (204) 와 상호작용하여 그래픽스 디바이스 (200) 를 조작할 수도 있다. 키패드 (204) 는 다수의 키들 및/또는 버튼들을 포함할 수도 있다. 그래픽스 디바이스 (200) 는 커넥터 (206) 를 통해 그래픽스 디바이스 (201) 를 포함하는 디바이스 (예컨대, 애플리케이션 컴퓨팅 디바이스 (20)) 에 그래픽스 명령들 및 상태/성능 정보를 전송할 수 있다. 일 양태에서, 커넥터 (206) 는 유니버설 시리얼 버스 (USB) 커넥터를 포함한다. 다른 양태들에서, 커넥터들의 상이한 형태들이 사용될 수도 있다. 몇몇 양태들에서, 무선 통신이 커넥터 (206) 를 대체할 수도 있다.As previously described, the
도 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
그래픽스 명령 영역 (208) 은 그래픽스 디바이스 (200) 로부터 수신된 하나 이상의 그래픽스 명령들의 시각적인 표현을 포함한다. 이전에 설명된 바와 같이, 그러한 명령들의 시각적인 표현은 그러한 명령들의 표현을 포함할 수도 있다. 예컨대, 그래픽스 디바이스 (200) 가 이진 그래픽스 명령들을 전송하는 경우에, 디스플레이 디바이스 (201) 는, 상위-레벨 애플리케이션 프로그래밍 인터페이스 (API) 명령들 (예컨대, OpenGL 명령들) 과 같은 다른 형태로 그러한 이진 명령들의 표현을 디스플레이할 수도 있다. (도 1에서 도시된 매핑 정보 (31) 와 같은) 매핑 정보는 그래픽스 명령 영역 (208) 내에서 디스플레이될 수도 있는 다른 포맷으로 수신된 이진 명령들을 매핑하기 위해 사용될 수도 있다.The
상태/성능 정보 영역 (214) 은 그래픽스 디바이스 (200) 로부터 수신된 상태 및/또는 성능 정보의 시각적인 표현을 포함한다. 수신된 그래픽스 명령들 및 상태/성능 정보는 디스플레이 영역 내에서 3D 그래픽스 이미지 (210) 를 디스플레이하기 위해 사용될 수도 있다. 일 양태에서, 그래픽스 디바이스 (200) 는 (도 4에서 도시된 상태/성능 데이터 모듈 (116) 과 같은) 상태/성능 데이터 모듈을 구현하는 그래픽스 드라이버를 이용하여, 다양한 상태 및/또는 성능 데이터를 제공할 수도 있다. 수신된 상태/성능 정보는 그래픽스 데이터 (예컨대, 프리미티브 데이터 및/또는 래스터화된 데이터) 를 포함할 수도 있다.The state /
또한, 윈도우 (203) 는 하나 이상의 선택기들 (212A 내지 212N) 을 포함한다. 사용자는 이들 선택기들 (212A 내지 212N) 중 어느 것을 선택할 수 있다. 각각의 선택기 (212A 내지 212N) 는, 이하 더 상세히 설명될 바와 같이, 통계적 및 네비게이션 기능들과 같은 상이한 기능들과 연관될 수도 있다. 윈도우 (203) 는, 사용자에 의해 각각이 선택될 수도 있는 선택기들 (216A 내지 216N 및 218A 내지 218N) 을 더 포함한다. 또한, 각각의 선택기 (216A 내지 216N 및 218A 내지 218N) 는, 도 10을 참조하여 이하 더 상세히 설명될 바와 같이, 메트릭 기능들, 오버라이드 기능들, 및/또는 텍스쳐 기능들과 같은 상이한 기능들과 연관될 수도 있다.In addition,
애플리케이션 개발자와 같은 사용자는 윈도우 (203) 내에서 디스플레이되는 정보를 변화시킬 수도 있다. 예컨대, 사용자는 그래픽스 명령 영역 (208) 내에서 디스플레이되는 명령들 중 하나 이상, 또는 상태/성능 정보 영역 (214) 내에서의 상태/성능 정보의 임의의 것을 변형할 수도 있다.A user, such as an application developer, may change the information displayed in
그 후, 윈도우 (203) 내에서 사용자에 의해 개시된 임의의 변화들은 요청된 변형들로서 그래픽스 디바이스 (200) 에 전송될 수도 있다. 그 후, 그래픽스 디바이스 (200) 는 이들 변형들을 프로세싱하고, 그래픽스 명령 영역 (208) 및/또는 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있는 업데이트된 명령들 및/또는 정보를 제공할 수도 있다. 또한, 업데이트된 명령들 및/또는 정보는 디스플레이 영역 (211) 내에서 3D 그래픽스 이미지 (210) 의 변형된 버전을 디스플레이하기 위해 사용될 수도 있다.Any changes initiated by the user in the
일 양태에서, 영역 (214) 내에서 디스플레이될 수도 있는 상태 및/또는 성능 정보는, 그래픽스 디바이스 (200) 상에서의 그래픽스 명령들의 실행 동안에 가능한 병목현상들을 식별하기 위해, (도 1에서 도시된 애플리케이션 컴퓨팅 디바이스 (20) 와 같은) 디스플레이 디바이스 (201) 를 포함하는 컴퓨팅 디바이스에 의해 분석될 수도 있다. 결국, 애플리케이션 개발자와 같은 사용자는, 그래픽스 디바이스 (200) 상에서의 그래픽스 명령들의 실행을 최적화하기 위해, 디버깅 프로세스 동안에 윈도우 (203) 에서 제시되는 정보를 뷰잉하기를 원할 수도 있다. 이전에 설명된 바와 같이, 병목현상들은 그래픽스 디바이스 (200) 에서의 그래픽스 프로세싱 파이프라인 내의 임의의 곳에서 도입될 수도 있고, 애플리케이션 개발자가 성능 최적화를 위해 그러한 병목현상들을 분리시키는 것은 어려울 수도 있다. 상태 및/또는 성능 정보의 분석을 통해, 가능한 병목현상들 및 가능한 대안들이, 윈도우 (203) 에서, 예컨대 하나 이상의 서브-윈도우들 또는 팝-업 윈도우들 내에서 또는 윈도우 (203) 의 영역 (214) 내에서 디스플레이될 수 있다.In one aspect, state and / or performance information, which may be displayed in
일 양태에서, 윈도우 (203) 는 그래픽스 디바이스 (200) 로부터 수신된 그래픽스 명령들의 호출 스트림에서 조우된 병목현상들에 대한 리포트를 디스플레이할 수도 있고, 또한, 가능한 대안들을 디스플레이할 수도 있다. 몇몇 경우들에서, 이들 가능한 대안들은 "가정 (what-if)" 시나리오들로서 사용자에게 제시될 수도 있다. 예컨대, 호출 스트림에서 비-최적화된 삼각형-리스트를 렌더링하는 것이 하나의 가능한 시나리오로서 제시될 수도 있는 한편, 삼각형-스트립 최적화 프레임워크를 통해 그 리스트를 프리-프로세싱하는 것이 제 2의 가능한 시나리오로서 제시될 수도 있다. 사용자는 이들 가능한 대안 시나리오들 중 임의의 것을 요청된 변형들로서 선택할 수도 있고, 그 후, 요청된 변형들은 그래픽스 디바이스 (200) 에 송신되며, 그래픽스 디바이스 (200) 에서 성능이 측정될 수도 있다. 그 후, 그래픽스 디바이스 (200) 는, 그래픽스 명령 영역 (208) 및/또는 상태/성능 정보 영역 (214) 내에서 제시될 수도 있는 업데이트된 명령들/정보를 전송한다. 그 후, 사용자는 결과들을 뷰잉하고, 다양한 상이한 가능한 대안들에 대한 결과들을 비교하여 최적의 솔루션을 식별할 수 있다. 사용자는 이 프로세스를 사용하여, 이들의 애플리케이션으로부터 병목현상들을 제거하기 위해 취해질 수 있는 일련의 단계들을 신속하게 식별할 수 있다.In one aspect, the
사용자는 시험 또는 트라이얼/에러 디버깅의 목적들을 위해 윈도우 (203) 내에서 조정들을 행하는 것을 반복적으로 계속할 수도 있다. 사용자는 그래픽스 명령들 및 상태/성능 정보의 다양한 상이한 형태들 또는 결합들로 시험하여, 디스플레이 영역 (211) 내에서 디스플레이되는 이미지들 또는 장면들에서 변화들을 식별할 수도 있다. 사용자는 윈도우 (203) 의 컨텐츠에 의해 제공되는 시뮬레이션 환경을 사용하여, 그래픽스 디바이스 (200) 상에서 임의의 소스 코드를 재컴파일하고 컴파일된 코드를 재실행할 필요 없이 그래픽스 디바이스 (200) 에 의해 제공되는 상태들 및 호출 스트림의 일부일 수도 있는 그래픽스 명령들을 상호작용적으로 뷰잉하고 변형할 수 있다.The user may repeatedly continue to make adjustments within the
몇몇 경우들에서, 사용자는 버튼들 (212A 내지 212N) 중 하나 이상을 조작하여, 그래픽 카메라와 같은 그래픽 네비게이션 제어기를 조작함으로써, 그래픽스 이미지 (210) 의 투시뷰를 변형할 수도 있다. 그러한 조작은, 그래픽스 디바이스 (200) 에 전송되는 요청된 변형들로서 캡쳐링될 수도 있다. 그 후, 그래픽스 디바이스 (200) 에 의해 제공된 업데이트된 명령들/정보는 그래픽스 이미지 (210) 의 투시뷰를 변형하기 위해 사용된다.In some instances, the user may manipulate one or more of the
몇몇 경우들에서, 다양한 텍스쳐 및/또는 상태 정보가 변형가능한 엔티티들로서 윈도우 (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
일 양태에서, 또한, 디스플레이 디바이스 (201) 는 파티셔닝 정보, 뿐만 아니라 다수의 파티션들에 걸쳐 스팬할 수도 있는 폴리곤 데이터를 디스플레이할 수 있다. 예컨대, 애플리케이션 개발자는 버튼들 (212A 내지 212N) 중 하나와 같은 버튼을 선택하여, 디스플레이 디바이스 (201) 로 하여금, 이미지 (210) 를 오버레이하고 디스플레이 영역 (211) 에서 장면을 도식적으로 분할하는 파티션들의 그래픽 표현 (예컨대, 사각형 파티션들) 을 디스플레이하게 할 수도 있다. 몇몇 경우들에서, 디바이스 (200) 가 그래픽스 디바이스 (2) 의 일부인 경우에, 디스플레이된 파티션들은 수신된 매핑/파티셔닝 정보 (33) (도 1) 에 기초할 수도 있다. 또한, 디스플레이 디바이스 (201) 를 포함하는 디바이스는 그래픽스 이미지 (210) 에 대한 그래픽스 데이터 (예컨대, 폴리곤 데이터) 를 분석하여, 그래픽스 데이터의 어떤 부분들이 파티션들 중 다수의 파티션들과 연관되는지를 결정할 수도 있다. 예컨대, 다수의 폴리곤들이 그래픽스 이미지 (210) 를 렌더링하기 위해 사용되었던 경우에, 디바이스는 폴리곤들을 분석하여, 이들 폴리곤들 중 어떤 폴리곤들이 다수의 파티션들에 걸쳐 스팬하는지를 결정할 수도 있다.In one aspect, the
도 10은 일 양태에 따른 그래픽 윈도우 (220) 내에서 정보를 디스플레이하는 디스플레이 디바이스 (201) 에 커플링된 그래픽스 디바이스 (200) 의 다른 예를 예시하는 개념도이다. 이 양태에서, 윈도우 (220) 는 다양한 명령 정보 뿐만 아니라 메트릭 정보를 포함한다.10 is a conceptual diagram illustrating another example of a
예컨대, 그래픽스 명령 영역 (208) 내에서, 다양한 그래픽스 명령들 (242) 이 도시된다. 그래픽스 명령들 (242) 은 그래픽스 디바이스 (200) 에 의해 제공되는 그래픽스 명령들의 서브세트일 수도 있다. 예컨대, 그래픽스 디바이스 (200) 가 그래픽스 디바이스 (2) 의 일부인 경우에, 그래픽스 명령들 (242) 은 그래픽스 명령들 (30) 의 서브세트일 수도 있다. 몇몇 경우들에서, (도 1에서 도시된 매핑 정보 (31) 와 같은) 매핑 정보는, 그래픽스 디바이스 (200) 로부터 수신된 인입 명령들을, 그래픽스 명령 영역 (208) 내에서 디스플레이되는 명령들 (242) 로서 구체화된 이들 명령들의 시각적인 표현으로 매핑하기 위해 사용될 수도 있다. 예컨대, 수신된 명령들이 이진 형태인 경우에, 명령들 (242) 은 이진 형태로 명령들을 생성하기 위해 사용되었던 API 명령들을 포함할 수도 있다.For example, within
도 10의 예에서 도시된 바와 같이, 그래픽스 명령들 (242) 은 고-레벨 명령들 및 저-레벨 명령들 양자 모두를 포함한다. 애플리케이션 개발자와 같은 사용자는 스크롤바 (244) 를 사용하여 명령들 (242) 의 풀-세트를 뷰잉할 수도 있다. 특정 고-레벨 명령들은 하위-레벨 API 명령들과 같은 하나 이상의 저-레벨 명령들을 포함할 수도 있다. 몇몇 경우들에서, 애플리케이션 개발자는, 연관된 고-레벨 명령의 일부이거나 또는 그 연관된 고-레벨 명령에 의해 실행되는 임의의 저-레벨 명령들을 뷰잉하기 위해, 특정한 고-레벨 명령을 (예컨대, 클릭함으로써) 선택할 수도 있다. 이전에 설명된 바와 같이, 명령들 (242) 과 같은 수신된 그래픽스 명령들은, 윈도우 (220) 의 디스플레이 영역 (211) 에서 나타내어진 그래픽스 이미지 (210) 를 포함하는 그래픽스 이미지 (202) 의 표현을 생성하기 위해 사용된다.As shown in the example of FIG. 10,
다양한 선택 버튼들이 도 10에서의 상태/성능 정보 영역 (214) 아래에 도시된다. 이들 선택 버튼들은 텍스쳐 버튼 (236), 오버라이드 버튼 (238), 및 메트릭 버튼 (240) 을 포함한다. 도 10의 예에서, 애플리케이션 개발자는 메트릭 버튼 (240) 을 선택하였다. 이 버튼의 선택 시에, 다양한 메트릭 옵션들이 디스플레이될 수도 있다. 예컨대, 하나 이상의 메트릭 버튼들 (234A 내지 234N) 이 상태/성능 영역 (214) 위에서 디스플레이될 수도 있다. 각각의 메트릭 버튼 (234A 내지 234N) 은 특정한 메트릭과 연관될 수도 있다. 몇몇 경우들에서, 이들 메트릭들 중 하나 이상은 미리 정의되거나 또는 미리 구성된 메트릭 타입들일 수도 있고, 몇몇 경우들에서, 애플리케이션 개발자는 메트릭들 중 하나 이상을 선택하거나 또는 커스터마이징할 수도 있다. 예시적인 메트릭들은, 에컨대, 다음 중 임의의 하나 이상을 포함할 수도 있으며: 이들은 초당 프레임, (하나 이상의 프로세서들에 대한) % 비지, 버스 비지, 메모리 비지, 버텍스 비지, 초당 버텍스, 초당 삼각형, 초당 픽셀 클럭, 초당 프래그먼트 등이다. 애플리케이션 개발자는 메트릭 버튼들 (234A 내지 234N) 중 임의의 것을 선택하여, 선택된 메트릭들에 관한 추가적인 세부사항들을 뷰잉할 수도 있다.Various selection buttons are shown below the status /
예컨대, 메트릭 버튼 (234A) 이 초당 프레임들의 수와 연관되는 경우에, 애플리케이션 개발자는 메트릭 버튼 (234A) 을 선택하여, 그래픽스 이미지 (210) 에 대한 (성능에 관련된) 초당 프레임들의 수에 대한 추가적인 세부사항들을 뷰잉하거나, 또는 그래픽스 이미지 (210) 의 부분들을 선택할 수도 있다. 몇몇 경우들에서, 개발자는 메트릭 버튼 (234A) 을 선택하거나, 또는 메트릭 버튼 (234A) 을 상태/성능 정보 영역 (214) 으로 드래그할 수도 있다. 초당 프레임들의 수에 대한 상세한 정보는 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있다. 또한, 개발자는 메트릭 버튼 (234A) 을 디스플레이 영역 (211) 으로 드래그하거나, 또는 메트릭 버튼 (234A) 의 애플리케이션에 대한 그래픽스 이미지 (210) 의 부분을 선택할 수도 있다. 예컨대, 개발자는 메트릭 버튼 (234A) 을 선택한 후에 그래픽스 이미지 (210) 의 부분을 선택할 수도 있고, 그 후, 선택된 부분에 대한 초당 프레임들의 수에 대한 상세한 정보가 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있다. 그러한 방식으로, 개발자는 메트릭 버튼들 (234A 내지 234N) 중 하나 이상의 선택, 및 그래픽스 이미지 (210) (또는 그 일부) 의 가능한 선택에 기초하여, 임의의 수의 상이한 메트릭 타입들에 대한 성능 데이터를 뷰잉할 수도 있다.For example, if the
일 양태에서, 윈도우 (220) 내에서 디스플레이될 수도 있는 메트릭 데이터가 그래픽스 디바이스 (200) 의 그래픽스 드라이버 (예컨대, 도 4에서 도시된 그래픽스 드라이버 (18)) 에 의해 제공될 수도 있다. 그래픽스 드라이버는 하드웨어 카운터 모듈 (예컨대, 도 4의 하드웨어 카운터 모듈 (114)) 및/또는 프로세서 사용 모듈 (예컨대, 도 4의 프로세서 사용 모듈 (112)) 을 구현하여, 윈도우 (220) 내에서 메트릭 데이터로서 디스플레이될 수도 있는 다양한 데이터를 제공할 수도 있다.In one aspect, metric data that may be displayed in
몇몇 경우들에서, 개발자는 텍스쳐 버튼 (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
몇몇 경우들에서, 또한, 개발자는 오버라이드 버튼 (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
몇몇 경우들에서, 개발자는 그래픽스 명령 영역 (208) 내에서 나타내어진 하나 이상의 그래픽스 명령들 (242) 을 오버라이드할 수도 있다. 이들 경우들에서, 개발자는 그래픽스 명령 영역 (208) 내에서 정보를 타이핑하거나 또는 그렇지 않은 경우에 입력하여, 그래픽스 명령들 (242) 중 하나 이상을 변형하거나 또는 오버라이드할 수도 있다. 그 후, 이들 변형들은 그래픽스 디바이스 (200) 에 전송될 수도 있고, 그래픽스 디바이스 (200) 는 업데이트된 명령들/정보를 제공하여, 디스플레이 영역 (211) 내에서 그래픽스 이미지 (210) 의 디스플레이를 업데이트할 것이다. 예컨대, 개발자는 그래픽스 명령들 (242) 의 파라미터들, 순서, 타입 등을 변화시켜서, 명령들 (242) 에 의해 제공된 하나 이상의 기능들을 오버라이드할 수도 있다. 일 양태에서, 매핑 정보 (31) (도 1) 는, 그래픽스 명령들 (242) 에 대한 변화들을 그래픽스 디바이스 (200) 에 제공될 수도 있는 다른 포맷의 대응하는 명령들 (예컨대, 이진 명령들) 로 매핑 또는 컨버팅하기 위해 사용될 수도 있다.In some cases, the developer may override one or
몇몇 경우들에서, 또한, 개발자는 오버라이드 버튼 (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
윈도우 (220) 는 선택 버튼들 (231 및 232) 을 더 포함한다. 선택 버튼 (231) 은 파티션 버튼이고, 선택 버튼 (232) 은 네비게이션 버튼이다. 개발자는 파티션 버튼 (231) 을 선택하여, 그래픽스 이미지 (210) 를 오버레이하고 디스플레이 영역 (211) 에서 디스플레이되는 장면을 도식적으로 분할하는 사각형 파티션들과 같은 파티션들의 그래픽 표현을 뷰잉할 수도 있다. 파티션 버튼 (231) 의 사용자 선택 시에, 그래픽 파티션들이 디스플레이 영역 (211) 에서 디스플레이될 수도 있다.The
또한, 디스플레이 영역 (211), 또는 개별적인 디스플레이 영역 또는 윈도우는, 데이터의 어떤 부분들이 다수의 파티션들과 연관되는지를 결정하는 그래픽스 이미지 (210) 에 대한 그래픽스 데이터의 분석에 기초하여, 정보를 디스플레이할 수도 있다. 예컨대, 디스플레이 영역 (211), 또는 개별적인 디스플레이 영역 또는 윈도우는, 파티션들의 그래픽 표현과 함께, 그래픽스 이미지 (210) 를 렌더링하기 위해 사용된 어떤 폴리곤들이 다수의 파티션들에 걸쳐 스팬하는지를 디스플레이할 수도 있다. 몇몇 경우들에서, 컬러와 같은 그래픽 표시가 다수의 파티션들에 걸쳐 스팬하는 각각의 폴리곤 (예컨대, 삼각형) 에 대해 디스플레이될 수도 있다.In addition, the
예컨대, 일 양태에서, 각각의 삼각형이 특정한 컬러로 디스플레이되는 "히트 맵" 이 디스플레이될 수도 있다. 다수의 파티션들에 걸쳐 스팬하지 않는 삼각형들은 하나의 컬러 (예컨대, 블루) 로 디스플레이될 수도 있다. 다수의 파티션들 (예컨대, 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
또한, 개발자는 네비게이션 버튼 (232) 을 선택하여, 디스플레이 영역 (211) 내에서 네비게이팅하고, 가능하게는, 디스플레이 영역 (211) 내에서 그래픽스 이미지 (210) 의 투시뷰를 변화시킬 수도 있다. 예컨대, 네비게이션 버튼 (232) 의 선택 시에, 3D 그래픽 카메라 또는 네비게이션 제어기가 디스플레이될 수도 있다. 개발자는 제어기와 상호작용하여, 디스플레이 영역 (211) 내에서의 임의의 영역으로 네비게이팅할 수도 있다. 또한, 개발자는 제어기를 사용하여, 예컨대 그래픽스 이미지 (210) 를 회전시키거나 줌인/아웃함으로써, 그래픽스 이미지 (210) 의 투시뷰를 변화시킬 수도 있다.The developer may also select the
일 양태에서, 네비게이션 버튼 (232) 의 선택 및 그래픽 네비게이션 제어기와의 상호작용을 통한 임의의 개발자-개시된 변화들은 요청된 변형들 (예컨대, 도 1에서 도시된 요청된 변형들 (84) 의 일부) 로서 그래픽스 디바이스 (200) 로 전파될 수도 있다. 그 후, 그래픽스 디바이스 (200) 에 의해 제공된 업데이트된 명령들/정보는 그래픽스 이미지 (210) 의 디스플레이 (예컨대, 투시뷰) 를 업데이트하기 위해 사용될 수도 있다. 또한, 업데이트된 명령들은 그래픽스 명령 영역 (208) 내에서 디스플레이될 수도 있다. 업데이트된 상태/성능 정보는 상태/성능 정보 영역 (214) 내에서 디스플레이될 수도 있다.In one aspect, the selection of the
일 양태에서, 그래픽 파티션들이 디스플레이되고 그래픽스 이미지 (210) 의 변형된 투시뷰 위에 오버레이될 수도 있다. 또한, 그래픽스 이미지 (210) 의 변형된 투시뷰에 대한 업데이트된 명령들/정보 내에 포함된 그래픽스 데이터는, 데이터의 어떤 부분들이 다수의 파티션들과 연관되는지를 결정하기 위해 분석될 수도 있다.In one aspect, the graphics partitions may be displayed and overlaid on a modified perspective view of the
결과로서, 개발자는, 그래픽스 이미지 (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
그래픽 사용자 인터페이스 내에서의 그래픽 윈도우 (220) 와의 상호작용을 통해, 애플리케이션 개발자는, 그래픽스 이미지 (202) 를 생성하기 위해 그래픽스 디바이스 (200) 에 의해 실행되는 그래픽스 명령들의 시각적인 표현인 그래픽스 명령들 (242) 의 실행 동안에 성능 이슈들 및/또는 병목현상들을 식별하기 위해 시도할 수 있다. 그래픽스 이미지 (202) (즉, 그래픽스 이미지 (210)) 의 표현은 그래픽스 디바이스 (200) 에 의해 수신된 그래픽스 명령들 (242) 및 상태/성능 데이터에 기초하여, 디스플레이 영역 (211) 내에서 디스플레이된다. 그래픽스 명령들 (242), 그래픽스 이미지 (210) 및 상태/성능 정보, 뿐만 아니라 이들 중 하나 이상에 대한 사용자-개시된 변형들에 기초한 효과들을 뷰잉함으로써, 애플리케이션 개발자는 트라이얼-및-에러 또는 디버깅 프로세스에 상호작용적이고 동적으로 관여하여, 그래픽스 디바이스 (200) 상에서의 명령들의 실행을 최적화하고, 명령 실행 동안의 임의의 성능 이슈들 (예컨대, 병목현상들) 을 제거하거나 또는 완화할 수 있다.Through interaction with the
또한, 다수의 상이한 그래픽 파티션들을 포함하는 그래픽 장면의 시각적인 표현은, 개발자로 하여금, 스크린 파티셔닝과 연관될 수도 있는 코스트들로 인해 감소된 성능을 나타내는 그래픽스 장면의 부분들을 식별하게 허용할 수도 있다. 개발자는 파티셔닝 및 연관된 분석 정보를 리뷰잉하여, 장면의 대체 구성들을 조사함으로써, 이들 코스트들 및/또는 관련된 성능 오버헤드를 감소시키는 것을 보조할 수도 있다.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
소프트웨어로 구현되는 경우에, 기술들은, 하나 이상의 프로세서들에 의해 실행되는 경우에 상술된 방법들 중 하나 이상을 수행하는 명령들을 갖는 코드를 포함하는 컴퓨터 판독가능 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 매체는 패키징 재료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능 매체는, 동기식 동적 랜덤 애게슷 메모리 (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 >
상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 것, 복수의 파티션들의 그래픽 표현을 디스플레이하는 것, 상기 하나 이상의 그래픽스 이미지들의 다수의 프레임들에 대한 그래픽스 데이터를 분석하는 것을 반복하는 단계를 더 포함하는, 그래픽스 데이터를 프로세싱하는 방법.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.
상기 하나 이상의 그래픽스 이미지들 중 적어도 하나는 3 차원 그래픽스 이미지를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.The method according to claim 1,
Wherein at least one of the one or more graphics images comprises a three-dimensional graphics image.
복수의 상기 파티션들의 그래픽 표현을 디스플레이하는 단계는, 상기 하나 이상의 그래픽스 이미지들을 오버레이하고 상기 그래픽 장면을 도식적으로 분할하는 복수의 사각형 파티션들의 그래픽 표현을 디스플레이하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.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, .
상기 그래픽스 데이터는 상기 하나 이상의 그래픽스 이미지들을 렌더링하기 위해 사용되는 복수의 그래픽스 프리미티브들을 포함하는, 그래픽스 데이터를 프로세싱하는 방법.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.
상기 복수의 그래픽스 프리미티브들은 복수의 삼각형들을 포함하는, 그래픽스 데이터를 프로세싱하는 방법.6. The method of claim 5,
Wherein the plurality of graphics primitives comprises a plurality of triangles.
상기 그래픽스 데이터를 분석하는 단계는, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 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.
상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 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.
상기 파티션들 중 2 개 이상의 파티션들에 걸쳐 스팬하는 삼각형들의 그래픽 표현을 디스플레이하는 단계를 더 포함하는, 그래픽스 데이터를 프로세싱하는 방법.8. The method of claim 7,
Further comprising displaying a graphical representation of triangles spanning across two or more of the partitions.
상기 파티션들 중 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.
상기 파티션들 중 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.
상기 각각의 대응하는 삼각형에 대한 그래픽 표시는 컬러를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.12. The method of claim 11,
Wherein the graphical representation of each corresponding triangle comprises a color.
상기 각각의 삼각형에 대한 그래픽 표시를 디스플레이하는 단계는, 상기 각각의 삼각형이 스팬되는 파티션들의 갯수에 따라서 상기 각각의 삼각형에 대한 상기 그래픽 표시를 상이하게 디스플레이하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.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.
상기 수신된 파티셔닝 정보는, 상기 외부 그래픽스 디바이스의 하드웨어 아키텍쳐에 기초하여 상기 그래픽스 데이터를 렌더링할 때 상기 외부 그래픽스 디바이스에 의해 사용된 파티션들을 식별하는, 그래픽스 데이터를 프로세싱하는 방법.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.
네비게이션 제어기를 디스플레이하는 단계;
상기 네비게이션 제어기와 상호작용하기 위해 사용자 입력을 수신하는 단계; 및
상기 네비게이션 제어기에 대한 상기 사용자 입력에 기초하여, 변형된 그래픽스 장면에서의 상기 하나 이상의 그래픽스 이미지들의 변형된 투시뷰 (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.
복수의 상기 파티션들의 그래픽 표현을 디스플레이하는 단계는, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰를 오버레이하고 상기 변형된 그래픽스 장면을 도식적으로 분할하는 복수의 상기 파티션들의 그래픽 표현을 디스플레이하는 단계를 포함하며,
상기 그래픽스 데이터를 분석하는 단계는, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 상기 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 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.
상기 외부 그래픽스 디바이스로부터 그래픽스 명령들을 수신하는 단계; 및
상기 외부 그래픽스 디바이스로부터 상태 정보를 수신하는 단계로서, 상기 상태 정보는 상기 외부 그래픽스 디바이스 상에서의 상기 그래픽스 명령들의 실행과 연관되는, 상기 상태 정보를 수신하는 단계를 더 포함하며,
상기 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하는 단계는, 상기 그래픽스 명령들 및 상기 상태 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 단계를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.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.
상기 상태 정보는 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 포함하는, 그래픽스 데이터를 프로세싱하는 방법.18. The method of claim 17,
Wherein the status information comprises graphics data for the one or more graphics images.
상기 그래픽스 데이터를 상기 그래픽스 명령들로 매핑하는 매핑 정보를 상기 외부 그래픽스 디바이스로부터 수신하는 단계를 더 포함하는, 그래픽스 데이터를 프로세싱하는 방법.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.
상기 파티션들은 상기 그래픽스 데이터에 대해 수행되는 렌더링 동작들에 기초하여 결정되는, 그래픽스 데이터를 프로세싱하는 방법.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.
상기 하나 이상의 프로세서들로 하여금,
상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 것, 복수의 파티션들의 그래픽 표현을 디스플레이하는 것, 및 상기 하나 이상의 그래픽스 이미지들의 다수의 프레임들에 대한 그래픽스 데이터를 분석하는 것을 반복하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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.
상기 하나 이상의 그래픽스 이미지들 중 적어도 하나는 3 차원 그래픽스 이미지를 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.22. The method of claim 21,
Wherein at least one of the one or more graphics images comprises a three-dimensional graphics image.
상기 하나 이상의 프로세서들로 하여금, 복수의 상기 파티션들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 하나 이상의 그래픽스 이미지들을 오버레이하고 상기 그래픽 장면을 도식적으로 분할하는 복수의 사각형 파티션들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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.
상기 그래픽스 데이터는 상기 하나 이상의 그래픽스 이미지들을 렌더링하기 위해 사용되는 복수의 그래픽스 프리미티브들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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.
상기 복수의 그래픽스 프리미티브들은 복수의 삼각형들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.26. The method of claim 25,
Wherein the plurality of graphics primitives comprises a plurality of triangles.
상기 하나 이상의 프로세서들로 하여금, 상기 그래픽스 데이터를 분석하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 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:
상기 하나 이상의 프로세서들로 하여금, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 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.
상기 하나 이상의 프로세서들로 하여금,
상기 파티션들 중 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.
상기 하나 이상의 프로세서들로 하여금, 상기 파티션들 중 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.
상기 하나 이상의 프로세서들로 하여금, 상기 파티션들 중 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 >
상기 각각의 대응하는 삼각형에 대한 그래픽 표시는 컬러를 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.32. The method of claim 31,
Wherein the graphic representation for each corresponding triangle comprises a color. ≪ Desc / Clms Page number 21 >
상기 하나 이상의 프로세서들로 하여금, 각각의 삼각형에 대한 그래픽 표시를 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 각각의 삼각형이 스팬되는 파티션들의 갯수에 따라서 상기 각각의 삼각형에 대한 상기 그래픽 표시를 상이하게 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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.
상기 수신된 파티셔닝 정보는, 상기 외부 그래픽스 디바이스의 하드웨어 아키텍쳐에 기초하여 상기 그래픽스 데이터를 렌더링할 때 상기 외부 그래픽스 디바이스에 의해 사용된 파티션들을 식별하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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.
상기 하나 이상의 프로세서들로 하여금,
네비게이션 제어기를 디스플레이하게 하고;
상기 네비게이션 제어기와 상호작용하기 위해 사용자 입력을 수신하게 하며;
상기 네비게이션 제어기에 대한 상기 사용자 입력에 기초하여, 변형된 그래픽스 장면에서의 상기 하나 이상의 그래픽스 이미지들의 변형된 투시뷰 (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.
상기 하나 이상의 프로세서들로 하여금, 복수의 상기 파티션들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰를 오버레이하고 상기 변형된 그래픽스 장면을 도식적으로 분할하는 복수의 상기 파티션들의 그래픽 표현을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하며;
상기 하나 이상의 프로세서들로 하여금, 상기 그래픽스 데이터를 분석하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 상기 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 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.
상기 하나 이상의 프로세서들로 하여금,
상기 외부 그래픽스 디바이스로부터 그래픽스 명령들을 수신하게 하며;
상기 외부 그래픽스 디바이스로부터 상태 정보를 수신하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하며;
상기 상태 정보는 상기 외부 그래픽스 디바이스 상에서의 상기 그래픽스 명령들의 실행과 연관되고,
상기 하나 이상의 프로세서들로 하여금, 상기 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들로 하여금, 상기 그래픽스 명령들 및 상기 상태 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 디스플레이하게 하기 위한 컴퓨터 실행가능 명령들을 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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:
상기 상태 정보는 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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 >
상기 하나 이상의 프로세서들로 하여금,
상기 그래픽스 데이터를 상기 그래픽스 명령들로 매핑하는 매핑 정보를 상기 외부 그래픽스 디바이스로부터 수신하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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.
상기 파티션들은 상기 그래픽스 데이터에 대해 수행되는 렌더링 동작들에 기초하여 결정되는, 그래픽스 데이터를 프로세싱하기 위한 컴퓨터 판독가능 매체.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.
상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 수단, 및 상기 하나 이상의 그래픽스 이미지들을 오버레이하고 상기 그래픽 장면을 도식적으로 분할하는 파티션들의 그래픽 표현을 디스플레이하는 수단은, 디스플레이 디바이스를 포함하고,
상기 파티셔닝 정보를 수신하는 수단, 및 상기 그래픽스 데이터를 분석하는 수단은 하나 이상의 프로세서들을 포함하며,
상기 하나 이상의 프로세서들은,
상기 외부 그래픽스 디바이스에 의해 제공된 상기 파티셔닝 정보를 수신하며,
상기 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 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.
상기 하나 이상의 프로세서들은 또한, 상기 하나 이상의 그래픽스 이미지들을 디스플레이하는 것, 복수의 파티션들의 그래픽 표현을 디스플레이하는 것, 및 상기 하나 이상의 그래픽스 이미지들의 다수의 프레임들에 대한 그래픽스 데이터를 분석하는 것을 반복하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.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 >
상기 하나 이상의 그래픽스 이미지들 중 적어도 하나는 3 차원 그래픽스 이미지를 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.43. The method of claim 42,
Wherein at least one of the one or more graphics images comprises a three-dimensional graphics image.
상기 하나 이상의 프로세서들은, 적어도, 상기 하나 이상의 그래픽스 이미지들을 오버레이하고 상기 그래픽 장면을 도식적으로 분할하는 복수의 사각형 파티션들의 그래픽 표현을 디스플레이함으로써, 복수의 상기 파티션들의 그래픽 표현을 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.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 >
상기 그래픽스 데이터는 상기 하나 이상의 그래픽스 이미지들을 렌더링하기 위해 사용되는 복수의 그래픽스 프리미티브들을 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.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.
상기 복수의 그래픽스 프리미티브들은 복수의 삼각형들을 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.47. The method of claim 46,
Wherein the plurality of graphics primitives comprise a plurality of triangles.
상기 하나 이상의 프로세서들은, 적어도, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 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.
상기 하나 이상의 프로세서들은, 적어도, 상기 삼각형들 중 어떤 삼각형들이 상기 파티션들 중 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.
상기 하나 이상의 프로세서들은 또한, 상기 파티션들 중 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.
상기 하나 이상의 프로세서들은, 적어도, 상기 파티션들의 그래픽 표현을 디스플레이하는 것과 함께, 상기 파티션들 중 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.
상기 하나 이상의 프로세서들은, 적어도, 각각의 삼각형에 대한 그래픽 표시를 디스플레이함으로써, 상기 파티션들 중 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.
상기 각각의 대응하는 삼각형에 대한 그래픽 표시는 컬러를 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.53. The method of claim 52,
Wherein the graphic representation for each corresponding triangle comprises a color.
상기 하나 이상의 프로세서들은, 적어도, 상기 각각의 삼각형이 스팬되는 파티션들의 갯수에 따라서 상기 각각의 삼각형에 대한 상기 그래픽 표시를 상이하게 디스플레이함으로써, 상기 각각의 삼각형에 대한 그래픽 표시를 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.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.
상기 수신된 파티셔닝 정보는, 상기 외부 그래픽스 디바이스의 하드웨어 아키텍쳐에 기초하여 상기 그래픽스 데이터를 렌더링할 때 상기 외부 그래픽스 디바이스에 의해 사용된 파티션들을 식별하는, 그래픽스 데이터를 프로세싱하는 디바이스.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.
상기 하나 이상의 프로세서들은 또한, 네비게이션 제어기를 디스플레이하고, 상기 네비게이션 제어기와 상호작용하기 위해 사용자 입력을 수신하며, 상기 네비게이션 제어기에 대한 상기 사용자 입력에 기초하여, 변형된 그래픽스 장면에서의 상기 하나 이상의 그래픽스 이미지들의 변형된 투시뷰 (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.
상기 하나 이상의 프로세서들은, 적어도, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰를 오버레이하고 상기 변형된 그래픽스 장면을 도식적으로 분할하는 복수의 상기 파티션들의 그래픽 표현을 디스플레이함으로써, 복수의 상기 파티션들의 그래픽 표현을 디스플레이하도록 구성되며;
상기 하나 이상의 프로세서들은, 적어도, 상기 하나 이상의 그래픽스 이미지들의 상기 변형된 투시뷰에 대한 그래픽스 데이터를 분석하여, 상기 그래픽스 데이터의 어떤 부분들이 상기 파티션들 중 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.
상기 하나 이상의 프로세서들은 또한, 상기 외부 그래픽스 디바이스로부터 그래픽스 명령들을 수신하고, 상기 외부 그래픽스 디바이스로부터 상태 정보를 수신하도록 구성되며,
상기 상태 정보는 상기 외부 그래픽스 디바이스 상에서의 상기 그래픽스 명령들의 실행과 연관되고,
상기 하나 이상의 프로세서들은, 적어도, 상기 그래픽스 명령들 및 상기 상태 정보에 기초하여, 상기 하나 이상의 그래픽스 이미지들을 디스플레이함으로써, 상기 그래픽 장면에서의 하나 이상의 그래픽스 이미지들을 디스플레이하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.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, .
상기 상태 정보는 상기 하나 이상의 그래픽스 이미지들에 대한 그래픽스 데이터를 포함하는, 그래픽스 데이터를 프로세싱하는 디바이스.59. The method of claim 58,
Wherein the status information comprises graphics data for the one or more graphics images.
상기 하나 이상의 프로세서들은 또한, 상기 그래픽스 데이터를 상기 그래픽스 명령들로 매핑하는 매핑 정보를 상기 외부 그래픽스 디바이스로부터 수신하도록 구성되는, 그래픽스 데이터를 프로세싱하는 디바이스.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.
상기 파티션들은 상기 그래픽스 데이터에 대해 수행되는 렌더링 동작들에 기초하여 결정되는, 그래픽스 데이터를 프로세싱하는 디바이스.43. The method of claim 42,
Wherein the partitions are determined based on rendering operations performed on the graphics data.
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)
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)
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)
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 |
-
2009
- 2009-07-24 EP EP09790829A patent/EP2319015A1/en not_active Withdrawn
- 2009-07-24 KR KR1020117004633A patent/KR101286938B1/en not_active IP Right Cessation
- 2009-07-24 WO PCT/US2009/051772 patent/WO2010011980A1/en active Application Filing
- 2009-07-24 CN CN2009801274650A patent/CN102089784A/en active Pending
- 2009-07-24 JP JP2011520245A patent/JP5242788B2/en not_active Expired - Fee Related
- 2009-07-24 CA CA2730298A patent/CA2730298A1/en not_active Abandoned
- 2009-07-27 TW TW098125262A patent/TW201015483A/en unknown
Patent Citations (3)
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 |
---|---|
EP2319015A1 (en) | 2011-05-11 |
CA2730298A1 (en) | 2010-01-28 |
KR20110036947A (en) | 2011-04-12 |
JP5242788B2 (en) | 2013-07-24 |
CN102089784A (en) | 2011-06-08 |
JP2011529236A (en) | 2011-12-01 |
WO2010011980A1 (en) | 2010-01-28 |
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 |
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 |