KR20190109279A - 그래픽 처리 - Google Patents

그래픽 처리 Download PDF

Info

Publication number
KR20190109279A
KR20190109279A KR1020190029037A KR20190029037A KR20190109279A KR 20190109279 A KR20190109279 A KR 20190109279A KR 1020190029037 A KR1020190029037 A KR 1020190029037A KR 20190029037 A KR20190029037 A KR 20190029037A KR 20190109279 A KR20190109279 A KR 20190109279A
Authority
KR
South Korea
Prior art keywords
sampling points
processing
sampling
processed
processing result
Prior art date
Application number
KR1020190029037A
Other languages
English (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
Application filed by 에이알엠 리미티드 filed Critical 에이알엠 리미티드
Publication of KR20190109279A publication Critical patent/KR20190109279A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

그래픽 처리 파이프라인의 처리 스테이지내의 처리될 하나 이상의 샘플링 포인트들의 세트를 각각 표현하는 그래픽 프래그먼트들을 처리할 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 처리하고 나서 그 샘플링 포인트에 대한 처리 결과를 동일한 처리 결과를 나타낸다고 판정된 나머지 처리 결과들을 위한 출력(96)에서 복제할 수 있도록, 상기 처리 스테이지에 의해 처리되었을 때 상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낼지를 판정하기 위해 상기 처리 스테이지의 입력(90)에서 샘플링 포인트들을 서로 비교하는 것.

Description

그래픽 처리{GRAPHICS PROCESSING}
여기서 기재한 기술은 그래픽 데이터를 처리하기 위한, 즉 그래픽 처리를 위한 방법들 및 시스템들에 관한 것이다.
그래픽 처리는, 통상, 표시되는 프레임 등의 생성되는 출력을 다수의 유사한 기본 성분들(소위 "프리미티브들")로 먼저 분할하여 그래픽 처리 연산을 보다 쉽게 실시하게 하여서 실시된다. 이 "프리미티브들"은 보통 단순한 다각형, 이를테면 삼각형의 형태로 되어 있다.
그래픽 프리미티브들은, 그래픽 출력을 요구하는 애플리케이션(예를 들면, 게임)으로부터 수신된 그래픽 묘화 명령들(요구들)을 사용하여, 상기 그래픽 처리 시스템용 애플리케이션 프로그램 인터페이스에 의해 생성되는 것이 보통이다.
이 스테이지에서, 각 프리미티브는, 버텍스들의 세트에 의해 정의되고 그 버텍스들의 세트로서 표현되는 것이 보통이다. 프리미티브의 각 버텍스는, 그 버텍스를 표현하는 (위치, 색상, 텍스처 및 그 밖의 속성들 데이터 등의) 데이터의 세트와 관련되어 있다. 그후, 이 데이터는, 예를 들면, 그래픽 처리 시스템의 원하는 출력을 생성하기 위해서, (버텍스가 관계하는 프리미티브(들)) 상기 버텍스를 래스터라이징 하고 렌더링할 때, 사용된다.
상기 프리미티브들 및 그들의 버텍스들이 생성 및 정의되어 있으면, 그들은, 상기 그래픽 처리 시스템에 의해 순서대로, 예를 들면 프레임을 표시하기 위해 처리될 수 있다.
이러한 처리는, 기본적으로, 처리되는 출력 에어리어를 덮는 샘플링 포인트들의 어레이의 어느 샘플링 포인트들이 하나의 프리미티브에 의해 덮이는지를 판정하고 나서, 각 샘플링 포인트가 그 샘플링 포인트에서의 프리미티브를 (예를 들면, 그 색상 등의 면에서) 표현해야 하는 모습을 판정하는 것을 포함한다. 이 처리들 각각을, 일반적으로 래스터라이징과 렌더링이라고 한다.
래스터라이징 처리는, 프리미티브(즉, 출력에 있어서 프리미티브, 예를 들면, 표시되는 씬을 표현하는데 사용되는 샘플링 포인트들의 (x, y) 위치들)에 사용되어야 하는 샘플 위치들을 판정한다. 이것은, 일반적으로 프리미티브의 버텍스들의 위치를 사용하여 행해진다.
그 후, 상기 렌더링 처리는, 샘플링 포인트들에서의 프리미티브를 표현하는데(즉, 각 샘플링 포인트를 "음영처리하는데") 필요한, 적색, 녹색 및 청색(RGB) 색상값과 "알파"(투명도) 값 등의 데이터를 얻는다. 이것은, 텍스처들, 블렌딩 샘플링 포인트 데이터 값들 등을 적용하는 것을 포함할 수 있다.
그래픽 문헌에 있어서, 용어 "래스터화"는, 샘플 위치들로의 프리미티브 변환과 렌더링과의 양쪽을 의미하는데 사용되는 경우가 많다. 그렇지만, 여기서 "래스터화"는, 프리미티브 데이터를 샘플링 포인트 어드레스들만으로 변환하는 것을 말한다.
이 처리들은, 하나의 샘플링 포인트나 하나보다 많은 샘플링 포인트의 세트들을 테스트하고 나서, (테스트중인) 당해 프리미티브(에 의해 덮인) 내부에 있는 샘플링 포인트를 포함하도록 찾은 샘플링 포인트들의 세트마다 그래픽 처리 연산들(이를테면 렌더링)이 실시된 보통 "프래그먼트"라고 하는 개별 그래픽 엔터티를 생성하여서 실시되는 것이 일반적이다. 따라서, 커버드(covered) 샘플링 포인트들은, 실제로, 당해 샘플링 포인트들에서의 프리미티브를 렌더링하는데 사용될 프래그먼트들로서 처리된다. 이 "프래그먼트들"은 렌더링 처리(렌더링 파이프라인)를 거치는 상기 그래픽 엔터티들이다. 생성 및 처리된 각 프래그먼트는, 예를 들면, 그래픽 처리 시스템을 어떻게 구성하는가에 따라, 단일의 샘플링 포인트 또는 일 세트의 복수의 샘플링 포인트를 표현하여도 된다.
이 때문에, "프래그먼트"는, 사실상, 프리미티브의 주어진 출력공간 샘플링 포인트나 포인트들로 보간되는 것처럼 프리미티브 데이터의 세트(와 관련되어 있다)이다. 또한, 프래그먼트는, 당해 샘플링 포인트(프래그먼트 위치)에서의 그 프리미티브를 음영처리하는데 요구되는 그 밖의 상태 데이터와 프리미티브별(per-primitive)로 포함하여도 된다. 각 그래픽 프래그먼트는, 일반적으로, 상기 출력(예를 들면, 출력 프레임)의 "픽셀"과 같은 사이즈와 장소이어도 된다(그 이유는, 그 픽셀들이 최종 표시에서 특이점일 때, 상기 그래픽 프로세서가 연산하는(렌더링하는) 상기 "프래그먼트들"과 디스플레이의 픽셀들간에 1대1 매핑이어도 되기 때문이다). 그렇지만, 예를 들면, 특별한 형태의 후처리, 이를테면 다운샘플링을 최종 화상을 표시하기 전에 상기 렌더링된 화상에 관해 실시하는 경우, 프래그먼트와 표시 픽셀간의 1대1 대응이 아니라는 것이 사실일 수 있다.
또한, 예를 들면, 상이한 오버랩핑 프리미티브들로부터, 주어진 장소에서의 다수의 프래그먼트들이 (예를 들면, 투명도 및/또는 블렌딩으로 인해) 서로 영향을 미칠 수도 있으므로, 최종의 픽셀 출력이 그 픽셀 장소에서 복수의 또는 모든 프래그먼트들에 의존하여도 되는 것이 사실이다.
이에 대응하게, 상기 샘플링 포인트들과 표시의 픽셀들간의 1대1 대응이 존재할 수도 있지만, 보다 일반적으로는, 상기 렌더링된 샘플 값들에 관해 다운샘플링을 실시하여 상기 최종 화상을 표시하기 위한 출력 픽셀 값들을 생성하여도 되므로, 상기 샘플링 포인트들과 표시 픽셀들간의 1대1 대응이 존재하지 않을 수도 있다. 마찬가지로, 예를 들면 상이한 오버랩핑 프리미티브들로부터, 주어진 장소에서 다수의 샘플링 포인트 값들이 (예를 들면, 투명도 및/또는 블렌딩으로 인해) 서로 영향을 미치는 경우, 최종의 픽셀 출력이 그 픽셀 장소에서 복수의 오버랩핑 샘플 값들에도 의존할 것이다.
상기 프래그먼트들은, 그래픽 처리 파이프라인내의 각종 처리 스테이지들에서 처리된다. 일반적으로, 상기 프래그먼트들이 효율적으로 처리되는 것을 원한다. 이러한 문맥에서, 출원인들이 믿는 것은, 그래픽 처리 파이프라인의 처리 스테이지내에서 그래픽 프래그먼트들을 처리하는 향상된 구성들을 위한 여지가 남아 있다는 것이다.
본 발명의 제1 국면에서는, 그래픽 처리 파이프라인의 처리 스테이지내의 처리될 하나 이상의 샘플링 포인트들의 세트를 각각 표현하는 그래픽 프래그먼트들을 처리하는 방법을 제공하고, 이 방법은,
처리될 샘플링 포인트들의 풀(pool)을 제공하는 단계-상기 샘플링 포인트들의 풀내의 샘플링 포인트들의 수가 단일의 사이클에서 상기 처리 스테이지에 의해 처리될 수 있는 샘플링 포인트들의 수보다 크다-;
상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 샘플링 포인트들의 상기 풀내의 샘플링 포인트들을 서로 비교하는 단계;
상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 처리하고 상기 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 장소 정보를 생성하는 단계-상기 장소 정보는 이후에 상기 다수의 샘플링 포인트들 중 나머지(들)가 그들의 각각의 장소들에 대해 모두 기록되게 하도록 상기 다수의 샘플링 포인트들 중 나머지(들)를 나타내는 정보를 포함한다-; 및
상기 제1 샘플링 포인트의 처리 결과를 복제하고 관련된 장소 정보에 근거하여 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소(들)에 대한 상기 복제된 결과를 모두 기록함으로써, 상기 다수의 샘플링 포인트들에 대한 처리 결과를 모두 기록하는 단계를 포함한다.
따라서, 본 발명의 실시예들에서는, 샘플링 포인트들의 풀을 제공하고, 상기 샘플링 포인트들의 풀내의 처리될 샘플링 포인트들의 수는 단일의 사이클에서 처리 스테이지에 의해 처리될 수 있는 샘플링 포인트들의 수보다 크다. 이렇게 하여, 출원인이 찾은 것은, 그 처리 스테이지가 효율적으로 이용되도록 보장하면서 처리 성능(예를 들면, 속도)을 향상시키는 것이 가능하다는 것이다. 예를 들면, 다수의 샘플링 포인트들의 풀이 제공되는 경우, 상기 풀내의 상기 샘플링 포인트들의 적어도 일부(또는, 그 샘플링 포인트들의 성분들의 적어도 일부)는, 동일한(즉, 동등한) 데이터 값들을 포함하고 동일한 데이터 처리가 실시되어도 된다, 즉 그 처리는 동일한 결과를 나타낼 것이다. 따라서, 본 발명의 실시예들에서는, 샘플링 포인트들의 주어진 세트가 처리되기 전에, 상기 샘플링 포인트들 중 어느 하나가 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 처리 스테이지의 입력에서 비교를 행할 수 있다. 달리 말하면, "데이터 동일" 체크를 행하여 상기 샘플링 포인트들 중 어느 하나의 처리가 중복될 것인지를 판정한다. 이렇게 하여, 샘플링 포인트들의 상기 풀을 처리하는데 수행될 필요가 있는 처리 연산들(사이클들)의 수를 감소시키는 것이 가능할 수도 있다.
예를 들면, 이 데이터 동일성 체크로부터 상기 풀내의 상기 샘플링 포인트들의 2개 이상이 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낸다고 판정될 때, 상기 처리 결과는 이 샘플링 포인트들 중 하나에 대해서만 취득될 수도 있고, 그 후, 상기 처리 결과는 동일한 처리 결과를 나타낸다고 판정된 상기 샘플링 포인트들의 나머지(들)에 대해 복제되고 모두 기록될 수 있다.
예를 들면, 다수의 샘플링 포인트들이 동일한 데이터를 포함한다고 판정되는 경우, 실시예들에서는 이 샘플링 포인트들 중 하나만을 처리하여도 된다(그리고, 그 동일한 결과를 나타낸다고 판정된 나머지 샘플링 포인트들을 처리하지 않아도 된다). 동시에, 동일한 데이터를 포함한다고 판정된 나머지(미처리된) 샘플링 포인트들의 장소(들)에 관한 정보를 생성할 수 있다. 따라서, 이 정보는, 상기 처리 스테이지에 의해 처리되는 상기 샘플링 포인트의 처리 결과가 나머지(미처리된) 샘플링 포인트들의 각각에 대해 복제되고 결국에는 적절한 장소에 모두 기록될 수 있도록, 출력에 송신될 수 있다. 따라서, 상기 풀내의 다수의 샘플링 포인트들이 동일한 데이터를 포함하는 경우, 이 다수의 샘플링 포인트들은 단일의 사이클에서 효과적으로(모두) 처리될 수 있다.
이와 대조적으로, 상기 입력에서 데이터 동일성 체크를 행하지 않는(또는 예를 들면, 상기와 같은 풀이 제공되지 않는) 종래의 시스템들에서는, 샘플링 포인트들의 각각을, 예를 들면, 그들이 상기 처리 스테이지에서 수신되는 순서로 상기 프래그먼트들의 전부의 상기 샘플링 포인트들의 전부를 거쳐 반복함으로써, 별도로 처리할 것이다. 따라서, 처리될 상기 샘플링 포인트들의 배수가 동일한 데이터를 포함하고 실제로 동일한 처리가 실시되는 경우에도, 종래의 시스템에서는, 이들을 예를 들면, 다수의 사이클들에서 별도로 처리할 것이다. 그러므로, 본 발명의 실시예들은, 데이터 값들이 동일한 샘플링 포인트들의 중복 처리를 피할 수도 있고, 따라서 상기와 같은 종래의 시스템들과 비교하여 처리 성능을 향상(예를 들면, 속도 증가 및/또는 처리전력 감소)시킬 수도 있다.
또한, 본 발명은, 그래픽 처리 시스템들 및 장치들까지, 예를 들면 및 특히, 그래픽 처리 파이프라인들까지 확대된다. 이에 따라, 본 발명의 제2 국면에서는 그래픽 프래그먼트들을 처리하기 위한 그래픽 처리 파이프라인을 제공하고, 상기 그래픽 프래그먼트들은 처리될 하나 이상의 샘플링 포인트들의 세트를 각각 표현하고, 상기 그래픽 처리 파이프라인은 복수의 처리 스테이지들을 포함하고, 상기 그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지는,
처리될 샘플링 포인트들의 풀을 제공하는 입력회로-상기 샘플링 포인트들의 풀내의 샘플링 포인트들의 수가 단일의 사이클에서 상기 처리 스테이지에서 처리될 수 있는 샘플링 포인트들의 수보다 크다-;
상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해 상기 샘플링 포인트들의 상기 풀내의 샘플링 포인트들을 서로 비교하는 비교기 회로;
상기 샘플링 포인트들을 처리하는 처리회로;
상기 샘플링 포인트들의 어느 것이 상기 처리회로에 의해 처리되는지를 제어하는 제어회로-상기 제어회로는, 상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 상기 처리 스테이지에 의해 처리되게 하고, 상기 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 장소 정보를 생성하여, 이후에 상기 다수의 샘플링 포인트들 중 나머지(들)가 그들의 각각의 장소들에 대해 모두 기록되게 하도록 구성된다-; 및
상기 샘플링 포인트들에 대한 처리 결과를 모두 기록하는 출력회로-상기 출력회로는, 상기 제1 샘플링 포인트의 처리 결과를 복제하고, 관련된 장소 정보에 근거하여 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각에 대한 각각의 장소(들)에 대한 상기 복제된 결과를 모두 기록하도록 구성된다-를 구비한다.
본 발명의 방식으로 처리된 프래그먼트들은, 일반적으로, 상기 그래픽 처리 파이프라인의 래스터화기에 의해 생성된다. 상기 래스터화기는 처리하기 위한 그래픽 프리미티브들이 상기 래스터화기 의해 커버한다고 판정되는 상기 샘플링 위치들에 근거하여, 상기 그래픽 프리미티브들을 수신하고 상기 그래픽 처리 파이프라인의 나중의(예를 들면, 렌더링) 스테이지들에 의해 처리하기 위한 그래픽 프래그먼트들을 생성할 것이다. 상기 프래그먼트들은, 각기 "프래그먼트 데이터", 이를테면 색(예를 들면, 적색, 녹색, 청색(RGB))값, 깊이 및/또는 투명도(예를 들면, 알파값) 데이터와 관련되어도 되고, 이때의 주어진 프래그먼트에 대한 프래그먼트 데이터는 상기 프래그먼트가 관계하는 상기 프리미티브들(의 버텍스들)과 관련된 프리미티브 데이터로부터 얻어지는 것이 바람직하다.
상기 그래픽 처리 파이프라인의 래스터화기는, 예를 들면 공지된 래스터화 구성에서와 같이, 임의의 적절하고 원하는 방식으로 연산하도록 구성될 수 있다. 상기 래스터화기는, 이 래스터화기에 의해 수신된, 상기 그래픽 처리 파이프라인의 출력의 영역, 주어진 프리미티브 등을 커버하는 샘플링 포인트들의 어레이의 샘플링 포인트들(또는 샘플링 포인트들의 세트들)이 (적어도 일부) 커버하는 것에 따라 처리하기 위한 그래픽 프래그먼트들을 생성하도록 연산해야 한다. 상기 래스터화기는, 래스터화되는 상기(및 각) 프리미티브에 의해 커버되는 샘플링 포인트를 포함하도록 찾아내진 복수의 샘플링 포인트들(예를 들면, 샘플링 마스크)의 각 세트에 의해, 및/또는 이 각 세트에 대해 커버된 샘플링 포인트마다 그래픽 프래그먼트를 생성하는 것이 바람직하다.
따라서, 각 프래그먼트는, 하나 이상의 샘플링 포인트들의 세트(와 관련되어 있다)를 표현한다. 상기 프래그먼트들이 표현하는 샘플링 포인트들의 세트들은, 각각 임의의 적절한 수의 샘플링 포인트들을 가질 수도 있다. 예를 들어, 일부의 실시예들에서, 처리될 상기 프래그먼트들은, 적어도(또는 정확히) 1개, 2개, 4개, 8개 또는 16개의 샘플링 포인트들의 세트를 각각 표현한다.
상기 처리 스테이지는, 그래픽 처리 파이프라인내의 임의의 적절한 처리 스테이지이어도 된다. 예를 들어, 상기 처리 스테이지는, 필요에 따라, 처리될 하나 이상의 샘플링 포인트(들)를 수신하고, 그 샘플링 포인트(들)에 관해 상기 요구된 처리 연산(들)을 행하여 그 처리 결과를 나타내도록(그 후, 모두 기록될 상기 처리 스테이지의 출력(회로)에 건네지고 상기 그래픽 처리 파이프라인의 다음 스테이지에 건네질 수 있다) 동작할 수 있는, 프로세서나 프로세서들, 제어기 또는 제어기들, 기능부들, 회로, 처리로직, 마이크로프로세서 구성들 등의 임의의 적절한 조합으로서 구현되어도 된다는 것을 알 것이다. 상기 처리 스테이지(회로)는, 일반적으로, 파이프라인 방식으로 행하도록, 예를 들면 일련의 처리 단계들을 행하여서 샘플링 포인트를 처리하도록 구성되어도 된다. 즉, 상기 처리 스테이지는, (전반적인 그래픽 처리 파이프라인내에서 연산하는) 하나 이상의 "처리 파이프라인들"을 구비하여도 된다. 또, 처리 파이프라인은, 필요에 따라, 처리될 하나 이상의 샘플링 포인트(들)를 수신하고, 그 샘플링 포인트(들)에 관해 상기 요구된 처리 연산(들)을 행하여 그 처리 결과를 나타낼 수 있는, 프로세서나 프로세서들, 제어기 또는 제어기들, 기능부들, 회로, 처리로직, 마이크로프로세서 구성들 등의 임의의 적절한 조합으로서, 구현되어도 되는 것이 일반적일 수도 있다.
일반적으로, 상기 처리 연산은, 멀티 사이클 연산을 포함하여도 된다. 예를 들어, 단일의 처리 단계는 각 사이클에서 행해져도 되고, 따라서 이때의 처리중인 샘플링 포인트는 사이클별로 상기 처리 스테이지의 각각의 처리 파이프라인을 통해 이동한다. 따라서, 제1 사이클에서, 제1 샘플링 포인트는 상기 처리 스테이지의 처리 파이프라인에 진입하여도 된다. 다음 사이클에서, 상기 샘플링 포인트들의 전부가 상기 처리 파이프라인을 통과하였을 때까지, 제1 처리단계는 상기 제1 샘플링 포인트들에 관해 행해져도 되고, 제2 샘플링 포인트는 상기 처리 파이프라인에 진입하여도 되는 따위다. 따라서, 어떠한 경우에도, 다수의 샘플링 포인트들은 상기 처리 스테이지의 주어진 처리 파이프라인내에서 처리중이어도 된다. 일반적으로, 상기 처리 파이프라인(들)은 "샘플별"로 샘플링 포인트들을 처리하도록 구성되는 경우, 상기 처리 스테이지의 각 처리 파이프라인은 사이클당 단일의(새로운) 샘플링 포인트를 수신 가능하다. 이 때문에, 상기 처리 스테이지는, 각 사이클에서 상기 처리 스테이지에 의해 다수의 샘플링 포인트들을 병렬로 처리할 수 있도록 복수의 상기 처리 파이프라인들을 포함하는 것이 바람직할 수도 있다. 한층 더 아래에서 설명된 것처럼, 상기 처리 파이프라인(들)은 "성분별"로 샘플링 포인트들을 처리하도록 구성되어도 되는 것도 생각된다.
상기 처리 스테이지의 입력에는, 처리될 (복수의) 샘플링 포인트들의 풀이 제공되어 있다. 전형적으로, 상기 그래픽 처리 프로세스 동안에 어떤 한 시점에서도(예를 들면, 데이터 스트림에서 최종 프래그먼트들에 대한 최종 샘플링 포인트들이 처리중일 때를 제외함), 상기 풀은 단일의 사이클에서 처리될 수 있는 것보다 큰 수의 샘플링 포인트들을 갖는다. 즉, 예를 들면, 상기 처리 스테이지가 하나 이상의 처리 파이프라인(들)을 포함하는 경우, 상기 풀은 일반적으로, 상기 처리 스테이지의 상기 처리 파이프라인(들)에 의해 단일의 사이클에서 처리될 수 있는 것보다 큰 수의 샘플링 포인트들을 갖는다. 그래서, 예를 들어, 상기 처리 스테이지가 사이클당 단일의 샘플링 포인트를 각기 수신 가능한 2개의 처리 파이프라인을 포함하면, 이에 따라서 상기 풀은 상기 시스템에 따라 2개보다 많은 샘플링 포인트들, 이를테면 4개의 샘플링 포인트들, 또는 8개, 12개 등의 샘플링 포인트들을 가져도 된다.
샘플링 포인트들을 갖는 상기 풀은, 예를 들면, 단일의 사이클에서 상기 처리 스테이지가 처리할 수 있는 샘플링 포인트들의 수에 대한 단일의 인스턴스에서 상기 처리 스테이지에 제공된 샘플링 포인트들의 수간에 불일치가 존재하는 것에 의해서, 상기 처리 파이프라인내의 상기(이전의) 처리 단계들의 결과로서 형성되어도 된다. 예를 들어, 상기 처리 스테이지는, 각 사이클에서, 메모리로부터 "N"(예; 4)개의 샘플링 포인트들을 수신 또는 독취하도록 구성되어도 되는 반면에, 상기 처리 스테이지는, 단지 단일의 사이클에서 "M"(여기서, M<N, 예: 2)개의 새로운 샘플링 포인트들을 처리 가능할 뿐이다. 즉, 샘플링 포인트들을 갖는 상기 풀은 상기 그래픽 처리 파이프라인내의 불균형한 처리량의 결과로서 제공되어도 된다.
그렇지만, 실시예들에 있어서, 입력 버퍼는 샘플링 포인트들을 갖는 상기 풀을 보유하도록 제공되어도 된다. 즉, 실시예들에 있어서, 상기 처리 스테이지의 상기 입력회로는, 입력 버퍼를 포함하여도 된다. 이렇게 하여, 비교적 큰 샘플링 풀은, 예를 들면, 처리 효율을 한층 더 향상시킬 가능성이 있는 상기 입력 버퍼의 사이즈에 따라 제공되어도 된다. 상기 입력 버퍼의 사이즈는, 필요에 따라, 예를 들면, 상기 애플리케이션 및/또는 샘플링 포인트들의 원하는 저장될 수에 따라, 선택되는 것이 일반적일 수도 있다.
샘플링 포인트들이 동등한(동일한) 데이터를 갖는 경우, 출원인들이 인식한 것은, 이 샘플링 포인트들이 동일한 처리가 되어 동일한 처리 결과를 나타낼 수도 있다는 것이다. 따라서, 본 발명의 실시예들에서는, 상기 샘플링 포인트들을 갖는 상기 풀에서의 상기 샘플링 포인트들(중 어느 하나)이 동일한 처리 결과를 나타낼 것인지를 체크하기 위해, 상기 처리 스테이지의 상기 입력에서 비교를 행할 수 있다. (이것이 판정될 경우, 아래에서 한층 더 설명되듯이, 상기 샘플링 포인트들 중 하나가 처리되어도 되고, 그 샘플링 포인트에 대한 처리 결과는 나머지 샘플링 포인트들을 위해 복제되어도 된다.) 현재에 샘플링 포인트들을 갖는 상기 풀내의 모든 샘플링 포인트들에 대해 비교를 행하여도 된다(행하는 것이 바람직하다). 그렇지만, 원리상, 샘플링 포인트들을 갖는 상기 풀내의 샘플링 포인트들의 서브세트에 관해서만 비교를 행하여도 된다. 예를 들면, 상기 풀내의 특정한 수의 샘플링 포인트들이 동일한 처리 결과를 나타낸다고 판정되었을 경우, 또는 특정한 수의 비교를 행한 후에, 상기 비교를 정지하여도 된다.
상기 처리 스테이지가 행한 처리 연산이 다수의 상이한 샘플링 포인트들에 대해 동일한 결과를 산출할지의 여부는, 임의의 적절하고 원하는 방식으로 판정될 수 있다. 그렇지만, 출원인들에 의해 인식된 것은, 주어진 샘플링 포인트에 관해 행해질 처리 연산이, 통상, 그 샘플링 포인트와 관련된 특별한 샘플 데이터를 사용한다(그리고, 그 처리 연산의 결과는 통상, 상기 특별한 샘플 데이터에 좌우된다)는 것이다. 예를 들어, 각 샘플링 포인트는, 예를 들면, 그 샘플링 포인트와 관련된 상기 색들(적색, 녹색, 청색, 'RGB'), 투명도(알파, 'A') 및 선택적으로 깊이 등도 표현하는 다수의 성분들, 또는 데이터 값들과 관련되어도 되고, 전형적으로는 관련된다.
상기 성분들 또는 데이터 값들이 상이한 샘플링 포인트들에 대해 동일한 경우, 그 샘플링 포인트들의 각각에 대한 처리 결과는 동일하다는 것이 알려지거나, 가정될 수 있는 경우가 일부 있다. 즉, 상기 처리 연산은, 상기 처리 스테이지를 통과하는 샘플링 포인트들 모두에 대해, 그들의 동일한 데이터 값들에 상관없이, 동일할 것이다는 것이 알려지는 경우가 일부 있다. 따라서, 본 발명의 실시예들에서, 다수의 샘플링 포인트들의 처리에 의해 동일한 결과를 산출할 것이라고 판정하는 것은, 상기 샘플링 포인트들에 대한 데이터 값들을 비교하여 그 다수의 샘플링 포인트들이 동일한 데이터를 갖는다고 판정하는 것을 포함할 수도 있다. 따라서, (단지) 이 데이터 값들이나 성분들에 근거하여 비교를 행하여도 된다.
그렇지만, 일부의 경우들에서, 샘플링 포인트들의 데이터 값들이 동일할 경우에도, 이 샘플링 포인트들의 처리는, 상이한 결과들을 나타낼 수도 있다. 예를 들면, 샘플링 포인트들은, 상기 처리 스테이지에서 상이한 처리 연산이 실시될 수 있을 수도 있고, 예를 들면, 이 때문에 상기 샘플링 포인트들의 각각은 그 샘플링 포인트에 대한 데이터가 처리될지를 판정 또는 지정하는 관련된 제어(또는 상태) 정보도 가질 수도 있다. 따라서, 실시예들에서, 예를 들면, 동일한 데이터 값들이 동일한 처리 결과를 나타낼 것이라고 가정할 수 없는 경우, 2개의 샘플링 포인트가 동일한 처리 결과를 나타낼지 여부의 판정은, 그 샘플링 포인트들이 실시되어야 할 상기 데이터 값들과 상기 처리(연산(들))와의 양쪽(예를 들면, 상기 샘플링 포인트들의 제어 정보)을 고려(비교)하여도 된다. 따라서, 샘플링 포인트들이 동일한 데이터 값들과 동일한 처리(예를 들면, 제어 정보)를 가질 때에만, 그 샘플링 포인트들이 동일한 처리 결과를 나타낸다고 판정된다.
상술한 것처럼, 프래그먼트는, 단일의 샘플링 포인트에 대응하여도 된다. 그렇지만, 또한 일반적으로, 각 프래그먼트는 다수의(예를 들면, 2, 4, 8, 16개 등의) 샘플링 포인트들을 (처리하는데 사용되어도 된다.) 표현하여도 된다. 그 경우에, 각 프래그먼트는, 다수의 샘플링 포인트들과 관련된다.
일부의 실시예들에서, 상기 풀내의 샘플링 포인트들은, 단일의 프래그먼트로 표현한 상기 샘플링 포인트들의 세트에서의 샘플링 포인트들 전부이어도 된다. 따라서, 그 경우에는, 그 프래그먼트와 관련된 상기 샘플링 포인트들 중 어느 하나가 동일한 처리 결과를 나타내는지를 판정하기 위해 비교를 행한다. 그렇지만, 상기 풀은 다수의 상이한 프래그먼트들과 관련된 샘플링 포인트들을 (또한) 가져도 된다는 것도 고려된다. 예를 들어, 구체적으로 입력 버퍼가 제공되는 경우, 상기 입력 버퍼는, 복수의 상이한 프래그먼트들로 표현된 샘플링 포인트들을 모으는데 사용되어서 보다 큰 수의 상이한 프래그먼트들로부터 비교되게 하는 것이 바람직할 수도 있다. 따라서, 실시예들에서는, 하나의(제1) 프래그먼트와 관련된 상기 샘플링 포인트들 중 어느 하나가 다른(제2) 프래그먼트와 관련된 하나 이상의 샘플링 포인트들과 같은 처리 결과를 나타낼지를 판정하기 위해서, 비교를 행한다.
종래의 방식으로, 상기 샘플링 포인트들의 모두가 필수적으로 상기 처리 스테이지에서 수신되는 순서로, 즉 제1 프래그먼트의 상기 샘플링 포인트들이 다음 프래그먼트의 상기 샘플링 포인트들 이전에 처리되도록 그렇게 계속 처리되었을 것이다. 그렇지만, 본 발명의 실시예들에서 제공된 샘플링 포인트들을 갖는 상기 풀은, 사실상, 샘플링 포인트들이 처리되는 "큐(queue)"다. 게다가, 본 발명의 실시예들에 의하면, 상기 풀내의 샘플링 포인트들이 일반적으로 임의의 순서로 처리되어도 되는 것을 알 것이다. 이 때문에, 본 발명의 실시예들은, 상기 샘플링 포인트들의 처리 효율을 한층 더 향상시킬 수도 있는 리오더링(reordering) 메카니즘을 제공하여도 된다. 예를 들어, 샘플링 포인트들을 갖는 상기 풀에서 후방에 있는 샘플링 포인트(예를 들면, 비교적 최근에 상기 풀에 추가되었던 샘플링 포인트)가 상기 풀의 전방에 있는 샘플링 포인트와 같은 처리 결과를 나타낸다고 판정될 때, 본 발명의 실시예들에 의하면, 그 샘플링 포인트는, 사실상, 종래의 방식으로 처리되는 경우보다 조기에 처리될 수 있다.
예를 들면, 상기 입력 버퍼는, 다수의 상이한 프래그먼트들로부터(예를 들면, 상기 그래픽 처리 파이프라인내의 이전의 처리 단계(들)의 다수의 사이클들로부터) 샘플링 포인트들을 저장하는데 사용되어도 된다. 종래의 시스템들에서, 이들은, 상기 처리 스테이지에서 수신된 제1 프래그먼트의 샘플링 포인트들을 처리한 후 상기 수신된 제2 프래그먼트의 샘플링 포인트들을 처리하는 순서 등으로, 처리될 것이다. 그렇지만, 본 발명의 실시예들에서는, 상기 풀내의 상기 샘플링 포인트들 중 어느 하나의 사이에서 비교를 행할 수 있고, 상이한 프래그먼트들로부터의 샘플링 포인트들이 동일한 처리 결과를 나타낸다고 판정될 때, 나중의(제2) 프래그먼트의 상기 샘플링 포인트들을, 조기에, 예를 들면 동일한 처리 결과를 나타낸다고 판정된 조기의(제1) 프래그먼트의 샘플링 포인트들과 함께 처리하여도 된다.
상기 샘플링 포인트들은, "샘플별"로, 즉 전체적으로 처리되어도 된다. 따라서, 실시예들에서는, 샘플링 포인트들을 갖는 상기 풀내의 샘플링 포인트들을 서로 비교하여 상기 샘플링 포인트들의 배수가 상기 처리 스테이지에서 처리하였을 때 동일한 처리 결과를 나타낼지를 판정하는 것은, 전체적으로 상기 샘플링 포인트들이 동일한 처리 결과를 나타낼지를 판정하는 것을 포함한다. 이 경우에, 상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 상기 방법은, 그 샘플링 포인트들 중 제1 샘플링 포인트만을 처리하는 것(그리고, 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 상기 장소 정보를 생성하는 것)을 포함하여도 된다. 그 후, 상기 다수의 샘플링 포인트들의 각각은 모두 기록되어도 되고, 이때 처리되지 않고 있는 상기 샘플링 포인트(들)는 상기 제1 샘플링 포인트의 처리 결과를 복제하고 상기 관련된 장소 정보에 근거한 각각의 장소(들)에 대한 상기 그 복제된 결과를 모두 기록함으로써, 모두 기록된다.
마찬가지로, 이 경우에, 상기 제어회로는, 상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 처리시키도록(그리고, 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 상기 장소 정보를 생성하도록) 구성되어도 된다. 그 후, 상기 출력회로는 상기 다수의 샘플링 포인트들을 각각 모두 기록하여도 되고, 이때 처리되지 않고 있는 상기 샘플링 포인트(들)는 상기 제1 샘플링 포인트의 처리 결과를 복제하고 상기 관련된 장소 정보에 근거한 각각의 장소(들)에 상기 그 복제된 결과를 모두 기록함으로써, 모두 기록된다.
그렇지만, 그 밖의 실시예들에서, 상기 샘플링 포인트들은, "성분별"(또는 "성분별, 샘플별")로 처리되어도 된다. 즉, 각 샘플링 포인트의 성분들(데이터 채널들)은, 별도로 처리되어도 된다. 이 경우에, 샘플링 포인트들을 전체적으로 처리하는 상기 처리 스테이지의 각 처리 파이프라인 대신에, 상기 처리 스테이지의 상기 처리 파이프라인(들)은, 개개의 데이터 성분들을 처리하도록 구성되어도 된다. 예를 들면, 각 샘플링 포인트는 적색, 녹색, 청색 및 알파(RGBA) 데이터 성분들이 관련되어도 되고, 이들은 별도로 각각 처리되어도 된다. 다른 방식을 고려하면, 상기 처리 스테이지는, 샘플링 포인트의 하나의 개개의 성분들을 처리하도록 각기 구성된 복수의 "처리 채널들"을 포함하여도 된다. 이 경우에, 상기 샘플링 포인트들이 "성분별"로 처리되는 경우, 상기 방법은, 상기 처리 스테이지에 의해 처리되었을 때 상기 샘플링 포인트들의 하나 이상의 성분들이 동일한 처리 결과를 나타낼지를 판정하기 위해, 샘플링 포인트들을 비교하는 것을 포함하여도 된다. 다수의 상이한 샘플링 포인트들의 하나 이상의 성분들이 동일한 처리 결과를 나타낸다고 판정될 때, 상기 방법은, 상기 샘플링 포인트들 중 하나만의 그 성분들을 처리하는 것과, 그 성분들에 대한 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들의 나머지(들)에 대한 그 성분들을 위해 그 성분들의 처리 결과를 복제하는 것을 포함하여도 된다.
마찬가지로, 이 경우에, 상기 비교기 회로는, 상기 샘플링 포인트들의 하나 이상의 성분들이 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하도록 구성되어도 된다. 그 후, 상기 제어회로는, 다수의 상이한 샘플링 포인트들의 하나 이상의 성분들이 동일한 처리 결과를 나타낸다고 판정될 때, 상기 샘플링 포인트들의 하나만의 그 성분들을 처리시키고, 그 성분들에 대한 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들의 나머지(들)에 대한 그 성분들의 처리 결과를 복제하도록 구성되어도 된다.
이에 따라, 일반적으로, 본 발명의 실시예들은, 다수의 샘플링 포인트들의 하나 이상의 성분들이 동일한 처리 결과를 나타낼지를 판정하는 것을 포함하여도 된다. 이러한 판정은, 상기 하나 이상의 성분들에 대해 개별적으로, 즉 "성분별"로 이루어져도 된다. 또는, 상기 판정은, 그 성분들 모두에 근거하여, 즉 전체적으로 상기 샘플링 포인트들에 대하여, 즉 "샘플별"로 이루어져도 된다. 즉, 상기 하나 이상의 성분들은, 상기 성분들의 전부를 포함하여도 된다. 다수의 샘플링 포인트들의 하나 이상의 성분들이 동일한 처리 결과를 나타낸다고 판정될 때, 이 샘플링 포인트들 중 하나만의 상기 하나 이상의 성분들이 처리되고, 이때 그 하나 이상의 성분들에 대한 상기 처리 결과(들)는 그 하나 이상의 성분들에 대해 동일한 처리 결과를 나타낸다고 판정된 상기 샘플링 포인트들 중 나머지(들)에 대해 복제된다. 달리 말하면, 샘플링 포인트에 대한 상기 "처리 결과"는, 상기 샘플링 포인트들을 전체적으로 처리하는 결과이거나, 상기 샘플링 포인트들의 하나 이상의 개개의 성분들을 처리하는 결과이어도 된다.
다수의 샘플링 포인트들이 동일한 처리 결과를 나타낸다고 판정될 때, 본 발명에 의해 인식한 것은, 이 처리 결과가 단지 상기 샘플링 포인트들 중 하나에 대해서 취득되면 된다는 것인데, 즉, 그 이유는 그 밖의 샘플링 포인트들의 처리가 중복될 것이기 때문이다. 따라서, 실시예들에서, 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 제1 샘플링 포인트는, 그 처리 결과를 취득하기 위해서 처리된다. 그 밖의 샘플링 포인트들은, 상기 처리 결과를 나타내도록 처리될 필요가 없다(예를 들면, 상기 처리 파이프라인에 진입할 필요가 없어, 그 사이클에서 그 밖의 샘플링 포인트들이 처리되기 위한 공간이 남아 있다).
상기 상이한 샘플링 포인트들의 처리가 동일한 처리 결과를 나타낼 것이기 때문에, 처리되는 상기 샘플링 포인트에 대한 상기 처리 결과는, 동일한 처리 결과를 나타낸다고 판정된 임의의 그 밖의 샘플링 포인트들에 대해 복제될 수 있다. 즉, 상기 처리 결과는, 상기 샘플링 포인트들 중 하나만으로부터 취득되고 나서 적절하게 복사될 수 있어, 동일한 처리 결과를 나타낸다고 판정된 임의의 그 밖의(바람직하게는 모든) 샘플링 포인트들에 대한 처리 결과를 모두 기록할 수 있다.
원리상, 동일한 처리 결과를 나타낸다고 판정되는 상기 다수의 샘플링 포인트들 중 어느 하나는, 처리되는 상기(제1) 샘플링 포인트로서 선택되어도 된다. 그렇지만, 전형적으로, 그것은, 처리될 (예를 들면, 상기 풀내의 가장 오래된 샘플링 포인트이어도 되는 상기 풀의 전방에) 상기 풀내의 상기 제1 샘플링 포인트일 것이다.
물론, 처리되는 상기 샘플링 포인트는, 예를 들면, 통상의 방식으로 (직접) 모두 기록될 수 있다. 그렇지만, 그 밖의(미처리된) 샘플링 포인트들에 대한 처리 결과를 정확히 모두 기록 가능하도록, 그 샘플링 포인트들의 상기 장소(들)를 나타내는 정보는, 생성되어 상기 출력(회로)에 제공되어 상기 샘플링 포인트들을 적절한 장소, 즉 상기 그래픽 처리 파이프라인의 출력(예를 들면, 출력 프레임)내에, 모두 기록되게 하여도 된다. 따라서, 상기 장소 정보는, 전형적으로, 상기 처리 스테이지의 상기 입력에서, 예를 들면 상기 비교기 회로(또는 이를 행하기 위한 또 다른 전용 모듈)에 의해 생성되고 나서, 상기 출력에 송신된다. 상기 장소 정보는, 처리중인 상기 샘플링 포인트들과 함께 상기 처리 스테이지의 상기 처리 파이프라인(들)을 통과되어도 된다. 그렇지만, 바람직하게는, 상기 장소 정보는, 별도의 (전용) 정보 채널을 따라, 즉 사이드 밴드 정보로서 송신된다.
따라서, 샘플링 포인트에 대한 장소 정보는, 일반적으로, 상기 샘플링 포인트들 중 어떤 것이 동일한 처리 결과와, 상기 샘플링 포인트에 대한 각각의 (입력) 장소를 나타낼지를 가리킨다. 따라서, 그 장소 정보로부터, 상기 출력회로는 어떤 데이터가 복제되어야 하고, 그 후, 그 복제된 데이터가 예를 들면, 원하는 출력을 제공하도록 어디에 모두 기록되어야하는지를 판정할 수 있다. 즉, 상기 장소 정보는, 일반적으로, 상기 샘플링 포인트들의 어느 것이 동일한 처리 결과와 이 샘플링 포인트들의 각각의 (입력) 장소들을 나타낼지를, 즉 상기 미처리된 샘플링 포인트들의 각각에 대해 어는 데이터를 복사할지와, 그 데이터를 어디에 복사할지를 상기 출력(회로)에 알리기 위해, 가리키는 정보를 포함한다.
이에 따라, 샘플링 포인트가 상기 처리 스테이지(그리고, 처리되는 임의의 샘플링 포인트들에 대해)에서 처리되어 있다면, 그 샘플링 포인트에 대한 처리 결과는, 동일한 처리 결과를 나타낸다고 판정되어 있는 임의의 (모든) 그 밖의 샘플링 포인트들에 대해 복제되어도 되고, 그 후, 상기 처리 결과는 그 샘플링 포인트들과 관련된 상기 생성된 장소 정보를 사용하여 그 밖의 샘플링 포인트들에 대한 정확한 장소에 모두 기록될 수 있다.
상기 풀내의 다수의 샘플링 포인트들을 비교할 뿐만 아니라, 또는 비교하는 대신에, 상기 풀로부터의 샘플링 포인트들과 현재 처리중인 샘플링 포인트들, 예를 들면 상기 처리 스테이지의 현재 처리 파이프라인내에 있는 샘플링 포인트들을 비교하는 것도 가능할 것이다. 즉, 상기 풀내의 샘플링 포인트가, 현재 처리중인 샘플링 포인트와 같은 처리 결과를 나타낸다고 판정될 때, 그 처리의 결과는, 상기 풀내의 상기 샘플링 포인트에 대해 상술한 것과 같은 유사한 방식으로 복제되어도 된다(이 때문에, 이 샘플링 포인트가 처리될 필요가 없을 것이다). 따라서, 실시예들에서, 상기 방법은, 아직 처리되지 않은 임의의 샘플링 포인트들이, 상기 처리 스테이지에 의해 처리되었을 때 상기 처리 스테이지에 의해 현재 처리중인 임의의 샘플링 포인트들과 동일한 처리 결과를 나타낼지를 판정하는 것을 한층 더 포함한다. 이 판정이 이루어질 때, 상기 처리 스테이지에 의해 현재 처리중인 상기 샘플링 포인트에 대한 처리 결과는, 아직 처리되지 않지만 동일한 결과를 나타낸다고 판정되어 있는 임의의 샘플링 포인트들을 모두 기록하기 위해서, 복제될 수 있다. 이 때문에, 이 샘플링 포인트들은 처리될 필요가 없다. 상술한 것처럼, 따라서, 아직 처리되지 않는(예를 들면, 상기 풀내에 여전히 있는) 상기 샘플링 포인트(들)의 장소(들)를 가리키는 정보가 제공되어서 현재 처리중인 상기 샘플링 포인트에 대한 처리 결과를 상기 출력에 복제시키고 정확한 장소에 기록할 수 있다.
예를 들어, 바람직한 실시예들에서는, 이 샘플링 포인트들 중 어느 하나가 동일한 처리 결과를 나타낼지를 판정하기 위해, 먼저 샘플링 포인트들을 갖는 상기 풀내의 상기 샘플링 포인트들에 대해 비교를 행한다. 이것에 근거하여, 그 후, 다수의 "유일한" 샘플링 포인트들은 처리를 위해 예정되어도 된다. 그렇지만, 이 샘플링 포인트들 중 어느 하나가 처리되기 전에, 상기 샘플링 포인트들이 현재 처리중이면서 또 다른 비교가 행해져도 된다. 일치가 발견될 경우, 상기 처리 스테이지에 의해 현재 처리중인 상기 샘플링 포인트들에 대한 처리 결과는, 새로운 샘플링 포인트(들)를 처리하는 것이 필요하도록 복제될 수 있다. 그렇지 않으면, 일치가 발견되지 않을 경우는, 상기 샘플링 포인트들은 예를 들면 상술한 것처럼, 처리된다.
바람직하게는, 상기 시스템은, 상기 처리 스테이지가 실질적으로 완벽히 이용되도록, 예를 들면 실질적으로 상기 처리 스테이지의 상기 처리 파이프라인(들)을 통한 (새로운) 샘플링 포인트들의 연속적인 처리량이 존재하도록, 구성된다. 즉, 전체 그래픽 처리 연산 동안에, 새로운 샘플링 포인트들은, 실질적으로 연속적으로 상기 처리 스테이지의 상기 처리 파이프라인(들)에 건네져, 각 처리 파이프라인은 각 사이클 동안에 (처리될 샘플링 포인트들이 여전히 존재하는 한) 새로운 샘플링 포인트를 수신한다.
그렇지만, 그 밖의 실시예들에서, 하나 이상의 처리 파이프라인들은, 상기 처리 스테이지에서 처리될 다수의 샘플링 포인트들이 동일한 처리 결과를 나타낸다고 판정될 때, 예를 들면, 처리 전력을 절약하기 위해서, 사용 금지되어도 된다. 이것은, "샘플별" 또는 "성분별"로 적용되어도 된다. 예를 들면, 이것이 "샘플별"로 적용되는 경우, 각 처리 파이프라인은 샘플링 포인트를 전체적으로 처리하도록 구성되고, 각 샘플링 포인트는 상기 처리 스테이지의 복수의 처리 파이프라인(들) 중 각각에 건네져도 되고, 다수의 샘플링 포인트들이 동일한 처리 결과를 나타낸다고 판정될 때, 상기 샘플링 포인트들 중 하나만이 처리되고 그 밖의 샘플링 포인트들에 대한 각각의 처리 파이프라인(들)은 사용 금지되어도 된다. 마찬가지로, 이것이 "성분별"로 적용되는 경우, 복수의 처리 파이프라인들(또는 채널들)이 제공되어도 되고, 여기서 각 파이프라인(채널)은 샘플링 포인트의 하나 이상의 개개의 성분들을 처리하도록 구성된다. 따라서, 상기 샘플링 포인트들의 각각은, 상기 샘플링 포인트들의 하나 이상의 개개의 성분들에 대해 할당된 각각의 처리 파이프라인(채널)으로 처리하기 위해 예정되어도 되고, 다수의 샘플링 포인트들의 하나 이상의 성분들이 동일한 처리 결과를 나타낸다고 판정될 때, 상기 처리 결과는 상기 샘플링 포인트들 중 하나만의 상기 하나 이상의 성분들에 대해 취득되어도 되고, 이때의 상기 샘플링 포인트들의 나머지(들)의 그 성분들에 대한 상기 처리 파이프라인(들)(채널(들))은 사용 금지된다. 그 후, 처리되는 상기 샘플링 포인트 또는 성분(들)에 대한 처리 결과는, 그 밖의 (미처리된) 샘플링 포인트들 또는 성분(들)을 위해 복제되어도 된다.
이에 따라, 다른 국면에서는, 그래픽 처리 파이프라인의 처리 스테이지내의 처리될 하나 이상의 샘플링 포인트들의 세트를 각각 표현하는 그래픽 프래그먼트들을 처리하는 방법을 제공하고, 이 방법은,
처리될 복수의 샘플링 포인트들을 상기 처리 스테이지의 복수의 처리 파이프라인들에 의해 병렬로 제공하는 단계;
상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 복수의 샘플링 포인트들을 비교하는 단계;
상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 처리하고, 상기 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 하나 이상의 각각의 처리 파이프라인(들)을 사용 금지시키는 단계;
동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소를 나타내는 장소 정보를 생성하여서, 이후에 상기 다수의 샘플링 포인트들의 나머지(들)를 그들의 각각의 장소들에 대해 모두 기록되게 하는 단계; 및
상기 제1 샘플링 포인트의 처리 결과를 복제하고 관련된 장소 정보에 근거하여 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소(들)에 대한 상기 복제된 결과를 모두 기록함으로써, 상기 다수의 샘플링 포인트들에 대한 처리 결과를 모두 기록하는 단계를 포함한다.
또한, 본 국면은 그래픽 처리 파이프라인까지 확대된다. 따라서, 본 발명의 또 다른 국면에서는, 그래픽 프래그먼트들을 처리하기 위한 그래픽 처리 파이프라인을 제공하고, 여기서 상기 그래픽 프래그먼트들은 처리될 샘플링 포인트들의 세트를 각각 표현하고, 상기 그래픽 처리 파이프라인은 복수의 처리 스테이지들을 포함하고, 상기 그래픽 처리 시스템의 적어도 하나의 처리 스테이지는,
처리될 복수의 샘플링 포인트들을 상기 처리 스테이지의 복수의 처리 파이프라인들에 의해 병렬로 제공하는 입력회로;
상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 복수의 샘플링 포인트들을 비교하는 비교회로;
복수의 샘플링 포인트들을 처리하기 위한 복수의 처리 파이프라인들을 포함하는 처리회로;
상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 처리하고, 상기 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 하나 이상의 각각의 처리 파이프라인(들)을 사용 금지시키도록 구성되되, 샘플링 포인트들 중 어느 것이 상기 처리회로에 의해 처리되는지를 제어하는 제어회로로서, 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소를 나타내는 장소 정보를 생성하여서, 이후에 상기 다수의 샘플링 포인트들의 나머지(들)를 그들의 각각의 장소들에 대해 모두 기록되게 하도록 한층 더 구성된, 상기 제어회로; 및
상기 다수의 샘플링 포인트들에 대한 처리 결과를 모두 기록하는 출력회로로서, 상기 제1 샘플링 포인트의 처리 결과를 복제하고 관련된 장소 정보에 근거하여 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소(들)에 대한 상기 복제된 결과를 모두 기록하도록 구성된, 상기 출력회로를 구비한다.
상술한 것처럼, 이들의 또 다른 국면들에 따른 상기 방법 및 그래픽 처리 파이프라인은, "샘플별" 또는 "성분별"로 샘플링 포인트들을 처리하도록 구성되어도 된다. 따라서, 상기 샘플링 포인트들이 "샘플별"로 처리될 때, 주어진 사이클내에서 처리될 각 샘플링 포인트는 각각의 처리 파이프라인을 할당받아도 되고, 2개 이상의 샘플링 포인트들이 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 하나만이 (그것의 각각의 처리 파이프라인에 의해) 처리되며, 이때의 그 동일한 처리 결과를 나타낸다고 판정된 상기 샘플링 포인트들의 나머지(들)에 대한 각각의 처리 파이프라인(들)은 사용 금지된다. 마찬가지로, 상기 샘플링 포인트들이 "성분별"로 처리될 때, 주어진 사이클내에서 처리될 각 샘플링 포인트의 하나 이상의 개개의 성분들은 각각의 처리 파이프라인을 할당받아도 되고, 2개 이상의 샘플링 포인트들이 하나 이상의 성분들에 대해 동일한 처리 결과를 나타낸다고 판정될 때, 상기 샘플링 포인트들 중 하나에 대한 그 하나 이상의 성분들만이 (상기 각각의 처리 파이프라인(들)에 의해) 처리되고, 이때의 동일한 처리 결과를 나타낸다고 판정된 나머지 샘플링 포인트들에 대한 그 하나 이상의 성분들에 대한 각각의 처리 파이프라인(들)은 사용 금지된다.
일반적으로, 이 국면들에 따른 본 발명은, 적어도 본 발명의 그 밖의 국면들 및 실시예들이 상호 배타적이지 않는 범위까지 그들과 관련지어 상술한 임의의(또는 모든) 특징들을 포함하여도 된다는 것을 알 것이다. 예를 들어, 샘플링 포인트들을 갖는 상기 풀을 제공하는 단계, 상기 샘플링 포인트들을 비교하는 단계, 상기 샘플링 포인트들(의 성분들)을 처리하는 단계, 및 상기 샘플링 포인트들을 모두 기록하는 단계는, 대개 본 발명의 상기 제1 및 제2 국면과 실시예들과 관계하여 상술한 방식과 마찬가지로 행해질 수도 있다.
바람직한 실시예들은 그래픽 처리 시스템들에도 관한 것이고, 구체적으로는 그래픽 처리 파이프라인내에서 각종 스테이지들, 또는 단계들에 관한 것이다. 상기 그래픽 처리 파이프라인은 바람직하게는 타일 기반 렌더링 파이프라인이다. 상기 그래픽 처리 파이프라인은, 그래픽 처리 파이프라인이 가질 수도 있는 임의의 적절하고 원하는 처리 스테이지들을 가질 수도 있다. 바람직한 실시예에서, 그 그래픽 처리 파이프라인은, 상술한 래스터화기; 이른(early) 깊이(또는 이른 깊이 및 스텐실) 테스터; 바람직하게는 프래그먼트 셰이더의 형태의 렌더러; 상기 프래그먼트 셰이더와 관련된 varyings 위치 평가(보간기); 늦은(late) 깊이(또는 깊이 및 스텐실) 테스터; 블렌더; (타일 기반 렌더링 파이프라인의 경우에) 하나 이상의 타일 버퍼들; 및 (또, 타일 기반 렌더링 파이프라인의 경우에도) 타일 라이트백(writeback) 유닛 중, 하나 이상 및 바람직하게는 전부를, 이 순서로 구비한다.
본 발명의 방식으로 행해지는 상기 그래픽 처리 연산은, 상기 그래픽처리 파이프라인내에서 행해진 임의의 적절한 그래픽 처리 연산, 예를 들면 "샘플별"로 그래픽 처리 파이프라인내에서 통상적으로 행해질 임의의 그래픽 처리 연산이어도 된다. 일반적으로, 상기 그래픽 처리 연산은, 다수의 데이터 요소들(샘플링 포인트들)이 처리될 필요가 있는 경우와 상기 데이터 요소들의 적어도 일부가 동일한 데이터를 가질 수도 있는 것이 알려지는 경우에, 임의의 연산이어도 된다. 예를 들면, 이것이 일어날지도 모르는 전형적인 경우는 블렌딩 연산동안이긴 하지만, 그 밖의 구성도 물론 가능할 것이다. 따라서, 바람직한 실시예에서, 상기 그래픽 처리 연산은, 프래그먼트 셰이딩 또는 블렌딩 연산 등의 렌더링 연산; 깊이 테스트 또는 스텐실 테스트 등의 선별(culling) 테스트; 및 멀티샘플링된 리졸브 및 라이트백 연산 중 (적어도) 하나이다.
이에 대응하게, 본 발명의 방식으로 연산하는 상기 그래픽 처리 스테이지는, 상기 그래픽 처리 파이프라인의 임의의 적절한 스테이지, 예를 들면, "샘플별"로 통상적으로 연산할 임의의 그래픽 처리 스테이지이어도 된다. 바람직한 실시예에서, 상기 그래픽 처리 스테이지는, 프래그먼트 셰이딩 또는 블렌딩 스테이지 등의 렌더링 스테이지; 깊이 테스트 또는 스텐실 테스트 스테이지 등의 선별 스테이지; 및 멀티샘플링된 리졸브 및 라이트백 스테이지 중 (적어도) 하나이다.
실시예들에서, 본 발명의 방식으로 그래픽 처리는, 상기 그래픽 프래그먼트들에 관해 및/또는 하나보다 많은 상기 그래픽 처리 파이프라인의 스테이지에서 행해질 하나보다 많은 그래픽 처리 연산에 관해서 행해져도 된다. 따라서, 일 실시예에서, 상기 그래픽 처리 파이프라인은, 본 발명의 방식으로 연산하는 2개(또는 2개보다 많은) 처리 스테이지들을 구비한다.
당업자라면 알듯이, 본 발명을 특별한 그래픽 프래그먼트, 또는 샘플링 포인트들의 세트의 처리를 참조하여 처음에 상술하였지만, 이 연산은, 상기 래스터화기가 생성하고, 및/또는 상기 처리 스테이지가 수신하여, 처리하는 복수의 그래픽 프래그먼트들(및 바람직하게는 각 그래픽 프래그먼트)에 대해 및 에 관하여 행해지는 것이 바람직하다. 마찬가지로, 상기 그래픽 처리 파이프라인에서 생성할 렌더 출력이 전형적으로 복수의 프리미티브들(및 타일 기반 시스템에서는 타일들)로 구성될 것이므로, 실제로, 본 발명의 상기 방법은, 상기 출력을 구성하는 프리미티브(및 타일)마다 반복되어, 결국 적절한 렌더링된 프래그먼트 데이터의 세트는, 필요로 하는 상기 출력의 샘플링 포인트마다 생성되어 있다.
상기 그래픽 처리가 다수의 렌더 타겟들을 사용하는 중일 경우, 일 실시예에서는, 본 발명의 방식으로, 렌더 타겟당 단독으로(즉, 주어진 렌더 타겟에 대해, 각 프래그먼트 및 픽셀은 그 밖의 렌더 타겟들에서 대응한 프래그먼트들과 픽셀들과는 상관없이 취급되도록, 즉 특별한 픽셀이 일 렌더 타겟에서 다수의 값들을 갖지만, 다른 렌더 타겟에서는 단일의 값을 가질 수 있도록) 상기 연산을 행한다.
본 발명은, 그래픽 처리 파이프라인을 사용하여 표시용 프레임들, 렌더 투 텍스처 출력들 등을 생성하여도 되는 모든 출력의 형태들에 사용될 수 있다.
일부의 실시예들에서, 상기 그래픽 처리 파이프라인은, 여기서 기재된 데이터, 이를테면 상기 프래그먼트 데이터, 그 밖의 샘플 데이터, 메타데이터 등을 저장하고, 및/또는, 여기서 기재된 프로세스들을 행하기 위한 소프트웨어를 저장하는, 하나 이상의 메모리들 및/또는 메모리 디바이스들을 포함하고, 및/또는 상기 하나 이상의 메모리들 및/또는 메모리 디바이스들과 통신하고 있다. 상기 그래픽 처리 파이프라인은 호스트 마이크로프로세서와, 및/또는 상기 그래픽 프로세서에서 생성한 데이터에 근거하여 화상들을 표시하기 위한 디스플레이와도 통신하고 있을 수도 있다.
구체적으로 바람직한 실시예에서, 본 발명의 각 종 기능들은, 예를 들면 상기 디스플레이 디바이스용 프레임 버퍼에 기록되는 렌더링된 프래그먼트 데이터를 생성하고 출력하는 단일의 그래픽 처리 플랫폼상에서 실시된다.
본 발명은, 임의의 적절한 시스템, 이를테면 적절하게 구성된 마이크로프로세서 기반 시스템에 구현될 수 있다. 바람직한 실시예에서, 본 발명은, 컴퓨터 및/또는 마이크로프로세서 기반 시스템에 구현된다.
본 발명의 각종 기능들은, 임의의 원하는 적절한 방식으로 실행될 수 있다. 예를 들면, 본 발명의 기능들은, 원하는 대로, 하드웨어나 소프트웨어로 구현될 수 있다. 따라서, 예를 들면, 본 발명의 각종 기능적 요소들, 스테이지들, 파이프라인들 및 "수단"은, 적절하게 구성된 전용 하드웨어 요소들 또는 처리회로, 및/또는 원하는 방식으로 작동하도록 프로그래밍될 수 있는 프로그램 가능한 하드웨어 요소들 또는 처리회로와 같은 각종 기능 등을 행할 수 있는, 적절한 프로세서나 프로세서들, 제어기나 제어기들, 기능 유닛들, 회로, 처리 로직, 마이크로프로세서 구성들 등을 포함할 수도 있다.
또한, 여기서는, 당업자라면 알듯이, 본 발명의 각종 기능 등이, 주어진 프로세서상에서 병렬로 복제 및/또는 실행될 수도 있다는 것을 주목해야 한다. 마찬가지로, 각종 처리 스테이지들은, 필요한 경우 처리회로를 공유할 수도 있다.
본 발명은, 그래픽 처리 파이프라인의 임의의 형태 또는 구성과, 렌더링의 모든 형태들, 이를테면 즉시 모드 렌더링, 지연 모드 렌더링, 타일 기반 렌더링 등등에, 적용 가능하다. 본 발명은, 구체적으로, 지연 모드 렌더링을 사용하는 그래픽 렌더러들과 구체적으로는 타일 기반 렌더러들에 적용 가능하다.
따라서, 본 발명은, 여기서 기재된 본 발명의 장치나 본 발명의 상기 국면들 중 임의의 하나 이상에 따라 작동된 장치를 구비하는 그래픽 처리 플랫폼과 그래픽 프로세서까지 확대된다. 상술한 특정 기능을 실행하는데 필요한 임의의 하드웨어에 따라, 상기 그래픽 프로세서는, 다른 경우라면, 상기 그래픽 프로세서들이 구비하는 통상의 기능 유닛들 등의 어느 하나 이상 또는 구비할 수 있다.
또한, 당업자라면, 본 발명의 상술한 국면들과 실시예들 모두가, 필요에 따라, 여기서 설명한 바람직하고 선택적인 특징들 중 어느 하나 이상 또는 모두를 구비할 수 있거나, 바람직하게는 구비한다는 것을 알 것이다.
본 발명에 따른 방법들은, 소프트웨어, 예를 들면 컴퓨터 프로그램을 적어도 일부 사용하여 구현되어도 된다. 이렇게 하여 안 것은, 또 다른 측면에서 볼 때, 본 발명은, 데이터 처리수단에 인스톨될 때 여기서 설명된 방법들을 실행하도록 구체적으로 구성된 컴퓨터 소프트웨어와, 데이터 처리수단상에 작동할 때 여기서 설명된 방법들을 행하기 위한 컴퓨터 소프트웨어 코드 부분을 포함한 컴퓨터 프로그램 요소와, 상기 프로그램이 데이터 처리 시스템상에 작동할 때 여기서 설명된 방법이나 방법들의 단계 모두를 행하도록 구성된 코드수단을 포함한 컴퓨터 프로그램을 제공한다는 것이다. 상기 데이터 프로세서는, 마이크로프로세서 시스템, FPGA(Field Programmable Gate Array) 등이어도 된다.
또한, 본 발명은, 그래픽 프로세서, 렌더러 또는, 데이터 처리수단을 갖는 마이크로프로세서 시스템을 작동시키는데 사용될 때 상기 데이터 처리수단과 관련지어 상기 그래픽 프로세서, 렌더러 또는 시스템이 본 발명의 방법들의 단계들을 실행하도록 상기 소프트웨어를 구비한 컴퓨터 소프트웨어 캐리어까지 확장된다. 이러한 컴퓨터 소프트웨어 캐리어는, ROM칩, CD ROM, RAM, 플래시 메모리나, 디스크 등의 물리적 기억매체일 수 있거나, 유선상의 전자신호, 광신호 또는 위성 등에 관한 무선신호 등의 신호일 수 있다.
본 발명의 방법들의 모든 단계들을 컴퓨터 소프트웨어로 실행할 필요가 없고 이에 따라서 또 다른 넓은 측면에서 본 발명은 컴퓨터 소프트웨어와, 여기 기재된 방법들의 단계들의 적어도 하나를 실행하기 위한 컴퓨터 소프트웨어 캐리어 상에 인스톨된 상기 소프트웨어를 제공한다는 것도 또한 알 것이다.
따라서, 본 발명은, 컴퓨터 시스템에 사용하기 위한 컴퓨터 프로그램 제품으로서 적절히 구체화되어도 된다. 이러한 구현은, 유형의, 비일시적 매체, 이를테면 컴퓨터 판독 가능한 매체, 예를 들면, 디스켓, CD-ROM, ROM, RAM, 플래시 메모리, 또는 하드디스크에 고정된 일련의 컴퓨터 판독 가능한 명령들을 포함할 수도 있다. 또한, 본 발명은, 광학적이거나 아날로그적 통신회선을 포함하지만 이에 한정되지 않거나, 또는, 마이크로웨이브, 적외선 또는 그 밖의 투과 기술을 포함하지만 이에 한정되지 않는 무선 기술을 무형으로 사용하는 유형의 매체 상에서, 모뎀이나 그 밖의 인터페이스 디바이스를 거쳐 컴퓨터 시스템에 전송가능한, 일련의 컴퓨터 판독 가능한 명령을 포함할 수 있었다. 상기 일련의 컴퓨터 판독 가능한 명령은, 여기서 이전에 설명된 기능성의 모두 또는 일부를 구체화한다.
당업자는, 여러 가지의 컴퓨터 아키텍처나 운영체계에 사용하기 위한 다수의 프로그래밍 언어로 상기 컴퓨터 판독 가능한 명령을 기록할 수 있다는 것을 알 것이다. 또한, 이러한 명령은, 반도체, 마그네틱, 또는 광학적 기술을 포함하지만 이에 한정되지 않는 현재 또는 미래의 어떠한 메모리 기술을 사용하여서도 저장될 수도 있거나, 광학적, 적외선 또는 마이크로웨이브를 포함하지만 이에 한정되지 않는 현재 또는 미래의 어떠한 통신기술을 사용하여서도 전송되어도 된다. 이러한 컴퓨터 프로그램 제품은, 인쇄된 문서나 전자 문서가 첨부되는 착탈 가능한 매체, 예를 들면, 컴퓨터 시스템, 예를 들면, 시스템 ROM이나 고정형 디스크 상에 사전 적재된 쉬링크 랩 소프트웨어로서 배포되거나, 네트워크, 예를 들면, 인터넷이나 월드 와이드 웹상에서 서버나 전자 게시판으로부터 배포되어도 된다고 생각된다.
본 발명의 각종 실시예들을 그래픽 처리에 관련하여 상술하였지만, 본 발명이 유사한 고려사항을 적용하는 그 밖의 데이터 처리 시스템들에도 적용되어도 된다는 것을 알 것이고, 즉, 다수의 데이터 요소들이 처리될 필요가 있고, 이 데이터 요소들의 배수가 동일한 처리 결과를 나타낼 수도 있다는 것이 알려져 있다. 따라서, 또 다른 국면들 및 실시예들에서는, 실질적으로 상술한 것과 같은 데이터 처리 방법 및 데이터 처리 파이프라인들을 제공하지만, 여기서 "그래픽"에 대한 어떠한 레퍼런스도 "데이터" 처리에 대한 레퍼런스로 교체된다. 따라서, 하나 이상의 샘플링 포인트들의 세트로 표현된 복수의 프래그먼트들을 처리하는 대신에, 이 국면들 및 실시예들에서는, 하나 이상의 "데이터 요소들"의 세트를 처리하여도 된다.
이하, 여기서 설명된 본 기술의 각종 실시예들을, 첨부도면들만을 예시로 하여 또한 이 첨부도면들을 참조하여 설명하겠다:
도 1은 표시될 화상을 개략적으로 도시한 것이고;
도 2는 본 발명의 실시예에서 사용하기 위한 샘플링 패턴의 예를 도시한 것이고;
도 3은 본 발명의 실시예들에 따라 연산될 수 있는 그래픽 처리 파이프라인의 일례를 도시한 것이고;
도 4는 종래의 방식으로 행해진 그래픽 처리(블렌딩) 연산의 일례를 도시한 것이고;
도 5는 본 발명의 실시예에 따른 그래픽 처리(블렌딩) 연산의 일례를 도시한 것이고;
도 6은 본 발명의 실시예에 따른 그래픽 처리(블렌딩) 연산의 다른 예를 도시한 것이고;
도 7은 본 발명의 실시예에 따른 방법을 설명하는 흐름도;
도 8은 다수의 상이한 프래그먼트들을 표현하는 샘플링 포인트들을 갖는 보다 큰 풀을 제공하는데 사용된 입력 버퍼를 구비하는 처리 시스템의 일례를 도시한 것이고;
도 9는 본 발명의 다른 실시예에 따라 그래픽 처리(블렌딩) 연산의 일례를 도시한 것이다.
이하, 본 발명의 바람직한 실시예를, 표시용 컴퓨터 그래픽의 처리의 상황속에서 설명할 것이다.
상술한 것처럼, 하나의 컴퓨터 그래픽 화상이 표시될 때, 통상, 일련의 프리미티브들(폴리곤들)로서 먼저 정의되고, 그 프리미티브들은 그래픽 렌더링을 위한 그래픽 프래그먼트들로 차례로 분할(래스터화)된다. 통상의 그래픽 렌더링 연산시에, 상기 렌더러는, 각 프래그먼트와 연관된 상기(예를 들면) 색(적색, 녹색, 청색, RGB)과 투명도(알파, α) 데이터를 수정하여 그 프래그먼트들이 정확히 표시될 수 있다. 그 프래그먼트들이 상기 렌더러를 전체 순회하였다면, 그들의 관련된 데이터 값들은, 표시를 위한 출력을 가능하게 메모리에 기억된다.
도 1은 표시될 화상의 일부를 개략적으로 도시하는 도 1은, 표시될 화상에 샘플링 마스크(34)를 반복 적용한 것을 도시한 것이다. 상기 샘플링 마스크(34)의 각 적용은, 표시되듯이 상기 화상의 픽셀에 해당한다. 각 샘플링 마스크는, 당해 상기 출력 픽셀에 대한 화상을 샘플링함에 따라서 그 픽셀이 최종 표시상에 어떻게 표시될지를 판정하는데 사용될 샘플링 포인트들(36)의 세트를 포함한다.
도 1에 도시된 예에서, 상기 샘플링 마스크(34)의 각 인스턴스는, 4개의 샘플링 포인트(36)를 갖는다. 상기 샘플링 마스크(34)의 분기된 도면을 도시하는 도 2는 이렇게 설명한다. 즉, 도 2는 생성될 렌더 출력의 주어진 픽셀에 대한 4개의 샘플링 포인트(38)에 해당하는 상기 샘플링 포인트들(36)의 어레이를 표현하는 4×샘플링 마스크(34)를 도시한 것이다. 그렇지만, 4×샘플링 마스크(34)를 사용하는 것이 불필요하다는 것을 알 것이다. 예를 들어, 실시예들에서, 각 픽셀은, 한번만 샘플링되어도 된다(즉, 그래서 픽셀마다 단일의 샘플링 포인트만이 있다). 마찬가지로, 그 밖의 실시예들에서, 그 밖의 샘플링 속도(예: 2×, 8×, 16×)가 적절하게 사용되어도 된다.
도 1은 단일의 프리미티브(32)의 형태로 상기 샘플링 마스크 어레이(30)상에 겹친 화상도 도시한 것이다. 여기서는, 간략함을 기하기 위해, 단일의 프리미티브를 포함하는 것으로서 상기 화상이 도 1에 도시되어 있다는 것을 알 것이다. 실제로, 상기 화상(또는 다른 출력)은, 많은, 오버랩핑 프리미티브들을 포함하여도 되고, 전형적으로는 포함할 것이다. 도 1로부터 알 수 있듯이, 상기 프리미티브(32)는 상기 샘플링 마스크 어레이(30)에서의 샘플링 마스크들의 일부를 완전히 겹치지만(진하게 윤곽이 보여짐), 단지 그 밖의 샘플링 마스크들의 일부 중 일부만을 통과한다.
상기 화상의 상기 프리미티브(32)를 처리하기 위해서, 상기 렌더링 시스템은, 본질적으로, 각 샘플링 마스크 적용의 샘플 포인트들의 각 세트에서 상기 샘플 포인들 중 어느 것이 상기 프리미티브(32)에 의해 덮이는지를 상기 래스터화 스테이지에서 판정하고 나서, 그 프리미티브(32)의 화상을 표시장치 상에 적절하게 표시할 수 있도록 그 덮인 샘플 포인트들에 대해 렌더링하고 저장할 것이다.
이렇게 본 실시예의 표시를 위한 상기 프리미티브(32)의 화상의 처리를, 본 발명에 따라 연산하여도 되는 그래픽 처리 파이프라인(1)을 개략적으로 도시하는 도 3을 참조하여 아래에 설명하겠다. 물론, 상기 그래픽 처리 파이프라인에 대한 그 밖의 구성들도 가능할 것이다.
도 3에 도시된 그래픽 처리 파이프라인(1)은, 타일 기반 렌더러이어서, 생성될 출력 프레임 등의 렌더 출력 데이터 어레이의 타일들을 산출한다. 당업자라면 알듯이, 원하는 경우, 그 밖의 렌더링 구성들을 사용할 수 있다.
타일 기반 렌더링에 있어서, 전체 렌더 출력, 예를 들면, 즉시 모드 렌더링에서처럼 한꺼번에 효율적으로 처리중인 프레임이라기보다는, 렌더 출력, 예를 들면 표시될 프레임은, 통상 "타일들"이라고 하는 보다 작은 복수의 서브영역들로 분할된다. 각 타일(서브영역)은 별개로(일반적으로는 하나씩 하나씩) 렌더링되고 나서, 그 렌더링된 타일들(서브영역들)은 완전한 렌더 출력, 예를 들면, 표시용 프레임을 제공하도록 재합성된다. 이러한 구성에서, 상기 렌더 출력은, 일반적으로, 사이즈와 형상이 일정한 서브영역들(타일들)(통상, 정사각형들이나 직사각형들 등)로 분할되지만, 이것은 필수적이지는 않다.
일반적으로, 상기 렌더 출력 데이터 어레이는, 스크린이나 프린터와 같은 표시장치에 표시하도록 구성된 하나의 출력 프레임일 수도 있지만, 또한, 예를 들면, 나중의 렌더링 패스들(passes)("렌더 투(to) 텍스처" 출력으로서도 알려짐) 등에서 사용하기 위한 중간 데이터를 포함할 수도 있다.
도 3은 본 실시예의 동작에 관련되는 그래픽 처리 파이프라인(1)의 주 요소들과 파이프라인 스테이지들을 도시한 것이다. 당업자라면 알듯이, 도 3에 도시되지 않은 그래픽 처리 파이프라인의 그 밖의 요소들도 있어도 된다. 또한, 여기서는, 도 3이 단지 개략적인 도면이고, 예를 들면, 실제로 상기 도시된 기능부들과 파이프라인 스테이지들은, 비록 도 3에 별개의 스테이지들로서 개략적으로 도시될지라도 상당한 하드웨어 회로들을 공유하여도 된다는 것을 주목해야 한다. 또한, 도 3에 도시된 것처럼 그래픽 처리 파이프라인의 각 스테이지, 요소 및 부 등이 원하는 대로 구현될 수도 있음에 따라서, 예를 들면, 필요한 연산과 기능들을 행하기 위한 적절한 회로 및/또는 처리 로직 등을 구비할 것이다.
도 3은 상기 래스터화 프로세스에 입력하기 위한 상기 그래픽 프리미티브들(폴리곤들)(2)이 생성된 후 상기 파이프라인 스테이지들을 개략적으로 도시한 것이다. 따라서, 이때, 상기 그래픽 데이터(버텍스 데이터)는, 상기 그래픽 프로세서에 제공된 상기 코맨드들과 버텍스 데이터에 응답하여, 프래그먼트 프론트엔드(frontend) 연산들(80), 이를테면 변환연산 및 라이팅 연산(미도시됨)과, 렌더링될 상기 프리미티브들을 셋업하기 위한 프리미티브 셋업 스테이지(미도시됨)가 실시되어 있다.
도 3에 도시된 것처럼, 상기 그래픽 처리 파이프라인(1)의 이 부분은, 래스터화 스테이지(3), 이른 Z(깊이) 및 스텐실 테스트 스테이지(4), 프래그먼트 셰이딩 스테이지(6), 늦은 Z(깊이) 및 스텐실 테스트 스테이지(7), 블렌딩 스테이지(9), 타일 버퍼들(10) 및 다운샘플링 및 라이트백(writeback)(멀티샘플 리졸브(resolve)) 스테이지(11)로 이루어진, 다수의 스테이지를 구비한다.
그래픽 처리 파이프라인(1)의 래스터화 스테이지(3)는, 렌더 출력(예를 들면, 표시될 화상)을 구성하는 프리미티브들을 개개의 처리용 그래픽 프래그먼트들로 래스터화하도록 연산한다. 이를 행하기 위해서, 래스터화기(3)는, 렌더링용 그래픽 프리미티브들(2)을 수신하고, 그 프리미티브들을 샘플링 포인트들로 래스터화하고, 그 프리미티브들을 렌더링하기 위한 (적절한 샘플링 위치들을 표현하는) 적절한 위치들을 갖는 그래픽 프래그먼트들을 생성한다.
상기 이른 Z/스텐실 스테이지(4)는, 이 스테이지에서 어떠한 프래그먼트들이 폐기될 수(추려낼 수) 있는지를 알기 위해서, 래스터화기(3)로부터 수신하는 프래그먼트들에 관해 Z(깊이) 테스트를 행한다. 이를 행하기 위해서, 상기 Z/스텐실 스테이지(4)는, 이미 렌더링되어 있던 프래그먼트들에 의해 새로운 프래그먼트들이 차단되는지( 또는 아닌지)를 판정하기 위해서, 상기 래스터화기(3)로부터 발행하는 프래그먼트들(과 연관된)의 깊이 값들과, 이미 렌더링된 프래그먼트들의 깊이 값들(이 깊이 값들이 타일 버퍼(10)의 일부인 깊이(Z) 버퍼에 기억된다)을 비교한다. 동시에, 이른 스텐실 테스트가 실시된다. 상기 이른 깊이 및 스텐실 테스트 스테이지(4)는, 클록 사이클당 단일의 깊이 및 스텐실 테스트를 행할 수 있도록 구성되어도 된다.
그리고, 상기 프래그먼트 이른 Z 및 스텐실 테스트 스테이지(4)를 통과하는 프래그먼트들은, 상기 프래그먼트 셰이딩 스테이지(6)에 보내진다. 프래그먼트 셰이딩 스테이지(6)는, 상기 렌더 출력을 위해(예를 들면, 상기 프래그먼트들의 표시를 위해) 그 프래그먼트들을 처리하여 적절한 프래그먼트 데이터를 생성하는 등 하기 위해서, 상기 이른 Z 및 스텐실 테스트들을 통과하는 프래그먼트들에 관해 적절한 프래그먼트 처리 연산들을 행한다.
이 프래그먼트 처리는, 적절한 프래그먼트 데이터를 생성하기 위해서, 임의의 적절한 원하는 프래그먼트 셰이딩 프로세스들, 이를테면, 상기 프래그먼트들에 관한 프래그먼트 셰이더 프로그램들을 실행하는 프로세스, 텍스처들을 프래그먼트들에 적용하는 프로세스, 포깅(fogging)이나 그 밖의 연산들을 상기 프래그먼트들에 적용하는 프로세스 등을 포함할 수도 있다. 본 실시예에서, 프래그먼트 셰이딩 스테이지(6)는, 하나의 셰이더 파이프라인(하나의 프로그램 가능 프래그먼트 셰이더)의 형태로 되어 있지만, 그 밖의 구성들, 이를테면 고정 함수 프래그먼트 셰이딩 유닛들의 이용 또는, 이 유닛들 대신에, 원하는 경우 가능할 것이다. 상기 프래그먼트 셰이더(6)는, 전체적으로 수신하는 프래그먼트와 관련된 상기 샘플링 포인트들 전부를 항상 처리하도록 구성된다.
상기 프래그먼트 셰이딩 스테이지(6)는, 현재의 프래그먼트에 대한 정확한 가변값을 판정하는데 사용되는 가변 보간기(가변 위치 평가기)(12)와 관련되어 있다. 특정한 보간 모드들, 이를테면 중심 매핑 모드에 대해서, 상기 가변 보간기는, 상기 프래그먼트내의 정확한 위치를 선택하여 상기 가변 데이터를 보간하기 위해 상기 프래그먼트의 관련된 커버리지 마스크를 사용한다. 따라서, 상기 가변 보간기(12)는, 중심 매핑을 위한 정확한 보간 위치를 선택할 수 있도록, 병렬로 수신하는 프래그먼트와 관련된 상기 샘플링 포인트들 전부를 처리할 수 있도록 구성된다.
그리고, 그 중에서 특히, 렌더링된 프래그먼트가 실제로 최종의 화상에서 보여지는지를 판정하기 위해서 상기 셰이딩된 프래그먼트들에 관한 파이프라인 깊이 테스트의 끝을 실시하는 "늦은" 프래그먼트 Z 및 스텐실 테스트 스테이지(7)가 있다. 이 깊이 테스트는, 타일 버퍼(10)에서 Z버퍼에 기억된 프래그먼트의 위치에 대한 Z 버퍼 값을 사용하여, 새로운 프래그먼트들에 대한 프래그먼트 데이터가, 프래그먼트 셰이딩 스테이지(6)로부터 발행하는 프래그먼트들(과 연관된)의 깊이 값들과 (그 깊이 버퍼에 기억된) 이미 렌더링되어 있던 프래그먼트들의 깊이 값들을 비교함으로써, 이미 렌더링되어 있던 프래그먼트들의 프래그먼트 데이터를 교체해야 하는지를 판정한다. 이 늦은 프래그먼트 깊이 및 스텐실 테스트 스테이지(7)도 상기 프래그먼트들에 관한 임의의 필요한 "늦은" 알파 및/또는 스텐실 테스트들을 실시한다.
그 후, 상기 늦은 프래그먼트 테스트 스테이지(7)를 통과하는 프래그먼트들은, 필요한 경우, 블렌더(9)에서 타일 버퍼들(10)에 이미 기억된 프래그먼트들과 임의의 필요한 블렌딩 연산들이 실행되어도 된다. 또한, (미도시된) 디더 등과 같은 프래그먼트들에 관해 필요한 임의의 그 밖의 나머지 연산들도 이 스테이지에서 실시되어도 된다.
끝으로, 상기 (블렌딩된) 출력 프래그먼트 데이터(값들)는, 예를 들면 표시용 프레임 버퍼에 출력될 수 있는 곳으로부터 타일 버퍼들(10)에 기록된다. 또한, 하나의 출력 프래그먼트에 대한 깊이 값은, 타일 버퍼들(10)내의 Z버퍼에 적절하게 기록된다. 따라서, 상기 타일 버퍼들 및 Z 버퍼는, 적절한 색들 등, 또는 그 버퍼들이 표현하는 샘플링 포인트들에 대한 Z값들을 기억한다. 상기 타일 버퍼들은, 상기 렌더 출력(예를 들면, 표시될 화상)의 일부를 표현하는 샘플 데이터의 어레이를 기억한다. 복수의 타일 버퍼들이 제공되어도 된다. 예를 들어, 실시예들에서, 3개의 타일 버퍼들이 구비되어도 되고, 이때 3개의 타일 버퍼들 중 2개는 샘플링 포인트마다 색(적색, 녹색, 청색) 값들을 기억하는데 사용되고(그것은 이 목적을 위해 하나의 타일 버퍼를 사용하는 것이 가능하지만, 2개가 바람직하다), 하나의 타일 버퍼는 샘플링 포인트마다 Z(깊이) 값들 및 스텐실 값들을 저장하는데 사용된다. 물론, 그 밖의 구성들도 가능할 것이다. 이 타일 버퍼들은, 별개의 버퍼들로서 제공되어도 되거나, 실제로 전부 동일하고 보다 큰 버퍼의 일부이어도 된다. 상기 타일 버퍼들은, 그래픽 처리 파이프라인(칩)(에 국소적이다)에 위치된다.
그 후, 상기 타일 버퍼들(10)로부터의 데이터는, 다운샘플링(멀티샘플 리졸브)부(11)에 입력되고 나서, (그래픽 처리 플랫폼 자체 상에 있지 않을 수도 있는) 출력 버퍼(13), 이를테면 표시장치(미도시됨)의 프레임 버퍼에 출력(라이트백)된다. 상기 표시장치는, 예를 들면, 픽셀들의 어레이로 이루어진 디스플레이, 이를테면 컴퓨터 모니터나 프린터를 구비할 수 있다.
상기 다운샘플링부(11)는, 상기 출력 버퍼(13)에 출력하기 위한 출력 값들(픽셀들)을 생성하기 위해서, 상기 타일 버퍼(10)에 기억된 상기 샘플 데이터를, (즉, 출력장치의 픽셀들에 대응한 픽셀 데이터의 어레이가 생성되도록) 출력버퍼(장치)에 대한 적절한 분해능으로 다운샘플링한다. 이 다운샘플링은, 임의의 적절한 방식으로 일어날 수 있다. 본 실시예에서, 상기 데이터의 선형 블렌딩은, 그 데이터를 다운샘플링하는데 사용된다. 그렇지만, 원하는 경우, 그 밖의 구성들이 가능할 것이다. 필요한 경우, 상기 다운샘플링부(11)는, 상기 출력 버퍼(13)에 출력하는 상기 데이터에 적절한 감마 보정도 적용하여도 되거나, 이것은, 예를 들면 프래그먼트 셰이딩 연산으로서, 또는 임의의 다른 적절한 원하는 방식으로 행해져도 된다.
상기 렌더 출력의 하나의 타일이 처리되었고 그것의 데이터가 저장을 위해 주 메모리에(예를 들면, (미도시된) 주 메모리에서의 일 프레임 버퍼에) 내보내졌으면, 전체 렌더 출력(예를 들면, 표시될 프레임(화상))을 생성하기 위해 충분한 타일들이 처리되어 있을 때까지, 다음 타일이 처리되는 등 한다.
따라서, 상기 프래그먼트들은, 상기 그래픽 처리 파이프라인내의 각종 스테이지들에서 처리된다. 본 기술들은 일반적으로 상기 그래픽 처리 파이프라인의 임의의 적절한 원하는 처리 스테이지(들)에 적용되어도 된다는 것을 알 것이다. 그렇지만, 바람직한 실시예들에서, 아래에 예시를 든 것처럼, 본 기술들은, 그래픽 처리 파이프라인(1)의 블렌더(9) 스테이지에 적용되어도 된다.
예를 들면, 상기 블렌더 스테이지(9)에 있어서, 사이클마다 복수의 프래그먼트들(예를 들면, 4개)은, 상기 블렌드 연산을 위해 수신되어도 된다. 각 프래그먼트는 처리될 1개, 4개, 8개, 16개 등의 샘플링 포인트들을 차례로 가져도 되고, 각 샘플링 포인트는, 일반적으로 4개의 성분들(즉, 적색, 녹색, 청색 및 알파, ('RGBA'))을 갖는다. 본 예에서, 동일색 블렌드 연산은 'RGB' 성분들 전부에 적용되고, 동일한 알파 블렌드 연산은 'A'성분들 전부에 적용된다. 그렇지만, 원리상, 상이한 연산들은 상이한 성분들에 적용되어도 된다. 이 경우에, 각 샘플링 포인트는, 어느 연산(들)이 행해져야 하는지를 명시하는 것도 가질 수도 있다.
도 4는, 종래의 방법에 따라 행해진 블렌더 연산의 일례를 도시한 것이다. 도시된 것처럼, 상기 블렌더 스테이지는, 2개의 블렌드 파이프(91, 92)를 구비한다. 이 블렌드 파이프들(91, 92)의 각각은, 사이클당 하나의 새로운 샘플링 포인트를 처리 가능하다. 이에 따라, 사이클마다, 상기 블렌더 스테이지는, 2개의 샘플링 포인트들을 처리 가능하다. 그렇지만, 도 4에 도시된 예에 대해서, (각각의 입력들, "0", "1", "2" 및 "3"에서) 상기 처리 스테이지의 입력(90)에서 처리될 샘플링 포인트가 4개 있다. 도 4에 도시된 종래의 연산에 있어서, (상기 픽셀들의 전부의) 상기 샘플링 포인트들의 전부는, 상기 블렌딩 연산 동안에 반복된다. 따라서, 도 4에 도시된 것처럼, 입력 "0" 및 "1"에서 상기 2개의 샘플링 포인트들은, 먼저 (상기 블렌더의 출력(96)에서 처리되어 모두 기록되는) 상기 블렌드 파이프들(91, 92)에 건네지고 나서, 입력 "2" 및 "3"에서 상기 2개의 샘플링 포인트들은 다음 사이클에서 상기 블렌드 파이프들(91, 92)에 건네진다. 본 예에서는, 이 때문에, 상기 4개의 샘플링 포인트들이 2개의 별도의 사이클들에서 상기 블렌드 파이프들(91, 92)에 건네진다.
그렇지만, 도 4에 도시된 상기 예에서 알 수 있는 것은, 입력들 "1", "2" 및 "3"의 각각에서의 샘플링 포인트들이 실제로, 동일한 데이터 값들(즉, 'B')을 갖고, 그러므로 상기 출력(96)에서 동일한 처리 결과를 나타낸다. 이러한 중복성은 본 발명의 실시예들에서 이용된다.
도 5는, 본 발명의 실시예에 따른 블렌더 연산의 일례를 도시한 것이다. 또, 상기 블렌더는, 2개의 블렌드 파이프들(91, 92)을 구비하고, 사이클당 2개의 샘플링 포인트들을 수신 가능하다. 그렇지만, 이제 동일성 체크 로직(93)은, 상기 블렌더 스테이지의 입력에 제공된다. 상기 샘플링 포인트들 중 어느 하나를 처리용 상기 블렌드 파이프들에 건네기 전에, 동일성 체크는, 상기 샘플링 포인트들 중 어느 하나가 동일한 처리 결과를 나타낼지를 판정하기 위해 상기 블렌더 스테이지의 입력에서 행해져도 된다. 본 예에서, 입력 "0"에서, 처리될 제1 샘플링 포인트는 'A'의 값을 갖는다. 그렇지만, 입력들 "1", "2" 및 "3"에서 그 밖의 샘플링 포인트들은, 동일한 값 'B'를 갖는다. 즉, 입력들 "1", "2" 및 "3"에서의 각 샘플링 포인트는, 동일한 RGBA값을 갖는다. 따라서, 상기 동일성 체크 로직(93)은, 각 입력 "1", "2" 및 "3"에서의 상기 샘플링 포인트들이 동일한 처리 결과(즉, 'B')를 나타낸다고 판정한다. 이 경우에, (상기 4개의 샘플링 포인트들의 각각에 대해서 보다는) 2개의 유일한 데이터 값들, 즉 'A' 및 'B'에 관해 블렌딩을 행하는데만 필요하다. 따라서, 상기 샘플링 포인트들의 배수가, 본 예에서처럼, 동일한 데이터 값들을 갖는 경우, 상기 블렌딩 실행들의 수는, 그에 따라 감소될 수 있다. 예를 들어, 도 5에 도시된 것처럼, 그 설명된 스킴에 따라, 입력 "0" 및 "1"에서의 2개의 샘플링 포인트들만이 처리되는 반면에, 입력들 "2" 및 "3"에서의 상기 샘플링 포인트들이 처리되지 않는다. 그 후, 입력 "1"에서의 샘플링 포인트로부터의 처리 결과는, 상기 입력에서 4개의 샘플링 포인트들의 각각에 대한 상기 데이터를 모두 기록하기 위해서, 상기 처리 스테이지의 출력에 제공되고 상기 적절한 장소들에 복사된 적절한 복제 로직(95)에 의해 복제될 수 있다. 따라서, 본 예에서, 그 성능은, 상기 샘플링 포인트들 전부가 단일의 연산으로 효과적으로 처리될 수 있으므로, 2배 향상되었다.
도시된 것처럼, 상기 복제된 결과들을 상기 정확한 장소들에 모두 기록시키기 위해서, 동일성 정보(94)는, 상기 동일성 체크 모듈(93)으로부터 상기 복제 로직(95)에 건네질 수도 있고, 이때의 이 동일성 정보는 어떤 데이터 값들을 복사할지(여기서, 'B')와 그것을 어디에 저장할지(여기서는, 출력들 "2" 및 "3")를 말한다. 이 때문에, 상기 동일성 정보(94)는, 일반적으로, 처리되는 상기 샘플링 포인트(들)에 대한 처리 결과를 적절한 장소에 적절하게 복사시키도록 처리되지 않은 상기 샘플링 포인트들의 장소들을 나타내는 정보("장소 정보")를 포함하여도 된다.
도 5에 도시된 예에서, 상기 동일성 체크는, 상기 입력에서 상기 샘플링 포인트들을 사용해서만 행해진다. 그렇지만, 상기 블렌드 파이프들(91, 92)내에서 현재 처리중인 샘플링 포인트들에 대해 유사한 동일성 체크를 행하는 것도 가능할 것이다. 이것의 일례는 도 6에 설명되어 있다. 도 6에 도시된 것처럼, 또, 상기 입력에 샘플링 포인트가 4개 있고, (입력 "0"에서) 그 중의 1개는 데이터 값 'A'을 갖는 반면에, (입력들 "1", "2" 및 "3"에서) 나머지 3개는 데이터 값 'B'를 갖는다. 그렇지만, 본 예에서, 이 동일한 데이터 값들('A' 및 'B')을 갖는 샘플링 포인트들은, 상기 블렌드 파이프들(91, 92)내에 이미 존재하고 처리중이다. 이 경우에, 상기 입력에서 상기 샘플링 포인트들 중 어느 하나를 처리하는 것이 필요하지 않다. 대신에, 상기 파이프라인내의 상기 샘플링 포인트들에 대한 처리 결과들은, 본질적으로 상술한 것과 같은 방식으로, 적절하게 생성된 동일성 정보(93)를 사용하여 상기 적절한 장소에 복제되고 모두 기록될 수 있다.
도 7은 본 발명의 실시예들에 따라 행해진 단계들을 설명하는 흐름도다. 제1 단계(단계 701)에서는, 상기 입력에서의 임의의 샘플링 포인트들이 동일한 처리 결과를 나타낼지(즉, 데이터 및 연산 속성들이 동일한지)를 알기 위해, 체크를 행한다. 그 후, 중복적이지 않은 임의의 샘플링 포인트들은, 이 샘플링 포인트들 중 어느 하나가 현재 상기 파이프라인내의 임의의 샘플링 포인트들과 동일한 처리 결과를 나타낼지를 알기 위해서 또 다른 체크를 행하는 다음 스테이지에 제공될 수 있다(단계 702). 그것이 사실이 아닐 경우, 유일한 샘플링 포인트들은 상기 처리 파이프라인에서 처리하기 위해 예정된다. 그 후, 이들에 대한 처리 결과는, 처리되지 않았던 임의의 다른 중복적인(redundant) 샘플링 포인트들에 대한 입력마다 복제될 수 있다(단계 704). 마찬가지로, 상기 제1 단계(단계 701)로부터 출력된 상기 샘플링 포인트들 중 어느 하나가 상기 파이프라인내의 샘플링 포인트들과 일치하지 않는 경우, 그 샘플링 포인트들은 처리될 필요가 없고, 대신에, 현재 상기 파이프라인내의 샘플링 포인트들에 대한 처리 결과는 입력마다 복제될 수 있다(단계 704).
실시예들에서, 상기 처리 스테이지의 상기 입력에 도달하는 샘플링 포인트들의 수는, 상기 처리 연산에 의해, 즉 단일의 판독연산 동안 메모리로부터 상기 처리 스테이지에 판독된 샘플링 포인트들의 수에 의해 결정되어도 된다. 그 시스템에 따라, 주어진 인스턴스에서 상기 처리 스테이지의 상기 입력에 도달하는 샘플링 포인트들 전부는, 단일의 프래그먼트와 관련된 샘플링 포인트들을 포함하여도 된다. 따라서, 상기 동일한 프래그먼트를 표현하는 상이한 샘플링 포인트들에 대해 상술한 비교를 행하여도 된다. 그렇지만, 복수의 상이한 프래그먼트들에 관계하는 상기 처리 스테이지에 다수의 샘플링 포인트들을 제공하여도 된다는 것도 고려한다. 이 경우에는, 다수의 상이한 프래그먼트들로부터의 샘플링 포인트간에 비교를 행하여도 된다. 예를 들면, 입력 버퍼는, 상기 처리 스테이지의 상기 입력에서, 보유되는 샘플링 포인트들의 수를 증가시키기 위해서 제공되는 것이 적절할 수도 있어, 비교하는데 이용 가능하다.
이것의 일례는 도 8에 설명되어 있다. 도 8에서, 입력 버퍼(80)는, (다수의 상이한 프래그먼트들과 관련된) 복수의 샘플링 포인트들을 갖도록 제공된다. 따라서, 중복적인 데이터를 체크하기 위해 상기 입력 버퍼(80)내의 상기 샘플링 포인트들 전부에 대해 동일성 체크를 행할 수 있다. 예를 들면, 도시된 것처럼, 입력 "0", "10" 및 "11"에서의 상기 샘플링 포인트들은 모두 동일한 데이터 값 'A'를 갖는다. 따라서, 입력 "0"에서의 샘플링 포인트만이 처리될 필요가 있고, 그 후 이 결과는 입력 "10" 및 "11"에서의 샘플링 포인트들에 대해 복제될 수 있다. 따라서 상기 샘플링 포인트들을 처리하는 순서는 변경될 수도 있어, 예를 들면, 상기 버퍼내에서 한층 더 후방의 샘플링 포인트들이 이와는 달리 있는 경우(예를 들면, 상기 블렌더가 상기 샘플링 포인트들의 전부에 걸쳐 순서적으로 반복하는 도 4에서 설명된 스킴에 따라 상기 연산을 행할 때)보다 조기에 효과적으로 앞당겨져 처리된다는 것을 알 것이다. 이 때문에, 입력 버퍼(80)를 이용하면 처리 효율에 있어서 한층 더 향상시킬 수도 있다.
상술한 예들에서는, 상기 처리 파이프라인을 완전히 활용하여, 즉 어떠한 주어진 경우에도 상기 블렌더 스테이지(9)의 블렌드 파이프들(91, 92)에 대한 샘플링 포인트들의 처리량이 본질적으로 연속적이다. 그렇지만, 그 밖의 구성들에서, 도 9에 설명된 것처럼, 처리될 다수의 샘플링 포인트들이 동일한 처리 결과를 나타낸다고 판정될 때, 상기 파이프라인들의 하나 이상의 채널들은, 예를 들면 처리 전력을 절약하기 위해서, 사용 금지되어도 된다.
예를 들면, 도 9에 도시된 것처럼, 처리될 샘플링 포인트가 2개가 있고, 각 샘플링 포인트는 4개의 성분(RGBA)을 갖는다. 각 샘플링 포인트는 각각의 블렌드 파이프(901, 902)에 의해 처리중이고, 각 블렌드 파이프(901, 902)는 그 2개의 샘플링 포인트들의 개개의 성분들을 처리하기 위한 복수의 채널들을 갖는다. 본 예에서, 상기 2개의 샘플링 포인트들에 대한 RGB값들은, 상이하다. 그렇지만, 그 2개의 샘플링 포인트들은 동일한 'A'값을 공유한다. 따라서, 제1 샘플링 포인트에 대한 'A'값만이 처리될 필요가 있고, 그 후 이 결과는 나머지 샘플링 포인트를 위해 복제될 수 있다. 이에 따라, 제2 샘플링 포인트를 처리하는데 사용된 상기 블렌드 파이프(902)에 대한 'A' 채널(902A)은 사용 금지될 수 있고, 제1 샘플링 포인트로부터의 'A'성분에 대한 처리 결과는 예를 들면, 상술한 것과 마찬가지로 복제될 수 있다.
도 9는 "성분별" 처리의 일례를 도시하지만, 도 9에서 설명된 스킴은 일반적으로 "샘플별" 처리에도 적용될 수 있다는 것을 알 것이다.
마찬가지로, 도 4 내지 도 8는 "샘플별" 처리를 참조하여 주로 설명하였지만, 다시, 이들은 "성분별" 처리에도 마찬가지로 적용될 수도 있다.
그 도면들은, 여기서 설명된 기술의 실시예들에 관련되는 데이터 처리장치들 및 시스템들의 요소들을 도시한 것이다. 당업자라면 알듯이, 상기 도면들에 설명되지 않은 상기 데이터 처리장치와 시스템의 그 밖의 요소들이 있을 수도 있다. 또한, 여기서는, 그 도면들은 개략적일 뿐이고, 예를 들면, 실제로 상기 도시된 요소들은, 비록 이 도면들에 별개의 요소들로서 개략적으로 도시되지만, 상당한 하드웨어 회로들을 공유하여도 된다(또는, 반대로, 요소들이 상당한 하드웨어 회로들을 공유하는 것으로서 도시되어 있는 경우, 이들은 실제로 별개의 요소들을 포함하여도 된다)는 것을 주목해야 한다.
상술한 것처럼, 여기서 기재된 기술의 실시예들은, 그래픽 처리에 관한 것이다. 그렇지만, 본 기술은, 유사한 고려사항을 적용하는, 즉 다수의 데이터 요소들이 처리될 필요가 있고, 이 데이터 요소들의 배수가 동일한 처리 결과를 나타낼 수도 있다는 것이 알려지는, 그 밖의 데이터 처리 시스템들에도 적용되어도 된다는 것을 알 것이다.
상기 상세한 설명은, 설명 및 기재 목적을 위해 제시되어 있다. 그것은, 완전하도록 또는, 여기서 설명된 기술을 개시된 정확한 형태로 제한하도록 구성되는 것이 아니다. 상술한 것을 고려하여 많은 수정 및 변형이 가능하다. 상술한 실시예들은, 고려된 특별한 용도에 적합하기 때문에 각종 실시예들과 각종 수정들에 있어서, 여기서 기재된 기술의 원리들과 그것의 실제 응용들을 보다 잘 설명하여서, 본 발명이 속하는 기술분야에서 숙련된 다른 사람들이 여기서 설명된 기술을 보다 잘 이용하는 것을 가능하게 하기 위해 선택되었다. 여기에 첨부된 청구항들이 그 범위를 규정하는 것으로 되어 있다.

Claims (21)

  1. 그래픽 처리 파이프라인의 처리 스테이지내의 처리될 하나 이상의 샘플링 포인트들의 세트를 각각 표현하는 그래픽 프래그먼트들을 처리하는 방법으로서,
    처리될 샘플링 포인트들의 풀을 제공하는 단계-상기 샘플링 포인트들의 풀내의 샘플링 포인트들의 수가 단일의 사이클에서 상기 처리 스테이지에 의해 처리될 수 있는 샘플링 포인트들의 수보다 크다-;
    상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 샘플링 포인트들의 상기 풀내의 샘플링 포인트들을 서로 비교하는 단계;
    상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 처리하고 상기 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 장소 정보를 생성하는 단계-상기 장소 정보는 이후에 상기 다수의 샘플링 포인트들 중 나머지(들)가 그들의 각각의 장소들에 대해 모두 기록되게 하도록 상기 다수의 샘플링 포인트들 중 나머지(들)를 나타내는 정보를 포함한다-; 및
    상기 제1 샘플링 포인트의 처리 결과를 복제하고 관련된 장소 정보에 근거하여 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소(들)에 대한 상기 복제된 결과를 모두 기록함으로써, 상기 다수의 샘플링 포인트들에 대한 처리 결과를 모두 기록하는 단계를 포함하는, 그래픽 프래그먼트들의 처리 방법.
  2. 제 1 항에 있어서,
    상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트만을 처리하며, 상기 다수의 샘플링 포인트들의 각각을 모두 기록하는 단계는, 처리되지 않고 있지만 동일한 처리 결과를 나타낸다고 판정되었던 상기 다수의 샘플링 포인트들의 나머지(들)의 각각에 대한 상기 제1 샘플링 포인트의 처리 결과를 복제하는 것을 포함하는, 그래픽 프래그먼트들의 처리 방법.
  3. 제 1 항에 있어서,
    상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해 상기 샘플링 포인트들의 상기 풀내의 샘플링 포인트들을 비교하는 단계는 상기 샘플링 포인트들의 하나 이상의 성분들의 처리가 동일한 처리 결과를 나타낼지를 판정하는 것을 포함하고, 다수의 샘플링 포인트들의 하나 이상의 성분들이 동일한 처리 결과를 나타낸다고 판정될 때, 그 다수의 샘플링 포인트들 중 제1 샘플링 포인트의 상기 하나 이상의 성분들만을 처리하는, 그래픽 프래그먼트들의 처리 방법.
  4. 제 1 항, 제 2 항 또는 제 3 항 중 어느 한 항에 있어서,
    상기 샘플링 포인트들의 배수가 동일한 데이터를 갖는지를 판정하기 위해 상기 샘플링 포인트들의 상기 풀내의 샘플링 포인트들을 비교하는 것을 포함하는, 그래픽 프래그먼트들의 처리 방법.
  5. 제 1 항, 제 2 항 또는 제 3 항 중 어느 한 항에 있어서,
    상기 샘플링 포인트들의 각각은 그 샘플링 포인트에 대한 상기 처리 스테이지에 의해 행해질 상기 처리 연산(들)을 판정하는 관련된 제어 정보를 갖고, 상기 방법은, 상기 샘플링 포인트들의 배수가, 동일한 데이터를 갖고 동일한 제어 정보를 가져 상기 샘플링 포인트들의 처리가 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 샘플링 포인트들의 풀내의 샘플링 포인트들을 비교하는 단계를 포함하는, 그래픽 프래그먼트들의 처리 방법.
  6. 제 1 항, 제 2 항 또는 제 3 항 중 어느 한 항에 있어서,
    상기 풀내의 하나 이상의 샘플링 포인트(들)이 현재 처리중인 샘플링 포인트와 동일한 처리 결과를 나타낼지를 판정하기 위해, 샘플링 포인트들의 상기 풀내의 하나 이상의 샘플링 포인트들을, 상기 처리 스테이지에 의해 현재 처리중인 샘플링 포인트들과 비교하는 단계와, 상기 풀내의 하나 이상의 샘플링 포인트(들)이 현재 처리중인 샘플링 포인트와 동일한 처리 결과를 나타낸다고 판정될 때, 현재 처리중인 상기 샘플링 포인트에 대한 상기 처리 결과를 복제함으로써 현재 처리중인 샘플링 포인트와 동일한 처리 결과를 나타낸다고 판정되는 상기 풀내의 상기 하나 이상의 샘플링 포인트(들)에 대한 상기 처리 결과를 모두 기록하는 단계를 더 포함하는, 그래픽 프래그먼트들의 처리 방법.
  7. 제 1 항, 제 2 항 또는 제 3 항 중 어느 한 항에 있어서,
    샘플링 포인트들의 상기 풀은 입력 버퍼내에 보유되는, 그래픽 프래그먼트들의 처리 방법.
  8. 제 1 항, 제 2 항 또는 제 3 항 중 어느 한 항에 있어서,
    샘플링 포인트들의 상기 풀내의 상기 샘플링 포인트들은, 단일의 프래그먼트에 관련되는, 그래픽 프래그먼트들의 처리 방법.
  9. 제 1 항, 제 2 항 또는 제 3 항 중 어느 한 항에 있어서,
    샘플링 포인트들의 상기 풀내의 상기 샘플링 포인트들은 복수의 상이한 프래그먼트들에 관련되고, 상이한 프래그먼트들로부터 다수의 샘플링 포인트들이 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해 비교를 행하는, 그래픽 프래그먼트들의 처리 방법.
  10. 그래픽 프래그먼트들을 처리하기 위한 그래픽 처리 파이프라인으로서,
    상기 그래픽 프래그먼트들은 처리될 하나 이상의 샘플링 포인트들의 세트를 각각 표현하고, 상기 그래픽 처리 파이프라인은 복수의 처리 스테이지들을 포함하고, 상기 그래픽 처리 파이프라인의 적어도 하나의 처리 스테이지는,
    처리될 샘플링 포인트들의 풀을 제공하는 입력회로-상기 샘플링 포인트들의 풀내의 샘플링 포인트들의 수가 단일의 사이클에서 상기 처리 스테이지에서 처리될 수 있는 샘플링 포인트들의 수보다 크다-;
    상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해 상기 샘플링 포인트들의 상기 풀내의 샘플링 포인트들을 서로 비교하는 비교기 회로;
    상기 샘플링 포인트들을 처리하는 처리회로;
    상기 샘플링 포인트들의 어느 것이 상기 처리회로에 의해 처리되는지를 제어하는 제어회로-상기 제어회로는, 상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 상기 처리 스테이지에 의해 처리되게 하고, 상기 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 장소 정보를 생성하여, 이후에 상기 다수의 샘플링 포인트들 중 나머지(들)가 그들의 각각의 장소들에 대해 모두 기록되게 하도록 구성된다-; 및
    상기 샘플링 포인트들에 대한 처리 결과를 모두 기록하는 출력회로-상기 출력회로는, 상기 제1 샘플링 포인트의 처리 결과를 복제하고, 관련된 장소 정보에 근거하여 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각에 대한 각각의 장소(들)에 대한 상기 복제된 결과를 모두 기록하도록 구성된다-를 구비하는, 그래픽 처리 파이프라인.
  11. 제 10 항에 있어서,
    상기 제어회로는, 상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트만을 처리시키도록 구성되고,
    상기 출력회로는, 처리되지 않고 있지만 동일한 처리 결과를 나타낸다고 판정되었던 상기 다수의 샘플링 포인트들의 나머지(들)의 각각에 대한 상기 제1 샘플링 포인트의 처리 결과를 복제함으로써, 상기 다수의 샘플링 포인트들의 각각을 모두 기록하도록 구성되는, 그래픽 처리 파이프라인.
  12. 제 10 항에 있어서,
    상기 비교기 회로는, 상기 샘플링 포인트들의 하나 이상의 성분들의 처리가 동일한 처리 결과를 나타낼지를 판정하기 위해, 샘플링 포인트들의 상기 풀내의 상기 샘플링 포인트들을 비교하도록 구성되고,
    상기 제어회로는, 다수의 샘플링 포인트들의 하나 이상의 성분들이 동일한 처리 결과를 나타낸다고 판정될 때, 그 다수의 샘플링 포인트들 중 제1 샘플링 포인트의 상기 하나 이상의 성분들만을 처리시키도록 구성되는, 그래픽 처리 파이프라인.
  13. 제 10 항, 제 11 항 또는 제 12 항 중 어느 한 항에 있어서,
    상기 비교기 회로는, 상기 샘플링 포인트들의 배수가 동일한 데이터를 갖는지를 판정하기 위해 샘플링 포인트들의 상기 풀내의 샘플링 포인트들을 비교하도록 구성되는, 그래픽 처리 파이프라인.
  14. 제 13 항에 있어서,
    상기 샘플링 포인트들의 각각은 그 샘플링 포인트에 대한 상기 처리 스테이지에 의해 행해질 상기 처리 연산(들)을 판정하는 관련된 제어 정보를 갖고, 상기 비교기 회로는, 상기 샘플링 포인트들의 배수가, 동일한 데이터를 갖고 동일한 제어 정보를 가져 상기 샘플링 포인트들의 처리가 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 샘플링 포인트들의 풀내의 샘플링 포인트들을 비교하도록 구성되는, 그래픽 처리 파이프라인.
  15. 제 10 항, 제 11 항 또는 제 12 항 중 어느 한 항에 있어서,
    상기 비교기 회로는, 상기 풀내의 하나 이상의 샘플링 포인트(들)이 현재 처리중인 샘플링 포인트와 동일한 처리 결과를 나타낼지를 판정하기 위해, 샘플링 포인트들의 상기 풀내의 하나 이상의 샘플링 포인트들을, 상기 처리 스테이지에 의해 현재 처리중인 샘플링 포인트들과 비교하도록 한층 더 구성되고,
    상기 풀내의 하나 이상의 샘플링 포인트(들)이 현재 처리중인 샘플링 포인트와 동일한 처리 결과를 나타낸다고 판정될 때,
    상기 출력회로는, 현재 처리중인 상기 샘플링 포인트에 대한 상기 처리 결과를 복제함으로써 현재 처리중인 샘플링 포인트와 동일한 처리 결과를 나타낸다고 판정되는 상기 풀내의 상기 하나 이상의 샘플링 포인트(들)에 대한 상기 처리 결과를 모두 기록하도록 구성되는, 그래픽 처리 파이프라인.
  16. 제 10 항, 제 11 항 또는 제 12 항 중 어느 한 항에 있어서,
    상기 입력회로는, 샘플링 포인트들의 상기 풀을 보유하기 위한 입력 버퍼를 구비하는, 그래픽 처리 파이프라인.
  17. 제 10 항, 제 11 항 또는 제 12 항 중 어느 한 항에 있어서,
    상기 입력회로는, 단일의 프래그먼트에 관련되는 복수의 샘플링 포인트들을 보유하도록 구성되는, 그래픽 처리 파이프라인.
  18. 제 10 항, 제 11 항 또는 제 12 항 중 어느 한 항에 있어서,
    상기 입력회로는, 상기 비교기 회로가 상이한 프래그먼트들을 표현하는 샘플링 포인트들을 비교할 수 있도록, 복수의 상이한 프래그먼트들에 관련되는 복수의 샘플링 포인트들을 보유하도록 구성되는, 그래픽 처리 파이프라인.
  19. 그래픽 처리 파이프라인의 처리 스테이지내의 처리될 하나 이상의 샘플링 포인트들의 세트를 각각 표현하는 그래픽 프래그먼트들을 처리하는 방법으로서,
    처리될 복수의 샘플링 포인트들을 상기 처리 스테이지의 복수의 처리 파이프라인들에 의해 병렬로 제공하는 단계;
    상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 복수의 샘플링 포인트들을 비교하는 단계;
    상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 처리하고, 상기 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 하나 이상의 각각의 처리 파이프라인(들)을 사용 금지시키는 단계;
    동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소를 나타내는 장소 정보를 생성하여서, 이후에 상기 다수의 샘플링 포인트들의 나머지(들)를 그들의 각각의 장소들에 대해 모두 기록되게 하는 단계; 및
    상기 제1 샘플링 포인트의 처리 결과를 복제하고 관련된 장소 정보에 근거하여 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소(들)에 대한 상기 복제된 결과를 모두 기록함으로써, 상기 다수의 샘플링 포인트들에 대한 처리 결과를 모두 기록하는 단계를 포함하는, 그래픽 프래그먼트들의 처리 방법.
  20. 그래픽 프래그먼트들을 처리하기 위한 그래픽 처리 파이프라인으로서, 상기 그래픽 프래그먼트들은 처리될 샘플링 포인트들의 세트를 각각 표현하고, 상기 그래픽 처리 파이프라인은 복수의 처리 스테이지들을 포함하고, 상기 그래픽 처리 시스템의 적어도 하나의 처리 스테이지는,
    처리될 복수의 샘플링 포인트들을 상기 처리 스테이지의 복수의 처리 파이프라인들에 의해 병렬로 제공하는 입력회로;
    상기 샘플링 포인트들의 배수가 상기 처리 스테이지에 의해 처리되었을 때 동일한 처리 결과를 나타낼지를 판정하기 위해, 상기 복수의 샘플링 포인트들을 비교하는 비교회로;
    복수의 샘플링 포인트들을 처리하기 위한 복수의 처리 파이프라인들을 포함하는 처리회로;
    상기 샘플링 포인트들의 배수가 동일한 처리 결과를 나타낸다고 판정될 때, 그 샘플링 포인트들 중 제1 샘플링 포인트를 상기 처리 스테이지에 의해 처리되게 하고, 상기 동일한 처리 결과를 나타낸다고 판정된 다수의 샘플링 포인트들 중 나머지(들)에 대한 하나 이상의 각각의 처리 파이프라인(들)을 사용 금지시키도록 구성되되, 샘플링 포인트들 중 어느 것이 상기 처리회로에 의해 처리되는지를 제어하는 제어회로로서, 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소를 나타내는 장소 정보를 생성하여서, 이후에 상기 다수의 샘플링 포인트들의 나머지(들)를 그들의 각각의 장소들에 대해 모두 기록되게 하도록 한층 더 구성된, 상기 제어회로; 및
    상기 다수의 샘플링 포인트들에 대한 처리 결과를 모두 기록하는 출력회로로서, 상기 제1 샘플링 포인트의 처리 결과를 복제하고 관련된 장소 정보에 근거하여 동일한 처리 결과를 나타낸다고 판정된 상기 다수의 샘플링 포인트들 중 나머지(들)의 각각의 장소(들)에 대한 상기 복제된 결과를 모두 기록하도록 구성된, 상기 출력회로를 구비하는, 그래픽 처리 파이프라인.
  21. 데이터 프로세서상에서 실행할 때 청구항 1, 2, 3 또는 19 중 어느 한 항에 기재된 방법을 행하는 소프트웨어 코드를 기억하는 컴퓨터 판독 가능한 기억매체.
KR1020190029037A 2018-03-15 2019-03-14 그래픽 처리 KR20190109279A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1804167.3 2018-03-15
GB1804167.3A GB2571979B8 (en) 2018-03-15 2018-03-15 Graphics processing

Publications (1)

Publication Number Publication Date
KR20190109279A true KR20190109279A (ko) 2019-09-25

Family

ID=62017702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190029037A KR20190109279A (ko) 2018-03-15 2019-03-14 그래픽 처리

Country Status (4)

Country Link
US (1) US10614546B2 (ko)
KR (1) KR20190109279A (ko)
CN (1) CN110276711B (ko)
GB (1) GB2571979B8 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2571979B8 (en) * 2018-03-15 2023-07-12 Advanced Risc Mach Ltd Graphics processing
KR20220141954A (ko) * 2021-04-13 2022-10-21 삼성디스플레이 주식회사 표시 장치 및 이를 이용한 표시 패널의 구동 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4747219B2 (ja) * 2009-04-08 2011-08-17 キヤノン株式会社 画像処理装置、画像処理方法
GB2497302B (en) * 2011-12-05 2017-04-12 Advanced Risc Mach Ltd Methods of and apparatus for processing computer graphics
KR102057163B1 (ko) * 2012-12-17 2019-12-18 에이알엠 리미티드 그래픽 처리 시스템에서 히든 표면의 제거
US9965876B2 (en) * 2013-03-18 2018-05-08 Arm Limited Method and apparatus for graphics processing of a graphics fragment
US9767595B2 (en) * 2013-05-02 2017-09-19 Arm Limited Graphics processing systems
US9741089B2 (en) * 2013-05-02 2017-08-22 Arm Limited Graphics processing systems
US9514563B2 (en) * 2013-08-30 2016-12-06 Arm Limited Graphics processing systems
US9933841B2 (en) 2014-04-17 2018-04-03 Arm Limited Reuse of results of back-to-back micro-operations
US9817466B2 (en) 2014-04-17 2017-11-14 Arm Limited Power saving by reusing results of identical micro-operations
US10514928B2 (en) 2014-04-17 2019-12-24 Arm Limited Preventing duplicate execution by sharing a result between different processing lanes assigned micro-operations that generate the same result
GB2525666B (en) * 2014-05-02 2020-12-23 Advanced Risc Mach Ltd Graphics processing systems
GB2553744B (en) * 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
US10311016B2 (en) * 2017-05-30 2019-06-04 Arm Limited Hidden surface removal in graphics processing systems
GB2571979B8 (en) * 2018-03-15 2023-07-12 Advanced Risc Mach Ltd Graphics processing

Also Published As

Publication number Publication date
GB2571979A8 (en) 2023-07-12
GB2571979B (en) 2022-07-06
GB2571979B8 (en) 2023-07-12
GB201804167D0 (en) 2018-05-02
GB2571979A (en) 2019-09-18
CN110276711B (zh) 2024-03-22
CN110276711A (zh) 2019-09-24
US20190287207A1 (en) 2019-09-19
US10614546B2 (en) 2020-04-07

Similar Documents

Publication Publication Date Title
US9965876B2 (en) Method and apparatus for graphics processing of a graphics fragment
US9558585B2 (en) Hidden surface removal in graphics processing systems
US10043306B2 (en) Using depth data in a graphics processing system
US10204440B2 (en) Graphics processing
US9536333B2 (en) Method and apparatus for improved processing of graphics primitives
JP2010102713A (ja) コンピュータグラフィックスを処理する方法および機器
US9519982B2 (en) Rasterisation in graphics processing systems
US10235792B2 (en) Graphics processing systems
US20170161917A1 (en) Graphics processing systems
US11049216B1 (en) Graphics processing systems
US10943385B2 (en) Using textures in graphics processing systems
KR20190109279A (ko) 그래픽 처리
US10726610B2 (en) Efficient graphics processing using metadata
US9916675B2 (en) Graphics processing systems
US10997756B2 (en) Processing of primitives in a graphics processor
US11321803B2 (en) Graphics processing primitive patch testing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal