KR100560088B1 - 타일형 그래픽스 아키텍쳐 - Google Patents

타일형 그래픽스 아키텍쳐 Download PDF

Info

Publication number
KR100560088B1
KR100560088B1 KR1020027013050A KR20027013050A KR100560088B1 KR 100560088 B1 KR100560088 B1 KR 100560088B1 KR 1020027013050 A KR1020027013050 A KR 1020027013050A KR 20027013050 A KR20027013050 A KR 20027013050A KR 100560088 B1 KR100560088 B1 KR 100560088B1
Authority
KR
South Korea
Prior art keywords
pipeline
graphics
bins
rendering
tiled
Prior art date
Application number
KR1020027013050A
Other languages
English (en)
Other versions
KR20030005251A (ko
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 KR20030005251A publication Critical patent/KR20030005251A/ko
Application granted granted Critical
Publication of KR100560088B1 publication Critical patent/KR100560088B1/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
    • 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
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Walking Sticks, Umbrellas, And Fans (AREA)

Abstract

타일형 그래픽스 아키텍쳐로 2D 연산들을 처리하는 방법을 기술한다. 그래픽스 컨트롤러는 3D 원형 및 2D 블릿 연산을 모두 처리한다. 3D 원형들은 이미 알려져 있는 기술을 사용하여 복수의 빈으로 분류된다. 2D 블릿 연산이 처리되어야 하는 경우, 이 2D 블릿 연산 또한 복수의 빈으로 분류된다. 분류된 3D 원형 및 분류된 2D 블릿 연산들은 그 후 빈마다 블릿 및 렌더링 엔진에 전달된다. 2D 블릿 연산들을 3D 원형들과 함께 복수의 빈으로 분류함으로써 2D 블릿 연산이 처리를 요구할 때마다 빈들을 플러싱(원형들을 렌더링 엔진에 전송)하지 않아도 된다. 2D 블릿 연산들을 복수의 빈으로 분류하는 것은 그래픽스 캐시 적중 실패(miss)의 빈도를 감소시키고 그래픽스 메모리 대역폭 이용을 향상시켜 전체 컴퓨터 시스템의 성능을 향상시킨다.
타일형, 그래픽스 아키텍쳐, 블릿, 원시 데이터, 빈, 렌더링, 캐시 적중 실패

Description

타일형 그래픽스 아키텍쳐 {TILED GRAPHICS ARCHITECTURE}
본 발명은 컴퓨터 시스템 분야에 관한 것으로, 더욱 자세하게는 타일형 아키텍쳐를 사용하는 그래픽스 시스템에서의 2D 그래픽스 연산 처리 분야에 관한 것이다.
컴퓨터 그래픽스 시스템은 보통 객체(object)의 그래픽 표현을 2 차원 비디오 디스플레이 스크린에 표시하기 위하여 사용된다. 현재의 컴퓨터 그래픽스 시스템은 매우 상세한 표현을 제공하며, 다양한 애플리케이션에 이용된다.
전형적인 컴퓨터 그래픽스 시스템에서, 디스플레이 스크린 상에 표현될 3 차원(3D) 객체는 그래픽스 원형들(primitives)로 나누어져 있다. 일반적으로, 이 표현될 3D 객체의 원형들은 호스트 컴퓨터에 의해 원시 데이터(primitive data)의 항으로 규정된다. 예를 들어, 원형이 삼각형인 경우, 호스트 컴퓨터는 이 원형을 각 꼭지점의 빨간색(R), 녹색(G) 및 파란색(B)의 색 값(color value)은 물론 꼭지점들의 X, Y, 및 Z 좌표의 항으로 규정할 수 있다. 부가적인 원시 데이터가 특정한 애플리케이션에 사용될 수 있다. 렌더링 하드웨어(rendering hardware) 는 각 원형을 표현하는 디스플레이 스크린 화소들과 각 화소에 대한 R, G, B 색 값을 계산하기 위하여 원시 데이터를 보간(interpolate)한다.
대표적인 컴퓨터 그래픽스 시스템은 또한 그래픽스 캐시 메모리(cache memory)를 포함한다. 그래픽스 캐시 메모리의 더욱 효율적인 사용을 위하여, 3D 원형들은 복수의 빈(bin)으로 분류(sort)된다. 널리 알려져 있는 이 기술은 종종 "타일링(tiling)"이라고 한다.
도 1 및 도 2는 3D 원형들을 복수의 빈 또는 "타일링"으로 분류하는 일례를 나타낸다. 이 예에서, 그래픽스 컨트롤러는 원형들(110, 120, 130)에 대한 데이터를 수신한다. 이 원형들(110, 120, 130)은 렌더링되어 디스플레이 스크린(100) 상에 표시된다. 3D 원형을 렌더링 하는 경우, 그래픽스 컨트롤러는 그래픽스 메모리로부터 디스플레이 데이터의 적절한 부분을 그래픽스 캐시 메모리로 읽어들인다. 그런 다음, 그래픽스 컨트롤러는 그 원형을 렌더링하고 렌더링된 원형을 그래픽스 캐시 메모리에 기억되어 있는 디스플레이 데이터와 결합시킨다. 그래픽스 메모리는 주 시스템 메모리(main system memory)에 배치될 수 있다.
비 타일형(non-tiled) 아키텍쳐에서는, 그래픽스 컨트롤러가 원형(110)을 렌더링하면, 그 다음에는 원형(120)을, 또 그 다음에 원형(130)을 렌더링하는 식으로, 매번 그래픽스 컨트롤러는 하나의 원형에서 그래픽스 메모리로부터 검색되어야 할 그 다음 디스플레이 데이터의 새로운 부분으로 이동하였고, 결과적으로 그래픽스 캐시에서 많은 적중 실패(miss)가 발생하여 그래픽스 메모리 대역폭의 이용이 더 현저해졌다.
그래픽스 메모리 대역폭 이용을 향상시키기 위하여, 원형들(110, 120, 130)에 대하여 타일 기능이 수행된다. 이 예의 원형들(110, 120, 130)은 도 2에 도시한 바와 같이 복수의 빈(210, 220, 230, 240)으로 분류된다. 이 분류 기술은 일반적으로 여러 원형들을 가로지르는 빈들이 어떤 것인지를 분석한 후, 그 원시 데이터의 복사본(copies)을 원형들을 가로지르는 빈들을 위한 주 메모리 내의 기억 영역(storage area)에 기록하는 마이크로프로세서를 포함한다. 그래픽스 컨트롤러는 그 후에 빈 기억 영역의 원시 데이터를 판독하고 분할하여 여러 타일에 맞는 더 작은 원형들을 생성한다. 예를 들어, 원형(110)은 빈(210)에 위치하는 원형(211)과 빈(220)에 위치하는 원형(221)을 생성하기 위하여 분할된다. 원형(120)은 빈(220)에 위치하는 원형(222)과 빈(240)에 위치하는 원형(242)을 생성하기 위하여 분할된다. 원형(130)은 빈(210)에 위치하는 원형(212)과 빈(230)에 위치하는 원형(241)을 생성하기 위하여 분할된다.
일단 원형들이 주어진 빈에 대하여 더 작은 원형들로 분할되면, 빈은 랜더링될 수 있다. 일반적으로, 그래픽스 컨트롤러는 복수의 빈을 한번에 하나씩 처리하였다. 때문에 특정 빈 내에 위치하는 각 원형들에 대한 적절한 디스플레이 데이터는 그래픽스 메모리의 동일한 영역에 기억되어, 원형들을 렌더링하는 경우에 더 적은 캐시 적중 실패(cache miss)를 가져올 것이고, 결과적으로 그래픽스 메모리 대역폭 이용이 향상된다.
그러나, 대표적인 그래픽스 시스템에서는 2 차원(2D) 연산과 3 차원(3D) 연산이 혼합되는 것 또한 일반적이다. 예를 들어, 마이크로프로세서는 몇몇 3D 객체에 대한 원시 데이터를 수신할 수 있으며, 그 후에 2D 블릿(blit) 연산을 수행하기 위한 명령(command)을 수신한 다음, 더 많은 3D 원시 데이터를 수신한다.
도 3은 대표적인 종래의 그래픽스 시스템이 타일형 아키텍쳐에서 2D 연산을 처리하는 방법을 설명하는 흐름도이다. 단계 310에서, 프로세서는 3D 원시 데이터를 수신하고, 그 원형들을 복수의 빈으로 분류한다. 단계 320에서 2D 블릿 연산이 수신된 경우, 원시 데이터를 포함하는 모든 빈이 플러싱(flushing)된다(렌더링되기 위해 그래픽스 컨트롤러로 전송). 그 다음에 단계 340에서, 2D 블릿 연산이 수행된다. 2D 블릿 연산에 이어, 프로세서는 추가적인 3D 원형들을 복수의 빈으로의 분류를 시작할 수 있다.
2D 연산이 수신될 때마다 빈들을 플러싱 및 랜더링하는 것은 주로 그래픽스 캐시 적중 실패의 증가에 기인하여 3D 원형들의 타일링 이점을 상실할 수 있다. 그 결과, 그래픽스 메모리 대역폭의 이용도가 더욱 커진다. 이 그래픽스 메모리 대역폭 이용의 결과적인 증가는 시스템 주 메모리의 일부가 그래픽스 메모리로 사용되어 많은 시스템 에이전트(system agent)가 시스템 주 메모리에 접근하기를 원하는 컴퓨터 시스템에서는 특히 문제가 될 수 있다. 그래픽스 컨트롤러에 의한 주 메모리 대역폭 이용의 증가는 전체 시스템 성능에 악영향을 미칠 수 있다.
본 발명에 따른 장치는, 적어도 하나의 3D 원형(three dimensional primitive)과 적어도 하나의 2D 블릿 연산(two dimensional blit operation)을 복수의 빈(bin)으로 분류(sort)하는 비닝부(binning unit)를 포함한다.
여기서, 상기 장치는, 상기 비닝부에 연결된 2D 파이프라인(pipeline)을 더 포함하며, 상기 비닝부는 2D 블릿 연산에 대응하는 복수의 타일링된(tiled) 2D 블릿 연산을 상기 2D 파이프라인에 전달하고, 상기 2D 파이프라인은 상기 복수의 타일링된 2D 블릿 연산을 실행하는 것이 바람직하다.
또, 상기 장치는, 상기 비닝부에 연결된 3D 파이프라인을 더 포함하며, 상기 비닝부는 3D 원형에 대응하는 복수의 타일링된 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고, 상기 3D 파이프라인은 상기 복수의 타일링된 3D 원형 렌더링 연산을 실행하는 것이 바람직하다.
나아가, 중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며, 상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 것이 바람직하다.
여기서, 상기 그래픽스 캐시 메모리는 동일한 다이(die)를 마이크로프로세서 캐시 메모리와 공유할 수 있다. 또, 상기 비닝부는 마이크로프로세서일 수 있다.
본 발명에 따른 시스템은, 마이크로프로세서, 시스템 메모리, 및 상기 마이크로프로세서와 상기 시스템 메모리 사이에 연결된 시스템 논리부를 포함하며, 상기 시스템 논리부는, 상기 시스템 메모리에의 액세스를 제공하는 메모리 컨트롤러(memory controller), 및 적어도 하나의 3D 원형 및 적어도 하나의 2D 블릿 연산을 복수의 빈으로 분류하는 비닝부를 포함하는 그래픽스 컨트롤러(graphics controller)를 포함한다.
여기서, 상기 그래픽스 컨트롤러는 상기 비닝부에 연결된 2D 파이프라인을 더 포함하며, 상기 비닝부는 2D 블릿 연산에 대응하는 복수의 타일링된 2D 블릿 연산을 상기 2D 파이프라인에 전달하고, 상기 2D 파이프라인은 상기 복수의 타일링된 2D 블릿 연산을 실행하는 것이 바람직하다.
또한, 상기 그래픽스 컨트롤러는 상기 비닝부에 연결된 3D 파이프라인을 더 포함하며, 상기 비닝부는 3D 원형에 대응하는 복수의 타일링된 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고, 상기 3D 파이프라인은 상기 복수의 타일링된 3D 원형 렌더링 연산을 실행하는 것이 바람직하다.
나아가, 중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며, 상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 것이 바람직하다.
또한, 상기 그래픽스 캐시 메모리는 동일한 다이를 마이크로프로세서 캐시 메모리와 공유할 수 있다.
본 발명에 따른 시스템은, 3D 원형 및 적어도 하나의 2D 블릿 연산을 복수의 빈으로 분류하는 마이크로프로세서, 상기 분류된 3D 원형 및 상기 분류된 2D 블릿 연산을 나타내는 데이터의 복사본을 기억하는 시스템 메모리, 및 상기 마이크로프로세서와 상기 시스템 메모리 사이에 연결된 시스템 논리부를 포함하며, 상기 시스템 논리부는, 상기 시스템 메모리에의 액세스를 제공하는 메모리 컨트롤러, 및 2D 파이프라인을 포함하는 그래픽스 컨트롤러를 포함하며, 상기 그래픽스 컨트롤러는 상기 2D 블릿 연산에 대응하는 복수의 타일링된 블릿 연산을 상기 2D 파이프라인에 전달하고, 상기 2D 파이프라인은 상기 복수의 타일링된 블릿 연산을 실행하는 것을 특징으로 한다.
여기서, 상기 그래픽스 컨트롤러는 3D 파이프라인을 더 포함하며, 상기 마이크로프로세서는 3D 원형에 대응하는 복수의 타일링된 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고, 상기 3D 파이프라인은 상기 복수의 타일링된 3D 원형 렌더링 연산을 실행하는 것이 바람직하다.
또한, 중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며, 상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 것이 바람직하다.
나아가, 상기 그래픽스 캐시 메모리는 동일한 다이를 마이크로프로세서 캐시 메모리와 공유할 수 있다.
본 발명에 따른 방법은, 제1 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계, 제2 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 및 상기 복수의 빈을 렌더링하는 단계를 포함한다.
본 발명에 따른 다른 방법은, 제1 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계, 제2 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 및 제1 빈 기억 영역에 기억된 데이터를 렌더링하는 단계를 포함하며, 상기 제1 3D 원형의 일부는 제1 타일을 가로지르고, 상기 2D 블릿 연산의 일부는 상기 제1 타일을 가로지르며, 상기 제2 3D 원형의 일부는 상기 제1 타일을 가로지르고, 상기 제1 빈은 상기 제1 타일에 대응하는 것을 특징으로 한다.
여기서, 상기 제1 빈 기억 영역에 기억된 상기 데이터를 렌더링하는 단계는, 상기 제1 및 제2 3D 원형의 어느 부분과 상기 2D 블릿 연산의 어느 부분이 상기 제1 타일 내에 맞는지를 판정하는 단계를 포함한다.
또한, 상기 제1 기억 영역에 기억된 상기 데이터를 렌더링하는 단계는, 상기 제1 타일에 맞는 상기 제1 3D 원형의 부분을 랜더링하는 단계, 상기 제1 타일에 맞는 상기 2D 블릿 연산의 부분을 실행하는 단계, 및 상기 제1 타일에 맞는 상기 제2 3D 원형의 상기 부분을 랜더링하는 단계를 더 포함한다.
본 발명에 따른 매체는, 명령어(instruction)들이 기억되며 기계로 판독 가능한 매체(machine-readable medium)로서, 컴퓨터 시스템에 의해 실행되는 경우, 상기 명령어들이 상기 컴퓨터 시스템으로 하여금, 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계, 상기 복수의 빈을 렌더링하도록 그래픽스 컨트롤러에 명령하는 단계를 포함하는 방법을 수행하도록 하는 기계로 판독 가능한 것을 특징으로 한다.
이하의 상세한 설명 및 본 발명의 실시예의 첨부 도면으로부터 본 발명을 더욱 완전히 이해할 수 있을 것이다. 그러나, 기술된 특정 실시예는 본 발명의 설명과 이해를 돕기 위한 것일 뿐, 본 발명을 한정하는 것은 아니다.
도 1은 종래의 시스템에 의해 디스플레이 스크린에 정렬된 수 개의 3D 객체를 나타내는 도면이다.
도 2는 종래의 시스템에 따라 복수의 빈으로 분류된 도 1의 수 개의 3D 객체를 설명하기 위한 도면이다.
도 3은 타일형 그래픽스 아키텍쳐에서 2D 연산을 처리하는 종래의 방법을 나타내는 흐름도이다.
도 4는 디스플레이 스크린에 정렬된 수 개의 3D 객체 및 2D 객체를 설명하는 도면이다.
도 5는 본 발명의 실시예에 따라 복수의 빈으로 분류된 도 4의 수 개의 3D 객체 및 2D 객체를 나타내는 도면이다.
도 6은 2D 연산들을 복수의 빈으로 분류하는 방법의 일 실시예를 나타내는 흐름도이다.
도 7은 본 발명의 실시예에 따라 구현되는 그래픽스 컨트롤러를 통합하는 시스템 논리 장치를 포함하는 시스템의 블록도이다.
타일형 아키텍쳐에서 2D 연산을 처리하는 방법의 일 실시예에 대하여 설명한다. 이 예에서, 3D 원형들과 2D 블릿 연산이 모두 처리될 것이다. 3D 원형은 이미 알려진 기술을 사용하여 복수의 빈으로 분류된다. 2D 블릿 연산이 처리될 경우, 이 2D 블릿 연산도 또한 복수의 빈으로 분류된다. 분류된 3D 원형들 및 분류된 2D 블릿 연산들은 그 후 빈마다(bin-by-bin basis)에 기초하여 드로잉 및 렌더링 엔진(drawing and rendering engine)에 전달된다. 2D 블릿 연산들을 3D 원형들과 함께 분류함으로써 2D 블릿 연산들이 처리를 요구할 때마다 빈들을 플러싱(원형들을 렌더링 엔진으로 전송)하지 않아도 된다. 2D 블릿 연산들을 복수의 빈으로 분류하는 것은 그래픽스 캐시 적중 실패의 빈도를 감소시키고 그래픽스 메모리 대역폭 이용도를 향상시켜 전체 컴퓨터 시스템의 성능을 향상시킨다.
여기에 기술된 실시예는 2D 블릿 연산에 대하여 설명한다. 용어 "2D 블릿 연산"은 2차원 객체를 디스플레이 스크린에 그릴 것을 지시하는 임의의 연산을 포함하도록 의도되어 있다. 2D 블릿 연산들은 또한 그래픽스 시스템의 색 또는 Z(깊이) 버퍼들을 초기화하는 데 사용될 수 있다. 또한 여기에 기술하는 실시예는 소수의 3D 및 2D 연산과 원형을 논의하지만, 본 실시예들은 대량의 3D 및 2D 연산과 원형을 처리하도록 의도되어 있다.
도 4는 디스플레이 스크린(400)에 그려진 수 개의 3D 원형 및 2D 객체를 표현한 것이다. 이 예의 경우, 2D 객체(240)에 대한 2D 블릿 연산은 물론 3D 원형들(410, 420, 430)이 마이크로프로세서에 의해 수신된다. 마이크로프로세서는 3D 원형들(410, 420, 430)을 하나 이상의 빈(510, 520, 530, 540)으로 분류한다.
비록 이 예에서는 본 발명을 보다 명확하게 설명하기 위하여 스크린 디스플레이 영역을 4 개의 빈으로 분할하여 설명하지만, 다른 실시예에서는 이 스크린 디스플레이 영역을 빈의 광범위한 개수 중 어느 것으로 분할할 수 있다. 대개, 빈의 수는 4 개를 훨씬 초과할 것이다.
도 4에 도시된 바와 같이, 3D 원형(410)은 일부는 빈(520)에, 그리고 일부는 빈(540)에 속한다. 3D 원형(420)은 일부는 빈(520)에, 그리고 일부는 빈(540)에 속한다. 3D 원형(430)은 일부는 빈(510)에, 일부는 빈(530), 그리고 일부는 빈(540)에 속한다. 2D 객체(440)는 일부는 빈(510)에, 그리고 일부는 빈(530)에 속한다.
도 5는 복수의 빈(510, 529, 539, 540)으로 분할된 2D 객체(440)는 물론 3D 원형(410, 420, 430, 440)을 나타낸다. 프로세서는 여러 원형의 복사본을 원형들을 가로지르는 모든 빈에 대한 그래픽스 메모리 기억 영역들에 전달한다. 예를 들어, 프로세서는 원형(410)에 대한 원시 데이터의 복사본을 빈(510, 520)에 대한 그래픽스 메모리 기억 영역에 전달할 것이다. 다른 예로서, 프로세서는 2D 객체(440)에 대한 데이터 복사본을 빈(510, 530)에 대한 그래픽스 기억 영역에 전달한다. 2D 객체(440)를 3D 원형들과 함께 빈으로 분류함으로써 프로세서가 2D 객체(440)에 대한 블릿 연산을 수신한 경우, 빈들을 플러싱(원형들을 그래픽스 컨트롤러 내의 렌더링 엔진에 전송)하지 않아도 된다. 2D 객체(440)를 복수의 빈으로 분류함으로써 그래픽스 캐시 적중 실패의 빈도를 줄이고 그래픽스 메모리 대역폭 이용도를 향상시켜 전체 컴퓨터 시스템 성능을 향상시킨다.
일단 3D 원형들과 2D 객체(440)가 복수의 빈으로 분류되면, 그래픽스 컨트롤러는 각 빈에 대한 데이터를 빈마다 판독하고, 큰 원형들을 각 타일 내에 맞는 더 작은 원형들로 분할한다. 예를 들어, 3D 원형(410)은 그래픽스 컨트롤러에 의해 분할되어 빈(510) 내의 원형(511)과 빈(520) 내의 원형(512)을 생성한다. 3D 원형(420)은 그래픽스 컨트롤러에 의해 분할되어 빈(510) 내의 원형(512), 빈(520) 내의 원형(522), 및 빈(540) 내의 원형(542)을 생성한다. 3D 원형(430)은 그래픽스 컨트롤러에 의해 분할되어 빈(530) 내의 원형(531)과 빈(540) 내의 원형(541)을 생성한다. 2D 객체(440)은 그래픽스 컨트롤러에 의해 분할되어 빈(510) 내의 객체(513)과 빈(530) 내의 객체(532)를 생성한다. 분할된 3D 원형들 및 분할된 2D 객체는 그런 다음 빈마다 드로잉 및 랜더링 엔진으로 전달된다.
도 6은 타일형 그래픽스 아키텍쳐에서 2D 블릿 연산들을 처리하는 방법의 일 실시예를 나타내는 흐름도이다. 단계 610에서, 3D 원형들은 수신되어 복수의 빈으로 분류된다. 이 예에서, 3D 원형들은 프로세서에 전달되고, 프로세서는 분류[비닝(binning)] 처리를 수행한다. 다른 실시예에서는 그래픽스 컨트롤러 내에서 분류 처리가 실행될 수도 있다.
단계 620에서, 2D 블릿 연산이 수신되었는지 여부에 따라 결정이 이루어진다. 만약 2D 블릿 연산이 존재하지 않으면, 프로세스는 단계 610으로 되돌아가고 추가적인 3D 원형들이 수신될 수 있다. 그러나 단계 620에서 2D 블릿 연산이 수신되었으면, 그 2D 연산도 또한 단계 630에서 복수의 빈으로 분류된다.
도 7은 시스템 논리 장치(710)에 배치된 그래픽스 컨트롤러(720)를 포함하는 시스템의 블록도이다. 그래픽스 컨트롤러(720)는 비닝부(binning unit)(721), 2D 블릿 엔진(722), 3D 렌더링 엔진(723), 디스플레이 출력부(725), 및 그래픽스 캐시 메모리(724)를 포함한다. 2D 블릿 엔진(722)은 2D 블릿 연산을 수행하기 위하여 사용되는 광범위한 회로들을 나타내도록 의도되어 있다. 3D 렌더링 엔진(723)은 3D 원형들을 처리하기 위하여 사용되는 광범위한 회로들을 나타내도록 의도 되어있다. 유사하게, 디스플레이 출력부(725)는 그래픽스 디스플레이 데이터를 디스플레이 모니터로 전달하기 좋은 적당한 형태로 변환하기 위하여 사용되는 광범위한 회로들을 나타내도록 의도되어 있다. 이 디스플레이 출력부(725)는 디스플레이 모니터(760)에 접속된다.
그래픽스 컨트롤러(720) 외에, 시스템 논리 장치(710)는 호스트 인터페이스부(host interface unit)(712), 시스템 메모리 인터페이스(714), 및 시스템 입/출력 인터페이스부(716)를 포함한다. 호스트 인터페이스부(712)는 비닝부(721) 및 시스템 메모리 인터페이스(714)를 포함하는 시스템 논리 장치(710) 내의 여러 부(unit)와 프로세서(705)를 연결하는 역할을 한다. 시스템 메모리 인터페이스(714)는 시스템 논리 장치(710)와 시스템 메모리(75) 사이의 통신을 제공한다. 시스템 메모리(750)는 그래픽스 메모리 공간(graphics memory space)(752)을 포함할 수 있다. 시스템 입/출력 인터페이스부(716)는 시스템 논리 장치(710)를 시스템 입/출력 장치(770)에 연결한다. 시스템 입/출력 장치(770)는 하드 디스크 컨트롤러, 키보드 컨트롤러 등의 광범위한 입/출력 장치를 포함하도록 되어있다. 그래픽스 캐시 메모리(724)는 동일한 다이(die)를 마이크로프로세서 캐시 메모리와 공유할 수 있다.
그 활동 중에, 프로세서(705)는 일련의 그래픽스 명령 및 원형들을 수신할 수 있다. 그래픽스 명령들 및 원형들은 3D 원형 및 2D 블릿 연산들을 포함할 수 있다. 도 4 내지 도 6과 관련하여 전술한 바와 같이, 프로세서(705)는 3D 원형들 및 2D 블릿 연산들을 복수의 빈으로 분류한다. 비닝 처리(binning process)의 일부로써, 프로세서(705)는 3D 원형들 및 2D 객체 데이터의 복사본을 그래픽스 메모리(752)의 빈 기억 영역에 기록한다.
그래픽스 컨트롤러(720)는 3D 원시 데이터 및 2D 객체 데이터를 그래픽스 메모리(752)로부터 빈마다 판독한다. 이 빈 데이터는 그래픽스 캐시 메모리(724)에 기억된다. 그래픽스 캐시 메모리(724)는 적어도 하나의 빈을 처리할 수 있는 충분한 디스플레이 데이터를 기억하기에 충분할 정도로 큰 것이 바람직하다. 그래픽스 캐시 메모리(724)는 시스템 메모리 인터페이스(714)를 통하여 그래픽스 메모리(752)를 액세스한다. 각 빈에 대한 데이터는 비닝부(721)로 전달된다. 비닝부(721)는 도 4 내지 도 6과 관련하여 전술한 바와 같이, 3D 원형들 및 2D 객체들을 그래픽스 컨트롤러(720)가 현재 처리하고 빈에 맞는 더 작은 원형들 및 객체들로 분할한다.
이어서 비닝부는 그 분할된 3D 원형들 및 2D 블릿 연산들을 2D 블릿 엔진(772)나 3D 렌더링 엔진(723)에 전달한다. 2D 블릿 엔진과 3D 렌더링 엔진은 모두 그래픽스 캐시 메모리(724)에 연결된다. 이 구성은 2D 블릿 엔진(722)이 3D 렌더링 엔진(723)에 의해 그래픽스 캐시 메모리(724)에 기억된 중간 렌더링 결과를 액세스할 수 있게 한다. 다른 실시예에서는 그래픽스 캐시 메모리(724)와 2D 블릿 엔진 사이를 연결하지 않을 수 있다. 그러나, 2D 블릿 엔진(722)과 그래픽스 캐시 메모리(724) 사이가 연결되어 있지 않으면, 2D 블릿 엔진(722)이 디스플레이 데이터의 수정이 필요할 때마다 그래픽 캐시 메모리(724)로부터 그래픽스 메모리(752)로 데이터를 기록하여야 할 것이다. 그 후에, 3D 렌더링 엔진(723)은 3D 원형들을 계속 렌더링하기 위하여 그래픽스 메모리(752)로부터 그래픽 캐시 메모리(724)로 데이터를 다시 읽어 들여야 할 것이다.
이 실시예에서, 시스템 메모리(750)는 그래픽스 메모리 공간(752)을 포함한다. 다른 실시예에서는 개별 그래픽스 메모리를 사용할 수 있다. 추가적인 실시예들에서는 또한 그래픽스 컨트롤러가 비닝 연산을 수행할 수도 있다. 또 다른 실시예에서는 그래픽스 컨트롤러(720)가 시스템 논리 장치에 통합되지 않고 개별 장치에 포함되어 시스템 논리 장치를 통하여 프로세서에 연결될 수도 있다.
전술한 명세서에서 본 발명은 특정 실시예들을 참조하여 기술하였다. 그러나 첨부된 청구범위에 기술한 본 발명의 사상과 범위를 벗어나지 않는 다양한 변형과 변경이 가능함은 명백하다. 따라서 본 명세서 및 도면은 제한적이기보다는 예시적인 것으로 간주되어야 한다.

Claims (20)

  1. 적어도 하나의 3D 원형(three dimensional primitive)과 적어도 하나의 2D 블릿 연산(two dimensional blit operation)을 복수의 빈(bin)으로 분류(sort)하는 비닝부(binning unit)를 포함하는 장치.
  2. 제1항에서,
    상기 비닝부에 연결된 2D 파이프라인(pipeline)을 더 포함하며,
    상기 비닝부는 2D 블릿 연산에 대응하는 복수의 타일링된(tiled) 2D 블릿 연산을 상기 2D 파이프라인에 전달하고,
    상기 2D 파이프라인은 상기 복수의 타일링된 2D 블릿 연산을 실행하는 장치.
  3. 제2항에서,
    상기 비닝부에 연결된 3D 파이프라인을 더 포함하며,
    상기 비닝부는 3D 원형에 대응하는 복수의 타일링된 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,
    상기 3D 파이프라인은 상기 복수의 타일링된 3D 원형 렌더링 연산을 실행하는 장치.
  4. 제3항에서,
    중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며,
    상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 장치.
  5. 제4항에서,
    상기 그래픽스 캐시 메모리는 동일한 다이(die)를 마이크로프로세서 캐시 메모리와 공유하는 장치.
  6. 제4항에서,
    상기 비닝부가 마이크로프로세서인 장치.
  7. 마이크로프로세서,
    시스템 메모리, 및
    상기 마이크로프로세서와 상기 시스템 메모리 사이에 연결된 시스템 논리부
    를 포함하며,
    상기 시스템 논리부는
    상기 시스템 메모리에의 액세스를 제공하는 메모리 컨트롤러(memory controller), 및
    적어도 하나의 3D 원형 및 적어도 하나의 2D 블릿 연산을 복수의 빈으로 분류하는 비닝부를 포함하는 그래픽스 컨트롤러(graphics controller)
    를 포함하는 시스템.
  8. 제7항에서,
    상기 그래픽스 컨트롤러는 상기 비닝부에 연결된 2D 파이프라인을 더 포함하며,
    상기 비닝부는 2D 블릿 연산에 대응하는 복수의 타일링된 2D 블릿 연산을 상기 2D 파이프라인에 전달하고,
    상기 2D 파이프라인은 상기 복수의 타일링된 2D 블릿 연산을 실행하는 시스템.
  9. 제8항에서,
    상기 그래픽스 컨트롤러는 상기 비닝부에 연결된 3D 파이프라인을 더 포함하며,
    상기 비닝부는 3D 원형에 대응하는 복수의 타일링된 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,
    상기 3D 파이프라인은 상기 복수의 타일링된 3D 원형 렌더링 연산을 실행하는 시스템.
  10. 제9항에서,
    중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포 함하며,
    상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 시스템.
  11. 제10항에서,
    상기 그래픽스 캐시 메모리는 동일한 다이를 마이크로프로세서 캐시 메모리와 공유하는 시스템.
  12. 3D 원형 및 적어도 하나의 2D 블릿 연산을 복수의 빈으로 분류하는 마이크로프로세서,
    상기 분류된 3D 원형 및 상기 분류된 2D 블릿 연산을 나타내는 데이터의 복사본을 기억하는 시스템 메모리, 및
    상기 마이크로프로세서와 상기 시스템 메모리 사이에 연결된 시스템 논리부
    를 포함하며,
    상기 시스템 논리부는
    상기 시스템 메모리에의 액세스를 제공하는 메모리 컨트롤러, 및
    2D 파이프라인을 포함하는 그래픽스 컨트롤러를 포함하며,
    상기 그래픽스 컨트롤러는 상기 2D 블릿 연산에 대응하는 복수의 타일링된 블릿 연산을 상기 2D 파이프라인에 전달하고,
    상기 2D 파이프라인은 상기 복수의 타일링된 블릿 연산을 실행하는
    시스템.
  13. 제12항에서,
    상기 그래픽스 컨트롤러는 3D 파이프라인을 더 포함하며,
    상기 마이크로프로세서는 3D 원형에 대응하는 복수의 타일링된 3D 원형 렌더링 연산을 상기 3D 파이프라인에 전달하고,
    상기 3D 파이프라인은 상기 복수의 타일링된 3D 원형 렌더링 연산을 실행하는 시스템.
  14. 제13항에서,
    중간 3D 렌더링 및 2D 블릿 결과를 기억하는 그래픽스 캐시 메모리를 더 포함하며,
    상기 그래픽스 캐시 메모리는 상기 2D 파이프라인 및 상기 3D 파이프라인에 연결되는 시스템.
  15. 제14항에서,
    상기 그래픽스 캐시 메모리는 동일한 다이를 마이크로프로세서 캐시 메모리와 공유하는 시스템.
  16. 제1 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,
    2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,
    제2 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 및
    상기 복수의 빈을 렌더링하는 단계
    를 포함하는 방법.
  17. 제1 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,
    2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,
    제2 3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계, 및
    제1 빈 기억 영역에 기억된 데이터를 렌더링하는 단계
    를 포함하며,
    상기 제1 3D 원형의 일부는 제1 타일을 가로지르고,
    상기 2D 블릿 연산의 일부는 상기 제1 타일을 가로지르며,
    상기 제2 3D 원형의 일부는 상기 제1 타일을 가로지르고,
    상기 제1 빈은 상기 제1 타일에 대응하는
    방법.
  18. 제17항에서,
    상기 제1 빈 기억 영역에 기억된 상기 데이터를 렌더링하는 단계는
    상기 제1 및 제2 3D 원형의 어느 부분과 상기 2D 블릿 연산의 어느 부분이 상기 제1 타일 내에 맞는지를 판정하는 단계를 포함하는 방법.
  19. 제18항에서,
    상기 제1 기억 영역에 기억된 상기 데이터를 렌더링하는 단계는
    상기 제1 타일에 맞는 상기 제1 3D 원형의 부분을 랜더링하는 단계,
    상기 제1 타일에 맞는 상기 2D 블릿 연산의 부분을 실행하는 단계, 및
    상기 제1 타일에 맞는 상기 제2 3D 원형의 상기 부분을 랜더링하는 단계를 더 포함하는 방법.
  20. 명령어(instruction)들이 기억되며 기계로 판독 가능한 매체(machine-readable medium)로서,
    컴퓨터 시스템에 의해 실행되는 경우, 상기 명령어들이 상기 컴퓨터 시스템으로 하여금
    3D 원형을 복수의 빈 중 적어도 하나로 분류하는 단계,
    2D 블릿 연산을 복수의 빈 중 적어도 하나로 분류하는 단계,
    상기 복수의 빈을 렌더링하도록 그래픽스 컨트롤러에 명령하는 단계를 포함하는 방법을 수행하도록 하는
    기계로 판독 가능한 매체.
KR1020027013050A 2000-03-31 2001-03-06 타일형 그래픽스 아키텍쳐 KR100560088B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/540,615 US6819321B1 (en) 2000-03-31 2000-03-31 Method and apparatus for processing 2D operations in a tiled graphics architecture
US09/540,615 2000-03-31
PCT/US2001/007218 WO2001075803A1 (en) 2000-03-31 2001-03-06 Tiled graphics architecture

Publications (2)

Publication Number Publication Date
KR20030005251A KR20030005251A (ko) 2003-01-17
KR100560088B1 true KR100560088B1 (ko) 2006-03-10

Family

ID=24156223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027013050A KR100560088B1 (ko) 2000-03-31 2001-03-06 타일형 그래픽스 아키텍쳐

Country Status (11)

Country Link
US (1) US6819321B1 (ko)
EP (1) EP1269417B1 (ko)
JP (1) JP4719399B2 (ko)
KR (1) KR100560088B1 (ko)
CN (2) CN103106640B (ko)
AT (1) ATE450843T1 (ko)
AU (1) AU2001240082A1 (ko)
DE (1) DE60140661D1 (ko)
HK (1) HK1049724B (ko)
TW (1) TW561422B (ko)
WO (1) WO2001075803A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741243B2 (en) * 2000-05-01 2004-05-25 Broadcom Corporation Method and system for reducing overflows in a computer graphics system
US6738069B2 (en) 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering
US7218317B2 (en) * 2003-08-25 2007-05-15 Via Technologies, Inc. Mechanism for reducing Z buffer traffic in three-dimensional graphics processing
US7266255B1 (en) * 2003-09-26 2007-09-04 Sun Microsystems, Inc. Distributed multi-sample convolution
US7023445B1 (en) * 2004-04-12 2006-04-04 Advanced Micro Devices, Inc. CPU and graphics unit with shared cache
JP4699036B2 (ja) * 2005-01-31 2011-06-08 三菱電機株式会社 グラフィクスハードウェア
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
KR100762811B1 (ko) 2006-07-20 2007-10-02 삼성전자주식회사 하프 플레인 에지 함수를 이용한 타일 비닝 방법 및 시스템
KR100793990B1 (ko) * 2006-09-18 2008-01-16 삼성전자주식회사 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템
US8139058B2 (en) * 2006-11-03 2012-03-20 Vivante Corporation Hierarchical tile-based rasterization algorithm
US9965886B2 (en) 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
GB0710795D0 (en) * 2007-06-05 2007-07-18 Arm Norway As Method of and apparatus for processing graphics
GB2458488C (en) * 2008-03-19 2018-09-12 Imagination Tech Ltd Untransformed display lists in a tile based rendering system
GB0900700D0 (en) 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
KR100927128B1 (ko) * 2009-04-30 2009-11-18 주식회사 넥서스칩스 타일 더티 테이블을 이용한 3d 그래픽 처리 장치 및 처리 방법
KR101683556B1 (ko) * 2010-01-06 2016-12-08 삼성전자주식회사 타일 기반의 렌더링 장치 및 렌더링 방법
GB201004673D0 (en) * 2010-03-19 2010-05-05 Imagination Tech Ltd Processing of 3D computer graphics data on multiple shading engines
WO2011161723A1 (ja) 2010-06-24 2011-12-29 富士通株式会社 描画装置および描画方法
US9342322B2 (en) 2011-09-12 2016-05-17 Microsoft Technology Licensing, Llc System and method for layering using tile-based renderers
KR101953133B1 (ko) 2012-02-27 2019-05-22 삼성전자주식회사 렌더링 장치 및 그 방법
JP5910310B2 (ja) 2012-05-22 2016-04-27 富士通株式会社 描画処理装置及び描画処理方法
US9317948B2 (en) 2012-11-16 2016-04-19 Arm Limited Method of and apparatus for processing graphics
US10204391B2 (en) 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
GB2537661B (en) 2015-04-22 2018-09-26 Imagination Tech Ltd Tiling a primitive in a graphics processing system
GB2537659B (en) * 2015-04-22 2019-05-01 Imagination Tech Ltd Tiling a primitive in a graphics processing system
US9892058B2 (en) 2015-12-16 2018-02-13 Advanced Micro Devices, Inc. Centrally managed unified shared virtual address space
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
CN106345118B (zh) * 2016-08-24 2019-07-30 网易(杭州)网络有限公司 一种渲染方法及装置
US10970118B2 (en) 2017-08-02 2021-04-06 Advanced Micro Devices, Inc. Shareable FPGA compute engine
US11422812B2 (en) 2019-06-25 2022-08-23 Advanced Micro Devices, Inc. Method and apparatus for efficient programmable instructions in computer systems
US11556133B2 (en) 2019-07-26 2023-01-17 International Business Machines Corporation Inter-vehicle collaboration to modify a parking queue

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953101A (en) * 1987-11-24 1990-08-28 Digital Equipment Corporation Software configurable memory architecture for data processing system having graphics capability
TW304254B (ko) * 1994-07-08 1997-05-01 Hitachi Ltd
US5835096A (en) * 1995-03-24 1998-11-10 3D Labs Rendering system using 3D texture-processing hardware for accelerated 2D rendering
US5886701A (en) * 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
JPH09265549A (ja) * 1996-03-28 1997-10-07 Hitachi Ltd 画像合成システム
US5945997A (en) * 1997-06-26 1999-08-31 S3 Incorporated Block- and band-oriented traversal in three-dimensional triangle rendering
US6094203A (en) * 1997-09-17 2000-07-25 Hewlett-Packard Company Architecture for a graphics processing unit using main memory
US6002409A (en) * 1997-10-29 1999-12-14 Cirrus Logic, Inc. Arbitration for shared graphics processing resources
US6031550A (en) * 1997-11-12 2000-02-29 Cirrus Logic, Inc. Pixel data X striping in a graphics processor
US6377266B1 (en) * 1997-11-26 2002-04-23 3Dlabs Inc., Ltd. Bit BLT with multiple graphics processors
US6078338A (en) * 1998-03-11 2000-06-20 Compaq Computer Corporation Accelerated graphics port programmable memory access arbiter
JPH11328441A (ja) * 1998-05-11 1999-11-30 Hitachi Ltd グラフィックス表示制御方法およびコンピュータグラフイックス
US6611272B1 (en) * 1998-07-02 2003-08-26 Microsoft Corporation Method and apparatus for rasterizing in a hierarchical tile order
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
WO2000011603A2 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
US6608625B1 (en) * 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
US6344852B1 (en) * 1999-03-17 2002-02-05 Nvidia Corporation Optimized system and method for binning of graphics data

Also Published As

Publication number Publication date
ATE450843T1 (de) 2009-12-15
AU2001240082A1 (en) 2001-10-15
CN103106640B (zh) 2016-11-02
WO2001075803A1 (en) 2001-10-11
EP1269417A1 (en) 2003-01-02
TW561422B (en) 2003-11-11
EP1269417B1 (en) 2009-12-02
CN103106640A (zh) 2013-05-15
US6819321B1 (en) 2004-11-16
HK1049724B (zh) 2010-07-16
KR20030005251A (ko) 2003-01-17
JP2003529859A (ja) 2003-10-07
DE60140661D1 (de) 2010-01-14
HK1049724A1 (en) 2003-05-23
JP4719399B2 (ja) 2011-07-06
CN1421022A (zh) 2003-05-28

Similar Documents

Publication Publication Date Title
KR100560088B1 (ko) 타일형 그래픽스 아키텍쳐
US7030878B2 (en) Method and apparatus for generating a shadow effect using shadow volumes
US7075542B1 (en) Selectable multi-performance configuration
US7920141B2 (en) Method and apparatus for rasterizer interpolation
US7202872B2 (en) Apparatus for compressing data in a bit stream or bit pattern
US7023437B1 (en) System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
US6480205B1 (en) Method and apparatus for occlusion culling in graphics systems
US7375727B1 (en) System, method and computer program product for geometrically transforming geometric objects
Strengert et al. Hierarchical visualization and compression of large volume datasets using GPU clusters.
US20060170703A1 (en) Color compression using an edge data bitmask in a multi-sample anti-aliasing scheme
US20070279411A1 (en) Method and System for Multiple 3-D Graphic Pipeline Over a Pc Bus
US7129941B2 (en) Sample replication mode with depth value calculation
US7277098B2 (en) Apparatus and method of an improved stencil shadow volume operation
EP1295256B1 (en) Method and system for image rendering with tiles
US6900810B1 (en) User programmable geometry engine
US8654135B1 (en) A-Buffer compression for different compression formats
JP3029878B2 (ja) 画像を表す複数の多角形を処理する装置及び方法
US6404428B1 (en) Method and apparatus for selectively providing drawing commands to a graphics processor to improve processing efficiency of a video graphics system
JP4624995B2 (ja) 三次元コンピュータグラフィック画像のテクスチャリング
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
EP1093085A2 (en) Controller for a parallel pipelined volume rendering system
US7061487B2 (en) Method and apparatus for improving depth information communication bandwidth in a computer graphics system
Yin et al. Cluster based real-time rendering system for large terrain dataset
EP1089225A2 (en) Parallel pipelined volume rendering system
Govindaraju Efficient visibility-based algorithms for interactive walkthrough, shadow generation, and collision detection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160303

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee