KR20140078568A - Hidden surface removal in graphics processing systems - Google Patents

Hidden surface removal in graphics processing systems Download PDF

Info

Publication number
KR20140078568A
KR20140078568A KR1020130157252A KR20130157252A KR20140078568A KR 20140078568 A KR20140078568 A KR 20140078568A KR 1020130157252 A KR1020130157252 A KR 1020130157252A KR 20130157252 A KR20130157252 A KR 20130157252A KR 20140078568 A KR20140078568 A KR 20140078568A
Authority
KR
South Korea
Prior art keywords
test
fragment
initial
fragments
sampling point
Prior art date
Application number
KR1020130157252A
Other languages
Korean (ko)
Other versions
KR102057163B1 (en
Inventor
존 니스타드
에드바르트 소르가르트
프로데 헤겔룬트
Original Assignee
에이알엠 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/716,952 external-priority patent/US9153070B2/en
Priority claimed from US13/909,561 external-priority patent/US9214006B2/en
Application filed by 에이알엠 리미티드 filed Critical 에이알엠 리미티드
Publication of KR20140078568A publication Critical patent/KR20140078568A/en
Application granted granted Critical
Publication of KR102057163B1 publication Critical patent/KR102057163B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Abstract

An initial depth test stage (4, 13) of a graphics processing pipeline (1) is configured to transmit information on a fragment passing through an initial depth test to other stages (3, 4, 6, 12) of the pipeline. The other stages of the pipeline determine whether the processing of an arbitrary fragment which is currently processed can be stopped using initial depth test pass information.

Description

그래픽 처리 시스템에서 히든 표면의 제거{HIDDEN SURFACE REMOVAL IN GRAPHICS PROCESSING SYSTEMS}[0001] HIDDEN SURFACE REMOVAL IN GRAPHICS PROCESSING SYSTEMS [0002]

본 발명은 컴퓨터 그래픽의 처리, 구체적으로 그래픽 처리에 있어서 히든 표면의 제거에 관한 것이다.
The present invention relates to the processing of computer graphics, and more particularly, to the removal of hidden surfaces in graphics processing.

당업계에 알려진 바와 같이, 그래픽 처리는 일반적으로 그래픽 처리 작업이 보다 용이하게 수행되게 하도록, 먼저 디스플레이될 프레임 등의 그래픽 처리(렌더링) 출력부를 다수의 유사한 기본 성분[소위, "프리미티브(primitive)"]으로 분할함으로써 수행된다. 이들 "프리미티브"는 일반적으로 삼각형 등의 간단한 다각형의 형태이다.As is known in the art, graphics processing generally involves rendering a graphics processing (rendering) output portion, such as a frame to be displayed, with a number of similar basic components (so-called "primitive" ]. These "primitives" are generally in the form of simple polygons such as triangles.

디스플레이될 프레임 등의 출력부의 프리미티브는 일반적으로 그래픽 처리를 필요로 하는 어플리케이션(예컨대, 게임)으로부터 수신된 그래픽 드로잉 명령어(요청)를 이용하여 그래픽 처리 시스템을 위한 어플리케이션 프로그램 인터페이스에 의해 발생된다. The primitive of the output, such as the frame to be displayed, is typically generated by an application program interface for the graphics processing system using a graphics drawing command (request) received from an application that requires graphics processing (e.g., a game).

각 프리미티브는 이 단계에서 일반적으로 꼭지점 세트에 의해 획정되고 그 꼭지점 세트로서 나타낸다. 프리미티브의 각 꼭지점은 꼭지점을 나타내는 관련된 데이터(예컨대, 위치, 칼라, 텍스쳐 및 기타 속성 데이터)의 세트를 갖는다. 이어서, 이 데이터는 예컨대 디스플레이를 위해 꼭지점[꼭지점이 관련된 프리미티브(들)]을 레스터화(rasterising) 및 렌더링할 때에 사용된다. Each primitive is typically defined by a vertex set at this stage and represented as its vertex set. Each vertex of the primitive has a set of related data (e.g., position, color, texture, and other attribute data) representing the vertex. This data is then used, for example, in rasterizing and rendering vertices (primitives associated with vertices) for display.

프리미티브 및 그 꼭지점이 일단 생성되어 획정되었다면, 예컨대 프레임을 디스플레이하도록 그래픽 처리 시스템에 의해 처리될 수 있다. Once the primitive and its vertices have been created and defined, they can be processed by the graphics processing system to display, for example, a frame.

이 프로세스는 기본적으로 처리될 출력 영역을 덮는 샘플링 포인트들의 어레이 중 어느 샘플링 포인트가 프리미티브에 의해 커버되는지를 결정하는 것과, 각 샘플링 포인트가 해당 샘플링 포인트에서 프리미티브를 나타내도록 (예컨대, 그 칼라 등의 관점에서) 가져야 하는 외양을 결정하는 것을 수반한다. This process basically includes determining which of the sampling points of the array of sampling points covering the output area to be processed is covered by the primitive, and determining whether each sampling point represents a primitive at the corresponding sampling point (e.g., ≪ / RTI >

레스터화 프로세스는 프리미티브를 위해 사용되어야 하는 샘플링 포인트[즉, 렌더링 출력부, 예컨대 디스플레이될 프레임에서 프리미티브를 나타내도록 사용될 샘플링 포인트의 (x, y) 위치]를 결정한다. The rasterization process determines the sampling point (i. E., The (x, y) position of the sampling point to be used to represent the primitive in the rendering output, e.g., the frame to be displayed) that should be used for the primitive.

이어서, 렌더링 프로세스는 프리미티브를 샘플링 포인트에서 나타내는(즉, 각 샘플링 포인트를 "가리는") 데에 필요한 적색, 녹색 및 청색(RGB) 칼라 값 및 "알파"(투명도) 값 등의 데이터를 유도한다. 이는 당업계에 알려진 바와 같이, 텍스쳐를 적용하고, 샘플링 포인트 데이터 값들을 혼합하는 것 등을 수반할 수 있다. The rendering process then derives data such as the red, green, and blue (RGB) color values and the "alpha" (transparency) values needed to represent the primitives at the sampling points (i.e., "mask" each sampling point). This may involve applying a texture, mixing sampling point data values, etc., as is known in the art.

(3D 그래픽 인쇄물에서, "레스터화"라는 용어는 때때로 샘플 위치로 프리미티브의 전환 및 렌더링을 모두 의미하도록 사용된다. 그러나, 여기서, "레스터화"는 프리미티브 데이터를 샘플링 포인트 어드레스로 전환시키는 것만을 지칭하도록 사용될 것이다.)(In 3D graphic prints, the term "rasterization" is sometimes used to refer both to the switching and rendering of primitives to sample locations. However, here, "rasterization" refers to only converting primitive data to sampling point addresses .

이들 프로세스는 통상적으로 1개, 또는 1개보다 많은 샘플링 포인트의 세트를 시험한 다음, (시험되는) 해당 프리미티브 내에 있는(프리미티브에 의해 커버되는) 샘플링 포인트와, 그래픽 처리 작업(렌더링 등)이 수행되는 "프래그먼트(fragment)"로서 일반적으로 지칭되는 별개의 그래픽 엔터티(entity)를 포함하는 것으로 판명된 샘플링 포인트들의 각 세트를 발생시킴으로써 수행된다. 따라서, 커버된 샘플링 포인트는 사실상 해당 샘플링 포인트에서 프리미티브를 렌더링하도록 사용될 프래그먼트로서 처리된다. "프래그먼트"는 렌더링 프로세스(렌더링 파이프라인)를 통과하는 그래픽 엔터티이다. 발생되고 처리되는 각 프래그먼트는 예컨대 그래픽 처리 시스템이 어떻게 구성되는지에 따라 단일의 샘플링 포인트 또는 복수 개의 샘플링 포인트들의 세트를 제공할 수 있다. These processes typically test one or more than one set of sampling points and then perform a sampling operation on a sampling point (covered by the primitive) within the corresponding primitive (being tested) and a graphics processing operation Quot; is performed by generating each set of sampling points that have been found to contain distinct graphic entities, generally referred to as "fragments " Thus, the covered sampling point is treated as a fragment to be used to render the primitive at the corresponding sampling point in effect. A "fragment" is a graphical entity that passes through the rendering process (the rendering pipeline). Each fragment that is generated and processed may provide a single sampling point or a set of multiple sampling points depending on, for example, how the graphics processing system is configured.

[따라서, "프래그먼트"는 사실상 프리미티브의 주어진 출력 스페이스 샘플링 포인트 또는 포인트들로 삽입되는 프리미티브 데이터의 세트이다(그것과 관련된다). 또한, 해당 샘플링 포인트(프래그먼트 위치)에서 프리미티브를 가리는 데에 요구되는 각각의 프리미티브 및 다른 상태의 데이터를 포함할 수 있다. 각 그래픽 프래그먼트는 통상적으로 출력부(예컨대, 출력 프레임)의 "픽셀"과 동일한 크기 및 위치일 수 있다(픽셀이 최종 디스플레이에서 특이점이므로, 그래픽 프로세서가 디스플레이의 픽셀 및 (렌더) 상에서 작동하는 "프래그먼트들" 간에 1 대 1 맵핑이 있을 수 있기 때문에). 그러나, 프레임과 디스플레이 픽셀 간에 1 대 1 대응이 아닌 경우가 있을 수 있는데, 예컨대 다운샘플링 등의 전처리의 특별한 형태가 최종 이미지를 디스플레이하기 전에 렌더링된 이미지에 수행된다.]Thus, a "fragment" is essentially a set of primitive data (related to it) that is inserted into a given output space sampling point or points of a primitive. It may also include data for each primitive and other states required to mask the primitive at the corresponding sampling point (fragment location). Each graphic fragment may typically be the same size and position as the "pixel" of the output (e.g., output frame) (since the pixel is a singularity in the final display, One-to-one mapping "). However, there may be cases where there is not a one-to-one correspondence between the frame and the display pixel, for example a special form of preprocessing such as downsampling is performed on the rendered image before displaying the final image.

[또한, 소정의 위치에서 상이한 오버래핑 프리미티브들로부터의 다수의 프래그먼트들이 (예컨대, 투명도 및/또는 혼합으로 인해) 서로 영향을 미칠 수 있을 때에, 최종적인 픽셀 출력은 해당 픽셀 위치에서 복수 개의 또는 모든 프래그먼트들에 따라 좌우될 수 있다.](Also, when multiple fragments from different overlapping primitives at a given location can affect each other (e.g., due to transparency and / or blending), the final pixel output may contain multiple or all fragments It can be influenced by the facts.]

[따라서, 샘플링 포인트와 디스플레이의 픽셀 간에 1 대 1 대응이 있을 수 있지만, 보다 통상적으로는 샘플링 포인트와 디스플레이 픽셀 간에 1 대 1 대응이 없을 수 있는데, 그 이유는 최종 이미지를 디스플레이하기 위해 출력 픽셀 값을 발생시키도록 상기 렌더링된 샘플 값에 다운샘플링이 수행될 수 있기 때문이다. 유사하게, 예컨대 소정의 위치에서 상이한 오버래핑 프리미티브로부터의 다수의 샘플링 포인트 값이 (예컨대, 투명도 및/또는 혼합으로 인해) 서로 영향을 미치는 경우에, 최종적인 픽셀 출력은 또한 해당 픽셀 위치에서 복수 개의 오버래핑 샘플 값에 따라 좌우될 것이다.]Thus, there may be a one-to-one correspondence between the sampling point and the pixels of the display, but more typically there may not be a one-to-one correspondence between the sampling point and the display pixel, The downsampling can be performed on the rendered sample value to generate the sampled value. Similarly, for example, where multiple sampling point values from different overlapping primitives at a given location affect each other (e.g., due to transparency and / or blending), the final pixel output also has a plurality of overlapping It will depend on the sample value.]

"즉시 모드" 그래픽 처리 또는 렌더링으로서 일반적으로 지칭되는 그래픽 처리를 위한 한가지 공지된 기법에서, 프리미티브들은 발생될 때에 하나씩 처리(레스터화 및 렌더링)된다. In one known technique for graphics processing, generally referred to as "immediate mode" graphics processing or rendering, primitives are processed (rasterized and rendered) one by one when they are generated.

이 타입의 시스템에서, 프리미티브(그 꼭지점)는 선착순으로 그래픽 시스템에 제공되고, 이에 따라 프리미티브는 프리미티브가 수신되는 순서로 렌더링된다. In this type of system, a primitive (its vertices) is provided on a first-come, first-served basis to the graphics system so that primitives are rendered in the order in which primitives are received.

또한, 그래픽 처리 시스템에서는, 소위 "타일 기반" 또는 "연기된" 렌더링을 이용하는 것이 공지되어 있다. 타일 기반 렌더링에서, 전체 렌더 출력부보다는, 예컨대 프레임이 사실상 즉시 모드 렌더링에서와 같이 한번에 처리되고, 렌더 출력부, 예컨대 디스플레이될 프레임은 일반적으로 "타일"로서 지칭되는 복수 개의 보다 작은 서브 구역으로 분할된다. 각 타일(서브 구역)은 별개로 (통상 잇달아) 렌더링되고, 이어서 렌더링된 타일(서브 구역)은 완벽한 렌더 출력부, 예컨대 디스플레이용 프레임을 제공하도록 재결합된다. 그러한 구조에서, 렌더 출력부는 통상적으로 규칙적인 크기로 형성되는 서브 구역(타일)(일반적으로, 예컨대 정사각형 또는 직사각형)으로 분할되지만, 이는 중요하지 않다. Also, in graphics processing systems, it is known to use so-called "tile based" or "postponed" rendering. In a tile-based rendering, the entire render output, rather than the entire render output, is processed at one time, such as in virtually instant mode rendering, and the render output, e.g., the frame to be displayed, is split into a plurality of smaller sub- do. Each tile (sub-region) is rendered separately (typically one after the other), and then the rendered tile (sub-region) is recombined to provide a complete render output, e.g., a frame for display. In such a structure, the render output is typically subdivided into sub-zones (tiles) (typically, for example, squares or rectangles) that are formed at regular sizes, but this is not critical.

즉시 모드 및 타일 기반 렌더링에서, 레스터화 및 렌더링 프로세스에 대한 입력부는 통상적으로 그래픽 프로세서에 의해 실행될 그래픽 명령의 리스트를 포함할 것이다. 이 "명령어 리스트"는 당업계에 공지된 바와 같이 그래픽 프로세서가 프리미티브를 그리도록 지시하는 명령어, 및 (타일 기반 시스템)에서 렌더링 상태 변화, 시작 및 종료 타일 명령어 등의 다른 그래픽 프로세스를 지시하는 명령어 등을 포함할 것이다. In immediate mode and tile-based rendering, the input to the rasterization and rendering process will typically include a list of graphical instructions to be executed by the graphics processor. This "instruction list" includes instructions that instruct the graphics processor to draw primitives, as is well known in the art, and instructions that instruct other graphics processes, such as rendering state changes, start and end tile instructions, .

즉시 모드 렌더링에서, 이 명령어는 잇달아 실행될 명령어를 단순히 열거하는 반면, 타일 기반 렌더링에서, 리스트는 "타일"로 분할될 수 있고, 통상적으로 분할될 것이다(즉, 다른 타일을 위한 명령어와 별개로 각 타일을 위한 명령어를 열거할 것이다). In instant mode rendering, this command simply lists the instructions to be executed one after the other, whereas in tile-based rendering, the list can be divided into "tiles" and typically split (ie, separate from the instructions for other tiles It will list the commands for the tile).

현재 그래픽 처리 시스템의 한가지 단점은 프리미티브들이 통상적으로는 완벽한 전방 대 후방 순서가 아니라 순차적으로 처리되기 때문에, 출력부가 디스플레이를 위해 처리될 때에 소정의 샘플링 포인트(및 이에 따라 프래그먼트 및 픽셀)가 수 회 가려질 수 있다는 것이다. 이는 수용 및 렌더링된 제1 프리미티브가 나중에 다음의 프리미티브에 의해 커버될 때에 발생하여, 렌더링된 제1 프리미티브가 사실상 해당 픽셀(들)(및 샘플링 포인트(들))에서 보이지 않게 된다. 프리미티브는 이 방식으로 수 회 덮어씌여질 수 있고 이는 통상적으로 렌더링되는 각 렌더 출력부, 예컨대 프레임에 대해 수행되는 다중의 궁극적으로 잉여적인 렌더링 작업을 초래한다. 이 현상은 일반적으로 "오버드로우(overdraw)"로서 지칭된다. One disadvantage of current graphics processing systems is that the predetermined sampling points (and thus the fragments and pixels) are covered several times when the output is processed for display, since the primitives are typically processed sequentially rather than in a full front-to-back order It is possible to be. This occurs when the received and rendered first primitive is later covered by the following primitive so that the rendered first primitive is virtually invisible at the corresponding pixel (s) (and at the sampling point (s)). Primitives can be overwritten several times in this manner, which typically results in multiple ultimate redundant rendering operations performed on each render output, e.g., frame, that is typically rendered. This phenomenon is generally referred to as "overdraw ".

그러한 궁극적으로 잉여적인 작업을 수행하는 결과는 감소된 프레임 속도 및 증가된 메모리 대역폭 요건(예컨대, 나중의 프리미티브에 의해 덮어씌여지는 프리미티브를 위한 데이터를 불러온 결과로서)을 포함한다. 이들 모두는 바람직하지 않고 그래픽 처리 시스템의 전체 성능을 감소시킨다. 이들 문제는 렌더링될 프레임 등의 렌더 출력부가 더 커지고 더 복잡해질 때에(잠재적으로 보이는 시야에서 더 많은 표면이 있기 때문에), 그리고 프로그래머블 프래그먼트 쉐이딩(shading)이 증가할 때에(프로그래머블 프래그먼트 쉐이딩을 이용하여 소정의 프래그먼트를 가리는 비용이 비교적 크기 때문에) 악화되는 경향이 있다. The result of performing such ultimately redundant tasks includes reduced frame rate and increased memory bandwidth requirements (e.g., as a result of loading data for a primitive overwritten by a later primitive). All of which are undesirable and reduce the overall performance of the graphics processing system. These problems arise when the render output, such as the frame to be rendered, becomes larger and more complex (because there is more surface in the potentially visible field) and when programmable fragment shading is increased (programmable fragment shading is used The cost of covering the fragments of the network is relatively large).

"오버드로우"의 문제는 전방 대 후방 순서로 렌더링하기 위해 프리미티브를 전송함으로써 상당히 감소될 수 있다. 그러나, 텍스쳐 등의 리소스에 대한 간섭성 엑세스의 요구, 및 프레임 당 API 콜의 갯수를 최소화시키는 요구 등의 다른 그래픽 처리 요건은 일반적으로 프리미티브에 대한 다른 바람직한 순서 요건을 요구한다. 또한, 렌더링 전에 프리미티브의 충분한 전방 대 후방 정렬은 그래픽 처리 유닛에 대한 프리미티브의 충분한 처리량을 여전히 유지하는 동안에 실용적이지 않을 수 있다. 이들 및 다른 인자는 소정의 렌더 출력부, 예컨대 프레임을 위한 프리미티브의 전방 대 후방 순서가 일반적으로 사실상 가능하지 않거나 바람직하지 않다는 것을 의미한다. The problem of "overdraw" can be significantly reduced by transmitting primitives to render in forward-backward order. However, other graphical processing requirements, such as the requirement of coherent access to resources such as textures, and the need to minimize the number of API calls per frame, generally require other desirable ordering requirements for primitives. Also, sufficient forward-backward alignment of the primitives before rendering may not be practical while still maintaining sufficient throughput of the primitives to the graphics processing unit. These and other factors mean that the forward-backward order of primitives for a given render output, e.g., frame, is generally not practically possible or desirable.

따라서, 디스플레이를 위해(즉, 비-가시 프리미티브 및/또는 프래그먼트 등의 렌더링을 피하도록) 프레임 등의 렌더 출력부를 처리할 때에 수행되는 "오버드로우"의 양(히든 표면의 잉여적인 처리의 양)을 감소시키려는 다수의 다른 기법이 제안되었다. Thus, the amount of "overdraw" (the amount of surplus processing on the hidden surface) that is performed when processing a render output, such as a frame, for display (ie, to avoid rendering non-visible primitives and / A number of other techniques have been proposed to reduce < RTI ID = 0.0 >

예컨대, 프리미티브 또는 프래그먼트 등이 이미 렌더링된 프리미티브에 의해 가려지는 경우를 알도록 프리미티브 및/또는 프래그먼트가 렌더링을 위해 전송되기 전에 히든 표면 제거의 형태를 수행하는 것이 공지되어 있다(이 경우에, 새로운 프래그먼트 및/또는 프리미티브는 렌더링될 필요가 없다). 그러한 히든 표면 제거는 예컨대 당업계에 공지된 바와 같이 초기-Z(깊이) 및/또는 스텐실(stencil), 시험 프로세스와 같은 초기 차단 발췌를 포함할 수 있다. It is known, for example, to perform the form of hidden surface removal before primitives and / or fragments are sent for rendering so that primitives or fragments etc. are obscured by already rendered primitives (in this case, And / or primitives need not be rendered). Such hidden surface removal may include initial blocking excerpts such as initial-Z (depth) and / or stencil, test process, as is known in the art.

예컨대, 나중의 프래그먼트 전에 이미 처리된(그리고 이에 따라 처리될 필요가 없는) 프리미티브에 의해 차단될 프래그먼트를 식별하려는 이들 구조는 렌더링 파이프라인으로 귀결된다. 이들 구조에서, 예컨대 처리될 새로운 프래그먼트의 깊이 값은 새로운 프래그먼트가 차단되는지의 여부를 알도록 깊이 버퍼에서 프래그먼트 위치에 대한 현재의 깊이 값과 비교된다. 이는 이미 처리된 프리미티브에 의해 차단되는 프래그먼트를 렌더링 파이프라인을 통해 전송하는 것을 피하는 데에 일조할 수 있다. For example, those structures that attempt to identify fragments to be intercepted by primitives that have already been processed before (and need not be processed accordingly) will result in a rendering pipeline. In these structures, for example, the depth value of a new fragment to be processed is compared with the current depth value for the fragment position in the depth buffer to know whether or not the new fragment is blocked. This can help avoid sending fragments that are blocked by already processed primitives through the rendering pipeline.

그러나, 이들 "초기의"(렌더링 전) 히든 표면 제거 기법은 새로운, 예컨대 프리미티브 또는 프래그먼트("초기에" 시험되는 프리미티브프리미티브프리미티브프리미티브프리미티브될 때에 그 처리를 완료한(이미 렌더링된) 프래그먼트만을 고려한다. 이는 관련된 시험 데이터(Z-버퍼 등)가 이미 처리된 프래그먼트으로부터의 데이터만을 포함하기 때문이다.
However, these "early" (before rendering) hidden surface removal techniques only consider new (e.g., primitive or fragment) fragments that have completed their processing (already rendered) when primitive primitive primitive primitives are tested Since the associated test data (Z-buffer, etc.) contains only data from fragments that have already been processed.

따라서, 출원인은 그래픽 처리 시스템에서 히든 표면의 제거를 위한 개선된 기법의 여지가 여전히 존재한다고 믿는다.The Applicant therefore believes that there is still room for improved techniques for removal of hidden surfaces in a graphics processing system.

본 발명의 제1 양태에 따르면, 처리될 그래픽 프래그먼트를 발생시키도록 입력 프리미티브(input primitive)를 레스터화하는 레스터화기(reasteriser)와, 출력 프래그먼트 데이터를 발생시키도록 상기 레스터화기에 의해 발생되는 프래그먼트를 처리하는 렌더러(renderer)를 포함하는 복수 개의 처리 스테이지를 포함하고, 각 그래픽 프래그먼트는 관련된 하나 이상의 샘플링 포인트를 갖는, 그래픽 처리 파이프라인을 작동시키는 방법으로서, 상기 방법은, According to a first aspect of the present invention there is provided a computer program product comprising a rasterizer for rasterizing an input primitive to generate a graphic fragment to be processed and a fragment generated by the rasterizer to generate output fragment data, A method of operating a graphics processing pipeline, comprising: a plurality of processing stages including a renderer to process each graphic fragment, each graphics fragment having associated one or more sampling points,

프래그먼트가 처리를 위해 렌더러로 전송되기 전에 레스터화기에 의해 발생된 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 관하여 초기 발췌 시험을 수행하는 단계; 및Performing an initial excerpt test on at least one sampling point associated with a fragment generated by the rasterizer before the fragment is sent to the renderer for processing; And

적어도 하나의 샘플링 포인트가 초기 발췌 시험을 통과하면, 처리를 위해 프래그먼트를 전방으로 전송하고, 그래픽 처리 파이프라인 내에 있는 다른 샘플링 포인트의 처리가 초기 발췌 시험을 통과하는 적어도 하나의 샘플링 포인트의 결과로서 중지될 수 있는지를 결정하는 단계를 포함하는, 그래픽 처리 파이프라인의 작동 방법이 제공된다. If at least one sampling point passes the initial excerpt test, the fragment is forwarded for processing, and processing of other sampling points in the graphics processing pipeline is suspended as a result of the at least one sampling point passing the initial excerpt test The method comprising the steps of: determining whether the graphics processing pipeline is capable of operating.

본 발명의 제2 양태에 따르면, 처리될 그래픽 프래그먼트를 발생시키도록 입력 프리미티브를 레스터화하는 레스터화기와, 출력 프래그먼트 데이터를 발생시키도록 상기 레스터화기에 의해 발생되는 프래그먼트를 처리하는 렌더러와, 프래그먼트가 처리를 위해 렌더러로 전송되기 전에 레스터화기에 의해 발생된 프래그먼트와 관련된 샘플링 포인트에 관하여 초기 발췌 시험을 수행하는 초기 발췌 시험 스테이지를 포함하는 복수 개의 처리 스테이지를 포함하고, 각 그래픽 프래그먼트는 관련된 하나 이상의 샘플링 포인트를 가지며, 그래픽 처리 파이프라인은, According to a second aspect of the present invention there is provided a computer program product comprising a rasterizer for rasterizing input primitives to generate a graphics fragment to be processed, a renderer for processing fragments generated by the rasterizer to generate output fragment data, And an initial excerpt test stage that performs an initial excerpt test with respect to a sampling point associated with a fragment generated by the rasterizer prior to being sent to the renderer for processing, each graphical fragment comprising one or more sampling Point, and the graphics processing pipeline includes:

초기 발췌 시험을 통과한 레스터화기에 의해 발생된 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 응답하여, 프래그먼트를 처리를 위해 전방으로 전송하고, 그래픽 처리 파이프라인 내에 있는 다른 샘플링 위치의 처리가 초기 발췌 시험을 통과하는 적어도 하나의 샘플링 위치의 결과로서 중지될 수 있는지를 결정하도록 구성되는, 그래픽 처리 파이프라인이 제공된다. In response to at least one sampling point associated with a fragment generated by a rasterizer passing the initial extractive test, forwarding the fragment for processing, and processing of another sampling location within the graphics processing pipeline, And to determine if it can be stopped as a result of at least one sampling position passing through the graphical processing pipeline.

본 발명의 그래픽 처리 파이프라인은 당업계에 공지된 바와 같이 렌더러에 의해 처리되기 전에 샘플링 포인트, 프래그먼트 및/또는 프리미티브 등의 그래픽 엔터티를 발췌하기 위하여 그래픽 처리 파이프라인의 렌더러 스테이지 전에 초기 깊이 시험 등의 초기 발췌 시험을 포함한다. The graphics processing pipeline of the present invention may be implemented as an initial depth test or the like prior to the renderer stage of the graphics processing pipeline to extract graphical entities such as sampling points, fragments, and / or primitives prior to being processed by the renderer, Includes initial excerpts.

그러나, 본 발명은 초기 발췌 시험을 통과한 샘플링 포인트의 결과를 이용하여 그래픽 처리 파이프라인에서 처리되는 다른 샘플링 포인트의 처리가 중지될 수 있는지를 결정한다. 바꿔 말해서, 본 발명은 레스터화 스테이지에서 또는 그 후에 초기 발췌 시험의 효과를 연장시켜 또한 이미 레스터화되었고 처리를 위해 파이프라인의 나머지로 전송된 프리미티브의 발췌 샘플링 포인트에 잠재적으로 영향을 미치게 한다. However, the present invention uses the results of sampling points that have passed the initial excerpt test to determine if processing of other sampling points processed in the graphics processing pipeline can be stopped. In other words, the present invention prolongs the effect of the initial excerpt test at or after the rasterization stage, thereby potentially affecting the excerpt sampling point of the primitive that has already been rasterized and transferred to the rest of the pipeline for processing.

이는 처기 발췌 시험의 결과가 렌더링되는 (예컨대, 차단될) 새로운 프리미티브를 위한 샘플링 포인트를 단순히 중지시키기 보다는, 미리 해당 시험을 통과하였고 파이프라인 내에 이미 있는 프리미티브를 위한 샘플링 포인트의 처리를 피하고 및/또는 중지시키도록("킬링하도록") 사용될 수 있다는 것을 의미한다. 이는 예컨대 초기 발췌 시험을 이미 통과한 프리미티브를 위한 파이프라인 내에서 샘플링 포인트의 처리가, 차단할 나중의 프리미티브의 프래그먼트가 그 처리가 완료되기 전에 발생된다면 여전히 중지될 수 있다는 이점을 갖는다. This avoids the processing of sampling points for primitives that have already passed that test and are already in the pipeline and / or that have already been in the pipeline, rather than simply stopping the sampling point for new primitives whose results are to be rendered (e. G. ("To kill" This has the advantage, for example, that the processing of the sampling point in the pipeline for primitives that have already passed the initial excerpt test can still be stopped if the fragments of the latter primitive to be blocked occur before the processing is complete.

따라서, 본 발명은 예컨대 종래 기술의 기법과 달리, 또한 프리미티브 및/또는 프래그먼트가 사실상 렌더링 순서에서 나중의 프리미티브에 의해 차단되는 상황에서 "오버드로우"를 감소 또는 회피할 수 있다.Thus, the present invention is capable of reducing or avoiding "overdraw" in situations where, for example, unlike prior art techniques, primitives and / or fragments are actually blocked by later primitives in the rendering order.

이 효과는 본 발명이 예컨대 기존의 초기 깊이 시험 기법과 비교했을 때에 그래픽 처리 파이프라인에서 히든 표면이 불필요하게 처리되는 범위를 더 감소시킬 수 있다. 더욱이, 이는 렌더링이 발생하기 전에 샘플들/프래그먼트들의 값비싼 각각의 샘플 또는 각각의 프래그먼트 분류를 수행할 필요가 없다. This effect can further reduce the extent to which the present invention is unnecessarily processed in the graphics processing pipeline, for example, when compared to conventional initial depth testing techniques. Moreover, it is not necessary to perform each sample or each fragment classification expensive of the samples / fragments before rendering occurs.

실제로, 본 발명의 중요한 이점은 제공된 프리미티브 순서가 최적일 때에(즉, 전방 대 후방) 사실상 개입이 없음으로써, 해당 이벤트에서 "표준" 초기 깊이 시험 구조에 걸쳐 최소의 비용 증가를 제공하지만, 프리미티브 순서가 최적이 아닐 때에 처리로부터 후방 대 전방 프리미티브를 제거하도록 실시될 것이다(그리고, 이 바람직한 실시예에서, 렌더링 전에 모든 프리미티브를 정방 대 후방 순서로 효율적으로 분류할 수 있는 한 적어도 히든 표면을 제거할 수 있다는 점에서). 본 발명을 이용하는 비용은 또한 사용된 다중 샘플 안티 앨리어싱(anti-aliasing)의 레벨과 상관없어, 더 높은 순서의 다중 샘플 안티 앨리어싱과의 그 사용을 비교적 저렴하게(그리고 더 높은 순서의 다중 샘플 안티 앨리어싱의 사용을 더 저렴하게) 한다. Indeed, a significant advantage of the present invention is that while providing the minimum cost increase across the "standard" initial depth test structure in that event by virtually no intervention when the provided primitive order is optimal (i.e., (And in this preferred embodiment, at least the hidden surface can be removed as long as all the primitives can be efficiently categorized in a cube-to-back order before rendering) ). The cost of using the present invention is also unrelated to the level of multi-sample anti-aliasing used, and its use with higher order multiple sample anti-aliasing is relatively inexpensive (and with higher order multiple sample anti-aliasing To make it cheaper to use.

그래픽 처리 파이프라인의 레스터화기는 예컨대 공지된 레스터화 구성에서와 같이 임의의 적절하고 바람직한 방식으로 작동하도록 구성될 수 있다. 당업계에 공지된 바와 같이, 레스터화기에 의해 수신된 소정의 프리미티브 등이 (적어도 부분적으로) 커버하는 그래픽 처리 파이프라인의 출력의 영역을 커버하는 샘플링 포인트의 어레이의 어떠한 샘플링 포인트(또는 샘플링 포인트의 어떠한 세트)에 따라 처리를 위한 그래픽 프래그먼트를 발생시키도록 작동해야 한다. 레스터화기는 레스터화되는 (각각의) 프리미티브에 의해 커버되는 샘플링 포인트를 포함하는 것으로 판명된 복수 개의 샘플링 포인트(예컨대, 샘플링 마스크)의 각 세트에 의해 및/또는 그 세트에 의해 커버되는 각 샘플링 포인트에 대해 그래픽 프래그먼트를 발생시킨다. The rasterizer of the graphics processing pipeline can be configured to operate in any suitable and preferred manner, such as in a known rasterization configuration, for example. As is known in the art, any sampling point (or sampling point) of an array of sampling points that covers an area of the output of the graphics processing pipeline that (at least in part) covers certain primitives, etc. received by the lasterizer Lt; RTI ID = 0.0 > set). ≪ / RTI > The rasterizer may be implemented by each set of multiple sampling points (e.g., sampling mask) determined to include sampling points covered by primitives (each) and / or by each set of sampling points covered by the set Lt; / RTI >

레스터화기에 의해 발생된 각 프래그먼트는 원하는 데로 단일의 샘플링 포인트, 또는 복수 개의 샘플링 포인트를 나타낼 수 있다(관련된다). 바람직한 실시예에서, 각 프래그먼트는 복수 개의, 바람직하게는 4개(2×2)의 샘플링 포인트를 나타낸다. Each fragment generated by the rasterizer may represent a single sampling point, or a plurality of sampling points, as desired. In a preferred embodiment, each fragment represents a plurality, preferably four (2x2) sampling points.

레스터화기는 프래그먼트를 한번에 하나씩 발생시키도록 구성될 수 있지만, 바람직한 실시예에서 한번에(동시에) 복수 개의 프래그먼트를 발생시킬 수 있다(예컨대, 프리미티브는 공간적으로 인접한 샘플링 포인트 또는 샘플링 포인트 세트를 커버한다). 이 경우에, 레스터화기는 복수 개의 프래그먼트의 세트를 발생키고, 세트 내의 프래그먼트는 바람직하게는 프래그먼트 쉐이더 등의 파이프라인의 프래그먼트 처리 부분에 의해 여전히 개별적으로 처리된다. 레스터화기가 복수 개의 프래그먼트를 동시에 생성하면 배압의 생성에 일조함으로써 프래그먼트가 "충전된" 렌더링 파이프라인을 유지한다. A rasterizer may be configured to generate fragments one at a time, but in the preferred embodiment, multiple fragments may be generated at one time (simultaneously) (e.g., primitives cover spatially adjacent sampling points or sampling point sets). In this case, the rasterizer generates a plurality of sets of fragments, and the fragments in the set are preferably still individually processed by the fragment processing portion of the pipeline, such as a fragment shader. When the rasterizer simultaneously generates a plurality of fragments, the fragments maintain a "filled" rendering pipeline by contributing to the generation of backpressure.

특히 바람직한 실시예에서, 레스터화기는 프리미티브를 (적어도 부분적으로) 덮지 않는 임의의 패치를 폐기한 다음에 프리미티브에 의해 적어도 부분적으로 커버되는 것으로 판명된 샘플링 포인트의 패치 또는 패치들에 대응하는 렌더링을 위한 프래그먼트 또는 프래그먼트들을 발생시키기 위해, 소정의, 바람직하게는 선택된, 바람직하게는 예정된 최소 패치 크기로 점진적으로 더 작은 샘플링 포인트의 패치에 대해 프리미티브를 반복적으로 시험하도록 작동하는 계층적 레스터화기이다. 시험되는 샘플링 포인트의 각 패치는 바람직하게는 16×16, 8×8, 4×4 및/또는 2×2 프래그먼트 등의 정수의 프래그먼트에 대응한다. In a particularly preferred embodiment, the rasterizer is configured to discard any patches that do not (at least partially) cover the primitive and then to render the patches or patches of the sampling points determined to be at least partially covered by the primitive Is a hierarchical rasterizer that operates to repeatedly test a primitive against a patch of predetermined, preferably selected, preferably a sampling point that is progressively smaller at a predetermined minimum patch size, to generate fragments or fragments. Each patch of the sampling point to be tested preferably corresponds to a fragment of integers such as 16 x 16, 8 x 8, 4 x 4 and / or 2 x 2 fragments.

레스터화기는 바람직하게는 렌더 타겟 영역의 큰 패치로 시작하고, 해당 프리미티브가 패치 내에 있는지를 시험한다. 없다면, 전체 패치가 폐기되고, 다음 패치가 시험된다(기타 등등). 다른 한편으로, 프리미티브가 패치 내에 있는 것으로(패치를 적어도 부분적으로 커버하는 것으로) 판명되면, 패치는 바람직하게는 4개의 부분으로 분할되고, 최소의 패치 크기(바람직한 실시예에서, 2×2 그룹의 프래그먼트에 대응함)(그러나, 예컨대 개별적인 샘플링 포인트, 개별적인 프래그먼트, 또는 상이한 크기의 그룹의 프래그먼트일 수 있음)에 도달될 때까지 각각의 "서브 패치"가 동일한 방식으로 시험된다. The rasterizer preferably begins with a large patch of the render target area and tests whether the primitive is in the patch. If not, the entire patch is discarded and the next patch is tested (et al.). On the other hand, if the primitive is found to be in the patch (at least partially covering the patch), then the patch is preferably divided into four parts and the minimum patch size (in the preferred embodiment, Sub-patches "are tested in the same manner until they are reached (although they may be individual sampling points, individual fragments, or fragments of groups of different sizes, for example) corresponding to a fragment (e.g., corresponding to a fragment).

이 구성에서, 가장 작은 패치 크기가 복수 개의 샘플링 포인트를 포함하는 경우, 레스터화기는 바람직하게는 샘플링 포인트가 프리미티브에 의해 커버된 다음에 이에 따라 프래그먼트를 발생시키는지를 알도록 최종 패치의 개별적인 샘플링 포인트를 시험한다. In this configuration, if the smallest patch size comprises a plurality of sampling points, the lasterizer preferably sets the individual sampling points of the final patch so that it knows that the sampling points are covered by the primitives and then generate the fragments accordingly Test.

레스터화기에 의해 발생된 프래그먼트가 복수 개의 샘플링 포인트의 세트와 관련될 수 있는(그리고 대응하고 나타낼 수 있는) 경우, 그러한 각각의 그래픽 프래그먼트는 바람직하게는 프래그먼트가 대응하는 샘플링 포인트의 세트에서 어느 샘플링 포인트가 (예컨대, 바람직하게는 샘플링되는 프리미티브에 의해) 커버되는지, 즉 사실상 프래그먼트가 대응하는 샘플링 포인트의 세트에서 어느 샘플링 포인트가 렌더링하도록 사용되는지를 가리키는 데이터와 관련된다. If the fragments generated by the rasterizer are capable of being associated (and corresponding and representable) to a set of a plurality of sampling points, each such graphical fragment is preferably one of the sampling points in the set of corresponding sampling points Quot; is covered (e.g., by a primitive that is preferably sampled), i.e., in fact, a fragment is used in the set of corresponding sampling points to indicate which sampling point is used to render.

프래그먼트가 렌더링하도록 사용되는 샘플링 포인트를 커버했는지를 나타내는 정보가 바람직하게는 (RGB 및 프래그먼트를 위한 알파값 등의) 렌더러를 통과한 프래그먼트용 프래그먼트 데이터와 관련되거나 그 일부이다. 바람직하게는, 프래그먼트와 관련된 샘플링 포인트의 세트의 각 샘플 위치를 위해, 샘플 위치가 커버되었는지를, 즉 사실상 프래그먼트가 샘플링 포인트를 렌더링하도록 사용되었는지를(즉, 그 데이터가 해당 샘플링 포인트를 위해 저장되어야 하는지를) 가리키는 커버리지 마스크의 형태이다. 바람직하게는, 이 커버리지 마스크는 샘플링 위치를 나타내는 비트맵의 형태이다. 레스터화기는 바람직하게는 커버리지 마스크를 발생시킨다. The information indicating whether the fragment covered the sampling point used to render is preferably related to or part of the fragment data for the fragment that passed through the renderer (such as RGB and alpha values for fragments). Preferably, for each sample location in the set of sampling points associated with the fragment, it is determined whether the sample location is covered, i.e., whether the fragment was actually used to render the sampling point (i.e., if the data is to be stored for that sampling point ) In the form of a coverage mask. Preferably, this coverage mask is in the form of a bitmap representing the sampling position. The rasterizer preferably generates a coverage mask.

본 발명의 작동이 사용하는 초기 발췌 시험은 초기 차단 시험, 깊이(Z) 시험 및/또는 초기 스텐실 시험과 같은 임의의 적절한 그러한 시험을 포함할 수 있다. 특히 바람직한 실시예에서, 초기 깊이(Z) 시험(또는 시험들)을 포함한다. 바람직한 실시예에서, 초기 깊이 및 초기 스텐실 시험을 모두 포함한다. The initial excerpt test used by the operation of the present invention may include any suitable such test, such as an initial interception test, a depth (Z) test, and / or an initial stencil test. In a particularly preferred embodiment, it includes an initial depth (Z) test (or tests). In a preferred embodiment, both the initial depth and the initial stencil test are included.

그래픽 처리 파이프라인의 임의의 또는 모든 이용 가능한 초기 발췌 시험(초기 발췌 시험 스테이지)은 본 발명의 방식으로 작동하도록(본 발명의 방식으로 작동을 트리거하도록) 구성될 수 있다. 그래픽 처리 파이프라인이 1개보다 많은 초기 발췌 시험(초기 발췌 시험 스테이지)을 포함하는 경우, 바람직하게는 모든 초기 발췌 시험 스테이지가 본 발명의 방식으로 작동을 트리거할 수 있다. 따라서, 바람직하게는, 파이프라인에 1개보다 많은 초기 발췌 시험이 존재한다.Any or all of the available initial excerpt tests (initial excerpt test stages) of the graphics processing pipeline can be configured (to trigger operation in the manner of the present invention) to operate in the manner of the present invention. If the graphics processing pipeline includes more than one initial excerpt test (initial excerpt test stage), preferably all the initial excerpt test stages may trigger an operation in the manner of the present invention. Thus, preferably, there are more than one initial excerpt test in the pipeline.

초기 발췌 시험 스테이지는 복수 개의 프래그먼트의 패치(세트)에서 작동할 수 있다. 예컨대, 레스터화기가 프리미티브들을 복수 개의 프래그먼트의 패치로 레스터화할 수 있는 경우, 그러한 패치는 전체적으로 초기 발췌 시험을 받을 수 있다. 이 경우에, 초기 발췌 시험은 이에 따라 복수 개의 프래그먼트의 세트에 관련되고(즉, 프래그먼트의 패치가 고려되며), 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 관한 초기 발췌 시험의 수행은 레스터화기에 의해 발생된 복수 개의 프래그먼트의 적어도 하나의 세트(패치)에 관한 초기 발췌 시험을 수행하는 것을 포함한다(이는 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 관하여 발췌 시험을 수행하는데, 그 이유는 복수 개의 프래그먼트의 세트에서 프래그먼트와 관련된 모든 샘플링 포인트에 대해 초기 발췌 시험을 효율적으로 수행하기 때문이다). The initial extract test stage may operate on a patch (set) of a plurality of fragments. For example, if the Leicester can rasterize the primitives into a patch of a plurality of fragments, such a patch may be subjected to an initial excerpt test as a whole. In this case, the initial excerpt test is thus associated with a set of a plurality of fragments (i. E., A patch of a fragment is considered) and the performance of the initial excerpt test on at least one sampling point associated with the fragment is caused by the rasterizer (Patch) of a plurality of fragments that have been fragmented (this involves performing a subtest test with respect to at least one sampling point associated with the fragment, since in a set of a plurality of fragments Because it performs the initial excerpt test efficiently for all sampling points associated with the fragment).

따라서, 바람직한 실시예에서, 파이프라인은 복수 개의 프래그먼트의 패치(세트)를 공통으로 시험하는 초기 깊이(또는 초기 깊이 및 스텐실) 테스터를 포함한다. 이 시험은 바람직하게는 해당 프리미티브에 의해 충분히(완전히) 커버되는 복수 개의 프래그먼트의 패치(세트)에 대해서만 수행되고, 바람직하게는 복수 개의 프래그먼트의 패치(세트)에 대한 깊이 값의 범위를 이용한다.Thus, in a preferred embodiment, the pipeline includes an initial depth (or initial depth and stencil) tester that commonly tests patches (sets) of a plurality of fragments. This test is preferably performed only for a plurality of fragments (sets) that are (fully) covered by the corresponding primitive, preferably using a range of depth values for the patches (sets) of the plurality of fragments.

바람직하게는, 초기 "패치" 발췌, 예컨대 깊이 및/또는 스텐실 시험을 통과하는 복수 개의 프래그먼트의 임의의 패치(세트)는 본 발명의 방식으로 작동을 트리거할 수 있다.Preferably, an initial "patch" extract, such as any patches (sets) of a plurality of fragments that pass the depth and / or stencil test, can trigger operation in the manner of the present invention.

초기 발췌 시험은 바람직하게는 또한 또는 대신에, 그리고 바람직하게는 또한 단일의 프래그먼트를 작동시킬 수 있다. 따라서, 파이프라인은 바람직하게는 개별적인 프래그먼트를 시험하는 초기 발췌 테스터, 바람직하게는 초기 깊이(또는 초기 깊이 및 스텐실) 테스터를 포함한다. 이 시험은 바람직하게는 해당 프리미티브에 의해 충분히(완전히) 커버되는 프래그먼트에 대해서만 수행되고, 바람직하게는 전체적으로 프래그먼트에 대해 깊이 값 범위 또는 단일의 깊이 값을 이용한다. The initial excerpt test may preferably and / or alternatively, and preferably also, operate a single fragment. Thus, the pipeline preferably includes an initial excerpt tester, preferably an initial depth (or initial depth and stencil) tester, which tests individual fragments. This test is preferably performed only for fragments that are sufficiently (fully) covered by the corresponding primitive, preferably using a depth value range or a single depth value for the fragment as a whole.

바람직하게는, 이 (단일의 프래그먼트) 초기 발췌, 예컨대 깊이 및/또는 스텐실 시험을 통과하는 임의의 프래그먼트는 본 발명의 방식으로 작동을 트리거할 수 있다. Preferably, this (single fragments) initial excerpt, such as any fragments that pass the depth and / or stencil test, can trigger operation in the manner of the present invention.

바람직한 실시예에서, 초기 발췌 시험(초기 발췌 시험이 존재함) 또한 또는 대신에, 그리고 바람직하게는 또한, 소정의 프래그먼트가 관련된 샘플링 포인트의 세트보다 적은 샘플링 포인트를 포함하는 단일의 샘플링 포인트 및/또는 샘플링 포인트의 세트에서(예컨대, 프래그먼트가 관련된 4개의 샘플링 포인트 중 2개에 대해) 작동한다. 이 경우에, 초기 발췌 시험은 바람직하게는 단일의 (커버된) 샘플링 포인트에서 작동한다. 이 경우에, 각 샘플링 포인트는 관련된 깊이 값을 갖고, 즉 발췌 시험에 대해 사용되는 (다른 샘플링 포인트와 공유할 수 있는) 각 샘플링 포인트에 대한 깊이 값이 존재할 것이다. In a preferred embodiment, a single sampling point, which also includes sampling points that are less than the set of sampling points for which a given fragment is associated, also or alternatively and / or in the initial sampling test (there is an initial sampling test) and / (E.g., for two of the four sampling points associated with the fragment) in the set of sampling points. In this case, the initial excerpt test preferably works at a single (covered) sampling point. In this case, each sampling point has an associated depth value, i. E. There will be a depth value for each sampling point (which can be shared with other sampling points) used for the excerpt test.

다시, 바람직하게는, 이 샘플링 포인트 초기 발췌, 예컨대 깊이 및/또는 스텐실 시험을 통과하는 임의의 샘플링 포인트는 본 발명의 방식으로 작동을 트리거할 수 있다. Again, preferably, any sampling point that passes this sampling point early excerpt, e.g., depth and / or stencil test, can trigger operation in the manner of the present invention.

특히 바람직한 실시예에서, 파이프라인은 복수 개의 프래그먼트의 세트 및/또는 개별적인 프래그먼트를 (본 발명의 방식의 작동이 트리거될 수 있는 것에 관하여) 시험하는 초기 발췌 시험과, 개별적인 샘플링 포인트를 (다시 바람직하게는 본 발명의 방식의 작동이 트리거될 수 있는 것에 관하여) 시험하는 그 후의 초기 발췌 시험을 포함한다. 이는 본 발명이 프리미티브를 커버하는 전체 타일로부터 단일의 프래그먼트 및/또는 샘플링 포인트 입도로 히든 표면 제거 이벤트를 발생시키게 한다. In a particularly preferred embodiment, the pipeline includes an initial excerpt test that tests a set of a plurality of fragments and / or individual fragments (with respect to what the operation of the method of the present invention can be triggered on), and an individual sampling point Lt; RTI ID = 0.0 > test < / RTI > about the operation of the method of the present invention can be triggered). This allows the present invention to generate a hidden surface removal event with a single fragment and / or sampling point granularity from the entire tile covering the primitive.

특히 바람직한 실시예에서, 시스템은 시험되는 샘플링 포인트, 프래그먼트, 또는 해당 복수 개의 프래그먼트의 세트(패치가 초기 발췌 시험을 통과하는지의 여부를 결정하도록, 샘플링 포인트, 프래그먼트 및/또는 복수 개의 프래그먼트의 세트(패치)와 관련된 깊이 값 범위를 샘플링 포인트, 프래그먼트, 또는 해당 복수 개의 프래그먼트의 세트(패치)의 위치와 관련된 저장된 깊이 값 범위와 비교하는 초기 발췌 시험을 포함한다. In a particularly preferred embodiment, the system includes a set of sampling points, fragments and / or a plurality of fragments (such as a set of sampling points, fragments and / or a plurality of fragments Patch) to an extent of the stored depth value associated with the location of the sampling point, fragment, or set of corresponding fragments (patches).

깊이 값 범위는 바람직하게는 고려될 수 있는(발췌 시험될 수 있는) 프래그먼트들의 각 패치에 대해 저장된다. The depth value range is preferably stored for each patch of fragments that can be considered (extractively tested).

초기 발췌 시험 또는 시험들 자체는 임의의 적절하고 원하는 방식으로, 예컨대 당업계에 공지되고 및/또는 해당 그래픽 처리 시스템에 사용되는 정상적인 방식으로 수행될 수 있다. 시험들은 예컨대 샘플링 포인트(또는 각각의 샘플링 포인트)를 구체적으로 시험할 수 있거나, 샘플링 포인트(또는 각각의 샘플링 포인트)를 구체적으로 시험하지 않더라도 샘플링 포인트(들)를 시험하는 효과를 갖는 시험일 수 있다. The initial excerpt test or tests themselves may be performed in any suitable and desired manner, e.g., in a normal manner known in the art and / or used in the graphics processing system. Tests can be a test that specifically tests the sampling point (or each sampling point), or has the effect of testing the sampling point (s) even if the sampling point (or each sampling point) is not specifically tested.

특히 바람직한 실시예에서, 시스템(및 바람직하게는 레스터화기)은 (예컨대, 타일 또는 드로우 콜에 대해) 프리미티브의 세트를 렌더링하기에 앞서서, 각각의 샘플링 위치, 샘플링 위치들의 세트, 프래그먼트, 프래그먼트 위치, 프래그먼트의 패치 및/또는 프로그먼트 위치의 세트에 대해 예상되는 깊이 값, 및 바람직하게는 예상되는 깊이 값의 범위를 발생 및/또는 저장하고, 발췌 시험 또는 시험들은 레스터화기에 의해 발생되는 프리미티브 및 프래그먼트 등을 시험할 때에 사용할 수 있고 바람직하게는 사용한다. 예상되는 깊이 값의 이들 범위는 해당 패치 등을 위한 깊이 값의 모든 가능한 결과를 나타내야 하고(포함해야 하고), 바람직하게는 샘플링 포인트와 프래그먼트가 그래픽 처리 파이프라인에 의해 처리될 때에 초기 및 후기 깊이 시험을 받는 경우에 발생 및 저장되는 개별적인 샘플링 위치, 프래그먼트, 프래그먼트들의 패치 등을 위한 깊이 값 및 깊이 값 범위를 이용하여 레스터화 및 렌더링이 나아갈 때에 업데이트된다. In a particularly preferred embodiment, the system (and preferably the rasterizer) is configured to determine the location of each of the sampling locations, the set of sampling locations, the fragments, the location of the fragments, Generates and / or stores a range of expected and / or expected depth values for a set of patches and / or fragment positions of the fragment, and the excerpt test or tests are performed on primitives and fragments generated by the rasterizer And the like, and is preferably used. These ranges of expected depth values should (and should) include all possible outcomes of the depth values for the patches, etc., preferably when the sampling points and fragments are processed by the graphics processing pipeline, Is updated when rasterization and rendering are performed using depth values and depth value ranges for individual sampling positions, fragments, patches of fragments,

초기 발췌 시험 또는 시험들은 예컨대 레스터화기의 부분으로서, 또는 레스터화기 후에(단, 렌더러 전에), 또는 이 조합으로서 실시될 수 있다(예컨대, 1개보다 많은 초기 발췌 시험이 존재함). 바람직한 실시예에서, 시험 또는 시험들은 레스터화 프로세스의 일부로서 및/또는 레스터화기 후에, 단 그래픽 처리 파이프라인의 나머지 전에 실시될 수 있다. The initial excerpt test or tests may be conducted as part of a rasterizer, for example, or after a rasterizer (but before the renderer), or in combination (e.g., there are more than one initial excerpt test). In a preferred embodiment, the tests or tests may be performed as part of the rasterization process and / or after the rasterizer, but before the rest of the graphics processing pipeline.

시험되는 샘플링 포인트 또는 포인트들, 또는 프래그먼트 또는 프래그먼트들이 초기 발췌 시험을 실패하면(예컨대, 차단되는 것으로 판명되면), 그 샘플링 포인트 또는 포인트들, 또는 프래그먼트 또는 프래그먼트들은 바람직하게는 당업계에 공지된 바와 같이 파이프라인에서의 추가 처리로부터 "발췌"된다.If the sampling points or points to be tested, or fragments or fragments, fail the initial excerpt test (e.g., turns out to be blocked), then the sampling point or points, or fragments or fragments, As well as "excerpts" from further processing in the pipeline.

이 발췌는 임의의 원하는 적절한 방식으로 달성(및 제공)될 수 있다. 예컨대, 발췌 시험이 전체 프래그먼트(또는 복수 개의 전체 프래그먼트들의 세트)에 관한 경우에, 바람직하게는 프래그먼트 또는 복수 개의 프래그먼트의 세트가 당업계에 공지된 바와 같이 처리를 위해(예컨대, 렌더링을 위해) 파이프라인을 통해 전방으로 전송되지 않는다(즉, 발췌된다).This excerpt can be achieved (and provided) in any desired and appropriate manner. For example, if the excerpt test is for an entire fragment (or a set of a plurality of entire fragments), then preferably a fragment or a set of fragments may be used for processing (e.g., for rendering) (I.e., excerpted) through the line.

다른 한편으로, 발췌 시험이 렌더링될 프래그먼트와 관련된 모든 샘플링 포인트보다 적은 샘플링 포인트에 관한 것이라면, 바람직하게는 (즉, 발췌 시험을 실패한) 해당 샘플링 포인트의 추가 처리는 예컨대 샘플링 포인트를 "디스에이블드"로서 마킹함으로써(예컨대, 해당 프래그먼트와 관련된 커버리지 마스크 내에 커버되지 않는 것으로 지시함으로써), 또는 임의의 다른 적절한 방식으로 방지(중지)되지만, 해당 프래그먼트는 프래그먼트와 관련된 "발췌되지 않은" 샘플링 포인트가 여전히 처리되도록 (파이프라인을 통해) 전방으로 전송된다. On the other hand, if the excerpt test is for a sampling point that is less than all sampling points associated with the fragment to be rendered, then preferably further processing of the corresponding sampling point (i.e., failed excerpt test) (By, for example, indicating that it is not covered in the coverage mask associated with the fragment), or in some other appropriate way, but the fragment is still in the "unexpressed" sampling point associated with the fragment (Via the pipeline).

시험되는 적어도 하나의 샘플링 포인트가 초기 발췌 시험을 통과하면, 시험되는 샘플링 포인트(즉, 샘플링 포인트가 관련된 프래그먼트), 프래그먼트, 또는 복수 개의 프래그먼트의 세트가 당업계에 공지된 바와 같이 다시 처리를 위해 전방으로(예컨대, 렌더러를 향해) 전송된다. 그러나, 이 이벤트에서, 파이프라인 내에 있는 다른 샘플링 포인트의 처리가 초기 발췌 시험을 통과하는 샘플링 포인트의 결과로서 중지될 수 있는지가 결정된다[그리고, 이미 파이프라인 내에 있는 샘플링 포인트의 처리가 초기 발췌 시험을 통과한 샘플링 포인트 등의 결과로서 중지될 수 있다는 것이 결정되면, 그 샘플링 포인트의 처리는 바람직하게는 중지된다]. If the at least one sampling point being tested passes the initial excerpt test, then the set of sampling points being tested (i.e., the fragments with which the sampling point is associated), fragments, or a plurality of fragments, (E.g., toward the renderer). However, in this event it is determined whether the processing of another sampling point in the pipeline can be stopped as a result of the sampling point passing the initial excerpt test (and the processing of the sampling point already in the pipeline is an initial excerpt test The processing of that sampling point is preferably stopped). ≪ / RTI >

이와 관련하여 프로세스가 (예컨대 전체 프래그먼트에 관해서가 아니라) 샘플링 포인트 레벨(분해능)에서 작동하고, 그리고 이에 따라 시험하며, 파이프라인 내에 이미 있는 프래그먼트와 관련된 개별적인 샘플링 포인트의 추가 처리를 중지시킬 수 있다. 이는 초기 발췌 시험이 개별적인 샘플링 포인트를 시험하고, 예컨대 파이프라인 내의 프래그먼트와 관련된 샘플링 포인트에서 프로세스가 "조금씩 깍아내게 하는(chip away)" 경우에 특히 적절할 수 있다(예컨대, 모든 그 샘플링 포인트가 "중지"될 때까지, 그 포인트에서 전체 프래그먼트가 폐기될 수 있음).In this regard, the process may operate at the sampling point level (resolution) (e.g., not for the entire fragment) and thus test and stop further processing of the individual sampling points associated with the fragments already in the pipeline. This may be particularly appropriate when the initial excerpt test tests individual sampling points and the process "chip away" at sampling points associated with the fragments in the pipeline (e.g., Quot ;, the entire fragment may be discarded at that point).

동일하게, 프로세스는 또한 또는 대신에 전체 프래그먼트에 관하여 작동하도록, 즉 전체 프래그먼트(또는 복수 개의 프래그먼트의 세트)가 초기 발췌 시험을 통과하면, 파이프라인 내에 있는 임의의 프래그먼트의 처리가 중지될 수 있는지가 결정되도록 구성될 수 있다. 이는 초기 발췌 시험이 개별적인 샘플링 포인트 뿐만 아니라 또는 그 대신에 프래그먼트를 시험하는 경우에 특히 적절할 수 있다.Likewise, the process may also or alternatively determine whether the processing of any fragments in the pipeline can be aborted if the entire fragment (or set of fragments) passes the initial excerpt test . ≪ / RTI > This may be particularly appropriate if the initial excerpt test is to test the fragments as well as or instead of individual sampling points.

따라서, 바람직한 실시예에서, 초기 발췌 시험은 프래그먼트 및/또는 복수 개의 프래그먼트의 세트를 시험하고, 시험된 프래그먼트 또는 프래그먼트의 세트가 초기 발췌 시험을 통과하면, 이미 파이프라인 내에 있는 프래그먼트의 처리가 초기 발췌 시험을 통과한 프래그먼트 또는 프래그먼트의 세트의 결과로서 중지될 수 있는지가 결정된다. Thus, in a preferred embodiment, the initial excerpt test involves testing a set of fragments and / or a plurality of fragments, and if the tested fragment or set of fragments passes the initial excerpt test, It is determined whether the test can be stopped as a result of a set of fragments or fragments that have passed the test.

바람직한 실시예에서, 렌더링 파이프라인이 예컨대(및 바람직하게는) 프래그먼트에서 작동하는 엔터티의 분해능에서 결정이 수행된다. In a preferred embodiment, a determination is made in the resolution of the entity in which the rendering pipeline operates, e.g. (and preferably) in a fragment.

바람직하게는, 이미 파이프라인 내에 있는 복수 개의 샘플링 포인트 및/또는 프래그먼트 중 어느 하나의 처리가 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트 및/또는 프래그먼트(들)의 결과로서 중지될 수 있는지가 결정된다. Preferably, it is determined whether the processing of any one of the plurality of sampling points and / or fragments already in the pipeline can be stopped as a result of at least one sampling point and / or fragment (s) that have passed the initial extractive test do.

이미 파이프라인 내에 있는 임의의 다른 샘플링 포인트의 처리가 중지될 수 있는지의 결정은 임의의 원하고 적절한 기준을 기초로 할 수 있다. 특히 바람직한 실시예에서, 그것은 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트(들)가 이미 파이프라인 내에 있는 샘플링 포인트 및/또는 프래그먼트를 오버드로우하는지를(바람직하게는 차단하는지를) 기초로 한다(그 이유는, 나중의 샘플링 포인트(들) 및/또는 프래그먼트들이 예컨대 초기 깊이 시험을 통과하면, 이미 초기 깊이 시험을 통과한 동일한 위치(들)을 나타내는 임의의 샘플링 포인트 및/또는 프래그먼트의 전면에 그들 샘플링 포인트 및/또는 프래그먼트가 있게 된다(그리고 이에 따라 불투명하다면 차단한다)는 것을 가리키기 때문이다). The determination of whether the processing of any other sampling point already in the pipeline can be discontinued can be based on any desired and appropriate criteria. In a particularly preferred embodiment, it is based on whether the sampling point (s) and / or fragment (s) that have passed the excerpt test are over-drawing (preferably blocking) the sampling points and / or fragments already in the pipeline (Because, if later sampling points (s) and / or fragments pass, for example, an initial depth test, they may be applied to the front of any sampling points and / or fragments that represent the same location (s) Because they indicate that there is a sampling point and / or a fragment (and thus blocks if it is opaque).

따라서, 초기 발췌 시험 "통과" 이벤트의 사건시에 더 이상 처리될 필요가 없는 샘플링 포인트 및/또는 프래그먼트의 결정은 바람직하게는 그래픽 처리 파이프라인의 나중의 스테이지 또는 스테이지들에 의해 수행되어, 초기 발췌 시험을 통과한 샘플링 포인트 또는 포인트들 및/또는 프래그먼트 또는 프래그먼트들(적절하다면)에 의해 오버드로우되는 현재 수용하는(예컨대, 처리하는) 임의의 샘플링 포인트 및/또는 프래그먼트를 식별한다. Thus, the determination of the sampling points and / or fragments that need not be further processed at the time of the event of the initial excerpt test "pass" event is preferably performed by later stages or stages of the graphics processing pipeline, (E.g., processing) any sampling points and / or fragments that are currently overdrawn by sampling points or points and / or fragments or fragments (if appropriate) that have passed the test.

이 프로세스는 임의의 적절하고 바람직한 방식으로 수행될 수 있지만, 바람직하게는 파이프라인 스테이지를 현재 차지하는 샘플링 포인트 및/또는 프래그먼트 중 1개 또는 몇개 또는 전부의 (예컨대, (x,y)) 위치를 초기 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트(들)의 (예컨대, (x,y)) 위치와 비교함으로써 행해진다.This process may be performed in any suitable and preferred manner, but it is desirable to initially place one or some or all of the sampling points and / or fragments (e.g., (x, y)) that currently occupy the pipeline stage in the initial (X, y) position of the sampling point (s) and / or the fragment (s) that have passed the excerpt test.

(전체 프래그먼트에 대한) 샘플링 포인트가 고려되는 경우, 이는 해당 샘플링 포인트의 "실제" 위치를 비교함으로써 행해질 수 있지만, 바람직한 실시예에서 해당 샘플링 위치, 및 프래그먼트 내에 샘플링 포인트의 상대 위치를 나타내는 프래그먼트의 위치를 (예컨대, 프래그먼트와 관련된 커버리지 마스크를 기초로 하여) 비교함으로써 행해진다. If a sampling point (for the entire fragment) is considered, this can be done by comparing the "actual" position of the corresponding sampling point, but in the preferred embodiment the corresponding sampling position and the position of the fragment indicating the relative position of the sampling point in the fragment (E.g., based on the coverage mask associated with the fragment).

프래그먼트가 고려된 경우에, 이는 바람직하게는 파이프라인 스테이지를 현재 차지하는 프래그먼트 중 1개 또는 몇개 또는 전부의 위치를 초기 발췌 시험을 통과한 프래그먼트(들)의 위치(들)과 비교함으로써 행해진다.If fragments are considered, this is preferably done by comparing the location of one or several or all of the fragments currently occupying the pipeline stage to the location (s) of the fragment (s) that have passed the initial excerpt test.

복수 개의 프래그먼트의 세트가 고려되는(초기 발췌 시험을 통과한) 경우, 이는 바람직하게는 파이프라인 스테이지를 현재 차지하는 프래그먼트 중 1개 또는 몇개 또는 전부의 위치를 초기 발췌 시험을 통과한 복수 개의 프래그먼트의 세트에서 프래그먼트에 의해 커버되는 위치(영역)의 범위와 비교함으로써 행해진다. When a plurality of sets of fragments are considered (passed the initial excerpt test), this is preferably done by setting the location of one or some or all of the fragments currently occupying the pipeline stage to a set of a plurality of fragments (Region) covered by the fragment in the region of interest.

초기 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트(들)(적절하다면)과 렌더 출력부(의 평면)에서 동일한 위치를 차지하는(즉, 동일한 (x,y) 위치를 갖는) 임의의 현재 샘플링 포인트 및/또는 프래그먼트의 처리는 (선택적으로) 중지될 수 있고, 바람직하게는 중지된다(예컨대, 충족되는 샘플링 포인트의 처리를 중지하도록 다른 기준을 경험함). (I.e., having the same (x, y) position) at the sampling point (s) and / or fragment (s) that passed the initial excerpt test and (if appropriate) The processing of the current sampling point and / or fragment may (optionally) be stopped and preferably paused (e.g., experiencing other criteria to stop processing of the sampled point being satisfied).

바람직한 실시예에서, 샘플링 포인트 및/또는 프래그먼트의 처리가 추가로부터 폐기될 수 있는지의 여부의 결정은 추가 점검 및/또는 기준을 받는다. 바람직하게는 잠재적으로 폐기되는(예컨대, 차단되는) 파이프라인 내에 있는 프래그먼트(또는 샘플링 포인트)의 다른 특성은 그 처리를 중지하기 전에 프래그먼트(또는 샘플링 포인트)가 여전히 임의의 다른 이유로 처리되어야 하는지를 알도록 먼저 점검된다. 이 점검은 바람직하게는 프래그먼트(또는 샘플링 포인트)가 차단 질문(액티브 차단 질문이 부착됨)을 위해 또는 다른 부작용(이 경우에, 폐기되어서는 안됨)을 위해 요구되는지를 결정하는 것을 포함한다. In a preferred embodiment, the determination of whether the processing of the sampling points and / or fragments can be discarded from further is subject to additional checks and / or criteria. Other characteristics of the fragment (or sampling point) that are preferably in the pipeline that are potentially discarded (e.g., blocked) are such that the fragment (or sampling point) is still to be processed for any other reason before stopping the process First checked. This check preferably includes determining whether the fragment (or sampling point) is required for blocking questions (with the active blocking query attached) or for other side effects (in this case, not discarded).

따라서, 특히 바람직한 실시예에서, 그래픽 처리 파이프라인은 초기 발췌 시험을 통과하는 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 응답하여 이미 파이프라인 내에 있는 샘플링 포인트 및/또는 프래그먼트 또는 프래그먼트들의 처리를 선택적으로 중지하도록 구성된다. Thus, in a particularly preferred embodiment, the graphics processing pipeline is configured to selectively stop processing of sampling points and / or fragments or fragments already in the pipeline in response to at least one sampling point associated with a fragment that passes the initial excerpt test .

샘플링 포인트 또는 프래그먼트 또는 프래그먼트들이 초기 발췌 시험을 통과할 때에 파이프라인 내에 있는 임의의 샘플링 포인트 및/또는 프래그먼트의 처리가 중지될 수 있는지를 결정하는 작동은 임의의 적절하고 원하는 방식으로 실시될 수 있다. The operation of determining whether the processing of any sampling points and / or fragments in the pipeline can be stopped when the sampling point or fragments or fragments pass the initial excerpt test can be performed in any suitable and desired manner.

바람직하게는, 초기 발췌 시험을 통과하는 샘플링 포인트 또는 프래그먼트 또는 프래그먼트들의 이벤트는 관련 정보, 예컨대 그리고 바람직하게는 시험을 통과한 샘플링 포인트 또는 프래그먼트(들)의 위치를 현재 취급하는 샘플링 포인트 또는 프래그먼트의 임의의 것이 중지된 처리를 가질 수 있는지를 평가하도록 해당 정보를 이용하여 다른, 예컨대 나중의 스테이지에 의해 처리 파이프라인의 다른, 예컨대 나중의 스테이지로 전송하는 것을 트리거한다. Preferably, the sampling point or event of fragments or fragments that pass the initial excerpt test is associated with the relevant information, such as the sampling point at which the test point passed or the location of the fragment (s) For example, a later stage of the processing pipeline, using another piece of information, for example, a later stage, to evaluate whether or not the processing pipeline can have a suspended process.

시험이 전체 프래그먼트에 관한 것인 경우, 이 위치 정보는 바람직하게는 위에서 논의된 바와 같이 해당 프래그먼트(들)의 (x,y) 위치(들)를 포함한다. 시험이 복수 개의 프래그먼트의 세트에 관한 것인 경우, 이 위치 정보는 바람직하게는 (다시 위에서 언급된 바와 같이) 해당 복수 개의 프래그먼트의 세트의 프래그먼트에 의해 커버되는 (x,y) 위치의 범위를 포함한다. 시험이 샘플링 포인트에 관한 것인 경우, 위치 정보는 바람직하게는 샘플링 포인트가 (바람직하게는, 위에서 논의된 바와 같이 커버리지 마스크의 형태인) 프래그먼트용 샘플링 포인트 위치의 지시와 함께 샘플링 포인트(들)이 관련되는 프래그먼트의 (x,y) 위치를 포함한다. If the test is for an entire fragment, then this location information preferably includes the (x, y) location (s) of the fragment (s) as discussed above. If the test is for a set of a plurality of fragments, the location information preferably includes a range of (x, y) positions covered by the fragments of the set of corresponding fragments (again, as mentioned above) do. If the test is for a sampling point, the location information preferably includes the sampling point (s) along with an indication of the sampling point location for the fragment (preferably in the form of a coverage mask as discussed above) (X, y) position of the relevant fragment.

따라서, 특히 바람직한 실시예에서, 그래픽 처리 시스템은 프래그먼트와 관련된 적어도 하나의 샘플링 포인트가 초기 발췌 시험을 통과하면, 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트(및/또는 해당 프래그먼트)에 관한 정보를 그래픽 처리 파이프라인의 적어도 하나, 바람직하게는 다른(및 바람직하게는 나중의) 스테이지로 전송하도록 구성되고, 그래픽 처리 파이프라인의 적어도 하나의 스테이지는 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트 및/또는 프래그먼트와 관련된 방송 정보를 이용하여 현재 스테이지에 있는 프래그먼트와 관련된 임의의 프래그먼트 및/또는 샘플링 포인트의 처리가 중지될 수 있는지를 결정하도록 구성된다. Thus, in a particularly preferred embodiment, the graphics processing system is configured to display information about at least one sampling point (and / or a corresponding fragment) that has passed the initial excerpt test if at least one sampling point associated with the fragment passes the initial excerpt test At least one stage of the graphics processing pipeline is configured to transmit to at least one, preferably another (and preferably later) stage of the graphics processing pipeline, wherein at least one stage of the graphics processing pipeline includes at least one sampling point and / Or broadcast information associated with the fragment to determine whether processing of any fragments and / or sampling points associated with fragments in the current stage can be discontinued.

위에서 논의된 바와 같이, 가장 바람직하게는 초기 발췌 시험은 초기 깊이 시험을 포함하고, 및/또는 그래픽 처리 파이프라인의 적어도 하나의 스테이지는 초기 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트(들)과 관련된 방송 정보를 이용하여 현재 스테이지에 있는 임의의 샘플링 포인트 및/또는 프래그먼트가 초기 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트에 의해 오버드로우되는지를, 그리고 임의의 그러한 샘플링 포인트 또는 프래그먼트가 존재하는지를 결정하여, 오버드로우된 샘플링 포인트 및/또는 프래그먼트의 추후 처리를 선택적으로 중지하도록 구성된다. As discussed above, most preferably the initial excerpt test comprises an initial depth test, and / or at least one stage of the graphics processing pipeline includes sampling point (s) and / or fragments Or fragments are overdrawn by the sampling point (s) and / or fragments that have passed the initial extractive test, and whether any of the sampling points and / or fragments in the current stage are overdrawn using any of such sampling points Or fragments, to selectively discontinue further processing of overdrawn sampling points and / or fragments.

위에서 논의된 바와 같이, 가장 바람직하게는, 그래픽 처리 파이프라인의 스테이지(들)로 전송된 정보는 초기 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트(들)의 위치(들)을 포함하고, 및/또는 그래픽 처리 파이프라인의 적어도 하나의 스테이지는 초기 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트(들)와 관련된 방송 위치 정보를 사용하여, 현제 스테이지에 있는 임의의 샘플링 포인트 및/또는 프래그먼트가 초기 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트와 동일한 렌더 타겟(용도 버퍼), 예컨대 처리되는 타일에서의 위치를 차지하는지를 결정하도록, 그리고 초기 발췌 시험을 통과한 샘플링 포인트(들) 및/또는 프래그먼트와 동일한 렌더 타겟에서의 위치를 차지하는 임의의 샘플링 포인트들 및/또는 프래그먼트들의 추가 처리를 선택적으로 중지하도록 구성된다.As discussed above, most preferably, the information transmitted to the stage (s) of the graphics processing pipeline includes the location (s) of the sampling point (s) and / or fragment (s) that have passed the initial excerpt test , And / or at least one stage of the graphics processing pipeline, using broadcast location information associated with the sampling point (s) and / or fragment (s) that have passed the initial excerpt test, And / or to determine whether the fragment occupies a location in the same target (s) and / or the same render target (usage buffer) as the fragment, e.g., the tile being processed, that passed the initial extractive test, Any sampling points occupying positions in the same render target as point (s) and / or fragments and / It is configured to selectively stop the further processing of the tree.

임의의 샘플링 포인트 및/또는 프래그먼트가 초기 발췌 시험 "통과" 사건의 이벤트에서 더 이상 처리될 필요가 없는지의 여부가 결정되는 처리 파이프라인의 스테이지 또는 스테이지들은 그래픽 처리 파이프라인의 임의의 원하고 적절한 스테이지를 포함할 수 있다. 스테이지는 바람직하게는 그래픽 처리 파이프라인의 적어도 하나의 나중의 스테이지(즉, 초기 발췌 시험 및/또는 레스터화기 다음에 있는 스테이지)를 포함한다. 처리 파이프라인은 이 목적을 위해 원하는 바와 같이 많은 스테이지로 분할될 수 있다.The stages or stages of the processing pipeline in which it is determined whether any sampling points and / or fragments need not be further processed in the event of an initial excerpt test "pass" . ≪ / RTI > The stage preferably includes at least one later stage of the graphics processing pipeline (i. E., The stage following the initial excerpt test and / or the rasterizer). The processing pipeline can be partitioned into as many stages as desired for this purpose.

한가지 바람직한 실시예에서, 이 스테이지는 그래픽 처리 파이프라인의 렌더러이다(이 결정은 렌더러에 의해 행해짐). 예컨대, 렌더러가 전체적으로 본 발명의 방식으로 작동하는 단일의 스테이지로서 처리되는 것이 가능하거나, 처리될 것이고, 서로 상관없이 각각 작용하는 복수 개의 별개의 스테이지로 분할된다. 따라서, 바람직한 실시예에서, 초기 발췌 시험 "통과" 이벤트 정보는 그래픽 처리 파이프라인의 (적어도) 렌더러로 및/또는 렌더러의 부분 또는 부분들로 전송된다(렌더러 또는 렌더러의 부분 또는 부분들은 본 발명의 방식으로 작동함). In one preferred embodiment, this stage is a renderer of the graphics processing pipeline (this decision is made by the renderer). For example, the renderer may or may not be processed as a single stage that operates in the manner of the present invention as a whole, and is divided into a plurality of distinct stages, each of which operates independently of each other. Thus, in a preferred embodiment, the initial excerpt test "pass" event information is sent to a (at least) renderer of the graphics processing pipeline and / or to a portion or portions of the renderer ).

임의의 샘플링 포인트 또는 프래그먼트가 초기 발췌 시험 "통과" 시험의 이벤트에서 더 이상 처리될 필요가 없는지가 결정되는 처리 파이프라인의 스테이지 또는 스테이지들은 바람직하게는 또한 또는 대신에, [초기 발췌 시험(예컨대, 초기 발췌 시험 파이프라인보다 나중에 있는) 및/또는 (아직 완벽하게 레스터화되지 않은) 레스터화를 여전히 받는 예컨대 초기 프래그먼트(및/또는 프래그먼트의 패치)를 발췌하도록) 레스터화기를 여전히 받는 예컨대 프래그먼트를 발췌하도록] 프래그먼트가 유용하게 발췌될 수 있는 파이프라인의 다른 스테이지, 예컨대 초기 발췌 시험을 포함한다. The stages or stages of the processing pipeline in which it is determined whether any sampling points or fragments need to be processed further in the event of the initial excerpt test "pass" test are preferably also or alternatively [the initial excerpt test (E.g., extracting an initial fragment (and / or a fragment of a fragment) that still receives the lyserization (which is later than the initial excerpt test pipeline) and / or (still not fully lysed) To include other stages of the pipeline in which fragments can be usefully extracted, such as an initial excerpt test.

특히 바람직한 실시예에서, 복수 개의 프래그먼트(및 바람직하게는 스테이지에서의 모든 프래그먼트) 및/또는 샘플링 포인트는 병행하여 시험될 수 있다. 이는 예컨대 한번에 복수 개의 프래그먼트의 패치를 시험할 수 있는 초기 발췌 시험의 유리한 효과를 취하는 것을 용이하게 한다. 바람직하게는, 구조는 파이프라인 스테이지가 초기 발췌 시험 통과 이벤트가 잠재적인 발췌 기회를 발생시킬 수 있는 것과 동일한 속도로 샘플링 포인트 및 프래그먼트를 폐기할 수 있도록 된다. In a particularly preferred embodiment, a plurality of fragments (and preferably all fragments in the stage) and / or sampling points may be tested in parallel. This facilitates taking the advantageous effect of an initial excerpt test, for example, which can test a patch of a plurality of fragments at once. Preferably, the structure is such that the pipeline stage is able to discard the sampling points and fragments at the same rate that the initial excerpt test pass event can generate a potential excerpt opportunity.

처리가 중지될 수 있는 것으로 결정되는 샘플링 포인트 및/또는 프래그먼트는 임의의 원하고 적절한 형태로 중지 및/또는 생략된 그 처리를 가질 수 있다. 바람직하게는, 이는 그렇게 식별된 샘플링 포인트 및/또는 프를 "킬링"(무효)된 것으로서 마킹함으로써 행해지고, 관련 스테이지는 샘플링 포인트 및/또는 프래그먼트가 임의의 추가 처리를 행하기 전에 킬링(무효)되지 않았는지를 점검한다. 이는 이들 샘플링 포인트 및/또는 프래그먼트의 임의의 불필요한 처리를 회피 및/또는 중지하게 된다. Sampling points and / or fragments that are determined to be capable of halting processing may have their processing suspended and / or omitted in any desired and appropriate form. Preferably, this is done by marking so identified sampling points and / or pips as "killing " (invalidated), and the associated stage is not killing (invalidated) before the sampling points and / . This avoids and / or stops any unwanted processing of these sampling points and / or fragments.

샘플링 포인트의 경우에, 샘플링 포인트는 바람직하게는 해당 프래그먼트를 위해 커버리지 마스크에 그 값을 적절하게 설정함으로써 무효로서 마킹된다. In the case of a sampling point, the sampling point is preferably marked as invalid by appropriately setting its value in the coverage mask for that fragment.

프래그먼트가 전체적으로 고려될 때에, 각 프래그먼트는 예컨대 설정되면 프래그먼트가 처리될 필요가 없다(폐기될 수 있다)는 것을 가리키는 관련된(예컨대, 관련된 프래그먼트 데이터의 일부로서) "킬링된"("무효") 비트를 갖는다. 한가지 바람직한 실시예에서, 이것이 행해지는 것이다. 처리 스테이지는, 예컨대 처리를 위해 수용하는 각 프래그먼트의 무효 비트를 점검한다. 이 비트는 또한 개별적인 샘플링 포인트의 시험이 프래그먼트와 관련된 모든 샘플링 포인트를 궁극적으로 무효로 만들면 설정될 수 있다. When a fragment is considered in its entirety, each fragment is associated with a "killed" ("invalid") bit (e.g., as part of the associated fragment data) indicating that the fragment need not be processed . In one preferred embodiment, this is done. The processing stage checks, for example, the invalid bits of each fragment that it accepts for processing. This bit can also be set if testing of individual sampling points ultimately invalidates all sampling points associated with the fragment.

프래그먼트의 유효성 태그가 설정되면 대기 행렬(캐쉬) 라인을 릴리스하도록 캐쉬와 같이 작동하는 유효성 태그를 갖는 프래그먼트 대기 행렬을 갖는 것과 같은 대안적인 구조가 대신에 또는 또한 원하는 데로 사용될 수 있다. Alternative structures such as having a fragment queue with a validity tag that acts like a cache to release the queue (cache) line when the validity tag of the fragment is set can be used instead or also as desired.

임의의 "킬링된" 프래그먼트가 파이프 내에 유지될 수 있지만(단, 처리되지 않음), 바람직한 실시예에서, 파이프라인로부터 무효 프래그먼트를 제거하는 단계가 취해진다. 이는 바람직하게는 파이프라인으로부터 임의의 무효 프래그먼트를 제거하도록 작동될 수 있는(수용하는) 하나 이상의 압밀 스테이지를 파이프라인에 제공함으로써 행해진다. 그러한 압밀 스테이지는 예컨대 프래그먼트가 FIFO를 통해 일할 때에 임의의 무효 프래그먼트를 제거하도록(임의의 홀을 클리어하도록) 작동하는 FIFO(first-in, first-out) 대기 행렬을 포함할 수 있다. Although any "killed" fragment may be retained in the pipe (but not processed), in a preferred embodiment, the step of removing the invalid fragment from the pipeline is taken. This is preferably done by providing the pipeline with one or more consolidation stages that can be operated (receive) to remove any invalid fragments from the pipeline. Such a consolidation stage may include, for example, a first-in first-out (FIFO) queue that operates to remove any invalid fragments (clear any holes) when the fragments work through the FIFO.

출원인은 본 발명이 "킬링"(무효화)하도록 작동될 수 있는 샘플링 포인트 및 특히 프래그먼트가 많을수록 더 유리하다는 것을 인지하였다. 따라서, 바람직한 실시예에서, 파이프라인은 본 발명의 방식으로 작동을 받을 수 있는 파이프라인에서 프래그먼트들의 갯수를 증가시키도록 구성된다. Applicants have recognized that the more sampling points and especially the fragments that can be operated to "kill" (invalidate) the invention, the more advantageous. Thus, in a preferred embodiment, the pipeline is configured to increase the number of fragments in the pipeline that can be operated in the manner of the present invention.

한가지 바람직한 실시예에서, 이는 파이프라인의 포인트 전에 프래그먼트를 무효화하기 위하여 본 발명의 방식으로 작동에 더 많은 시간을 제공하도록 파이프라인 내의 하나 이상의 포인트에서 (예컨대, 파이프라인 작동을 지연시킴으로써) 프래그먼트의 통과 시에 지체를 도입함으로써 행해진다. In one preferred embodiment, this is accomplished by passing through the fragment at one or more points in the pipeline (e.g., by delaying pipeline operation) so as to provide more time for operation in the manner of the present invention to invalidate the fragment before point of the pipeline By introducing retardation into the poem.

특히 바람직한 실시예에서, 본 발명의 방식의 작동을 받을 수 있는 프래그먼트의 갯수는 초기 발췌 시험 스테이지(들) 후에 파이프라인 내에 있을 수 있는 프래그먼트의 갯수를 증가시킴으로써 증가된다. 이는 대신에 또는 뿐만 아니라 위에서 논의된 바와 같이 프래그먼트 처리량에서 지체를 도입할 수 있다. In a particularly preferred embodiment, the number of fragments that can be subjected to the operation of the method of the present invention is increased by increasing the number of fragments that may be in the pipeline after the initial test run stage (s). This may instead introduce delays at the fragment throughput as discussed above or as discussed above.

파이프라인 내의 프래그먼트의 갯수는 예컨대 파이프라인을 더 길게 제조함으로써 원하는 데로 증가될 수 있다. 특히 바람직한 실시예에서, 파이프라인에 하나 이상의 대기 행렬(대기 행렬 스테이지)을 포함함으로써 행해지고, 프래그먼트는 다음의 처리 스테이지에 도달하기 전에 통과해야 한다. 복수 개의 대기 행렬이 파이프라인 내에 포함될 수 있다. 바람직한 실시예에서, 단일의 대기 행렬이 파이프라인에 추가된다. 대기 행렬 길이는 바람직하게는 본 발명의 방식에서 작동의 효율을 최적화하도록 선택된다. The number of fragments in the pipeline can be increased as desired, for example by making the pipeline longer. In a particularly preferred embodiment, this is done by including one or more queues (queue stages) in the pipeline, and the fragments must pass before reaching the next processing stage. A plurality of queues may be included in the pipeline. In a preferred embodiment, a single queue is added to the pipeline. The queue length is preferably selected to optimize the efficiency of operation in the manner of the present invention.

지체 및/또는 대기 행렬이 파이프라인 내에 포함되는 경우, 바람직하게는 프래그먼트 쉐이더(있다면) 등의 처리 파이프라인의 더 많은 처리 집중 스테이지 전에 포함된다. 이는 지체 또는 대기 행렬이 파이프라인의 더 많은 처리 집중 스테이지에 도달하는 처리 대상 프래그먼트의 갯수를 감소시키도록 작동할 수 있다는 이점을 갖는다. 따라서, 처리 파이프라인이 기어링 포인트를 갖는다면, 기어링 포인트 이후에 프래그먼트의 처리의 상대 속도가 기어링 포인트 전에 프래그먼트의 (사실상 생산) 처리의 속도보다 느린 경우, 지체 및/또는 대기 행렬이 바람직하게는 파이프라인 내의 기어링 포인트 전에 위치된다.If a delay and / or queue is included in the pipeline, it is preferably included before the more processing concentration stages of the processing pipeline, such as a fragment shader (if any). This has the advantage that the delay or queue can operate to reduce the number of fragments to be processed reaching a more processing-intensive stage of the pipeline. Thus, if the processing pipeline has a gearing point, if the relative speed of the processing of the fragment after the gearing point is slower than the speed of the (substantially production) processing of the fragment before the gearing point, then the delay and / Is positioned before the gearing point in the line.

따라서, 바람직한 실시예에서, 그래픽 처리 파이프라인은 그래픽 처리 파이프라인의 렌더러(프래그먼트 쉐이더) 전에 위치되고 프래그먼트가 통과해야 하는 대기 행렬을 포함한다. 유사하게, 대기 행렬은 바람직하게는 그래픽 처리 파이프라인의 초기 발췌 시험 스테이지 또는 스테이지들 후에 위치된다. 바람직하게는, 그래픽 처리 파이프라인은 레스터화기에 또는 내에 또는 다음에 초기 발췌 시험 스테이지, 및 초기 발췌 시험 스테이지와 렌더러(렌더링 스테이지) 사이의 대기 행렬 스테이지를 포함한다. Thus, in a preferred embodiment, the graphics processing pipeline includes a queue that is located before the renderer (fragment shader) of the graphics processing pipeline and through which the fragments must pass. Similarly, the queue is preferably located after the initial excerpt test stage or stages of the graphics processing pipeline. Preferably, the graphics processing pipeline includes an initial excerpt test stage at and / or within the rasterizer, and a queue stage between the initial excerpt test stage and the renderer (rendering stage).

파이프라인이 위에서 논의된 바와 같이 압밀 스테이지를 포함하는 경우, 이는 바람직하게는 동일한 이유로 대기 행렬 및/또는 지체 스테이지 다음에 그리고 이후의 프래그먼트 처리 스테이지 전에 배치된다. If the pipeline includes a consolidation stage as discussed above, it is preferably placed after the queue and / or delay stage and before the subsequent fragment processing stage for the same reason.

파이프라인이 대기 행렬을 포함하는 경우, 초기 발췌 시험 통과 이벤트 정보는 바람직하게는 대기 행렬(들)로 전송된다. If the pipeline includes a queue, the initial extract test pass event information is preferably sent to the queue (s).

특히 바람직한 실시예에서, 초기 발췌 시험이 통과되면, 시험 및/또는 시험에 관한 수용 데이터에 관한 깊이 버퍼 등과 같은 임의의 데이터 버퍼가 물론, 예컨대, 그리고 바람직하게는 발췌 시험을 통과한 샘플링 포인트(들) 또는 프래그먼트 또는 프래그먼트들과 관련된 관련 데이터 값(들), 예컨대 깊이 값(들)을 이용하여 업데이트된다. 이는 (예컨대, 파이프라인의 단부에서 프래그먼트가 빠져나갈 때에 깊이 버퍼만이 업데이트되는 경우에 파이프라인의 단부에서의 깊이 버퍼의 상태를 효율적으로 나타내기 보다는) 예컨대 깊이, 버퍼가 파이프라인의 해당 포인트에서 예컨대 깊이, 버퍼의 현재 상태를 나타낸다는 것을 의미한다. 이는 또한 발생된 임의의 새로운 프래그먼트가, 임의의 이전의 프래그먼트가 그 깊이 시험을 완료했을 때에 깊이 버퍼에 배치되는 데이터, 예컨대 깊이 값 및/또는 깊이 값 범위를 단순히 기초로 하기보다는 더 현재의 데이터 세트, 예컨대 깊이, 값에 대해 시험될 때에 히든 표면 제거 작동의 효율을 향상시킨다. In a particularly preferred embodiment, once the initial excerpt test passes, any data buffer, such as a depth buffer for the acceptance data on the test and / or test, as well as any other data buffer, for example, and preferably sampling points ) Or associated data value (s) associated with the fragment or fragments, e.g., depth value (s). This means that, for example, rather than effectively indicating the state of the depth buffer at the end of the pipeline (e.g., only when the depth buffer is updated when the fragment is exited at the end of the pipeline) For example, depth, the current state of the buffer. This also means that any new fragments that have been generated will be more accurate than the data that is placed in the depth buffer when any previous fragment completes its depth test, e.g., based on a depth value and / , E. G., Depth, value, when the < / RTI >

(잠재적으로 그래픽 파이프라인에서 다른 프래그먼트 등을 "킬링"하는) 본 발명의 방식의 작동이 초기 발췌 시험을 통과하는 각각의 그리고 매 프래그먼트(초기 발췌 시험을 통과하는 샘플링 포인트와 관련된)에 관하여 수행될 수 있지만, 특히 바람직한 실시예에서, 작동은 오직 선택된 프래그먼트, 바람직하게는 확실한 선택된, 바람직하게는 예정된 기준(및 초기 발췌 시험(들)을 통과하는)을 충족시키는 프래그먼트에 관하여 수행된다.The operation of the inventive scheme (potentially "killing" other fragments, etc., in the graphics pipeline) is performed with respect to each and every fragment (associated with the sampling point passing the initial excerpt test) that passes the initial excerpt test , But in a particularly preferred embodiment, the operation is performed with respect to a fragment that satisfies only the selected fragment, preferably the definite selected, preferably the predetermined criterion (and through the initial excerpt test (s)).

초기 발췌 시험(들)을 통과한 다음에 본 발명의 방식의 작동을 트리거하는 프래그먼트를 위한 기준은 임의의 선택되고 적절한 기준일 수 있다. 바람직한 실시예에서, 기준은, 프래그먼트가 완전 RGB 기록 마스크를 갖는 것; 프래그먼트가 이전의 RGBA 값에 따라 좌우되는 혼합 기능을 갖는 것; 프래그먼트를 위한 쉐이더 프로그램이 타일 버퍼로부터 판독되지 않는 것; 프래그먼트가 완전히 불투명한 것; 프래그먼트가 후기 깊이 업데이트를 수행하도록 (어플리케이션 프로그래머에 의해) 강요되지 않는 것 중 하나 이상 그리고 바람직하게는 전부를 포함한다.The criteria for a fragment that triggers the operation of the scheme of the present invention after passing the initial excerpt test (s) may be any selected and appropriate criteria. In a preferred embodiment, the criterion is that the fragment has a full RGB recording mask; The fragment has a blending function that depends on the previous RGBA value; The shader program for the fragment is not read from the tile buffer; The fragment is completely opaque; And one or more and preferably all of the fragments are not constrained (by the application programmer) to perform late depth updates.

특히 바람직한 실시예에서, 처리 파이프라인에서 임의의 프래그먼트가 폐기될 수 있는지를 결정하도록 초기 발췌 시험 또는 시험들을 통과하는 프래그먼트의 이벤트가 사용되는 본 발명의 작동은 완전 불투명한 프래그먼트에 관해서만 수행된다. 따라서, 초기 발췌 시험을 통과하는 프래그먼트 또는 복수 개의 프래그먼트의 세트가 투명한 프래그먼트(즉, 완전히 불투명하지 않은 프래그먼트)이거나 포함하면, 프래그먼트 또는 프래그먼트들의 세트는 바람직하게는 여전히 처리를 위해 통과하지만, 바람직하게는 프래그먼트 또는 프래그먼트들의 세트와 관련된 초기 발췌 시험 통과 이벤트는 처리 파이프라인 내에 이미 있는 임의의 프래그먼트가 폐기될 수 있는지 등을 결정하도록 사용되지 않는다. In a particularly preferred embodiment, the operation of the present invention in which an event of a fragment passing an initial excerpt test or tests is used to determine if any fragments can be discarded in the processing pipeline is performed only with respect to a fully opaque fragment. Thus, if a fragment or a set of fragments that pass the initial excerpt test is a transparent fragment (i.e., a fragment that is not completely opaque) or a set of fragments or fragments are preferably still passed for processing, An initial excerpt test pass event associated with a set of fragments or fragments is not used to determine if any fragments already in the processing pipeline can be discarded,

이는 커버리지 시험에 대해 알파 시험과 알파를 받도록 요구되는 프래그먼트를 위한 본 발명의 잠재적인 프래그먼트 또는 샘플링 포인트 "킬링" 작동을 간단하게 디스에이블한다(그리고, 동등하게, 더 투명에 가까운 프래그먼트 및/또는 샘플링 포인트는 더 먼 프래그먼트 및/또는 샘플링 포인트가 최종 출력에 여전히 보이지 않는 것을 방지할 수 없다는 점을 간단하게 허용한다).This simply disables the potential fragments or sampling point "killing" operations of the invention for fragments that are required to receive alpha testing and alpha for coverage testing (and equivalently, more transparent fragments and / Point simply allows that the farther fragments and / or sampling points are still not visible at the final output).

본 발명의 방식의 작동은 바람직하게는 레스터화기가 렌더러에 의해 (잠재적으로) 처리하도록 발생시키는 각각 불투명한 프래그먼트 또는 불투명한 프래그먼트들의 세트에 관하여, 그리고 그를 위해 수행된다. The operation of the method of the present invention is preferably performed with respect to and for each set of opaque fragments or opaque fragments that cause the rasterizer to (potentially) process by the renderer.

초기 발췌 시험(들)(발췌 시험 스테이지(들))은 임의의 적절하고 원하는 방식으로 본 발명의 방식으로 작동하도록 구성될 수 있다. 바람직한 실시예에서, 발췌 시험 스테이지는 발췌 시험을 수행하고, 발췌 시험이 통과되고, 프래그먼트가 임의의 요구 기준(불투명한 것 등)을 충족시키면, 통과 이벤트 및 관련된 필수 정보를 그래픽 파이프라인의 적절한 스테이지로 "전송"하도록, 그리고 (행해지는) 깊이 버퍼(들)에서 예컨대 깊이 정보를 업데이트하도록 작동할 수 있는 조합된 시험 및 업데이트 로직을 포함한다. The initial excerpt test (s) (excerpt test stage (s)) may be configured to operate in the manner of the present invention in any suitable and desired manner. In a preferred embodiment, the excerpt test stage performs the excerpt test, and if the excerpt test is passed and the fragment meets any desired criteria (such as opaque), then the pass event and the relevant required information are sent to the appropriate stage of the graphics pipeline To " transmit "to the depth buffer (s), and to update depth information, e.g., in the depth buffer (s).

초기 발췌 "통과" 이벤트에 응답하는 그래픽 처리 파이프라인의 스테이지 또는 스테이지들은 임의의 적절하고 원하는 방식으로 그렇게 행하도록 구성될 수 있다. 바람직하게는, 스테이지는 해당 스테이지에서 프래그먼트에 책임이 있고 초기 발췌 시험 "통과" 정보를 수신하는 행위자와 관련되고, 더 이상 처리될 필요가 없는 그 "도메인"(스테이지)에서 임의의 프래그먼트 및/또는 샘플링 포인트를 식별하고, 프래그먼트 및/또는 샘플링 포인트를 중지하고 및/또는 그 임의의 불필요한 추가 처리를 방지하도록 작동할 수 있다. The stages or stages of the graphics processing pipeline that respond to the initial excerpt "pass through " event can be configured to do so in any suitable and desired manner. Preferably, the stage is associated with an actor that is responsible for the fragment at the stage and receives the initial excerpt test "pass" information, and is associated with any fragment < RTI ID = 0.0 > and / or & To identify the sampling point, to suspend the fragment and / or the sampling point, and / or to prevent any unnecessary further processing thereof.

몇몇 실시예에서, 그래픽 처리 파이프라인은 본 명세서에 설명되는 데이터를 저장하고 및/또는 본 명세서에 설명되는 프로세스를 수행하기 위한 소프트웨어를 조장하는 하나 이상의 메모리 및/또는 메모리 디바이스를 포함하고 및/또는 통신한다. 그래픽 처리 파이프라인은 또한 호스트 마이크로프로세서, 및/또는 그래픽 프로세서에 의해 발생된 데이터를 기초로 한 이미지를 디스플레이하기 위한 디스프렐이와 통신할 수 있다. In some embodiments, the graphics processing pipeline includes one or more memory and / or memory devices that store data described herein and / or facilitate software for performing the processes described herein, and / Communication. The graphics processing pipeline may also communicate with a host microprocessor, and / or a disproller for displaying an image based on data generated by the graphics processor.

그래픽 처리 파이프라인의 렌더러는 당업계에 공지된 바와 같이 원하는 출력 그래픽 프래그먼트 데이터를 발생시키도록 수용하는 그래픽 프래그먼트를 렌더링(쉐이드)하도록 작동될 수 있어야 한다. 임의의 적절하고 원하는 렌더링 요소를 포함할 수 있고 임의의 적절하고 원하는 방식으로 구성될 수 있다. 따라서, 예컨대 텍스쳐 맵퍼, 블렌더, 포깅 유닛(fogging unit) 등과 같은 하나 이상의 고정 함수 렌더링 스테이지를 비롯한 고정 함수 렌더링 파이프라인을 포함할 수 있다. 바람직한 실시예에서, 렌더러는 프래그먼트 쉐이더(쉐이더 파이프라인)(즉, 렌더링하도록 프래그먼트에서 프래그먼트 쉐이딩 프로그램을 수행하도록 작동될 수 있고 프로그래밍될 수 있는 프로그래머블 파이프라인 스테이지)를 포함한다. 본 발명은 프래그먼트 쉐이딩이 비교적 고가의 프로세스일 수 있기 때문에 프래그먼트 쉐이딩이 사용되는 경우에 특히 유리할 수 있고, 히든 표면의 그렇게 더 효율적인 초기 제거가 프래그먼트 쉐이딩이 행해지는 경우에 특히 유리하다. The renderer of the graphics processing pipeline must be capable of rendering (shading) graphics fragments that are acceptable to generate the desired output graphic fragment data as is known in the art. May include any suitable and desired rendering element, and may be constructed in any suitable and desired manner. Thus, it may include a fixed function rendering pipeline, including one or more fixed function rendering stages, such as texture mappers, blenders, fogging units, and the like. In a preferred embodiment, the renderer includes a fragment shader (i.e., a shader pipeline) (i.e., a programmable pipeline stage that can be programmed and programmed to perform a fragment shading program in a fragment to render). The present invention may be particularly advantageous when fragment shading is used because fragment shading may be a relatively expensive process, and such a more efficient initial removal of the hidden surface is particularly advantageous when fragment shading is performed.

당업자가 아는 바와 같이, 렌더러는 렌더링된 프레임 데이터가 바람직하게는 사용을 위해(예컨대, 프레임을 디스플레이에서 디스플레이하도록) 외부 메모리에서 프레임 버퍼 등의 출력 버퍼에 기록되는 출력 렌더링된 출력 버퍼를 발생시키도록 수용하는 프래그먼트를 처리한다. As those skilled in the art will appreciate, the renderer may be configured to cause the rendered frame data to be written to an output buffer, such as a frame buffer, in an external memory, preferably for use (e.g., to display the frame on the display) Handles fragments that it accepts.

본 발명은 그래픽 처리 시스템이 제공될 수 있는 출력 형태에 상관없이 사용될 수 있다. 따라서, 예컨대 렌더 출력이 (예컨대, 스크린 또는 프린터 상에)(한가지 바람직한 실시예에서 이 경우임) 디스플레이를 위해 이미지(프레임)를 형성하도록 의도되는 경웨 사용될 수 있다. 그러나, 본 발명은 또한 렌더 출력이 디스플레이를 위해 의도되지 않는 경우에, 예컨대 렌더 출력이 그래픽 처리 시스템이 ("텍스쳐에 대한 렌더링" 작업에서) 발생시키도록 사용되는 텍스쳐인 경우에, 또는 사실상 발생시키도록 사용되는 그래픽 처리 시스템이 임의의 다른 형태의 데이터 어레이인 경우에 사용될 수 있다. The present invention can be used regardless of the type of output that a graphics processing system can be provided with. Thus, for example, a render output may be used that is intended to form an image (frame) for display (e.g., on a screen or printer) (in one preferred embodiment in this case) display. However, the present invention also relates to the case where the render output is not intended for display, for example when the render output is a texture used to cause the graphics processing system (in the "render on texture & May be used in the case where the graphics processing system to be used is any other type of data array.

본 발명의 다양한 기능은 임의의 원하고 적절한 방식으로 수행될 수 있다. 예컨대, 본 발명의 기능은 원하는 데로 하드웨어 또는 소프트웨어에서 실시될 수 있다. 따라서, 예컨대, 본 발명의 다양한 기능 요소, 처리 스테이지, 및 "수단"은, 원하는 방식으로 프로그램될 수 있는 적절하게 구성된 전용 하드웨어 요소 또는 처리 회로 및/또는 프로그래머블 하드웨어 요소 또는 처리 회로와 같이 다양한 기능등을 수행하도록 작동될 수 있는, 적절한 프로세서 또는 프로세서들, 컨트롤러 또는 컨트롤러들, 기능 유닛, 회로, 처리 로직, 마이크로프로세서 구조 등을 포함할 수 있다. The various functions of the present invention can be performed in any desired and appropriate manner. For example, the functions of the present invention may be implemented in hardware or software as desired. Thus, for example, various functional elements, processing stages, and "means ", of the present invention may be embodied in a variety of forms, such as appropriately configured dedicated hardware elements or processing circuits and / or programmable hardware elements or processing circuits, A processor or processors, a controller or controllers, a functional unit, a circuit, processing logic, a microprocessor structure, etc., that may be operable to perform the functions described herein.

또한, 당업자에 의해 인지되는 바와 같이, 본 발명의 다양한 기능 등은 소정의 프로세서에서 병행하여 복사 및/또는 수행될 수 있다. 동등하게, 다양한 처리 스테이지는 원한다면 추리 회로 등을 공유할 수 있다. Further, as will be appreciated by those skilled in the art, the various functions, etc. of the present invention may be copied and / or performed in parallel on a given processor. Equally, the various processing stages can share a reasoning circuit and the like if desired.

본 발명은 "파이프라인형" 구조를 갖는 그래픽 처리 시스템, 그래픽 프로세서, 및 렌더러의 임의의 적절한 형태 또는 구성에 적용될 수 있다. 그래픽 처리 파이프라인은 그래픽 처리 파이프라인이 일반적으로 포함하는 임의의 적절하고 원하는 처리 스테이지 등을 포함할 수 있다. 특히 바람직한 실시예에서, 그래픽 처리 시스템은 타일 기반 그래픽 처리 시스템이다. 유사하게, 바람직한 실시예에서, 그래픽 처리 시스템은 다중 코어 시스템이다(즉, 복수 개의 그래픽 처리 코어를 포함한다). The present invention may be applied to any suitable form or configuration of graphics processing system, graphics processor, and renderer having a "pipelined" structure. The graphics processing pipeline may include any suitable and desired processing stage or the like that the graphics processing pipeline typically includes. In a particularly preferred embodiment, the graphics processing system is a tile-based graphics processing system. Similarly, in a preferred embodiment, the graphics processing system is a multi-core system (i. E., Includes a plurality of graphics processing cores).

따라서, 본 발명은 본 명세서에 설명되는 본 발명의 양태의 임의의 하나 이상의 또는 방법에 따라 작동되는 장치를 포함하는 그래픽 프로세서 및 그래픽 처리 플랫폼으로 연장된다. 위에서 논의된 특정한 기능을 수행하는 데에 필요한 임의의 하드웨어에 관하여, 그러한 그래픽 프로세서는 달리 그래픽 프로세서가 포함하는 유용한 기능 유닛 등의 임의의 하나 이상 또는 모두를 포함할 수 있다. Accordingly, the present invention extends to a graphics processor and a graphics processing platform that includes an apparatus that operates in accordance with any one or more of the aspects of the invention described herein. With respect to any hardware necessary to perform the specific functions discussed above, such graphics processors may include any one or more, or any, of the useful functional units otherwise included in the graphics processor.

또한, 당업자라면 본 발명의 설명된 양태 및 실시예 모두가 본 명세서에 설명되는 바람직하고 선택적인 특징들의 임의의 하나 이상 또는 모두를 적절하게 포함할 수 있다는 것을 알 것이다. It will also be appreciated by those skilled in the art that all of the described aspects and embodiments of the invention may suitably include any one or more or all of the preferred and optional features described herein.

본 발명에 따른 방법은 소프트웨어, 예컨대 컴퓨터 프로그램을 이용하여 적어도 부분적으로 실시될 수 있다. 따라서, 추가의 양태로부터 보았을 때에, 본 발명은 데이터 처리 수단에 설치될 때에 본 명세서에 설명된 방법을 수행하도록 특별하게 적응된 컴퓨터 소프트웨어, 및 프로그램이 데이터 처리 시스템에서 실행될 때에 본 명세서에서 설명되는 방법 또는 방법의 모든 단계를 수행하도록 적응된 코드 수단을 포함하는 컴퓨터 프로그램을 제공한다. 데이터 처리 시스템은 마이크로프로세서, 프로그래머블 FPGA(Field Programmable Gate Array) 등일 수 있다. The method according to the invention can be carried out at least in part using software, for example a computer program. Thus, viewed from a further aspect, the present invention provides computer software that when installed in a data processing means is specifically adapted to perform the methods described herein, and computer software that when executed on a data processing system, Or code means adapted to perform all steps of the method. The data processing system may be a microprocessor, a programmable FPGA (Field Programmable Gate Array), or the like.

따라서, 본 발명은 컴퓨터 시스템에 사용하도록 컴퓨터 프로그램 제품으로서 적절하게 구현될 수 있다. 그러한 실시는 비일시적 컴퓨터 판독 가능한 매체 등의 유형 매체, 예컨대 디스켓, CD ROM, ROM, 또는 하드 디스크에 고정된 일련의 컴퓨터 판독 가능한 명령어를 포함할 수 있다. 또한, 제한하지 않지만 광학 또는 아날로그 통신 라인을 비롯한 유형 매체, 또는 제한하지 않지만 마이크로파, 적외선 또는 기타 전송 기법을 비롯한 무형적으로 이용하는 무선 기법에 걸쳐 모뎀 또는 기타 인터페이스 디바이스를 통해 컴퓨터 시스템에 전달 가능한 일련의 컴퓨터 판독 가능한 명령어를 포함할 수 있다. 일련의 컴퓨터 판독 가능한 명령어는 본 명세서에서 이미 설명된 기능성의 전부 또는 일부를 구현한다. Thus, the present invention may be suitably implemented as a computer program product for use in a computer system. Such an implementation may include a series of computer readable instructions fixed on a type medium such as a non-volatile computer readable medium, such as a diskette, CD ROM, ROM, or hard disk. A set of computers that can be communicated to a computer system via a modem or other interface device, including, but not limited to, type media including optical or analog communication lines, or intangible wireless techniques including but not limited to microwave, infrared, Readable instructions. A series of computer readable instructions embodies all or part of the functionality previously described herein.

이하, 본 발명의 다수의 바람직한 실시예가 오직 일례로서 첨부 도면을 참조하여 설명될 것이다.
Hereinafter, a number of preferred embodiments of the present invention will be described, by way of example only, with reference to the accompanying drawings.

도 1은 본 발명에 따른 그래픽 처리 시스템의 실시예를 개략적으로 도시한다.Figure 1 schematically illustrates an embodiment of a graphics processing system according to the present invention.

이하, 본 발명의 다수의 바람직한 실시예를 설명한다. 이들 실시예는 그래픽 처리 시스템에서의 본 발명의 용도를 참조하여 주로 설명될 것이다. 그러나, 전술한 바와 같이, 본 발명은 초기 "데이터 엔터티" 발췌 시험을 포함하는 다른 파이프라인형 데이터 처리 시스템에 적용될 수 있다. Hereinafter, a number of preferred embodiments of the present invention will be described. These embodiments will be mainly described with reference to the use of the present invention in a graphics processing system. However, as described above, the present invention can be applied to other pipelined data processing systems including an initial "data entity" excerpt test.

도 1은 본 발명에 따라 동작할 수 있는 그래픽 프로세서(1)를 개략적으로 예시한다.Figure 1 schematically illustrates a graphics processor 1 that can operate in accordance with the present invention.

도 1은 본 실시예의 동작과 관련되는 그래픽 프로세서(1)의 주요 요소와 파이프라인 스테이지를 보여준다. 당업자들이 알게 되는 바와 같이, 도 1에는 예시되지 않은 그래픽 프로세서의 다른 요소가 존재할 수 있다. 여기서 도 1은 단지 개략적이고, 예컨대 실제로, 예시된 기능 유닛과 파이프라인 스테이지는 도 1에서 별개의 스테이지로서 개략적으로 예시되고 있어도 중요 하드웨어 회로를 공유하는 것을 역시 유의하여야 한다. 또한, 도 1에 도시된 바와 같은 그래픽 프로세서의 스테이지, 요소 및 유닛 각각은 원하는 대로 구현될 수 있으며, 그에 따라 필요한 동작 및 기능을 수행하기 위해 예컨대, 적절한 회로 및/또는 처리 로직 등을 포함할 것임을 알 것이다.Figure 1 shows the main elements and pipeline stages of the graphics processor 1 in connection with the operation of this embodiment. As will be appreciated by those skilled in the art, there may be other elements of the graphics processor that are not illustrated in FIG. It should also be noted that FIG. 1 is only schematic and that, for example, in practice, the illustrated functional units and pipeline stages share important hardware circuitry even though they are schematically illustrated as separate stages in FIG. Further, each of the stages, elements and units of the graphics processor as shown in FIG. 1 may be implemented as desired and accordingly include suitable circuitry and / or processing logic, etc. to perform the required operations and functions I will know.

도 1에 도시된 그래픽 처리 시스템은 타일 기반(tile-based) 시스템이다. 그래픽 프로세서(1)는 따라서 당업계에서 알고 있는 바와 같이 생성될 출력 프레임과 같은 렌더링 출력 데이터 어레이의 타일들을 생성할 것이다. (본 발명은 전술한 바와 같이 즉시 모드(immediate mode) 렌더링 시스템과 같은 다른 시스템에도 동일하게 적용된다) 출력 데이터 어레이는 당업계에 알려진 바와 같이 통상적으로 스크린이나 프린터와 같은 디스플레이 장치상에 디스플레이되도록 의도된 출력 프레임일 수 있거나, 예컨대, 그래픽 프로세서 등의 "렌더링 내지 텍스쳐(render to texture)" 출력을 포함할 수도 있다.The graphics processing system shown in FIG. 1 is a tile-based system. The graphics processor 1 will thus generate tiles of the rendering output data array, such as the output frame to be generated, as is known in the art. (The present invention applies equally to other systems, such as an immediate mode rendering system, as described above.) The output data array is typically intended to be displayed on a display device such as a screen or printer, as is known in the art Output frame, or may include a "render to texture" output, such as, for example, a graphics processor.

도 1은 래스터화 처리로의 입력을 위한 그래픽 프리미티브(다각형)(2)의 생성 후의 파이프라인 스테이지를 개략적으로 예시한다. 따라서, 이 포인트에서 그래픽 데이터(꼭지점 데이터)는 변환 및 점등 동작(도시 생략)을 경험하며, 프리미티브 셋업 스테이지(도시 생략)는 당업계에 알려진 바와 같이 그래픽 프로세서(1)에 제공되는 명령 및 꼭지점 데이터에 응답하여 프리미티브가 렌더링되도록 셋업이 이루어진다.Figure 1 schematically illustrates a pipeline stage after creation of a graphics primitive (polygon) 2 for input to a rasterization process. At this point, the graphic data (vertex data) undergoes a transformation and lighting operation (not shown), and a primitive setup stage (not shown) A setup is made so that the primitive is rendered in response.

도 1에 도시된 바와 같이, 그래픽 프로세서(1)의 프래그먼트 처리 파이프라인에 있어서 이 부분은 래스터화(rasterisation) 스테이지(3), 초기(early) 계층적 ZS(깊이 및 스텐실) 시험 스테이지(4), 초기 ZS(깊이 및 스텐실) 스테이지(13), 프래그먼트 쉐이딩(shading) 스테이지 6의 형태의 렌더링 스테이지 및 후기(late) ZS(깊이 및 스텐실) 시험 스테이지(7)를 포함하는 다수의 처리 스테이지를 포함한다.1, this part of the fragment processing pipeline of the graphics processor 1 includes a rasterization stage 3, an early hierarchical ZS (depth and stencil) test stage 4, , A rendering stage in the form of an initial ZS (depth and stencil) stage 13, a fragment shading stage 6, and a late ZS (depth and stencil) test stage 7 do.

래스터화 스테이지(3)는 당업계에 알려진 바와 같이 렌더링 출력(예, 디스플레이될 이미지)을 처리를 위한 개별 그래픽 프래그먼트로 구성하는 프리미티브를 래스터화하도록 동작한다. 이를 위해, 래스터화기(3)는 렌더링을 위해 그래픽 프리미티브(2)를 수신하고, 해당 프리미티브를 샘플링 포인트에 래스터화하여, 프리미티브를 렌더링하는데 적절한 위치(적절한 샘플링 위치를 나타냄)를 갖는 그래픽 프래그먼트를 생성한다. 본 실시예에서, 래스터화기(3)에 의해 생성되는 각각의 그래픽 프래그먼트는 (이와 관련하여) 복수(통상 4개)의 샘플링 위치를 나타낸다. (물론 다른 구성도 가능하다) 각각의 그래픽 프래그먼트는 이와 관련하여 복수의 샘플링 포인트 중 프래그먼트가 실제로 렌더링에 사용되고 있는 것(즉, 실제 해당 프리미티브에 의해 커버되는 것)을 나타내는 샘플링 포인트를 지시하는 커버리지 마스크를 갖는다.The rasterization stage 3 operates to rasterize the primitives that make up the rendering output (e.g., the image to be displayed) into discrete graphics fragments for processing as is known in the art. To this end, the rasterizer 3 receives the graphics primitives 2 for rendering and rasterizes the primitives to the sampling points to create graphic fragments with appropriate locations (representing the appropriate sampling locations) to render the primitives do. In this embodiment, each graphic fragment generated by the rasterizer 3 represents a plurality (usually four) of sampling locations (in this regard). Each graphics fragment is associated with a coverage mask indicating a sampling point representing a fragment of a plurality of sampling points actually being used for rendering (i.e., actually covered by the corresponding primitive) .

본 실시예에서, 래스터화기(3)는 2x2 그룹의 프래그먼트에 대응하는 최소 패치 크기로 점진적으로 작아지는 샘플링 포인트(즉, 2x2 그룹의 프래그먼트로 래스터화되는 샘플링 포인트의 어레이)의 패치(및 그에 따라 프래그먼트의 패치)에 대해 프리미티브를 반복 시험하여 프리미티브를 커버하지 않는(적어도 부분적으로) 임의의 패치를 버리는 계층적 래스터화기이다. 시험되는 각각의 패치는 주어진 세트의 프래그먼트에 대응한다.In this embodiment, the rasterizer 3 is a patch of a sampling point (i. E., An array of sampling points that are rasterized into a 2x2 group of fragments) progressively smaller with a minimum patch size corresponding to a 2x2 group of fragments (At least in part) of the primitive to discard any patches that do not cover the primitive. Each patch to be tested corresponds to a given set of fragments.

이것은 래스터화기(3)에 의해 렌더링 타겟 영역의 큰 패치로 시작하여 해당 프리미티브가 해당 패치의 내부에 있는지를 시험하는 것으로 수행된다. 그렇지 않으면, 전체 패치가 버려지고, 그 다음 패치가 시험되는 등등이 행해진다. 다른 한편, 프리미티브가 패치 내에 있는 것으로 확인되면(적어도 부분적으로 패치를 커버하는 것으로 확인되면), 패치는 4 부분으로 서브-분할되며, 각각의 "서브-패치"는 다시 동일한 방식으로 최소 패치 크기에 이를 때까지 시험된다.This is done by starting with a large patch of the rendering target area by the rasterizer 3 and testing whether the primitive is inside the patch. Otherwise, the entire patch is discarded, the next patch is tested, and so on. On the other hand, if the primitive is found to be in the patch (at least partially confirmed to cover the patch), the patch is sub-divided into four parts, and each "sub- It is tested until this.

일단 최소 패치 크기에 도달되면(즉, 적어도 부분적으로 프리미티브를 커버하는 2x2 프래그먼트의 패치가 확인되면), 래스터화기(3)는 해당 최종 패치 내의 개별 샘플링 포인트를 시험하여 샘플링 포인트가 프리미티브에 의해 커버되는지 여부를 확인한다. 이후 래스터화기(3)는 프리미티브에 의해 커버되는 것으로 확인된 샘플링 포인트에 대응하는 레더링을 위해 개별 프래그먼트를 생성 및 출력한다.Once the minimum patch size is reached (i.e., a patch of a 2x2 fragment covering at least partially the primitive is identified), the rasterizer 3 tests the individual sampling points in the final patch to determine if the sampling point is covered by the primitive . The rasterizer 3 then generates and outputs the individual fragments for the leathers corresponding to the sampling points identified as being covered by the primitives.

래스터화기(3)는 각각의 프래그먼트와 관련하여 비트맵 형태의 커버리지 마스크를 포함하는데, 커버리지 마스크는 프래그먼트와 관련된 샘플링 위치 세트의 각각의 샘플링 위치에 대해 해당 샘플링 위치의 커버 여부(즉, 실제, 프래그먼트가 해당 샘플링 포인트의 렌더링에 사용되고 있는지 여부(즉, 해당 샘플링 포인트에 대해 관련 데이터가 저장되어야 하는지 여부))를 나타낸다.The rasterizer 3 includes a bitmap-like coverage mask with respect to each fragment, which covers whether the corresponding sampling location for each sampling location in the set of sampling locations associated with the fragment (i.e., Is used for rendering the corresponding sampling point (i.e., whether or not the related data should be stored for the corresponding sampling point)).

물론, 다른 래스터화 배열도 가능할 것이다.Of course, other rasterization arrangements would be possible.

도 1에 도시된 바와 같이, 래스터화기(3)는 이와 관련된 초기 "계층적" 깊이(Z) 및 스텐실 테스팅 스테이지(4)를 구비할 수 있다. 이 계층적 깊이 및 스텐실 테스팅 스테이지(4)는 래스터화기(3)에 의해 발생된 패치에 대해 해당 패치의 도태(culled) 가능 여부를 확인하는 "초기" 깊이 및 스텐실 시험을 수행한다.As shown in FIG. 1, the rasterizer 3 may have an initial "hierarchical" depth Z associated therewith and a stencil testing stage 4. This hierarchical depth and stencil testing stage 4 performs an "initial" depth and stencil test to check whether the patches generated by the rasterizer 3 are cullable.

이를 위해, 래스터화기(3)에 의해 생성되는 샘플링 포인트(프래그먼트의)의 각각의 패치는 초기 계층적 깊이 및 스텐실 시험 스테이지(4)로 보내지고, 해당 스테이지에서는 샘플링 포인트(프래그먼트의)의 패치에 대해 패치가 해당 스테이지에서 포기(디스카드)될 수 있는지 여부를 알기 위한 Z(깊이) 시험이 수행된다. 이를 위해, 초기 계층적 깊이 및 스텐실 시험기(4)는 패치에 대한 적절한 깊이 샘플을 취득하는 것에 의해 래스터화기(3)로부터 수신하는 각각의 패치에 대한 깊이 값 범위를 유도하고, 패치가 렌더링될 다른 프래그먼트와 샘플링 포인트(예, 추가로 파이프라인 내에 있거나 이미 렌더링된 것)에 의해 차단되거나 그것들을 오버드로우하는지 여부에 대한 판정을 시도하기 위해 해당 깊이 값 범위와 패치에 의해 커버되는 샘플링(프래그먼트) 위치와 관련하여 이미 유도되어 저장된 깊이 값 범위를 비교한다. 동시에, 초기 스텐실 시험이 행해진다.To this end, each patch of the sampling point (of the fragment) generated by the rasterizer 3 is sent to the initial hierarchical depth and stencil test stage 4, and at that stage, to the patch of the sampling point (of the fragment) A Z (depth) test is performed to determine whether or not the patch can be discarded in the corresponding stage. To this end, the initial hierarchical depth and stencil tester 4 derives a range of depth values for each patch received from the rasterizer 3 by acquiring the appropriate depth samples for the patch, (Depth) range covered by the patch and a sampling (fragment) position covered by the patch in order to attempt a determination as to whether it is intercepted or overdrawn by fragments and sampling points (e.g., in the pipeline or already rendered) And compares the depth value range that has already been derived and stored. At the same time, an initial stencil test is performed.

시험되는 패치가 초기 깊이 및 스텐실 시험에 실패하면, 임의의 추가의 처리로부터 포기(디스카드)된다.If the patch being tested fails initial depth and stencil testing, it is discarded from any further processing.

시험되는 패치가 초기 깊이 및 스텐실 시험을 통과하면, 전술한 바와 같이 작은 "서브-패치"로의 추가의 서브-분할을 위해 래스터화기(3)로 복귀된다. 이후 각각의 "서브-패치"는 최소 패치 크기가 얻어질 때까지 시험을 위해 초기 깊이 및 스텐실 시험기(4)로 복귀되는 등등이 행해진다.If the patch being tested passes the initial depth and stencil test, it is returned to the rasterizer 3 for further sub-division into a small "sub-patch " Subsequently, each "sub-patch" is made to return to the initial depth and stencil tester 4 for testing until a minimum patch size is obtained, and so on.

래스터화기(3)로부터 수신되는 복수의 샘플링 포인트의 패치에 대해 깊이 및 스텐실 시험을 수행시 초기 계층적 깊이 및 스텐실 시험 스테이지(4)에 의해 사용되는 깊이 값 범위는 깊이 및 스텐실 버퍼(5)에 저장된다. 깊이 값(및 스텐실 값)의 범위는 버퍼가 나타내는 각각의 패치 크기 및 위치에 대해(기본적으로 래스터화기(3)가 처리되고 있는 타일에 대해 생성할 수 있는 각각의 패치 크기 및 위치에 대해) 깊이 및 스텐실 버퍼(5)에 저장된다.When performing depth and stencil tests on patches of a plurality of sampling points received from the rasterizer 3, the initial hierarchical depth and the range of depth values used by the stencil test stage 4 are stored in the depth and stencil buffer 5 . The range of depth values (and stencil values) is dependent on the depth of each patch size and position represented by the buffer (basically for each patch size and location that can be created for the tile for which the rasterizer 3 is being processed) And the stencil buffer 5, respectively.

각각의 패치에 대해 저장된 깊이 값 범위는 각각의 패치에 대해 초기에 디폴트 값으로 설정되거나, 해당 값이 결정될 수 있으면, 패치에 대해 예상되는 깊이 값 범위로 설정된다. (일부 구성에서, 타일에 대한 프리미티브가 가질 수 있는 가능한 깊이 값의 범위는 미리 알 수 있다. 이것은 이후 해당 패치에 대한 예상 깊이 값의 범위를 깊이 버퍼(5)에 제공하는데 사용될 수 있다) 저장된 패치 깊이 값 범위는 초기 계층적 깊이 및 스텐실 시험 스테이지(4), 초기 깊이 및 스텐실 시험 스테이지(13) 및 후기 깊이 및 스텐실 시험 스테이지(7)에 의해 시험되는 패치 및/또는 샘플링 포인트가 각각의 깊이 및 스텐실 시험을 통과함에 따라 갱신된다.The depth value range stored for each patch is initially set to a default value for each patch, or, if the value can be determined, set to the expected depth value range for the patch. (In some configurations, the range of possible depth values that a primitive for a tile may have is known in advance. This may then be used to provide a range of expected depth values for that patch to the depth buffer 5) The depth value range is determined by the initial hierarchical depth and the patches and / or sampling points tested by the stencil test stage 4, the initial depth and stencil test stage 13 and the late depth and stencil test stage 7, It will be updated as you pass the stencil exam.

깊이 및 스텐실 버퍼(5)에 렌더링되는 타일의 복수의 샘플링 포인트 위치(및 프래그먼트)의 패치에 대한 깊이 값의 예상 범위를 저장하는 것은 동일한 위치를 갖도록 파이프라인에 이미 존재하는 초기 프래그먼트가 임의의 깊이 또는 스텐실 시험을 아직 완료하지 않은 경우(예, 초기 계층적 깊이 및 스텐실 시험(4)과 초기 깊이 및 스텐실 시험(13)을 경험하지 않았고, 후기 깊이 및 스텐실 시험(7)을 아직 경험하지 않은 경우)에도 초기 계층적 깊이 및 스텐실 시험기(4)가 래스터화기(3)에 의해 생성되는 샘플링 포인트 위치의 패치와 관련하여 깊이 및 스텐실 시험을 여전히 수행할 수 있음을 의미한다. 이것은 초기 프래그먼트와 관련하여 깊이 시험이 아직 수행되지 않은 경우 예상 깊이 값의 범위를 사용하여 깊이 시험(예컨대)이 가질 수 있는 가능한 결과를 판정할 수 있기 때문이다. 이후 이것은 초기 프래그먼트가 실제 깊이 또는 스텐실 시험을 아직 경험하지 못한 경우 초기 계층적 깊이 및 스텐실 시험(4)을 (잠재적으로) 본 발명의 방식으로 파이프라인에 존재하는 초기 프래그먼트의 처리를 중단하는데 사용할 수 있게 한다.Storing the expected range of depth and depth values for the patches at the plurality of sampling point locations (and fragments) of the tile being rendered in the stencil buffer 5 means that the initial fragments that already exist in the pipeline have the same location, Or stencil test has not yet been completed (eg, no experience of initial hierarchical depth and stencil test (4) and initial depth and stencil test (13), and late depth and stencil test (7) ) Also means that the initial hierarchical depth and stencil tester 4 can still perform depth and stencil tests with respect to the patches of the sampling point locations generated by the rasterizer 3. This is because, with respect to the initial fragment, if the depth test has not yet been performed, it is possible to use the range of the expected depth value to determine the possible outcome of the depth test (e.g.). This may then be used to (potentially) discontinue the processing of the initial fragment existing in the pipeline in the manner of the present invention, with the initial hierarchical depth and stencil test (4) if the initial fragment has not yet experienced the actual depth or stencil test Let's do it.

샘플링 포인트 위치의 패치에 대한 깊이 값의 범위의 저장 및 시험은 샘플링 포인트 위치의 큰 패치가 초기 깊이 및 스텐실 시험을 용이하게 받을 수 있음을 의미한다(이는 저장된 범위에 의해, 패치가 전적으로 해당 저장된 범위 밖에 있어서, 예컨대 전적으로 초기 계층적 깊이 및 스텐실 시험을 통과하는지 여부가 시험에 의해 결정되지 때문이다). 이것은 하기에 추가로 설명되는 바와 같이 초기 깊이 및 스텐실 시험 통과 이벤트의 방송을 용이하게 하고, 해당 이벤트는 하나의 처리 사이클 내의 패치 영역 내의 전체 그룹의 프래그먼트의 처리를 (잠재적으로) 중단시키는 것(예컨대, 각각의 프래그먼트의 처리를 하나씩 처리하는 것을 잠재적으로 중단하는 대신에)이 가능하도록 단일 처리 사이클 내의 렌더링 타겟에 대해 매우 큰 영역에 영향을 미친다.Storing and testing a range of depth values for a patch at a sampling point location means that a large patch at the sampling point location can easily receive the initial depth and stencil test (which, depending on the stored range, Outside, for example, whether it passes solely the initial hierarchical depth and the stencil test is determined by the test). This facilitates broadcasting of the initial depth and stencil test pass events, as will be further described below, and the event is (potentially) stopping the processing of the fragments of the entire group within the patch region within one processing cycle , Instead of potentially interrupting the processing of each fragment one by one). ≪ / RTI >

초기 계층적 깊이 및 스텐실 시험 스테이지(4)는 당업계에 알려진 바와 같이 적절하게 보수적인 방식으로 동작하도록 구성된다.The initial hierarchical depth and stencil test stage 4 is configured to operate in a suitably conservative manner as is known in the art.

일단 최소 패치 크기(본 실시예에서 2x2 프래그먼트의 패치)가 도달되면, 래스터화기(3)는 초기 계층적 Z 및 스텐실 시험 스테이지(4) 내지 처리를 위한 그래픽 처리 파이프라인의 나머지를 통과하는 패치(및 그에 따른 샘플링 포인트)를 나타내는 프래그먼트를 발행한다.Once the minimum patch size (the patch of the 2x2 fragment in the present embodiment) is reached, the rasterizer 3 is then applied to the initial hierarchical Z and stencil test stages 4 through the patches passing through the remainder of the graphics processing pipeline for processing And a sampling point corresponding thereto).

이러한 처리의 첫 부분은 래스터화기(3)에 의해 발행된(출력된) 각각의 프래그먼트를 초기 깊이 및 스텐실 시험 스테이지(13)에서의 초기 깊이 및 스텐실 시험을 받도록 하는 것이다. 이러한 초기 깊이 및 스텐실 시험 스테이지(13)는 래스터화기(3)에 의해 발행된 프래그먼트와 관련된 개별(커버된) 샘플링 위치에 대해 깊이 및 스텐실 시험을 수행한다(즉, 샘플링 포인트 당 해상도에서(per-sampling point resolution)).The first part of this process is to cause each of the fragments issued (output) by the rasterizer 3 to be subjected to initial depth and initial depth and stencil tests at the stencil test stage 13. This initial depth and stencil test stage 13 performs depth and stencil tests on the individual (covered) sampling locations associated with the fragments issued by the rasterizer 3 (i.e., per- sampling point resolution).

이를 위해, 초기 깊이 및 스텐실 시험기(13)는 깊이 및 스텐실 버퍼(5)에 저장된 샘플링 위치 당 깊이 및 스텐실 값(per-sampling position depth and stencil values)을 사용한다. 따라서, 깊이 및 스텐실 버퍼(5)는 패치 당 깊이 값 범위(per-patch depth value ranges) 이외에 버퍼가 나타내는 각각의 샘플링 포인트에 대한(기본적으로 처리되고 있는 타일의 각각의 샘플링 포인트 위치에 대한) 적절한 깊이(Z) 값 및 스텐실 값을 저장한다. 이들 값은 초기 깊이 및 스텐실 시험 스테이지(13)와 후기 깊이 및 스텐실 시험 스테이지(7)에 의해 시험되는 샘플링 포인트가 각각의 깊이 및 스텐실 시험을 통과할 때 깊이 및 스텐실 버퍼(5) 내에 저장된다.To this end, the initial depth and stencil tester 13 uses the depth and per-sampling position depth and stencil values stored in the stencil buffer 5. Thus, the depth and stencil buffer 5 can be adjusted to suit the respective sampling point represented by the buffer (for each sampling point location in the tile being processed) in addition to the per-patch depth value ranges Depth (Z) values and stencil values. These values are stored in the depth and stencil buffer 5 when the initial depth and the sampling points tested by the stencil test stage 13 and the late depth and stencil test stage 7 pass their respective depth and stencil tests.

깊이 및 스텐실 버퍼(5)는 본 실시예에서는 패치 당 깊이 범위를 저장하는 하나의 버퍼와 샘플 당 깊이 값을 저장하는 다른 하나의 버퍼로 이루어진 두 개의 특징적인 버퍼(동일한 물리적 메모리를 갖더라도)로서 구성된다. 다른 구성도 물론 가능하다.The depth and stencil buffer 5 are two distinct buffers (having the same physical memory), one buffer for storing the depth range per patch and another buffer for storing the depth value per sample in this embodiment . Other configurations are of course possible.

초기 깊이 및 스텐실 시험 스테이지(13)는 당업계에 알려진 바와 같이 적절하게 보수적인 방식으로 동작하도록 구성된다.The initial depth and stencil test stage 13 is configured to operate in a suitably conservative manner as is known in the art.

초기 깊이 및 스텐실 시험 스테이지(13)을 통과하는 프래그먼트(즉, 초기 깊이 및 스텐실 시험 스테이지(13)를 통과하는 적어도 하나의 관련 샘플링 위치를 갖는 프래그먼트)는 도 1에 도시된 바와 같이 "대기 행렬(queue)"(12)(그 기능과 목적은 하기에 더 상세히 논의됨)를 통해 프래그먼트 쉐이딩 스테이지(6)(렌더러)로 외측으로 보내진다.The initial depth and the fragments passing through the stencil test stage 13 (i.e., the fragments having the initial depth and at least one associated sampling location passing through the stencil test stage 13) quot; queue "12 (whose function and purpose are discussed in more detail below) to the fragment shading stage 6 (the renderer).

(초기 깊이 및 스텐실 시험 스테이지(13)에 실패한 프래그먼트는 당업계에 알려진 바와 같이 초기 깊이 및 스텐실 시험 스테이지(13)에 의해 디스카드된다.)(Initial depth and fragments that failed stencil testing stage 13 are discarded by initial depth and stencil testing stage 13 as is known in the art.)

프래그먼트 쉐이딩 스테이지(6)는 자체가 수신하는 프래그먼트에 대해 적절한 프래그먼트 처리 (렌더링) 동작을 수행함으로써 프래그먼트의 처리를 통해 당업계에 알려진 바와 같이 렌더링 출력을 위해(예, 프래그먼트의 디스플레이를 위해) 적절한 프래그먼트 데이터 등을 생성한다.The fragment shading stage 6 performs the appropriate fragment processing (rendering) operation on the fragment it receives by itself, so that the processing of the fragment allows for the appropriate fragment (for display of the fragment) Data and the like.

이러한 프래그먼트 처리는 당업계에 공지된 바와 같이, 적절한 프래그먼트 데이터의 생성을 위해, 프래그먼트에 대해 프래그먼트 쉐이더(shader) 프로그램을 실행하고, 프래그먼트에 텐스쳐를 적용하고, 블렌딩(blending), 포깅(fogging) 또는 다른 동작을 프래그먼트 등에 적용하는 것과 같은 임의의 적절하고 바람직한 프래그먼트 쉐이딩 처리를 포함할 수 있다. 본 실시예에서, 프래그먼트 쉐이딩 스테이지(6)는 쉐이더 파이프라인(프로그래밍 가능한 프래그먼트 쉐이더)의 형태이지만, 원하는 경우, 고정식 기능의 프래그먼트 쉐이딩 유닛을 사용하거나 대체하는 다른 구성도 가능하다.Such fragment processing may be accomplished by executing a fragment shader program on a fragment, applying a tensor to the fragment, blending, fogging, or both, for generation of the appropriate fragment data, Or other suitable fragment shading processing such as applying a different operation to a fragment or the like. In this embodiment, the fragment shading stage 6 is in the form of a shader pipeline (programmable fragment shader), but if desired, other configurations may be used to replace or replace the fragment shading unit of a fixed function.

레더링된 프래그먼트가 나타내는 샘플링 포인트가 현재 타일 버퍼(5)에 해당 값이 저장된 프래그먼트를 오버드로우할지 여부를 결정하기 위해(즉, 프래그먼트 쉐이딩 스테이지(6)로부터 발행되는 프래그먼트에 대한 프래그먼트 데이터가 타일 버퍼 내에 저장되어야 하는지 여부(이미 렌더링된 프래그먼트의 타이 버퍼(들) 내의 프래그먼트 데이터를 대체 또는 변형하여야 하는지 여부)의 결정하기 위해), (예컨대, 프래그먼트가 초기 Z 및 스텐실 시험을 경험하지 않은 경우에 수행되면,) 쉐이딩된 프래그먼트(쉐이딩된 프래그먼트와 관련된 커버링된 샘플링 포인트)에 대한 파이프라인 깊이 시험의 종료를 수행하는 "후기" 프래그먼트 Z 및 스텐실 시험 스테이지(7)가 존재한다.(I.e., the fragment data for a fragment issued from the fragment shading stage 6 is not stored in the tile buffer 5) to determine whether the sampling point indicated by the drawn fragment is to over draw the current stored value in the tile buffer 5 (E.g., to determine whether fragment data should be replaced or modified in the tie buffer (s) of a fragment that has already been rendered) (e.g., if the fragment has not experienced an initial Z and stencil test) There is a "late" fragment Z and a stencil test stage 7 that performs the end of the pipeline depth test for the shaded fragments (the covered sampling points associated with the shaded fragments).

이를 위해, 후기 깊이 시험 스테이지(7)는 프래그먼트 쉐이딩 스테이지(6)로부터 발행된 프래그먼트(와 관련된)의 깊이 값과 해당 샘플링 위치에 대해 깊이 버퍼(5)에 저장된 (샘플링 위치 당) 깊이 값과 비교한다. 후기 깊이 시험(7)을 통과하는 샘플링 포인트에 대한 깊이 값은 당업계에 알려진 바와 같이 갱신을 위해 Z-버퍼(5)에 적절히 기록된다.To this end, the late depth test stage 7 compares the depth value of the issued (and related) fragment from the fragment shading stage 6 with the depth value (per sampling position) stored in the depth buffer 5 for that sampling position do. The depth value for the sampling point passing through the late depth test (7) is suitably recorded in the Z-buffer (5) for updating as is known in the art.

또한, 이러한 후기 프래그먼트 깊이 및 스텐실 시험 스테이지(7)는 프래그먼트에 대해 임의의 필요한 "후기" 알파 및/또는 스텐실 시험을 수행한다.This late fragment depth and stencil test stage 7 also performs any necessary "late" alpha and / or stencil tests on the fragments.

후기 프래그먼트 시험 스테이지(7)를 통과하는 프래그먼트는 프레임 버퍼, 디서(dither) 등과의 블렌딩과 같이 프래그먼트에 필요한 임의의 나머지 동작을 받는다(도시 생략).The fragment passing through the late fragment test stage 7 is subjected to any remaining operations required for the fragment, such as blending with a frame buffer, a dither, etc. (not shown).

마지막으로, 출력 프래그먼트 데이터 값은 당업계에 공지된 바와 같이 (기본적으로 처리되고 있는 타일의 각각의 샘플링 포인트에 대해) 버퍼가 나타내는 각각의 샘플링 포인트에 대한 칼라와 같은 적절한 값을 저장하는 적절한 타일 버퍼(8)에 기록된다.Finally, the output fragment data values may be stored in a suitable tile buffer (not shown) that stores appropriate values, such as the color for each sampling point that the buffer represents (for each sampling point of the tile being basically processed) (8).

일단 각각의 타일이 처리되면, 그 데이터는 저장을 위해 예컨대, 타일 버퍼(8)로부터 메인 메모리로(도시 생략)(예, 메인 메모리 내의 프레임 버퍼로) 전해지며, 전체 렌더링 출력(예, 디스플레이될 프레임(이미지))을 생성하도록 충분한 타일이 처리될 때까지 그 다음 타일이 처리되는 등등이 이루어진다.Once each tile is processed, the data is passed from the tile buffer 8 to the main memory (not shown) (e.g., to a frame buffer in main memory) for storage, and the entire render output The next tile is processed until enough tiles have been processed to produce a frame (image), and so on.

물론, 프래그먼트 처리 파이프라인에 대한 다른 구성도 가능하다.Of course, other configurations for the fragment processing pipeline are possible.

이상의 설명은 도 1에 도시된 그래픽 처리 시스템의 기본적인 래스터화 및 렌더링 처리를 기술한다. 본 발명의 일 실시예에 따른 도 1에 도시된 그래픽 처리 시스템의 동작을 이제 설명한다.The above description describes the basic rasterization and rendering process of the graphics processing system shown in Fig. The operation of the graphics processing system shown in Fig. 1 according to an embodiment of the present invention will now be described.

본 발명에 따르면, 본 실시예는 그래픽 처리 파이프라인 내에 있는 다른 프래그먼트의 처리가 중지될 수 있는지 여부를 판정하기 위해(즉, 동일한 위치에서 새로운 프래그먼트에 의해 완전히 오버드로우되기 때문에 나중의 프래그먼트가 "킬링"될 수 있는지 여부를 판정하기 위해) 초기 계층적 깊이 시험(4)을 통과하는 패치 또는 초기 깊이 시험(13)을 통과하는 프래그먼트의 결과를 이용한다.In accordance with the present invention, this embodiment is used to determine whether the processing of another fragment in the graphics processing pipeline can be discontinued (i. E., Because a later fragment is completely overdrawn by a new fragment at the same position, Quot;) or the result of a pass through an initial depth test (4) or a pass through an initial depth test (13).

이를 위해, 도 1에 도시된 바와 같이, 초기 계층적 깊이 및 스텐실 시험 스테이지(4)와 초기 깊이 및 스텐실 시험 스테이지(13)는 프래그먼트의 패치 또는 프래그먼트 각각이 초기 디스카드 시험을 통과하면, 처리 파이프라인에서 그 다음 스테이지로 패치 또는 프래그먼트를 통과시키는 것은 물론, 해당 초기 디스카드 시험 "통과" 이벤트에 관한 정보를 파이프라인의 스테이지(도 1에서 점선 9, 10, 11, 14로 나타낸 바와 같이)로 알리도록 구성된다. To this end, as shown in FIG. 1, the initial hierarchical depth and stencil test stage 4 and the initial depth and stencil test stage 13, when each of the patches or fragments of the fragments passes the initial disparity test, (As indicated by dashed lines 9, 10, 11, and 14 in FIG. 1) of the initial dispatch test "pass" event, as well as passing the patch or fragment from the line to the next stage .

바람직한 실시예에서, 샘플링 포인트의 패치가 초기 계층적 깊이 시험(4)을 통과할 때에, 초기 계층적 깊이 및 스텐실 시험 스테이지(4)는 시험을 통과한 패치에 의해 커버되는 (x,y) 위치를 대기 행렬(12), 프레그먼트 셰이딩 스테이지(6), 레스터라이저(3), 및 초기 계층적 깊이 및 스텐실 스테이지(4) 자체(도 1에 점선(11)으로 도시되는 바와 같이)로 전송한다(9, 10, 11). 아래에서 논의되는 바와 같이, 그래픽 처리 파이프라인의 이들 스테이지는 현재 취급되고 있는 임의의 프레그먼트가 중지되는 처리를 가질 수 있는지를 평가하도록 위치 정보를 이용한다. In a preferred embodiment, when the patch of the sampling point passes the initial hierarchical depth test (4), the initial hierarchical depth and stencil test stage (4) are located at the (x, y) To the queue 12, the fragment shading stage 6, the rasterizer 3, and the initial hierarchical depth and stencil stage 4 itself (as shown by dotted line 11 in Figure 1) (9, 10, 11). As discussed below, these stages of the graphics processing pipeline utilize the location information to assess whether any fragments currently being handled can have processing to be suspended.

초기 계층적 깊이 시험 통과 이벤트는 본 실시예에서 계층적 깊이 및 스텐실 스테이지(4) 및 레스터라이저(3)로 전송되는데, 그 이유는 레스터라이저(3)와 초기 계층적 깊이 및 스텐실 시험 스테이지(4)가 위에서 논의된 바와 같이 반복적인 방식으로 작동하여, 이미 발생되었고 나중의, 예컨대 샘플링 위치의 패치가 오버드로우하도록 계층적 깊이 및 스텐실 시험 스테이지(4)에 의해 결정되면 그 처리가 생략될 수 있는 격자화 및 초기 계층적 깊이 및 스텐실 시험 프로세스를 여전히 받는 샘플링 포인트의 패치가 존재할 수 있기 때문이다. The initial hierarchical depth test pass event is sent to the hierarchical depth and stencil stage 4 and the rasterizer 3 in this embodiment because the rasterizer 3 and the initial hierarchical depth and stencil test stages 4 Is operated in an iterative manner as discussed above, so that if the hierarchical depth and stencil test stage 4 are determined to have already generated and later over-written, such as a patch at the sampling location, overdraw, There may still be patches of sampling points that are still subjected to gridding and initial hierarchical depth and stencil testing processes.

물론, 초기 계층적 깊이 시험 이벤트를 그래픽 처리 파이프라인의 다른 스테이지로 전송하면, 초기 계층적 깊이(Z) 및 스텐실 시험 스테이지(4)는 또한 초기 계층적 깊이 시험을 통과한 샘플링 포인트의 패치를 위한 관련 깊이 값 범위 및/또는 스텐실 값을 이용하여 깊이 및 스텐실 버퍼(5)를 업데이트하도록 구성된다. 이는 버퍼가 예컨대 초기 계층적 깊이 및 스텐실 시험(4)을 받은(그리고 통과한) 패치의 깊이 값 범위의 날짜까지의 기록을 수용하게 함으로써, 초기 계층적 깊이 및 스텐실 시험을 더 효율적으로 만든다. Of course, when transmitting the initial hierarchical depth test event to another stage of the graphics processing pipeline, the initial hierarchical depth (Z) and stencil test stage 4 may also be used for patching the sampling points that have passed the initial hierarchical depth test And to update the depth and stencil buffer 5 using an associated depth value range and / or stencil value. This makes the initial hierarchical depth and stencil tests more efficient, for example, by allowing the buffer to record up to the date of the depth value range of the patches that have undergone (and passed) the initial hierarchical depth and stencil test (4).

이 깊이 버퍼 등의 업데이트는 적절하게 보수적인 방식으로 수행되어, 패치 등의 처리에서 업데이트가 에러를 유발할 수 있는 임의의 위험을 회피한다. This update of the depth buffer or the like is performed in an appropriately conservative manner, avoiding any risk that the update in the processing of the patch or the like may cause an error.

이에 따라, 본 실시예에서, 프레그먼트가 초기 깊이 시험(13)을 통과할 때에, 초기 깊이 및 스텐실 시험 스테이지(13)는 시험을 통과한 프레그먼트에 의해 커버되는 (x,y) 위치를 대기 행렬(12) 및 프레그먼트 셰이딩 스테이지(6)(도 1에 점선(14)로 도시되는 바와 같이)로 전송한다. 아래에서 논의되는 바와 같이, 그래픽 처리 파이프라인의 이들 스테이지는 다시 현재 취급되고 있는 임의의 프레그먼트가 중지되는 처리를 가질 수 있는지를 평가하도록 위치 정보를 이용한다. Thus, in this embodiment, when the fragments pass the initial depth test 13, the initial depth and stencil test stage 13 are positioned at (x, y) positions covered by the fragments passed through the test To the queue 12 and the fragment shading stage 6 (as shown by dotted line 14 in FIG. 1). As discussed below, these stages of the graphics processing pipeline again utilize the location information to assess whether any of the fragments currently being handled can have processing to be aborted.

다시, 물론 초기 깊이 시험 통과 이벤트를 그래픽 처리 파이프라인의 다른 스테이지로 전송하면, 초기 깊이(Z) 및 스텐실 시험 스테이지(13)는 초기 깊이 시험을 통과한 프레그먼트와 관련된 샘플링 포인트에 대한 관련 깊이 값 및/또는 스텐실 값을 이용하여 깊이 및 스텐실 버퍼(5)를 업데이트하도록 구성된다. 이는 버퍼가 예컨대 초기 깊이 및 스텐실 시험(13)을 받은(그리고 통과한) 샘플링 포인트의 깊이 값 범위의 날짜까지의 기록을 수용하게 함으로써, 초기 및 늦은 깊이 및 스텐실 시험을 더 효율적으로 만든다. Again, of course, if the initial depth test pass event is transmitted to another stage of the graphics processing pipeline, the initial depth Z and stencil test stage 13 will have an associated depth for the sampling point associated with the fragment that passed the initial depth test Value and / or stencil values to update the depth and stencil buffer 5. This makes the initial and late depth and stencil tests more efficient, for example, by allowing the buffer to record up to the date of the depth value range of the sampling point that has undergone (and passed) the initial depth and stencil test 13 (and passed).

발췌 시험 "통과" 이벤트의 방송 및 깊이 버퍼 등의 갱신은 본 실시예에서 초기 계층적 깊이 시험(4)과 초기 깊이 시험(13)을 통과하는 모든 패치 및 프래그먼트에 대해 수행되지 않지만, 소정의 기준을 만족하는 패치 및 프래그먼트에 대해서만 수행된다. 이것은 나중의 프래그먼트가 초기 깊이 시험을 통과하는 경우 파이프라인 내의 프래그먼트를 잘못으로 디스카드하는 것을 방지하기 위함이다.Broadcasting of the excerpt test "Pass" event and updating of the depth buffer and the like are not performed for all patches and fragments passing through the initial hierarchical depth test 4 and the initial depth test 13 in this embodiment, Lt; RTI ID = 0.0 > Fragment < / RTI > This is to prevent accidental dispatching of fragments in the pipeline if later fragments pass the initial depth test.

본 실시예는 초기 깊이 시험 "통과" 이벤트가 파이프라인으로 전달되어야 하는지 여부를 결정하기 위해 초기 계층적 깊이 및 스텐실 시험 유닛(4)과 초기 깊이 및 스텐실 시험 유닛(13) 내에 "자동 감지" 구성을 사용한다.This embodiment includes an "auto-sensing" configuration within the initial hierarchical depth and stencil test unit 4 and the initial depth and stencil test unit 13 to determine whether an initial depth test ≪ / RTI >

이러한 자동 감지 구성은 초기 깊이 "통과" 이벤트를 브로드캐스팅(전달)하기 위해 다음의 요건을 갖는다: 새로운 패치 또는 프래그먼트는 초기 z/s 시험을 통과했어야 하고(그리고 후기 z/s 시험이 아닌 초기 z/s 시험에 의해 처리됨); 새로운 패치 또는 프래그먼트는 이전의 rgba 값에 의존하지 않고 풀 rgb 기록 마스크(z/스텐실은 이미 기록됨)와 블렌드 기능을 가져야 하며; 새로운 패치 또는 프래그먼트에 대한 쉐이더는 타일버퍼로부터 판독될 수 없고, 새로운 패치 또는 프래그먼트는 강제된 후기 z 갱신을 갖지 않아야 한다.This automatic detection configuration has the following requirements to broadcast (propagate) the initial depth "pass" event: the new patch or fragment must have passed the initial z / s test (and the initial z / / s < / RTI >test); The new patch or fragment must have a blend function with the full rgb write mask (z / stencil already recorded), not depending on the previous rgba value; The shader for a new patch or fragment can not be read from the tile buffer, and the new patch or fragment must not have a forced late update.

본 실시예는 초기 계층적 깊이 시험(4) 또는 초기 깊이 시험(13)을 통과하는 패치 또는 프래그먼트와 관련하여 초기 깊이 시험 통과 이벤트 정보의 전달을 시발하기 위해 "자동-감지" 구성을 사용하지만, 본 실시예는 이에 대한 대비 구성으로서 상태 비트를 또한 사용할 수 있다. 상태 비트는 "자동-감지" 구성을 끄고 대신에 추가의 (예, 디스카드 시험 통과 이벤트 "인에이블") 상태 비트의 세팅(세팅의 유무)에 의해 시발되는 초기 디스카드 시험 통과 이벤트 정보 브로드캐스팅을 갖도록 설정될 수 있다. 이것은 예컨대, 디스카드 시험 통과 이벤트 동작이 (적절한 상태 비트의 설정에 의해) 수행되는 것의 여부를 설정하기 위해 어플리케이션 프로그래머가 허용되게 할 수 있다.This embodiment uses a "auto-sensing" configuration to trigger the delivery of the initial depth test pass event information with respect to patches or fragments passing through the initial hierarchical depth test (4) or the initial depth test (13) The present embodiment can also use the status bit as a contrasting configuration. The status bits are used to turn off the " auto-detect "configuration and instead to initial dispatch test pass event information initiated by setting (with or without setting) additional (e.g., . ≪ / RTI > This may allow the application programmer, for example, to set whether a dispatch test pass event operation is to be performed (by setting the appropriate status bits).

초기 계층적 깊이 및 스텐실 시험 스테이지(4)와 초기 깊이 및 스텐실 시험 스테이지(3)는 디스카드 시험을 수행하고, 시험이 통과되고 패치 또는 프래그먼트가 필요 기준을 만족하면, 이와 관련된 통과 이벤트와 필요한 위치 정보를 그래픽 파이프라인의 적절한 스테이지로 "브로드캐스팅"하거나 예컨대, 깊이 버퍼(들) 내의 깊이 정보를 갱신하는 등의 디스카드 시험을 수행하도록 작동적일 수 있는 조합된 시험 및 갱신 로직을 포함한다.The initial hierarchical depth and stencil test stage (4) and initial depth and stencil test stage (3) perform disparate testing and, if the test passes and the patch or fragment meets the required criteria, Includes combined test and update logic that may be operative to perform dispatch testing such as "broadcasting" information to the appropriate stage of the graphics pipeline or updating depth information in, for example, the depth buffer (s).

초기 계층적 깊이 및 스텐실 시험 스테이지(4)와 초기 깊이 및 스텐실 시험 스테이지(13)에 의해 브로드캐시팅되는 초기 깊이 시험 "통과" 위치 정보에 응답하여, 정보를 받은 처리 파이프라인의 스테이지는 그 정보를 이용하여 현재 요구를 담고 있는 임의의 프래그먼트가 초기 디스카드 시험 "통과" 이벤트의 결과로서 더 이상 처리되지 않는지 여부를 결정한다. 이 처리는 현재 파이프라인 스테이지를 점유하는 프래그먼트 전체의 (x, y) 위치를 초기 계층적 깊이 및 스텐실 시험 스테이지(4) 또는 초기 깊이 및 스텐실 시험 스테이지(13)에 의해 전달된 초기 발췌 시험을 통과한 프래그먼트(들) 및/또는 패치의 (x, y) 위치(들)(실제로 초기 깊이 및 스텐실 시험을 통과한 패치 또는 프래그먼트에 의해 차단되는 현재 스테이지 내에 있는 임의의 프래그먼트를 식별함)과 비교하는 것에 의해 수행된다.In response to the initial depth depth & stencil test stage 4 and the initial depth test "pass" position information that is broadcached by the initial depth and stencil test stage 13, the stage of the information processing pipeline, To determine whether any fragments containing the current request are no longer being processed as a result of the initial discrete test "pass" event. This process passes the (x, y) position of the entire fragment occupying the current pipeline stage to the initial hierarchical depth and the initial excerpt test passed by the stencil test stage 4 or the initial depth and stencil test stage 13 (S) and / or (x, y) position (s) of the patch (identifying the actual depth and any fragments within the current stage that are blocked by a patch or fragment that has passed the stencil test) ≪ / RTI >

초기 발췌 시험을 통과한 패치 또는 프래그먼트(들)와 동일한 (x, y) 위치를 갖는 임의의 현재 프래그먼트의 처리는 이후 중단되고, 또한 만족되는 프래그먼트의 처리를 중단하기 위한 소정의 다른 기준에 맞춰진다. 특히, 잠재적으로 디스카드될(즉, 차단되는) 파이프라인 내의 프래그먼트가 예컨대, 미해결된 차단 질의와 관련되어 여전히 요구되는 사이드 효과(side effect)를 갖기 때문과 같은 임의의 다른 이유로 여전히 처리되어야 하는지 여부도 확인된다. 차단되는 프래그먼트가 그것에 첨부된 여전히 활성인 차단 질의를 가지고 있지 않으면(그리고 다른 필요 사이드 효과가 없으면), 해당 프래그먼트는 버려지지만(그 처리가 중단됨) 그것에 첨부되는 활성인 차단 질의(또는 소정의 다른 여전히 필요한 사이드 효과)을 가지고 있으면, 버려지지 않는다(즉, 처리가 계속됨). 이러한 확인은 해당 그래픽 처리 파이프라인의 스테이지에 의해 수행된다.Processing of any current fragment having the same (x, y) position as the patch or fragment (s) that passed the initial excerpt test is then paused and is also adapted to some other criteria for stopping the processing of the satisfied fragment . In particular, whether a fragment in a pipeline that is potentially to be discarded (i.e., blocked) should still be processed for some other reason, such as having a side effect that is still required in association with an outstanding block query . If the fragment being blocked does not have a blocking query that is still active attached to it (and there is no other required side effect), the fragment is discarded (its processing is aborted), but the active blocking query (or any other still Side effects required), they are not discarded (i.e., processing continues). This confirmation is performed by the stage of the graphics processing pipeline.

추가의 처리로부터 프래그먼트가 잘못 버려질 위험을 줄이기 위해 초기 디스카드 시험 "통과" 이벤트의 경우 더 이상 처리되지 않는 것이 필요한 프래그먼트의 결정은 적절하게 보수적인 방식으로 수행된다.In order to reduce the risk of fragments being erroneously discarded from further processing, the determination of fragments that are no longer to be processed in the event of an initial disparate test "pass" event is performed in a suitably conservative manner.

그래픽 처리 파이프라인의 스테이지 각각은 스테이지 내의 프래그먼트 전부를 동시에 시험한다. 이것은 파이프라인 스테이지가 초기 디스카드 시험 통과 이벤트가 잠재적인 디스카드 가능성을 발생시킬 수 있는 것과 같은 비율로 프래그먼트를 버릴 수 있게 한다.Each stage of the graphics processing pipeline tests all of the fragments in the stage simultaneously. This allows the pipeline stage to discard fragments at a rate such that the initial dispatch test pass event can cause a potential dispatch possibility.

후기 처리 스테이지 내의 프래그먼트는 그렇게 식별되는 프래그먼트를 "죽이는(killed)"(무효화) 것에 의해 자체의 처리를 중단하게 한다. 이를 용이하게 하기 위해, 각각의 프래그먼트는 이와 관련된 "킬드(killed)" 비트(예, 관련 프래그먼트 데이터의 일부로서)를 가지며, 킬드 비트는 설정시 프래그먼트가 처리될 필요가 없음(그리고 버려질 수 있음)을 지시한다. 파이프라인 처리 스테이지는 이들이 처리를 위해 수신하는 각각의 플래그먼트의 킬드 비트를 확인하도록(이후 그에 따라서 프래그먼트를 처리 또는 처리하지 않는다) 구성된다.A fragment in a post processing stage causes its processing to be aborted by " killing "(invalidating) the fragment so identified. To facilitate this, each fragment has its associated "killed" bit (e.g., as part of the associated fragment data), the kill bit does not need to be processed (and can be discarded) ). The pipeline processing stage is configured to identify the kill bits of each fragment they receive for processing (and thereafter do not process or process fragments accordingly).

프래그먼트의 무효 태그가 설정되면 함께 사용될 수 있도록 질의(캐시) 라인을 릴리즈하는 캐시와 같이 작동하는 유효 태그를 갖는 프래그먼트 질의를 갖는 것과 같은 대안적인 구성이 원하는 경우 대신에 또는 함께 사용될 수 있다.Alternative configurations, such as having a fragment query with a valid tag that works like a cache releasing a query (cache) line for use with a fragment's invalid tag, may be used instead or together if desired.

초기 디스카드 시험 통과 이벤트가 전달되는 그래픽 처리 파이프라인의 각각의 스테이지는 그 로컬 도메인(즉, 스테이지 또는 해당 처리 스테이지의 일부의 범위 내의) 내의 모든 프래그먼트에 대해 책임있는 대응하는 에이전트를 가진다. 각각의 에이전트는 그 로컬 도메인에 프래그먼트 관련 정보를 유지하고, 해당 에이전트가 수신하는 초기 디스카드 시험 통과 이벤트에 응답하여 프래그먼트의 불필요한 처리를 피하거나 및/또는 중단시키기 위해 프래그먼트를 킬드(무효)로 마킹하도록 동작 가능하다. 에이전트는 그 로컬 도메인에 프래그먼트 모두를 동시에 시험할 수 있도록 구성된다.Each stage of the graphics processing pipeline to which the initial dispatch test pass event is delivered has a corresponding agent responsible for all fragments in its local domain (i.e., within the scope of the stage or part of the processing stage). Each agent maintains fragment related information in its local domain and marks the fragment as invalid in order to avoid and / or stop unnecessary processing of fragments in response to the initial dispatch test pass event received by the agent Lt; / RTI > The agent is configured to simultaneously test all of the fragments in its local domain.

도 1에 도시된 바와 같이, 본 실시예에 있어서는, 그래픽 처리 파이프라인은, 그래픽 처리 파이프라인의 프래그먼트 쉐이더(6)의 앞에 위치된 프래그먼트가 통과해야 하는 큐(12)를 포함한다. 큐(12)는 프래그먼트의 하나의 전체 타일 사이즈 세트를 유지할 수 있도록 구성되어 있지만, 다른 배치도 물론 가능하다. As shown in FIG. 1, in this embodiment, the graphics processing pipeline includes a queue 12 through which fragments located in front of the fragment shader 6 of the graphics processing pipeline must pass. The queue 12 is configured to be able to maintain one full set of tile sizes of fragments, but other arrangements are of course possible.

큐(12)는, 어얼리 컬링 시험 스테이지의 후에(즉, 계급에 따른 깊이 및 스텐실 테스터(4)와 어얼리 깊이 및 스텐실 테스터(13)의 후에), 파이프라인에 있을 수 있는 프래그먼트의 수를 증가시키는 효과를 갖고, 이에 의해 본 발명의 방식으로 동작될 수 있는 프래그먼트의 수를 증가시킨다. 큐(12)의 사용은, 궁극적으로 가시적인 프래그먼트만이 큐(12) 후에 오는 프래그먼트 쉐이딩 스테이지(6)에 이르는 (그리고, 그에 의해 처리되는) 가능성을 현저하게 증가시킬 수 있다. 이것은, 프래그먼트 쉐이딩이 통상적으로 프래그먼트당 비교적 고가의 프로세스이므로 이점을 가지며, 이에 따라, 프래그먼트 쉐이더에 들어가는 프래그먼트의 수가 적을수록, 더욱 바람직하다. The cue 12 is used to determine the number of fragments that may be present in the pipeline after the earliesting test stage (i.e., the depth according to the rank and the stencil tester 4 and the early depth and the stencil tester 13) , Thereby increasing the number of fragments that can be operated in the manner of the present invention. The use of the queue 12 can significantly increase the likelihood that only ultimately visible fragments will reach (and thus be processed by) the fragment shading stage 6 that comes after the queue 12. This is advantageous because fragment shading is typically a relatively expensive process per fragment and, consequently, the smaller the number of fragments entering the fragment shader, the more desirable.

큐(12)에 들어가는 프래그먼트는 동일한 순서로 큐를 나가지만, "킬드" 프래그먼트는 큐를 나갈 때 리소스의 프링(freeing)을 트리거한다. The fragments entering the queue 12 exit the queue in the same order, while the "kill" fragment triggers the freeing of resources when leaving the queue.

상기로부터 본 발명은 바람직한 실시예에서 적어도 파이프라인 그래픽 처리시스템 내에서 일어날 수 있는 히든 표면의 (궁극적으로는 불필요한) 처리량을 추가로 감소시키기 위한 메커니즘을 제공함을 알 수 있다. 더욱이, 본 발명의 구성은 렌더링 순서가 전통적인 렌더링 파이프라인에 대해 최적일 때(따라서, 최적의 렌더링 순서로서 기존의 렌더링 파이프라인 구성에 비해 최소 비용을 제공함) 개입하지 않을 것이지만, 렌더링 순서가 비-최적화 상태일 때 실시되도록 구성되며, 이 경우, 적어도 본 발명의 바람직한 실시예에서 예비 렌더링 당 샘플 또는 프래그먼트 당 분류 처리에서처럼 히든 표면 제거에 효율적일 수 있는 포인트로 뒤집어진 프래그먼트와 히든 표면을 제거할 수 있다. 렌더링될 내용이 분류 알고리즘이 분류에 최적인 방식을 쉽게 감지할 수 없도록 된 경우(예, 프리미티브가 교차되거나 중첩하는 깊이 범위를 갖는 경우), 이것을 분류보다 더 효율적으로 행할 수 있다.From the above it can be seen that the present invention provides a mechanism for further reducing the (ultimately unnecessary) throughput of the hidden surface that can occur in the pipeline graphics processing system, at least in the preferred embodiment. Moreover, the arrangement of the present invention will not intervene when the rendering order is optimal for a traditional rendering pipeline (thus providing a minimal cost compared to an existing rendering pipeline configuration as an optimal rendering order) Optimized state, in which case at least in the preferred embodiment of the present invention, the inverted fragments and hidden surfaces can be removed at points that may be efficient for hidden surface removal, such as in the per-sample per rendering or fractional processing per fragment . If the content to be rendered is such that the classification algorithm is not able to easily detect the best approach to classification (eg, primitives have intersecting or overlapping depth ranges), this can be done more efficiently than classification.

본 발명의 기법은 사용되는 다중 샘플링된 앤티-얼라이어싱(anti-aliasing)의 레벨에 무관하므로 고차 다중 샘플링된 앤티 얼라이어싱을 매우 저가로 사용할 수 있다.The technique of the present invention is independent of the level of multi-sampled anti-aliasing used, so that higher order multi-sampled anti-aliasing can be used at very low cost.

Claims (20)

처리될 그래픽 프래그먼트를 발생시키도록 입력 프리미티브(input primitive)를 레스터화하는 레스터화기(reasteriser)와, 출력 프래그먼트 데이터를 발생시키도록 상기 레스터화기에 의해 발생되는 프래그먼트를 처리하는 렌더러(renderer)를 포함하는 복수 개의 처리 스테이지를 포함하고, 각 그래픽 프래그먼트는 관련된 하나 이상의 샘플링 포인트를 갖는, 그래픽 처리 파이프라인을 작동시키는 방법으로서, 상기 방법은,
프래그먼트가 처리를 위해 렌더러로 전송되기 전에 레스터화기에 의해 발생된 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 관하여 초기 발췌 시험을 수행하는 단계; 및
적어도 하나의 샘플링 포인트가 초기 발췌 시험을 통과하면, 프래그먼트를 처리를 위해 전방으로 전송하고, 그래픽 처리 파이프라인 내에 있는 다른 샘플링 포인트의 처리가 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트의 결과로서 중지될 수 있는지를 결정하는 단계를 포함하는, 그래픽 처리 파이프라인의 작동 방법.
A renderer that processes a fragment generated by the rasterizer to generate output fragment data, and a renderer that processes the fragment generated by the rasterizer to generate output fragment data. CLAIMS What is claimed is: 1. A method of operating a graphics processing pipeline comprising a plurality of processing stages, each graphic fragment having one or more sampling points associated therewith,
Performing an initial excerpt test on at least one sampling point associated with a fragment generated by the rasterizer before the fragment is sent to the renderer for processing; And
If at least one sampling point passes the initial excerpt test then the fragment is forwarded for processing and processing of other sampling points in the graphics processing pipeline is suspended as a result of at least one sampling point that has passed the initial excerpt test Determining whether the graphics processing pipeline can be executed.
제1항에 있어서,
단일의 샘플링 포인트 및 복수 개의 프래그먼트의 패치 모두에 관하여 초기 발췌 시험을 수행하는 단계를 포함하는, 그래픽 처리 파이프라인의 작동 방법.
The method according to claim 1,
And performing an initial excerpt test on both a single sampling point and a patch of a plurality of fragments.
제1항에 있어서,
프리미티브들의 세트를 렌더링하기에 앞서, 프리미티브들의 세트를 위한 샘플링 위치들의 세트의 예상되는 깊이 값의 범위를 저장하는 단계를 더 포함하는, 그래픽 처리 파이프라인의 작동 방법.
The method according to claim 1,
Further comprising storing a range of expected depth values of a set of sampling positions for a set of primitives prior to rendering the set of primitives.
제1항 내지 제3항 중 어느 한 항에 있어서,
그래픽 처리 파이프라인 내에 있는 다른 샘플링 포인트의 처리가 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트의 결과로서 중지될 수 있는지를 결정하는 단계는, 파이프라인 스테이지를 현재 차지하고 있는 샘플링 포인트 및/또는 프래그먼트의 위치를 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트의 위치와 비교하는 단계를 포함하는, 그래픽 처리 파이프라인의 작동 방법.
4. The method according to any one of claims 1 to 3,
Determining whether the processing of another sampling point in the graphics processing pipeline can be suspended as a result of at least one sampling point that has passed the initial sampling test may include determining whether the sampling point and / Comparing the position to a position of at least one sampling point that has passed the initial excerpt test.
제1항 내지 제3항 중 어느 한 항에 있어서,
그래픽 처리 파이프라인 내에 있는 다른 샘플링 포인트의 처리가 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트의 결과로서 중지될 수 있는지를 결정하는 단계는, 그 처리를 중지하기 전에 다른 샘플링 포인트가 여전히 정상적인 처리되어야 하는지를 알도록 다른 샘플링 포인트의 다른 특성을 점검하는 단계를 더 포함하는, 그래픽 처리 파이프라인의 작동 방법.
4. The method according to any one of claims 1 to 3,
The step of determining whether the processing of another sampling point in the graphics processing pipeline can be suspended as a result of at least one sampling point that has passed the initial extractive test further comprises determining if another sampling point is still to be processed normally And checking other properties of the other sampling points to know if the sampling points are different.
제1항 내지 제3항 중 어느 한 항에 있어서,
프래그먼트와 관련된 적어도 하나의 샘플링 포인트가 초기 발췌 시험을 통과하면, 시험을 통과한 샘플링 포인트 또는 프래그먼트의 위치를 그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지로 전송하는 단계를 더 포함하고,
그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지는 현재 처리하고 있는 임의의 샘플링 포인트 또는 프래그먼트가 중지되는 처리를 가질 수 있는지를 평가하도록 방송 위치 정보를 이용하는, 그래픽 처리 파이프라인의 작동 방법.
4. The method according to any one of claims 1 to 3,
If the at least one sampling point associated with the fragment passes the initial excerpt test, transmitting the location of the sampling point or fragment past the test to at least one processing stage of the graphics processing pipeline,
Wherein at least one processing stage of the graphics processing pipeline utilizes broadcast location information to evaluate whether any of the sampling points or fragments that are currently processing can have processing to be suspended.
제1항 내지 제3항 중 어느 한 항에 있어서,
프래그먼트가 처리를 위해 렌더러로 전송되기 전에 레스터화기에 의해 발생된 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 관하여 초기 발췌 시험을 수행하는 단계; 및
적어도 하나의 샘플링 포인트가 초기 발췌 시험을 통과하면, 프래그먼트를 처리를 위해 전방으로 전송하고, 그래픽 처리 파이프라인 내에 있는 다른 샘플링 포인트의 처리가 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트의 결과로서 중지될 수 있는지를 결정하는 단계는,
프래그먼트가 처리를 위해 파이프라인을 통해 전방으로 전송되기 전에 레스터화기에 의해 발생된 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 대해 초기 깊이 시험을 수행하고, 및/또는 적어도 하나의 프래그먼트가 처리를 위해 파이프라인을 통해 전방으로 전송되기 전에 레스터화기에 의해 발생된 적어도 하나의 프래그먼트에 대해 초기 깊이 시험을 수행하는 단계;
적어도 하나의 샘플링 포인트 또는 적어도 하나의 프래그먼트가 초기 깊이 시험을 통과하면, 프래그먼트 또는 적어도 하나의 프래그먼트를 처리를 위해 전방으로 전송하고 초기 깊이 시험을 통과한 적어도 하나의 샘플링 포인트 또는 적어도 하나의 프래그먼트의 위치에 관한 정보를 그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지로 전송하는 단계를 포함하고,
그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지는 초기 깊이 시험을 통과한 적어도 하나의 샘플링 포인트 또는 적어도 하나의 프래그먼트와 관련된 방송 정보 위치를 이용하여, 현재 스테이지에 있는 임의의 샘플링 포인트 또는 프래그먼트가 초기 깊이 시험을 통과한 적어도 하나의 샘플링 포인트 또는 적어도 하나의 프래그먼트와 동일한 위치를 차지하는지를 결정하고, 임의의 그러한 샘플링 포인트 또는 프래그먼트가 존재하면, 초기 깊이 시험을 통과한 적어도 하나의 샘플링 포인트 또는 적어도 하나의 프래그먼트와 동일한 위치를 차지하는 샘플링 포인트 또는 프래그먼트의 추가 처리를 선택적으로 중지시키는, 그래픽 처리 파이프라인의 작동 방법.
4. The method according to any one of claims 1 to 3,
Performing an initial excerpt test on at least one sampling point associated with a fragment generated by the rasterizer before the fragment is sent to the renderer for processing; And
If at least one sampling point passes the initial excerpt test then the fragment is forwarded for processing and processing of other sampling points in the graphics processing pipeline is suspended as a result of at least one sampling point that has passed the initial excerpt test The step of determining,
Performing an initial depth test on at least one sampling point associated with a fragment generated by the rasterizer before the fragment is forward transmitted through the pipeline for processing, and / or performing at least one fragment on the pipeline Performing an initial depth test on at least one fragment generated by the rasterizer before being forward transmitted through the rasterizer;
If at least one sampling point or at least one fragment passes the initial depth test, the fragment or at least one fragment is forward transmitted for processing and the at least one sampling point or at least one fragment To at least one processing stage of the graphics processing pipeline,
The at least one processing stage of the graphics processing pipeline uses at least one sampling point that has passed the initial depth test or a broadcast information location associated with the at least one fragment so that any sampling points or fragments in the current stage At least one sampling point or at least one fragment that has passed the initial depth test if there is any such sampling point or fragment, and at least one sampling point or at least one fragment that has passed the initial depth test Thereby selectively stopping further processing of sampling points or fragments occupying the same position.
제6항에 있어서,
초기 발췌 시험 통과 이벤트 정보는 초기 발췌 시험, 레스터화기 및 그래픽 처리 파이프라인의 렌더러 중 하나 이상으로 전송되는, 그래픽 처리 파이프라인의 작동 방법.
The method according to claim 6,
An initial excerpt pass event information is sent to one or more of an initial excerpt, a rasterizer, and a renderer of a graphics processing pipeline.
제1항 내지 제3항 중 어느 한 항에 있어서,
초기 발췌 시험이 적어도 하나의 샘플링 포인트에 의해 통과되면, 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트에 관한 임의의 관련 데이터 값을 갖는 초기 발췌 시험에 관한 데이터를 수용하는 데이터 버퍼를 업데이트하는 단계를 더 포함하는, 그래픽 처리 파이프라인의 작동 방법.
4. The method according to any one of claims 1 to 3,
If the initial excerpt test is passed by at least one sampling point, updating the data buffer to accept data relating to the initial excerpt test having any relevant data value for at least one sampling point that has passed the initial excerpt test ≪ / RTI > further comprising:
그래픽 처리 파이프라인으로서,
처리될 그래픽 프래그먼트를 발생시키도록 입력 프리미티브를 레스터화하는 레스터화기와, 출력 프래그먼트 데이터를 발생시키도록 상기 레스터화기에 의해 발생되는 프래그먼트를 처리하는 렌더러와, 프래그먼트가 처리를 위해 렌더러로 전송되기 전에 레스터화기에 의해 발생된 프래그먼트와 관련된 샘플링 포인트에 관하여 초기 발췌 시험을 수행하는 초기 발췌 시험 스테이지를 포함하는 복수 개의 처리 스테이지를 포함하고, 각 그래픽 프래그먼트는 관련된 하나 이상의 샘플링 포인트를 가지며, 그래픽 처리 파이프라인은,
초기 발췌 시험을 통과한 레스터화기에 의해 발생된 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 응답하여, 프래그먼트를 처리를 위해 전방으로 전송하고, 그래픽 처리 파이프라인 내에 있는 다른 샘플링 포인트의 처리가 초기 발췌 시험을 통과하는 적어도 하나의 샘플링 포인트의 결과로서 중지될 수 있는지를 결정하도록 구성되는, 그래픽 처리 파이프라인.
As a graphics processing pipeline,
A renderer for rasterizing input primitives to generate a graphics fragment to be processed; a renderer for processing the fragments generated by the rasterizer to generate output fragment data; and a rasterizer for processing the fragments before the fragments are transmitted to the renderer for processing. Wherein the graphics processing pipeline includes a plurality of processing stages including an initial test run stage that performs an initial test run with respect to a sampling point associated with a fragment generated by the firearm, each graphic fragment having associated one or more sampling points, ,
In response to at least one sampling point associated with a fragment generated by the rasterizer that has passed the initial extractive test, forward the fragment for processing, and processing of other sampling points within the graphics processing pipeline may be used to perform an initial excerpt test And to determine if it can be stopped as a result of at least one sampling point passing through the graphical processing pipeline.
제10항에 있어서,
레스터화기에 의해 발생된 복수 개의 프래그먼트의 패치에 관하여 초기 발췌 시험을 수행하는 초기 발췌 시험 스테이지; 및
레스터화기에 의해 발생된 프래그먼트와 관련된 단일의 샘플링 포인트에 관하여 초기 발췌 시험을 수행하는, 그래픽 처리 파이프라인.
11. The method of claim 10,
An initial excerpt test stage for performing an initial excerpt test on a patch of a plurality of fragments generated by the rasterizer; And
And performs an initial excerpt test on a single sampling point associated with a fragment generated by the rasterizer.
제10항에 있어서,
그래픽 처리 파이프라인은 또한 프리미티브 세트를 렌더링하기에 앞서 프리미티브 세트를 위한 샘플링 위치의 세트에 대해 예상되는 깊이 값의 범위를 저장하도록 구성되는, 그래픽 처리 파이프라인.
11. The method of claim 10,
Wherein the graphics processing pipeline is further configured to store a range of expected depth values for the set of sampling locations for the primitive set prior to rendering the primitive set.
제10항 내지 제12항 중 어느 한 항에 있어서,
그래픽 처리 파이프라인은, 파이프라인 스테이지를 현재 차지하고 있는 샘플링 포인트 및/또는 프래그먼트의 위치를 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트의 위치와 비교함으로써, 그래픽 처리 파이프라인 내에 있는 다른 샘플링 포인트의 처리가 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트의 결과로서 중지될 수 있는지를 결정하도록 구성되는, 그래픽 처리 파이프라인.
13. The method according to any one of claims 10 to 12,
The graphics processing pipeline may be configured to process other sampling points within the graphics processing pipeline by comparing the location of the sampling points and / or fragments currently occupying the pipeline stage with the locations of at least one sampling point that has passed the initial sampling test Is capable of being discontinued as a result of at least one sampling point that has passed the initial excerpt test.
제10항 내지 제12항 중 어느 한 항에 있어서,
그래픽 처리 파이프라인은, 그 처리를 중지하기 전에 다른 샘플링 포인트가 여전히 처리되어야 하는지를 알도록 다른 샘플링 포인트의 다른 특성을 점검하도록 구성되는, 그래픽 처리 파이프라인.
13. The method according to any one of claims 10 to 12,
Wherein the graphics processing pipeline is configured to check other properties of the other sampling points to know if another sampling point should still be processed before stopping the processing.
제10항 내지 제12항 중 어느 한 항에 있어서,
그래픽 처리 파이프라인은,
프래그먼트에 관련한 적어도 하나의 샘플링 포인트가 초기 발췌 시험을 통과하면, 시험을 통과한 샘플링 포인트 또는 프래그먼트의 위치를 그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지로 전송하도록 구성되고,
그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지는 현재 처리하고 있는 임의의 샘플링 포인트 또는 프래그먼트가 중지되는 처리를 가질 수 있는지를 평가하도록 방송 위치 정보를 이용하도록 구성되는, 그래픽 처리 파이프라인.
13. The method according to any one of claims 10 to 12,
The graphics processing pipeline,
If the at least one sampling point associated with the fragment passes the initial excerpt test, sending the location of the sampling point or fragment past the test to at least one processing stage of the graphics processing pipeline,
Wherein the at least one processing stage of the graphics processing pipeline is configured to use broadcast location information to assess whether any sampling points or fragments that are currently processing can have processing to be suspended.
제10항 내지 제12항 중 어느 한 항에 있어서,
초기 발췌 시험 스테이지는 프래그먼트가 처리를 위해 렌더러로 전송되기 전에 레스터화기에 의해 발생된 프래그먼트와 관련된 샘플링 포인트에 관하여 초기 깊이 시험을 수행하고,
그래픽 처리 파이프라인은,
초기 깊이 시험을 통과하는 레스터화기에 의해 발생되는 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 응답하여, 프래그먼트를 처리를 위해 전방으로 전송하고 초기 깊이 시험을 통과한 적어도 하나의 샘플링 포인트의 위치에 관한 정보를 그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지로 전송하도록 구성되며,
그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지는 초기 깊이 시험을 통과한 적어도 하나의 샘플링 포인트와 관련된 방송 위치 정보를 이용하여, 현재 스테이지에 있는 임의의 샘플링 포인트가 초기 깊이 시험을 통과한 적어도 하나의 샘플링 포인트와 동일한 위치를 차지하는지를 결정하고, 임의의 그러한 샘플링 포인트가 존재하면, 초기 깊이 시험을 통과한 적어도 하나의 샘플링 포인트와 동일한 위치를 차지하는 샘플링 포인트의 추가 처리를 선택적으로 중지하도록 구성되는, 그래픽 처리 파이프라인.
13. The method according to any one of claims 10 to 12,
The initial excerpt test stage performs an initial depth test on the sampling points associated with the fragments generated by the rasterizer before the fragments are sent to the renderer for processing,
The graphics processing pipeline,
In response to at least one sampling point associated with a fragment generated by a rasterizer passing an initial depth test, forwarding the fragment for processing and providing information about the location of the at least one sampling point that has passed the initial depth test To at least one processing stage of the graphics processing pipeline,
Wherein at least one processing stage of the graphics processing pipeline uses the broadcast position information associated with at least one sampling point that has passed the initial depth test to determine if any sampling point in the current stage has passed at least one sampling And to selectively stop further processing of sampling points occupying the same position as at least one sampling point that has passed the initial depth test if any such sampling points are present, Pipeline.
제10항 내지 제12항 중 어느 한 항에 있어서,
초기 발췌 시험 스테이지는 프래그먼트 또는 복수 개의 프래그먼트의 패치가 처리를 위해 렌더러로 전송되기 전에 레스터화기에 의해 발생된 프래그먼트 또는 복수 개의 프래그먼트의 패치에 관하여 초기 깊이 시험을 수행하고,
그래픽 처리 파이프라인은,
초기 깊이 시험을 통과하는 레스터화기에 의해 발생되는 프래그먼트 또는 프래그먼트들의 패치에에 응답하여, 프래그먼트 또는 프래그먼트들의 패치를 처리를 위한 파이프라인을 통해 전방으로 전송하고 초기 깊이 시험을 통과한 프래그먼트 또는 프래그먼트들의 패치의 위치에 관한 정보를 그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지로 전송하도록 구성되며,
그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지는 초기 깊이 시험을 통과한 프래그먼트 또는 프래그먼트들의 패치와 관련된 방송 위치 정보를 이용하여, 현재 스테이지에 있는 임의의 프래그먼트가 초기 깊이 시험을 통과한 프래그먼트 또는 프래그먼트들의 패치와 동일한 위치를 차지하는지를 결정하고, 임의의 그러한 프래그먼트가 존재하면, 초기 깊이 시험을 통과한 프래그먼트 또는 프래그먼트들의 패치와 동일한 위치를 차지하는 프래그먼트의 추후 처리를 선택적으로 중지하도록 구성되는, 그래픽 처리 파이프라인.
13. The method according to any one of claims 10 to 12,
The initial excerpt test stage performs an initial depth test on a fragment or a patch of a plurality of fragments generated by a rasterizer before a patch of the plurality of fragments is sent to the renderer for processing,
The graphics processing pipeline,
In response to a patch of fragments or fragments generated by a rasterizer passing an initial depth test, a patch of fragments or fragments is forward transmitted through a pipeline for processing and a patch of fragments or fragments that have passed the initial depth test To at least one processing stage of the graphics processing pipeline,
At least one processing stage of the graphics processing pipeline uses broadcast location information associated with a patch of fragments or fragments that have passed the initial depth test to determine whether any fragments in the current stage have passed the initial depth test or patches of fragments And optionally stop further processing of fragments that occupy the same position as a patch of fragments or fragments that have passed the initial depth test if any such fragments are present.
제15항에 있어서,
상기 초기 발췌 시험 통과 이벤트 정보는 초기 발췌 시험 스테이지, 레스터화기, 대기 행렬 및 그래픽 처리 파이프라인의 렌더러 중 하나 이상으로 전송되는, 그래픽 처리 파이프라인.
16. The method of claim 15,
Wherein the initial excerpt pass event information is sent to one or more of an initial excerpt test stage, a rasterizer, a queue, and a renderer of the graphics processing pipeline.
제10항 내지 제12항 중 어느 한 항에 있어서,
그래픽 처리 파이프라인은,
초기 발췌 시험이 레스터화기에 의해 발생된 프래그먼트와 관련된 적어도 하나의 샘플링 포인트에 의해 통과될 때에, 초기 발췌 시험에 관한 데이터를 수용하는 데이터 버퍼를 초기 발췌 시험을 통과한 적어도 하나의 샘플링 포인트와 관련된 임의의 관련 데이터 값을 이용하여 업데이트하도록 구성되는, 그래픽 처리 파이프라인.
13. The method according to any one of claims 10 to 12,
The graphics processing pipeline,
When the initial excerpt test is passed by at least one sampling point associated with a fragment generated by the lister fire, the data buffer accepting data about the initial excerpt test is sent to an arbitrary < RTI ID = 0.0 > Using associated data values of the graphical processing pipeline.
프로그램이 데이터 처리 수단에서 실행될 때에 제1항 내지 제3항 중 어느 한 항에 따른 방법을 수행하도록 컴퓨터 소프트웨어를 포함하는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체.A computer program comprising computer software for performing the method according to any one of claims 1 to 3 when the program is executed in a data processing means.
KR1020130157252A 2012-12-17 2013-12-17 Hidden surface removal in graphics processing systems KR102057163B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/716,952 US9153070B2 (en) 2012-12-17 2012-12-17 Hidden surface removal in graphics processing systems
US13/716,952 2012-12-17
US13/909,561 US9214006B2 (en) 2013-06-04 2013-06-04 Hidden surface removal in graphics processing systems
US13/909,561 2013-06-04

Publications (2)

Publication Number Publication Date
KR20140078568A true KR20140078568A (en) 2014-06-25
KR102057163B1 KR102057163B1 (en) 2019-12-18

Family

ID=50031027

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020130157252A KR102057163B1 (en) 2012-12-17 2013-12-17 Hidden surface removal in graphics processing systems
KR1020130157253A KR102057166B1 (en) 2012-12-17 2013-12-17 Hidden surface removal in graphics processing systems

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020130157253A KR102057166B1 (en) 2012-12-17 2013-12-17 Hidden surface removal in graphics processing systems

Country Status (3)

Country Link
KR (2) KR102057163B1 (en)
CN (2) CN103871095B (en)
GB (2) GB2511177B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292898B2 (en) * 2013-03-15 2016-03-22 Intel Corporation Conditional end of thread mechanism
US9846959B2 (en) * 2014-07-03 2017-12-19 Mediatek Inc. Apparatus and method for controlling early depth processing and post depth processing
GB2540227B (en) * 2015-12-21 2018-01-17 Imagination Tech Ltd Allocation of tiles to processing engines in a graphics processing system
US10417815B2 (en) * 2017-01-27 2019-09-17 Advanced Micro Devices, Inc. Out of order pixel shader exports
GB2571979B8 (en) * 2018-03-15 2023-07-12 Advanced Risc Mach Ltd Graphics processing
CN112116519B (en) * 2019-06-19 2022-12-27 畅想科技有限公司 Coarse depth testing in graphics processing systems
KR200491938Y1 (en) 2020-05-06 2020-07-03 조현근 Function multi scarf
GB2608094A (en) 2021-01-27 2022-12-28 Advanced Risc Mach Ltd Graphics processing
CN116894906A (en) * 2023-09-11 2023-10-17 瀚博半导体(上海)有限公司 Graphics rendering method and processor hardware architecture

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6646639B1 (en) * 1998-07-22 2003-11-11 Nvidia Corporation Modified method and apparatus for improved occlusion culling in graphics systems
US6552723B1 (en) * 1998-08-20 2003-04-22 Apple Computer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US7268779B2 (en) * 2002-12-24 2007-09-11 Intel Corporation Z-buffering techniques for graphics rendering
US8711155B2 (en) 2004-05-14 2014-04-29 Nvidia Corporation Early kill removal graphics processing system and method
US8072451B2 (en) * 2004-12-29 2011-12-06 Intel Corporation Efficient Z testing
JP4116648B2 (en) 2006-05-22 2008-07-09 株式会社ソニー・コンピュータエンタテインメント Occlusion culling method and drawing processing apparatus
US8207972B2 (en) * 2006-12-22 2012-06-26 Qualcomm Incorporated Quick pixel rendering processing
GB0801812D0 (en) * 2008-01-31 2008-03-05 Arm Noway As Methods of and apparatus for processing computer graphics
GB201004673D0 (en) * 2010-03-19 2010-05-05 Imagination Tech Ltd Processing of 3D computer graphics data on multiple shading engines
GB201116438D0 (en) * 2011-09-22 2011-11-02 Advanced Risc Mach Ltd Occlusion queries in graphics processing

Also Published As

Publication number Publication date
KR102057163B1 (en) 2019-12-18
CN103871020B (en) 2018-10-16
GB2511176B (en) 2015-04-15
GB2511177A (en) 2014-08-27
KR102057166B1 (en) 2019-12-18
CN103871020A (en) 2014-06-18
GB2511176A (en) 2014-08-27
GB2511177B (en) 2015-04-15
GB201322278D0 (en) 2014-01-29
KR20140078569A (en) 2014-06-25
CN103871095A (en) 2014-06-18
GB201322284D0 (en) 2014-01-29
CN103871095B (en) 2018-07-17

Similar Documents

Publication Publication Date Title
US9214006B2 (en) Hidden surface removal in graphics processing systems
KR20140078568A (en) Hidden surface removal in graphics processing systems
US9153070B2 (en) Hidden surface removal in graphics processing systems
US10311016B2 (en) Hidden surface removal in graphics processing systems
US9779536B2 (en) Graphics processing
US10255718B2 (en) Graphics processing
US10013790B2 (en) Executing conditional tasks in a graphics processing pipeline
JP5053857B2 (en) 3D graphics processing apparatus and method
US9552665B2 (en) Hidden surface removal in graphics processing systems
US9535700B2 (en) Data processing systems
US10832464B2 (en) Graphics processing systems for performing per-fragment operations when executing a fragment shader program
US20190188896A1 (en) Graphics processing
US10839600B2 (en) Graphics processing systems
GB2567207A (en) Graphics processing systems
US10726610B2 (en) Efficient graphics processing using metadata
US10163238B2 (en) Processing graphics primitives in a tile-based graphics processing system
US20230298249A1 (en) Graphics Processing
US10310856B2 (en) Disabling thread execution when executing instructions in a data processing system

Legal Events

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