KR20090096750A - 타일링되고 프리패치되고 캐싱된 깊이 버퍼 - Google Patents

타일링되고 프리패치되고 캐싱된 깊이 버퍼 Download PDF

Info

Publication number
KR20090096750A
KR20090096750A KR1020097016403A KR20097016403A KR20090096750A KR 20090096750 A KR20090096750 A KR 20090096750A KR 1020097016403 A KR1020097016403 A KR 1020097016403A KR 20097016403 A KR20097016403 A KR 20097016403A KR 20090096750 A KR20090096750 A KR 20090096750A
Authority
KR
South Korea
Prior art keywords
pixel
depth
tile
data
dimensional screen
Prior art date
Application number
KR1020097016403A
Other languages
English (en)
Other versions
KR101009521B1 (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 KR20090096750A publication Critical patent/KR20090096750A/ko
Application granted granted Critical
Publication of KR101009521B1 publication Critical patent/KR101009521B1/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Abstract

3D 그래픽 파이프라인은 깊이 타일들의 캐시를 제공하는 프리패치 메커니즘을 포함한다. 프리패치 메커니즘은 예측적일 수 있으며, 캐시를 미리-충전하기 위해 이전 파이프라인 스테이지들로부터의 트라이앵글 지오메트리 정보를 이용하며, 그리하여 메모리 대역폭 효율을 증가시키도록 허용한다. z-값 압축 기법은 전력 소모 및 메모리 대역폭의 추가적인 감소를 허용하도록 선택적으로 이용될 수 있다.

Description

타일링되고 프리패치되고 캐싱된 깊이 버퍼{TILED PREFETCHED AND CACHED DEPTH BUFFER}
본 발명은 일반적으로 그래픽 프로세서들에 관한 것이며, 더욱 상세하게는, 그래픽 프로세서에 포함된 3D 그래픽 파이프라인에 관한 것이다.
그래픽 엔진들은 컴퓨터 및 텔레비전 스크린들과 같은 고정된 디스플레이 장치들에서 3-차원(3D) 이미지들을 디스플레이하기 위해 사용되어 왔다. 이러한 엔진들은 일반적으로 기존의 AC 전력 아웃렛들에 의해 전력을 공급받는 데스크톱 시스템에 포함되어 있었으며, 그리하여 전력-소모 제한들에 의해 크게 제약받지 않았다. 그러나, 최근의 경향은 3D 그래픽 엔진들을 배터리로 전력을 공급하는 핸드-헬드 장치들에 통합시키는 것이다. 이러한 장치들의 예들은 모바일 폰들 및 개인 정보 단말기(PDA)를 포함한다. 그러나, 유감스럽게도, 기존의 그래픽 엔진들은 많은 양의 전력을 소모하며 그리하여 이러한 저-전력 동작 환경들에 적절하지 않다.
도 1은 기존의 3D 그래픽 엔진에 포함된 기본적인 오픈 GL 래스터화(rasterization) 파이프라인의 블록 다이어그램이다. 도시된 바와 같이, 이러한 예의 래스터화 파이프라인은 트라이앵글(triangle) 설정 스테이지(101), 픽셀 쉐이 딩(shading) 스테이지(102), 텍스처(texture) 매핑 스테이지(103), 텍스처 블렌딩(blending) 스테이지(104), 시저(scissor) 테스트 스테이지(105), 알파 테스트 스테이지(106), 스텐실(stencil) 테스트 스테이지(107), 숨김 표면 제거(HSR: hidden surface removal) 스테이지(108), 알파 블렌딩 스테이지(109) 및 논리 연산 스테이지(110)를 포함한다.
3D 그래픽 시스템들에서, 다른 원시 형태들이 사용될 수 있더라도, 디스플레이될 각각의 오브젝트(object)는 일반적으로 정점(vertex) 정보에 의해 정의된 표면 트라이앵글들로 분할된다. 또한, 일반적으로, 그래픽 파이프라인은 오브젝트 또는 이미지의 트라이앵글들의 순차적인 배치(batch)들을 처리하도록 설계된다. 임의의 주어진 배치의 트라이앵글들은 시각적으로 다른 배치의 트라이앵글들과 오버랩될 수 있으며, 또한 주어진 배치 내에 있는 트라이앵글들이 서로에 대하여 오버랩되는 것이 가능하다.
도 1과 관련하여, 트라이앵글 설정 스테이지(101)는 이후의 파이프라인 스테이지들에 의해 실행되는 계산들에서 사용될 설정 계수들을 계산함으로써 각각의 트라이앵글을 "설정(setup)"한다.
픽셀 쉐이딩 스테이지(102)는 어떤 픽셀들이 각각의 트라이앵글에 의해 포함되는지를 계산하기 위해 설정 계수들을 사용한다. 트라이앵글들은 서로에 대하여 오버랩될 수 있기 때문에, 상이한 깊이(depth)들의 다수의 픽셀들이 스크린 디스플레이 상의 동일한 포인트에 위치될 수 있다. 특히, 픽셀 쉐이딩 스테이지(101)는 정점 정보를 이용하여 각각의 픽셀에 대한 컬러, 포그(fog), 깊이 값들, 텍스처 좌 표, 알파 값들 등을 보간(interpolate)한다. 임의의 다양한 쉐이딩 기법들이 이러한 목적을 위해 채택될 수 있으며, 쉐이딩 연산들은 트라이앵글별로 또는 픽셀별로 발생할 수 있다.
텍스처 매핑 스테이지(103) 및 텍스처 블렌딩 스테이지(104)는 텍스처를 트라이앵글들의 프로세스 배치의 각각의 픽셀로 추가하고 블렌딩하도록 동작한다. 매우 일반적으로, 이것은 정점 정보 내에 포함된 텍스처 좌표들에 따라 미리-정의된 텍스처들을 픽셀들로 매핑함으로써 이루어진다. 쉐이딩과 같은, 다양한 기법들이 텍스처링을 달성하기 위해 채택될 수 있다. 또한, 포그 프로세싱으로 알려진 기법이 구현될 수 있다.
시저 테스트 스테이지(105)는 디스플레이된 장면의 시야를 벗어난 트라이앵글들의 부분들(프래그먼트들(fragments))에 포함된 픽셀들을 버리도록 동작한다. 일반적으로, 이것은 소위 시저 직사각형(scissor rectangle) 내에 픽셀들이 있는지 여부를 결정함으로써 이루어진다.
알파 테스트 유니트(106)는 프래그먼트와 관련된 알파 값(투명도 값)과 기준 알파 값 간의 비교에 기반하여 조건부로 트라이앵글의 프래그먼트(보다 정확하게는, 프래그먼트에 포함된 픽셀들)를 버린다. 유사하게, 스텐실 테스트는 각각의 프래그먼트들 및 저장된 스텐실 값 간의 비교에 기반하여 조건부로 프래그먼트들을 버린다.
(또한, 깊이 테스트 스테이지로도 지칭되는) HSR 스테이지(108)는 동일한 디스플레이 위치를 가지는 다른 픽셀들의 깊이 값들에 기반하여 트라이앵글 프래그먼 트들에 포함된 픽셀들을 버린다. 일반적으로, 이것은 깊이 테스트를 받는 픽셀의 z-축 값(깊이 값)과 소위 z-버퍼(또는 깊이 버퍼)의 대응하는 위치에 저장된 z-축 값을 비교함으로써 이루어진다. 테스트된 픽셀이 z-버퍼에 저장된 z-축 값을 가지는 다른 픽셀의 의해 시야가 가리워진다는 것을 테스트된 픽셀의 z-축 값이 나타내면, 테스트된 픽셀은 버려진다. 반면에, 테스트된 픽셀이 시야로부터 가리워지지 않는 경우에는 z-버퍼 값이 테스트된 픽셀의 z-축 값으로 대체된다. 이러한 방식으로, 시야에서 가리워지는 밑에 있는 픽셀들은 위에 있는 픽셀들로 인하여 버려지게 된다.
알파 블렌딩 스테이지(109)는 오브젝트의 투명도를 달성하기 위해 알파 값들에 기반하여 컬러 버퍼에 이전에 저장된 픽셀들과 렌더링된(rendered) 픽셀들을 결합한다.
논리 연산 유니트(110)는 일반적으로 최종적인 픽셀 디스플레이 데이터를 획득하기 위한 파이프라인의 잡다한 나머지 프로세스들을 나타낸다.
임의의 그래픽 시스템들에서, 만족스러운 성능을 유지하면서 가능한 범위까지 프로세서 및 메모리 대역폭을 보존하는 것이 바람직하다. 이것은 대역폭들이 제한될 수 있는 휴대용 또는 핸드-헬드 장치들의 경우에 특히 그러하다. 또한, 이전에 언급한 바와 같이, 휴대용 또는 핸드-헬드 장치들에서 디스플레이를 위해 3D 그래픽들을 처리할 때 전력 소모를 최소화하고 대역폭 효율을 향상시키기 위한 산업계의 특별한 요구가 존재한다.
본 발명의 실시예들에 대한 일 양상에 따르면, 입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인을 포함하는 그래픽 프로세서가 제공된다. 상기 프로세서는 또한 래스터화 파이프라인의 프로세싱 스테이지들 중 적어도 하나에 의해 이용되는 데이터를 저장하는 메모리와, 적어도 하나의 프로세싱 스테이지에 도달하는 프로세싱되는 픽셀에 앞서서 상기 프로세싱되는 픽셀과 관련하여 상기 적어도 하나의 프로세싱 스테이지에 의해 이용되는 데이터를 검색하는 프리-패치(pre-fetch) 메커니즘을 포함한다.
본 발명의 실시예들에 대한 다른 양상에 따르면, 입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인을 포함하는 그래픽 프로세서가 제공되며, 상기 프로세싱 스테이지들은 숨김 표면 제거(HSR) 스테이지를 포함한다. 상기 프로세서는 또한 이전에 렌더링된 픽셀의 깊이 값을 저장하는 깊이 버퍼, 이전에 렌더링된 픽셀의 깊이 값을 검색하는 메모리 제어기, 및 파이프라인의 HSR 스테이지와 연결되고 메모리 제어기에 의해 검색된 깊이 값을 저장하는 캐시(cache) 메모리를 포함한다.
본 발명의 실시예들에 대한 다른 양상에 따르면, 입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인을 포함하는 그래픽 프로세서가 제공되 며, 상기 프로세싱 스테이지들은 숨김 표면 제거(HSR) 스테이지를 포함한다. 상기 프로세서는 또한 픽셀들의 2차원 블록의 깊이 값들을 저장하는 깊이 버퍼, 프로세싱되는 픽셀을 포함하는 픽셀들의 2차원 블록의 블록 주소를 생성하는 블록 주소 생성기, 래스터화 프로세서의 HSR 스테이지에 연결된 캐시 메모리, 및 깊이 버퍼로부터의 픽셀들의 2차원 블록의 깊이 값들을 검색하기 위해 블록 주소에 응답하며 캐시 메모리에 있는 깊이 값들을 저장하는 메모리 제어기를 포함한다.
본 발명의 실시예들에 대한 다른 양상에 따르면, 입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인과, 메인 메모리로부터 데이터를 프리-패치하고 래스터화 파이프라인을 통해 적어도 하나의 프로세싱 스테이지에 도달하는 픽셀 데이터에 앞서서 프로세싱 스테이지들 중 상기 적어도 하나의 프로세싱 스테이지로 데이터를 제공하기 위한 수단을 포함하는 그래픽 프로세서가 제공된다.
본 발명의 실시예들에 대한 다른 양상에 따르면, 입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인을 포함하는 그래픽 프로세서가 제공되며, 상기 프로세싱 스테이지들은 숨김 표면 제거(HSR) 스테이지를 포함한다. 상기 프로세서는 또한 픽셀들의 2차원 블록의 깊이 값들을 저장하는 계층적 깊이 버퍼, HSR 스테이지에 연결되며 픽셀들의 2차원 블록의 깊이 값들 중 최대 깊이 값과 초소 깊이 값을 저장하는 랜덤 액세스 메모리, 프로세싱되는 픽셀을 포함하는 픽셀들의 2차원 블록의 블록 주소를 생성하는 블록 주소 생성기, 래스터화 프로세서의 HSR 스테이지에 연결된 캐시 메모리, 및 깊이 버퍼로부터의 픽셀들의 2차원 블록의 깊이 값들을 검색하기 위해 블록 주소에 응답하며 캐시 메모리에 있는 깊이 값들을 저장하는 메모리 제어기를 포함한다.
본 발명의 실시예들에 대한 다른 양상에 따르면, 입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인을 포함하는 그래픽 프로세서가 제공되며, 상기 프로세싱 스테이지들은 숨김 표면 제거(HSR) 스테이지를 포함한다. 상기 프로세서는 또한 래스터화 파이프라인에 의해 렌더링된 픽셀 데이터와 관련된 2차원 블록의 깊이 값 데이터를 포함하며, 원시 오브젝트 데이터는 원시 형태를 나타내며, 2차원 블록이 프로세싱되는 픽셀을 포함하는 원시 형태 내에 완전히 포함되어 있는 경우에 2차원 블록의 깊이 값 데이터는 압축된다.
본 발명의 실시예들에 대한 다른 양상에 따르면, 그래픽 프로세싱 방법이 제공되며, 상기 방법은 입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인으로 원시 오브젝트 데이터를 제공하는 단계, 래스터화 파이프라인의 프로세싱 스테이지들 중 적어도 하나에 의해 사용되는 데이터를 메모리에 저장하는 단계, 및 적어도 하나의 프로세싱 스테이지에 도달하는 프로세싱되는 픽셀에 앞서서 상기 프로세싱되는 픽셀과 관련하여 상기 적어도 하나의 프로세싱 스테이지에 의해 이용되는 데이터를 상기 메모리로부터 프리-패치하는 단계를 포함한다.
본 발명의 실시예들에 대한 다른 양상에 따르면, 그래픽 프로세싱 방법이 제 공되며, 상기 방법은 입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인으로 원시 오브젝트 데이터를 제공하는 단계 - 프로세싱 스테이지들은 숨김 표면 제거(HSR) 스테이지를 포함함 -, 및 깊이 버퍼에 있는 깊이 값들의 2차원 블록 데이터를 선택적으로 압축하는 단계를 포함한다. 원시 오브젝트 데이터는 원시 형태를 나타내며, 2차원 블록이 프로세싱되는 픽셀을 포함하는 원시 형태 내에 완전히 포함되어 있는 경우에 2차원 블록의 깊이 값 데이터는 압축된다.
제시된 실시예들의 위에서 언급된 양상들 및 다른 양상들은 아래의 상세한 설명 및 도면으로부터 보다 명백해질 것이다.
여기에 제시되는 몇몇 실시예들은 깊이 타일들의 캐시를 제공하는 프리패치 메커니즘을 포함하는 3D 그래픽 파이프라인에 의해 적어도 부분적으로 특징지워진다. 프리패치 메커니즘은 예측적일 수 있으며, 캐시를 미리-충전(pre-charge)하기 위해 이전 파이프라인 스테이지들로부터의 트라이앵글 지오메트리 정보를 이용하며, 그리하여 메모리 대역폭 효율을 증가시키도록 허용한다.
다른 실시예들은 전력 소모 및 메모리 대역폭을 감소시키도록 허용하는 z-값 압축 기법에 의해 적어도 부분적으로 특징지워진다.
여러개의 바람직한 그러나 여기에 한정되지는 않는 실시예들이 이제 설명될 것이다.
여기서 명령 블록으로 지칭되는 블록이 3D 그래픽 파이프라인의 트라이앵글 설정 블록보다 선행될 수 있다. 명령 블록은 픽셀 스크린 위치 정보를 포함하는, 각각의 트라이앵글에 관한 모든 관련된 데이터를 포함한다. 본 발명의 실시예들에 따르면, 픽셀 스크린 위치 데이터는 파이프라인에서 순방향으로 제공되고 픽셀 프로세싱을 위해 필요한 데이터의 주소들을 계산하기 위해 이후의 파이프라인 스테이지들에 의해 사용된다. 픽셀들이 주어진 스테이지에 도달할 때까지, 상기 스테이지와 관련된 값들은 이미 캐시에 있을 것이며, 그리하여 대역폭 효율이 향상되도록 허용한다.
도 2는 본 발명의 일 실시예를 나타내는 단순화된 블록 다이어그램이다. 3D 그래픽 파이프라인은 명령 블록(200) 및 첫번째 내지 n번째 파이프라인 블록들(201a ... 201n)을 가지도록 도시되어 있다. 파이프라인 블록들 중 적어도 하나는 캐시 메모리(202a ... 202d)를 갖추고 있다. 미리 주소 정보를 파이프라인 스테이지(들) 1, 2, n-1 및/또는 n으로 포워딩함으로써, 프로세싱되는 픽셀이 파이프라인 스테이지(들)에 도달하기 전에 메인 메모리로부터 관련된 데이터를 검색하는 것이 가능해진다. 이러한 방식으로, 메모리 스루풋(throughput)이 증가된다.
또한, 대안적인 실시예에서, 프리-패치 메커니즘은 추가적으로 메모리 효율을 향상시키기 위해 예측적인 메커니즘을 수반한다. 이것은 도 3과 관련하여 이후에 설명되며, 도 3은 깊이 버퍼로부터의 z-값들(깊이 값들)의 예측적 프리-패칭에 대한 일례를 나타낸다.
3차원(3D) 래스터화 파이프라인들은 새롭게 프로세싱되는 픽셀이 이전에 렌 더링된 픽셀에 의해 가리워지는지 여부를 결정하기 위해 "깊이 테스트"를 이용한다. 상기 메커니즘은 깊이 값들(즉, z 값들)이 저장되고 래스터화 과정 동안 체크되는 "깊이 버퍼"(또한 "z-버퍼"로도 지칭됨)에 액세스하는 과정을 포함한다. 필수적으로 뷰어(viewer)로부터의 임의의 가시적인 픽셀의 거리는 깊이 버퍼에 깊이 값으로서 저장된다. 그 후에, 다른 프로세싱되는 픽셀이 스크린 상의 동일한 위치를 점유하도록 시도할 수 있다. 이전에 렌더링된 픽셀의 깊이 값(즉, 해당 픽셀 위치에서 깊이 버퍼에 저장된 깊이 값)이 판독되고 새롭게 프로세싱되는 픽셀의 값과 비교된다. 비교 결과가 새로운 픽셀이 뷰어에 더 근접하다고 표시하면, 새로운 픽셀은 가시적인 것으로 간주되어 깊이 버퍼의 이전 깊이 값은 새로운 픽셀의 깊이 값으로 대체될 수 있다. 새로운 픽셀은 추가적으로 파이프라인에 의해 처리되고, 결과적으로 프레임 버퍼에 렌더링된다. 반면에, 비교 결과가 새로운 픽셀이 뷰어로부터 더 멀리 떨어져 있다고 표시하면, 새로운 픽셀은 보이지 않는 것으로 간주되어 버려질 수 있고 깊이 버퍼의 이전 깊이 값이 유지된다. 이러한 프로세스는 숨김 표면 제어(HSR)로 지칭된다.
도 3은 트라이앵글 스트림이 z-값 픽셀 타일들로 어떻게 매핑되는지에 대한 예를 나타낸다. 트라이앵글들은 A 내지 E로 라벨링되며, 그러한 순서로 파이프라인 상에 나타난다. 타일들은 1-13의 번호가 매겨진다. 트라이앵글 A를 처리하기 위해, 타일들 1, 2, 3, 4, 5 및 8이 요구된다. 이에 따라, 픽셀 타일들 1, 2, 3, 4, 5 및 8의 z-값들은 깊이 버퍼로부터 프리-패칭되어 캐시 메모리에 저장된다. 다음으로, 트라이앵글 B를 처리하기 위해, 픽셀 타일들 4, 5, 8 및 9가 요구된다. 그러나, 픽셀 타일들 4, 5 및 8은 이미 캐시 메모리에 저장되어 있기 때문에, 깊이 버퍼로부터 픽셀 타일 9만을 프리-패칭하면 된다. 유사하게, 트라이앵글 C에 대하여는, 오직 타일 6만이 프리-패치되어야 한다. 메모리 대역폭 효율은 이러한 방식으로 예측적으로 타일들을 캐싱함으로써 향상된다.
도 4는 파이프라인의 숨김 표면 제거(HSR) 블록에서 사용될 z-값들을 프리-패칭하도록 구성된 3D 그래픽 파이프라인의 일례에 대한 블록 다이어그램이다. 상기 도면에서, 파이프라인은 명령 블록(400), 트라이앵글 설정 블록(401), 픽셀 쉐이딩 블록(402), HSR 블록(403), 텍스처 매핑 블록(404) 및 텍스처 블렌딩 블록(405)을 포함한다. 또한, HSR 블록(403)은 깊이 캐시(406)를 갖추고 있으며 깊이 버퍼(407)에 대한 액세스를 가진다.
동작에서, 깊이 픽셀 타일들의 주소 정보는 명령 블록(400)에서 직접 HSR 블록(403)으로 포워딩된다. HSR 블록(403)은 주소 정보에 따라 깊이 버퍼(407)로부터 깊이 값들을 프리-패칭하고, 그 후에 깊이 캐시(406)에 깊이 값들을 저장하도록 구성된다. 이와 같이, 프로세싱되는 픽셀이 파이프라인을 통해 HSR 블록(403)에 도달할 때, 이전에 렌더링된 픽셀의 깊이 값들은 HSR 프로세싱을 위해 캐시(406)로부터 빠르게 검색될 수 있다.
본 발명의 일 실시예의 깊이 버퍼 관리에 대한 예측적인 프리-패칭 기법은 소위 계층적 z-버퍼의 사용을 위해 제공되며, 이에 대한 예는 아래에서 설명된다.
도 5 및 6은 본 발명의 다른 실시예를 나타내는 기능 블록 다이어그램이며, 도 6은 도 5에 도시된 깊이 테스트 블록(504)의 동작을 설명하기 위한 기능 블록 다이어그램이다.
도 5에는 명령 엔진(501), 트라이앵글 설정 블록(502), 픽셀 쉐이딩 블록(503), (계층적 z-버퍼(미도시)를 포함하는) 깊이 테스트 블록(504), (깊이 버퍼를 포함하는) 메모리 시스템(505) 및 나머지 파이프라인 블록들(506)이 도시되어 있다.
동작에서, 명령 엔진(501)으로부터 트라이앵글 데이터는 트라이앵글 설정 블록(502)으로 제공된다. 트라이앵글 설정 블록은 대응하는 깊이 계수들, 지오메트리 데이터 및 속성 계수들을 출력하며, 이들은 모두는 픽셀 쉐이딩 블록(503)으로 제공된다. 그리하여, 명령 엔진(501)으로부터의 트라이앵글 바운딩 박스 데이터 및 트라이앵글 설정 블록(502)으로부터의 깊이 계수들과 함께, 픽셀 속성들 및 픽셀 주소가 픽셀 쉐이딩 블록(503)에 의해 깊이 테스트 블록(504)으로 제공된다. 그 후에 깊이 테스트 블록(504)은 프로세싱되는 픽셀 및 캐시 메모리(미도시)에 저장된 깊이 값들과 관련하여 깊이 테스트를 실행한다. 바람직하게는, 깊이 값들은 예측적으로 메모리 시스템(505)으로부터 검색되고 깊이 테스트를 실제 실행하기 전에 캐시 메모리에 저장된다. 그 후에 프로세싱되는 픽셀은 깊이 테스트의 결과로서 버려지거나, 또는 픽셀 주소 및 픽셀 속성들의 형태로 나머지 파이프라인 블록(506)으로 전송된다.
이미 언급된 바와 같이, 도 6은 도 5에 도시된 깊이 테스트 블록(504)의 동작을 설명하기 위한 기능 블록 다이어그램이다. 도 6에서 도시된 바와 같이, 이러한 예의 깊이 테스트 블록은 일반적으로 타일 인덱스 예측기(601), 타일 인덱스 생 성기(602), 깊이 보간기(603), 타일 테스트 블록(604), 픽셀 테스트 블록(607), 속성 버퍼(608) 및 깊이 캐시(609)를 포함한다.
속성 버퍼(608)는 파이프라인을 따라 이동하는 인입 픽셀들의 픽셀 속성들을 저장하기 위해 사용된다. 깊이 블록은 파이프라인이며, 속성 버퍼(608)는 파이프라인과 매칭된다. 아래에서 설명될 바와 같이, discard_pixel 신호들은 파이프라인(621)을 통해 플로우되는 픽셀들에 대한 유효한 삭제 또는 클리어 신호들이다.
타일 인덱스 예측기(601)는 프로세싱되는 트라이앵글에 의해 점유된 타일들을 표시하는 일련의 타일 인덱스들을 예측적으로 생성하기 위해 바운딩 박스 정보 bounding_box를 이용한다. 도 3과 관련하여 이전에 논의된 바와 같이, 메모리 대역폭 효율은 프로세싱되는 트라이앵글들과 관련하여 예측적인 타일들의 캐싱에 의해 향상된다. 프리패치 로직(610)은 깊이 캐시(609)의 캐시 판독 블록(612)을 제어하기 위해 타일 인덱스 예측기(601)로부터의 타일 인덱스들을 이용한다. 캐시 판독 블록(612)의 동작은 아래에서 설명될 것이다. 그러나, 프리패치 로직 블록(610)은 (아래에서 설명되는) 픽셀 테스트 블록으로부터 나중에 요청된 픽셀들이 캐시 RAM에 존재할 가능성이 크도록 캐시 판독 블록(612)의 이른(early) 타일 요청들을 수행한다.
타일 인덱스 생성기(602)는 인입 픽셀 주소 pixel_address_in으로부터 타일 인덱스 신호 tile_index_in를 생성한다. 동일한 타일 인덱스는 타일 인덱스 예측기(601)에 의해 이전에 예측되었기 때문에, 로직은 타일 인덱스 예측기(601) 및 타일 인덱스 생성기(602) 사이에서 공유될 수 있다는 것을 유의하도록 한다.
깊이 보간기(603)는 인입 픽셀 주소 pixel_address_in에 대하여 실제적으로 깊이 값 z_in을 래스터화하기 위해 깊이 계수들 z_coefficients 및 바운딩 박스 정보 bounding_box를 이용한다. 또한, 쉐이딩 블록(도 5 참조)의 일부로서 깊이 보간기(603)를 포함하는 것도 가능하다. 그러나, 이러한 예에서, 오직 계수들만이 임의의 주어진 타일에 대하여 저장되는 경우에 동일한 보간기가 z를 압축해제하기 위해 사용될 수 있기 때문에, 깊이 보간기(603)는 깊이 테스트 블록에서 구현된다. 이와 관련하여, 깊이 보간기는 또한 깊이 캐시 블록(609) 내에 있을 수 있다는 것을 유의하도록 한다.
타일 테스트 블록(604)은 본질적으로 계층적 z 테스트 블록이며 한계 테이블(605) 및 가시도(visibility) 체크 블록(606)을 포함하도록 구성된다. 한계 테이블(605)은 각각의 스크린 타일에 대한 최대 원거리 깊이 값(z-값) z_max_far과 최소 근접 깊이 값(z-값) z_min_near를 포함한다. 타일 인덱스 생성기(602)로부터의 tile_index는 한계 테이블(605)에 대한 주소로서 사용되며, 그 결과 한계 테이블(605)은 프로세싱되는 픽셀을 포함하는 타일에 대한 최소 깊이 값 z_min_near 및 최대 깊이 값 z_max_far을 생성한다. 그 후에 타일의 최소 깊이 값 z_min_near 및 최대 깊이 값 z_max_far은 z_in과 함께 가시도 체크 블록(606)으로 제공된다. 가시도 체크 블록(606)은 z_in과 z_min_near 및 z_max_far을 비교하며, 비교 결과는 z_in이 타일에 대한 z_max_far보다 멀리 떨어져 있는 경우, z_in이 타일에 대한 z_min_near보다 근접해 있는 경우, 또는 z_in이 타일에 대한 z_max_far보다 근접하나 z_min_near보다 멀리 떨어져 있는 경우와 같은 세 개의 가능한 결과들을 가질 수 있다.
z_in이 타일에 대한 z_max_far보다 멀리 떨어져 있는 경우에, 픽셀은 속성 버퍼(608)에 대한 discard_pixel 신호의 동작에 의해 버려지게 된다.
z_in이 타일에 대한 z_min_near보다 근접해 있는 경우에, 픽셀은 가시적이며 update_pixel 신호의 인에이블먼트(enablement)와 캐시 기록 블록(617)에 대한 update_pixel_tile_index, update_pixel_address, update_pixel_z 및 update_pixel_z_coefficients와 같이 도 6에서 지정된 신호들의 전송에 의해 업데이트되어야 한다. 캐시 기록 블록(617)은 캐시 태그 관리를 포함한다. 픽셀이 업데이트되면, 캐시 기록 블록(617)은 캐시 RAM(619)을 업데이트하고 외부 메모리 시스템(620)과 데이터 코히어런시(coherency)를 유지하도록 기능한다. 또한, 타일이 캐시 RAM(619) 또는 외부 메모리 시스템(620)에 다시 저장되면, 캐시 기록 블록(617)은 타일의 깊이 정보 pixel_z를 한계 생성기(618)로 스트리밍한다.
한계 생성기(618)는 타일의 z_max_far 및 z_min_near를 계산하며, 이는 메모리 시스템(620)에 저장된다. 그 후에, update_tile 신호가 인에이블되고, 신호들 update_tile_index, z_max_far 및 z_min_near은 한계 테이블(605)을 업데이트하기 위해 타일 테스트 블록(604)으로 전송된다.
이전에 언급된 바와 같이, 캐시 기록 블록(617)은 신호들 update_pixel_tile_index, update_pixel_address, update_pixel_z 및 update_pixel_z_coefficients를 수신한다. update_pixel_tile_index 신호는 본질적으로 캐시 블록 인덱스(또는 캐시 라인 인덱스)이다. update_pixel_address는 개별적인 픽셀을 어드레싱하기 위해 사용되는 캐시 주소이다. update_pixel_z는 개별적인 픽셀에 대한 개별적인 깊이 값(z-값)이다. update_pixel_z_coefficients 신호는 z-압축 기법의 일부로서 사용되는 계수들을 포함한다. 즉, 깊이 캐시(609)의 압축 테이블(611)은 어떤 타일들이 자신들만의 저장된 계수들을 가지고 있는지 계속해서 트래킹한다. 이러한 타일이 캐시 판독 블록(612)에 의해 발견되면, 계수들이 캐시 RAM(619)으로부터 판독되고 그 후에 개별적인 깊이 값들을 복원하기 위해 깊이 보간기(616)를 런 스루(run through)한다.
z_in이 z_max_far보다 근접하나 z_min_near보다 멀리 떨어져 있는 경우에, 픽셀은 타일의 최소값 및 최대값 사이에 있다. 이러한 경우에, 개별적인 픽셀 테스트가 pixel_test_enable 신호의 인에이블먼트에 의해 실행된다. 이에 대한 응답으로, 신호들 request_pixel, request_pixel_tile_index 및 request_pixel_address가 이전에 프로세싱된 픽셀의 깊이 값을 요청하기 위해 픽셀 테스트 블록(607)에 의해 깊이 캐시(609)로 전송된다. request_pixel 신호는 본질적으로 캐시 판독 명령이며, request_pixel_tile_index 및 request_pixel_address는 각각 타일 및 픽셀 주소들이다. 이러한 신호들에 응답하여, 캐시 판독 블록(612)은 메모리 인터페이스(613)를 통해 캐시 RAM(619)으로부터 이전에 프로세싱된 픽셀의 요청된 z-값을 검색한다. 캐시 판독 블록(612)은 캐시 태그 체킹 및 관리를 포함한다. 요청된 z-값은 request_pixel_z 신호로서 픽셀 테스트 블록(607)으로 제공되며, 픽셀 테스트 블록(607)은 프로세싱되는 픽셀이 가시적인지 여부를 결정한다. 픽셀이 가시적이 아니라고 결정되면, 타일 테스트 블록(604)과 관련하여 이전에 설명된 바와 같 이 discard_pixel 신호가 인에이블된다. 픽셀이 가시적이라고 결정되면, update_pixel 신호가 인에이블되고, update_pixel_tile_index, update_pixel_address, update_pixel_z 및 update_pixel_z_coefficients 신호들은 타일 테스트 블록(604)과 관련하여 이전에 설명된 바와 같이 동일한 방식으로 이용된다.
계층적 z-버퍼의 다른 레벨이 구현될 수 있다는 것을 유의하도록 하며, 이러한 레벨에서 트라이앵글들이 완전히 타일 내에 있다면, 완전한 트라이앵글들이 타일에 대한 최대 및 최소 값들에 기반하여 버려진다.
도 5 및 6의 실시예는 픽셀 타일들의 깊이 값들이 깊이 버퍼에 저장되고 검색되는 타일 동작 모드를 이용한다. 대역폭 효율을 추가적으로 향상시키기 위해, 픽셀 타일들을 나타내는 데이터를 압축하는 것이 바람직할 수 있다. 본 발명의 일 실시예에 따른 하나의 이러한 z-압축 기법이 아래에서 설명된다.
이러한 실시예에 대한 설명에서, 깊이 버퍼는 타일 모드(예를 들어, 4x4 픽셀들)로 분할되며 트라이앵글들이 타일 모드에서 렌더링된다고 가정한다.
파이프라인 프로세스 초기에, 각각의 트라이앵글의 픽셀들의 깊이 값들은 트라이앵글과 관련된 정점(vertex) 정보로부터 계산된다. 일반적으로, 선형 보간이 이러한 목적을 위해 이용된다.
이와 같이, 타일이 트라이앵글을 렌더링함으로써 업데이트되었던 z-버퍼에 있는 장소에 대응하면, 타일에 있는 깊이 값들은 다음과 같이 선형 함수로서 표현될 수 있다:
Z(x,y)=Azx+Bzy+Cz
여기서, x 및 y는 4x4 타일 내에 있는 각각의 픽셀의 수평 및 수직 좌표들을 표시한다. 타일의 상위-좌측 픽셀의 깊이 값을 (Z00), Az 및 Bz의 값으로 설정함으로써, 타일의 남아있는 픽셀들은 다음의 수학식에 따라 보간함으로써 획득될 수 있다:
Zij=Az*i+Bz*j+Z00 (i=0~3, j=0~3)
그리하여, 타일이 압축가능하면, 깊이 버퍼에 대한 16개의 깊이 값들 모두를 업데이트하는 대신에, 오직 Z00, Az 및 Bz만을 업데이트하면 된다. Az 및 Bz가 Z00와 동일한 데이터 정확도를 가지고 있다고 가정하면, 이것은 단지 정규적인 타일 정보의 3/16이 된다. 동일한 압축된 타일이 z-버퍼로부터 다시 판독되면, 오직 Z00, Az 및 Bz만을 판독하고 전체 타일의 깊이 값들을 획득하기 위해 위의 공식에 기반하여 압축해제 함수를 실행하면 된다.
도 7에 도시된 바와 같이, 타일은 자신이 트라이앵글 내에 완전히 포함되는 경우에만 압축될 수 있다. 도시된 바와 같이, 타일 A는 압축가능하지만, 타일들 B 및 C는 이들이 트라이앵글 경계를 넘어서 있기 때문에 압축가능하지 않다. 타일이 완전히 트라이앵글 내에 있는지 여부의 결정은 보통 타일의 모든 네 개의 코너 픽셀들이 트라이앵글 내부에 있는지 여부를 검사하는 것으로 충분하다.
모든 타일이 압축가능하지 않기 때문에, 온-칩(on-chip) 메모리는 특정한 타 일 블록이 깊이 버퍼에서 압축되어 있는지 여부를 표시할 수 있는 플래스들의 어레이(타일당 1-비트)을 저장하기 위해 사용될 수 있다. 타일이 깊이 버퍼로부터 판독되면, 대응하는 압축 플래그는 데이터의 압축해제가 필요한지 여부를 결정하기 위해 검사된다. 타일이 깊이 버퍼에 대하여 업데이트되고 있을 때, 타일이 압축가능하면, 압축된 데이터가 깊이 버퍼에 기록되며 대응하는 압축 플래그가 설정된다.
제시된 실시예들에 대한 설명은 임의의 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
도 1은 3D 그래픽 엔진에 포함된 기본적인 오픈 GL 래스터화 파이프라인의 일례에 대한 블록 다이어그램이다
도 2는 본 발명의 일 실시예에 따른 그래픽 파이프라인의 회로 블록 구성에 대한 단순화된 예를 나타낸다.
도 3은 본 발명의 다른 실시예에 따른 픽셀 타일(tile)들의 예측적 프리-패칭을 설명하기 위한 보기이다.
도 4는 본 발명의 다른 실시예에 따른 그래픽 파이프라인의 회로 블록 구성에 대한 단순화된 예를 나타낸다.
도 5는 픽셀들의 타일들의 z-값들이 예측적으로 프리-패칭되고 캐시에 저장되는 본 발명의 다른 실시예에 대한 블록 다이어그램을 나타낸다.
도 6은 도 5에 도시된 깊이 캐시의 동작을 설명하기 위한 블록 다이어그램을 나타낸다.
도 7은 본 발명의 일 실시예에 따른 z-압축의 대상들인 픽셀 타일들을 설명하기 위한 보기이다.

Claims (9)

  1. 그래픽 프로세서로서,
    입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인 - 상기 프로세싱 스테이지들은 숨김 표면 제거(HSR) 스테이지를 포함함 -; 및
    상기 레스터화 파이프라인에 의해 렌더링되는 픽셀 데이터와 관련된 2차원 스크린 타일들의 깊이 값 데이터를 포함하는 깊이 버퍼를 포함하며,
    상기 원시 오브젝트 데이터는 원시 형태를 나타내며, 2차원 스크린 타일이 프로세싱되는 픽셀을 포함하는 상기 원시 형태 내에 완전히 포함되어 있는 경우에 상기 2차원 스크린 타일에 대한 상기 깊이 값 데이터는 압축되는 그래픽 프로세서.
  2. 제 1 항에 있어서,
    상기 원시 형태는 삼각형인 그래픽 프로세서.
  3. 제 2 항에 있어서,
    상기 2차원 스크린 타일은 픽셀들의 4x4 픽셀들 타일인 그래픽 프로세서.
  4. 제 1 항에 있어서,
    상기 깊이 값 데이터는 상기 2차원 스크린 타일의 깊이 값들의 상대적인 값들을 설 명하는 수학식의 계수들(Az,Bz,Cz)을 저장함으로써 압축되며, 상기 수학식은 Z(x,y)=Azx+Bzy+Cz 인 그래픽 프로세서.
  5. 그래픽 프로세싱 방법으로서,
    입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인으로 원시 오브젝트 데이터를 제공하는 단계 - 상기 프로세싱 스테이지들은 숨김 표면 제거(HSR) 스테이지를 포함함 -; 및
    깊이 버퍼에 있는 2차원 스크린 타일들의 깊이 값 데이터를 선택적으로 압축하는 단계를 포함하며,
    상기 원시 오브젝트 데이터는 원시 형태를 나타내며, 상기 2차원 스크린 타일이 프로세싱되는 픽셀을 포함하는 상기 원시 형태 내에 완전히 포함되어 있는 경우에 상기 2차원 스크린 타일의 깊이 값 데이터는 압축되는 방법.
  6. 제5항에 있어서,
    상기 원시 형태는 삼각형인, 방법.
  7. 제6항에 있어서,
    상기 2차원 스크린 타일은 4x4 픽셀들 타일인, 방법.
  8. 제5항에 있어서,
    상기 깊이 값 데이터는 상기 2차원 스크린 타일의 깊이 값들의 상대적인 값들을 설명하는 수학식의 계수들(Az,Bz,Cz)을 저장함으로써 압축되며, 상기 수학식은 Z(x,y)=Azx+Bzy+Cz 인, 방법.
  9. 그래픽 프로세서로서,
    입력 원시 오브젝트 데이터로부터 디스플레이 픽셀 데이터를 렌더링하는 복수의 순차적으로 배열된 프로세싱 스테이지들을 포함하는 래스터화 파이프라인으로 원시 오브젝트 데이터를 제공하기 위한 수단 - 상기 프로세싱 스테이지들은 숨김 표면 제거(HSR) 스테이지를 포함함 -; 및
    깊이 버퍼에 있는 2차원 스크린 타일들의 깊이 값 데이터를 선택적으로 압축하기 위한 수단을 포함하며,
    상기 원시 오브젝트 데이터는 원시 형태를 나타내며, 상기 2차원 스크린 타일이 프로세싱되는 픽셀을 포함하는 상기 원시 형태 내에 완전히 포함되어 있는 경우에 상기 2차원 스크린 타일의 깊이 값 데이터는 압축되는, 그래픽 프로세서.
KR1020097016403A 2005-03-21 2006-03-21 타일링되고 프리패치되고 캐싱된 깊이 버퍼 KR101009521B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/086,474 US8089486B2 (en) 2005-03-21 2005-03-21 Tiled prefetched and cached depth buffer
US11/086,474 2005-03-21

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020077024249A Division KR101036434B1 (ko) 2005-03-21 2006-03-21 타일링되고 프리패치되고 캐싱된 깊이 버퍼

Publications (2)

Publication Number Publication Date
KR20090096750A true KR20090096750A (ko) 2009-09-14
KR101009521B1 KR101009521B1 (ko) 2011-01-18

Family

ID=36680626

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020097016403A KR101009521B1 (ko) 2005-03-21 2006-03-21 타일링되고 프리패치되고 캐싱된 깊이 버퍼
KR1020077024249A KR101036434B1 (ko) 2005-03-21 2006-03-21 타일링되고 프리패치되고 캐싱된 깊이 버퍼

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020077024249A KR101036434B1 (ko) 2005-03-21 2006-03-21 타일링되고 프리패치되고 캐싱된 깊이 버퍼

Country Status (7)

Country Link
US (1) US8089486B2 (ko)
EP (1) EP1864256A1 (ko)
JP (2) JP4861403B2 (ko)
KR (2) KR101009521B1 (ko)
CN (1) CN101176119B (ko)
CA (1) CA2601452A1 (ko)
WO (1) WO2006102380A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9761039B2 (en) 2014-07-22 2017-09-12 Samsung Electronics Co., Ltd. Method and apparatus for hybrid rendering

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9123173B2 (en) * 2005-12-15 2015-09-01 Nvidia Corporation Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
US8300050B2 (en) * 2006-11-28 2012-10-30 Adobe Systems Incorporated Temporary low resolution rendering of 3D objects
US8059124B2 (en) 2006-11-28 2011-11-15 Adobe Systems Incorporated Temporary non-tiled rendering of 3D objects
ITMI20070038A1 (it) * 2007-01-12 2008-07-13 St Microelectronics Srl Dispositivo di renderizzazione per grafica a tre dimensioni con architettura di tipo sort-middle.
KR100883804B1 (ko) 2007-05-16 2009-02-16 박우찬 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치
CN101802872B (zh) * 2007-09-12 2016-06-15 爱立信电话股份有限公司 深度缓冲器压缩
US8040349B1 (en) 2007-12-04 2011-10-18 Nvidia Corporation System and method for structuring an A-buffer
US8169442B2 (en) * 2007-12-27 2012-05-01 Stmicroelectronics S.R.L. Graphic system comprising a fragment graphic module and relative rendering method
US8654135B1 (en) 2008-09-10 2014-02-18 Nvidia Corporation A-Buffer compression for different compression formats
US8130223B1 (en) * 2008-09-10 2012-03-06 Nvidia Corporation System and method for structuring an A-buffer to support multi-sample anti-aliasing
US8553041B1 (en) 2008-09-10 2013-10-08 Nvidia Corporation System and method for structuring an A-buffer to support multi-sample anti-aliasing
US8228337B1 (en) 2008-10-03 2012-07-24 Nvidia Corporation System and method for temporal load balancing across GPUs
US8427474B1 (en) * 2008-10-03 2013-04-23 Nvidia Corporation System and method for temporal load balancing across GPUs
KR101511273B1 (ko) * 2008-12-29 2015-04-10 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템
GB2478909B (en) * 2010-03-19 2013-11-06 Imagination Tech Ltd Demand based texture rendering in a tile based rendering system
GB2487421A (en) * 2011-01-21 2012-07-25 Imagination Tech Ltd Tile Based Depth Buffer Compression
KR101782044B1 (ko) 2011-02-22 2017-09-26 삼성전자주식회사 그래픽 프로세서 및 조기 가시성 테스트 방법
KR101926570B1 (ko) 2011-09-14 2018-12-10 삼성전자주식회사 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US9117302B2 (en) * 2011-11-30 2015-08-25 Qualcomm Incorporated Switching between direct rendering and binning in graphics processing using an overdraw tracker
CN104025180B (zh) * 2011-12-30 2016-03-23 英特尔公司 具有保守边界的五维光栅化
US9196083B2 (en) * 2012-01-16 2015-11-24 Intel Corporation Time-continuous collision detection using 3D rasterization
US9087409B2 (en) * 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
US20130265305A1 (en) * 2012-04-04 2013-10-10 Jon N. Hasselgren Compressed Depth Cache
US9111392B2 (en) 2012-09-27 2015-08-18 Intel Corporation Stochastic depth buffer compression using generalized plane encoding
US8941676B2 (en) * 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
US9336561B2 (en) 2012-12-19 2016-05-10 Intel Corporation Color buffer caching
GB2544679B (en) 2012-12-20 2017-08-16 Imagination Tech Ltd Tessellating patches of surface data in tile based computer graphics rendering
KR102048885B1 (ko) * 2013-05-09 2019-11-26 삼성전자 주식회사 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법
US9946658B2 (en) * 2013-11-22 2018-04-17 Nvidia Corporation Memory interface design having controllable internal and external interfaces for bypassing defective memory
GB2520366B (en) * 2013-12-13 2015-12-09 Imagination Tech Ltd Primitive processing in a graphics processing system
GB2520365B (en) * 2013-12-13 2015-12-09 Imagination Tech Ltd Primitive processing in a graphics processing system
KR102188543B1 (ko) 2014-02-07 2020-12-08 삼성전자주식회사 그래픽 처리 장치
US9773294B2 (en) * 2014-07-03 2017-09-26 Mediatek Inc. Graphics processing system for determining whether to store varying variables into varying buffer based at least partly on primitive size and related graphics processing method thereof
KR102252374B1 (ko) 2014-09-05 2021-05-14 삼성전자주식회사 광선 추적 유닛 및 광선 데이터를 처리하는 방법
KR102282190B1 (ko) * 2014-09-22 2021-07-27 삼성전자 주식회사 렌더링 장치 및 방법
KR102327144B1 (ko) 2014-11-26 2021-11-16 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법
US9792722B2 (en) * 2014-12-18 2017-10-17 Mediatek Inc. Depth processing method and associated graphic processing circuit
GB2534567B (en) 2015-01-27 2017-04-19 Imagination Tech Ltd Processing primitives which have unresolved fragments in a graphics processing system
US10002455B2 (en) * 2015-04-20 2018-06-19 Intel Corporation Optimized depth buffer cache apparatus and method
US10380789B2 (en) * 2016-09-16 2019-08-13 Intel Corporation Method and apparatus for efficient depth prepass
GB2565301A (en) * 2017-08-08 2019-02-13 Nokia Technologies Oy Three-dimensional video processing
GB2566114B (en) 2017-09-05 2020-12-30 Advanced Risc Mach Ltd Prefetching data
JP7051366B2 (ja) 2017-10-18 2022-04-11 株式会社東芝 情報処理装置、学習済モデル、情報処理方法、およびプログラム
CN109461113B (zh) * 2018-10-11 2021-07-16 中国人民解放军国防科技大学 一种面向数据结构的图形处理器数据预取方法及装置
CN112734897B (zh) * 2020-12-05 2024-04-02 西安翔腾微电子科技有限公司 一种图元光栅化触发的图形处理器深度数据预取方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332664A (ja) * 1993-03-23 1994-12-02 Toshiba Corp 表示制御システム
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
JPH08221593A (ja) 1995-02-14 1996-08-30 Hitachi Ltd 図形表示装置
US6008820A (en) * 1995-08-04 1999-12-28 Microsoft Corporation Processor for controlling the display of rendered image layers and method for controlling same
US5761720A (en) 1996-03-15 1998-06-02 Rendition, Inc. Pixel engine pipeline processor data caching mechanism
US6115047A (en) * 1996-07-01 2000-09-05 Sun Microsystems, Inc. Method and apparatus for implementing efficient floating point Z-buffering
US5933156A (en) * 1997-12-03 1999-08-03 Margolin; Jed Z-Buffer for row addressable graphics memory with flash fill
US6480205B1 (en) * 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US6525737B1 (en) * 1998-08-20 2003-02-25 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
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
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US6525726B1 (en) * 1999-11-02 2003-02-25 Intel Corporation Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture
AUPQ416699A0 (en) * 1999-11-19 1999-12-16 Dynamic Digital Depth Research Pty Ltd Depth map compression technique
US6801203B1 (en) * 1999-12-22 2004-10-05 Microsoft Corporation Efficient graphics pipeline with a pixel cache and data pre-fetching
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6885378B1 (en) 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
US6798421B2 (en) * 2001-02-28 2004-09-28 3D Labs, Inc. Ltd. Same tile method
JP4740490B2 (ja) 2001-08-21 2011-08-03 任天堂株式会社 グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング
JP2003281564A (ja) 2002-03-20 2003-10-03 Victor Co Of Japan Ltd 画像生成装置
US7002571B2 (en) * 2002-06-04 2006-02-21 Intel Corporation Grid-based loose octree for spatial partitioning
FI20030072A (fi) * 2003-01-17 2004-07-18 Hybrid Graphics Oy Piiloalueiden poistomenetelmä
KR100510131B1 (ko) * 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US7450120B1 (en) * 2003-12-19 2008-11-11 Nvidia Corporation Apparatus, system, and method for Z-culling

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9761039B2 (en) 2014-07-22 2017-09-12 Samsung Electronics Co., Ltd. Method and apparatus for hybrid rendering

Also Published As

Publication number Publication date
EP1864256A1 (en) 2007-12-12
JP5296169B2 (ja) 2013-09-25
US8089486B2 (en) 2012-01-03
WO2006102380A1 (en) 2006-09-28
US20060209078A1 (en) 2006-09-21
JP2008533628A (ja) 2008-08-21
CN101176119A (zh) 2008-05-07
KR20070114224A (ko) 2007-11-29
KR101009521B1 (ko) 2011-01-18
KR101036434B1 (ko) 2011-05-23
CN101176119B (zh) 2012-05-16
JP2012033173A (ja) 2012-02-16
JP4861403B2 (ja) 2012-01-25
CA2601452A1 (en) 2006-09-28

Similar Documents

Publication Publication Date Title
KR101009521B1 (ko) 타일링되고 프리패치되고 캐싱된 깊이 버퍼
US10719447B2 (en) Cache and compression interoperability in a graphics processor pipeline
US6972769B1 (en) Vertex texture cache returning hits out of order
JP6377842B2 (ja) 位置限定シェーディングパイプライン
JP5844485B2 (ja) グラフィックス処理システムにおけるメモリアクセス帯域幅をデスティネーションアルファ値に基づいて減少させるための技法
EP3061070B1 (en) Selectively merging partially-covered tiles to perform hierarchical z-culling
EP3274841B1 (en) Compaction for memory hierarchies
US8704826B1 (en) Primitive re-ordering between world-space and screen-space pipelines with buffer limited processing
US8456468B2 (en) Graphic rendering method and system comprising a graphic module
JP5624733B2 (ja) グラフィックス処理システム
US7042462B2 (en) Pixel cache, 3D graphics accelerator using the same, and method therefor
US7098922B1 (en) Multiple data buffers for processing graphics data
US7817165B1 (en) Selecting real sample locations for ownership of virtual sample locations in a computer graphics system
US8471851B2 (en) Method and device for rending three-dimensional graphics
KR20180023856A (ko) 그래픽 처리 시스템 및 그래픽 프로세서
US7339590B1 (en) Vertex processing unit supporting vertex texture mapping
US20050195200A1 (en) Embedded system with 3D graphics core and local pixel buffer
US20140176546A1 (en) Shadow softening graphics processing unit and method
US7385604B1 (en) Fragment scattering
KR20220148814A (ko) 효율적인 다중 뷰 래스터화를 위한 방법들 및 장치
US7382377B1 (en) Render to texture cull
US20050195199A1 (en) Depth buffer for rasterization pipeline

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 9