KR20170005031A - 타일 기반의 렌더링 gpu 아키텍처를 위한 임의의 타일 형상을 갖는 적응적 파티션 메커니즘 - Google Patents
타일 기반의 렌더링 gpu 아키텍처를 위한 임의의 타일 형상을 갖는 적응적 파티션 메커니즘 Download PDFInfo
- Publication number
- KR20170005031A KR20170005031A KR1020167033397A KR20167033397A KR20170005031A KR 20170005031 A KR20170005031 A KR 20170005031A KR 1020167033397 A KR1020167033397 A KR 1020167033397A KR 20167033397 A KR20167033397 A KR 20167033397A KR 20170005031 A KR20170005031 A KR 20170005031A
- Authority
- KR
- South Korea
- Prior art keywords
- vertex
- tile
- logic
- processor
- primitive
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
타일 기반의 렌더링 GPU(그래픽 처리 유닛) 아키텍처에 대한 임의의 타일 형상을 갖는 적응적 파티션 메커니즘에 관련한 방법 및 장치가 개시된다. 실시예에서, 이미지의 각 아토믹 타일에 대한 프리미티브 교차 비용 값은 버텍스 요소 사이즈, 버텍스 셰이더 길이, 및 이미지의 프리미티브의 버텍스의 개수에 적어도 부분적으로 기초하여 결정된다. 다른 실시예가 또한 개시되고 청구된다.
Description
본 개시는 일반적으로 전자 기술 분야에 관한 것이다. 특히, 실시예는 타일 기반의 렌더링 GPU(Graphics Processing Unit, 그래픽 처리 유닛) 아키텍처를 위한 임의의 타일 형상을 갖는 적응적 파티션 메커니즘에 관한 것이다.
집적 회로(integrated circuit, IC) 제조 기술의 향상으로 인해, 제조업자는 추가 기능을 단일 실리콘 기판에 집적할 수 있게 되었다. 그러나 이러한 기능성의 수가 증가함에 따라, 단일의 IC 칩 상에 컴포넌트의 수가 증가한다. 결국 추가적인 컴포넌트는 추가적인 신호 스위칭을 추가함으로써, 보다 많은 열을 발생시킨다. 추가적인 열은 예를 들어, 열 팽창에 의해 IC 칩을 손상시킬 수 있다. 또한, 추가적인 열은 그와 같은 칩을 포함하는 컴퓨팅 디바이스의 사용 위치 및/또는 애플리케이션을 제한할 수 있다. 예를 들어, 휴대용 컴퓨팅 디바이스는 배터리 전원에만 의존할 수 있다. 따라서, 추가적인 기능성이 휴대용 컴퓨팅 디바이스에 집적됨에 따라, 예를 들어, 배터리 전력을 연장된 기간 동안 유지하기 위하여, 전력 소비를 줄여야 할 필요성은 점차 중요해지고 있다. 비-휴대용 컴퓨팅 시스템은 또한 IC 컴포넌트가 더 많은 전력을 사용하고 더 많은 열을 발생하기 때문에 냉각 및 발전 문제에 직면한다.
상대적으로 상당한 양의 전력을 사용하고 성능에 상당한 영향을 미치는 경향이 있는 한 유형의 컴포넌트는 일부 집적 회로 칩에 포함된 그래픽 회로이다. 그러므로 그래픽 회로의 전력 소비 및/또는 동작을 제어하는 것은 시스템 전체의 전력 소비 및/또는 성능에 직접적인 영향을 미칠 수 있다.
상세한 설명은 첨부된 도면을 참조하여 제공된다. 도면에서, 참조 번호의 가장 왼쪽 숫자(들)는 참조 번호가 처음 나타나는 도면을 나타낸다. 상이한 도면에서 동일한 참조 번호의 사용은 동일하거나 유사한 항목을 나타낸다.
도 1, 도 3a, 도 3b, 및 도 7 내지 도 9는 본 명세서에서 논의되는 다양한 실시예를 구현하기 위해 사용될 수 있는 컴퓨팅 시스템의 실시예의 블록도를 예시한다.
도 2는 일 실시예에 따른 타일 파티셔닝을 갖는 장면을 예시한다.
도 4a는 일 실시예에 따른 2레벨 타일 구조를 예시한다.
도 4b는 일 실시예에 따른 슈퍼 타일 테이블의 블록도를 예시한다.
도 4c는 일 실시예에 따른 프리미티브 교차 비용 버퍼의 블록도를 예시한다.
도 5a는 일 실시예에 따른 샘플 프레임에 대한 프리미티브 교차 비용 결과를 도시한다.
도 5b는 일 실시예에 따른 검색 기반의 슈퍼 타일 생성 메커니즘을 예시한다.
도 5c는 일 실시예에 따른 타일 버퍼에서 프레임 버퍼까지의 이미지 데이터의 흐름을 예시한다.
도 6은 일부 실시예에 따른 타일 기반의 렌더링 동작을 수행하는 방법의 흐름도를 예시한다.
도 1, 도 3a, 도 3b, 및 도 7 내지 도 9는 본 명세서에서 논의되는 다양한 실시예를 구현하기 위해 사용될 수 있는 컴퓨팅 시스템의 실시예의 블록도를 예시한다.
도 2는 일 실시예에 따른 타일 파티셔닝을 갖는 장면을 예시한다.
도 4a는 일 실시예에 따른 2레벨 타일 구조를 예시한다.
도 4b는 일 실시예에 따른 슈퍼 타일 테이블의 블록도를 예시한다.
도 4c는 일 실시예에 따른 프리미티브 교차 비용 버퍼의 블록도를 예시한다.
도 5a는 일 실시예에 따른 샘플 프레임에 대한 프리미티브 교차 비용 결과를 도시한다.
도 5b는 일 실시예에 따른 검색 기반의 슈퍼 타일 생성 메커니즘을 예시한다.
도 5c는 일 실시예에 따른 타일 버퍼에서 프레임 버퍼까지의 이미지 데이터의 흐름을 예시한다.
도 6은 일부 실시예에 따른 타일 기반의 렌더링 동작을 수행하는 방법의 흐름도를 예시한다.
다음의 설명에서, 많은 다양한 실시예의 완전한 이해를 제공하기 위해 특정한 세부 사항이 설명된다. 그러나 다양한 실시예는 특정한 세부 사항 없이 실시될 수 있다. 다른 사례에서, 잘 알려진 방법, 절차, 컴포넌트, 및 회로는 특정 실시예를 모호하게 하지 않도록 상세히 설명되지 않았다. 또한, 실시예의 다양한 양태는 반도체 집적 회로("하드웨어"), 하나 이상의 프로그램("소프트웨어")으로 조직화된 컴퓨터 판독 가능한 명령, 또는 하드웨어와 소프트웨어의 일부 조합과 같은 다양한 수단을 이용하여 실행될 수 있다. 본 개시의 목적을 위해, "로직"이라는 말은 하드웨어, 소프트웨어, 펌웨어, 또는 일부 이들 조합 중 하나를 의미한다.
일부 실시예는 타일 기반의 렌더링 그래픽 로직에 대한 임의의 타일 형상을 갖는 적응적 파티션 메커니즘을 제공한다. 본 명세서에 논의된 바와 같이, "타일"은 일반적으로 그래픽 로직(예를 들어, 그래픽 처리, 렌더링 등을 위한 로직)에 의한 처리를 고려 중인 장면 또는 이미지 프레임의 일부를 지칭한다. 그래픽 로직은 예를 들어, 본 명세서에 더 논의되는 이미지, 프레임, 장면 등을 조정하는 동작(들)과 같은 그래픽 작업(들)에 관련된 계산(들)을 수행하는 GPU(Graphic Processing Unit) 또는 다른 종류의 로직을 포함할 수 있다. 일부 실시예는 그래픽 로직을 참조하여 논의하지만, 실시예는 그래픽 관련 로직으로 제한되지 않으며, 다른 종류의 비-그래픽(예를 들어, 일반적인 목적) 로직에도 적용될 수 있다. 더욱이 다양한 실시예는, 데스크톱 컴퓨터, 모바일 컴퓨터(예를 들어, 스마트폰, 태블릿, UMPC(Ultra-Mobile Personal Computer, 울트라-모바일 퍼스널 컴퓨터), 랩톱 컴퓨터, 울트라북™ 컴퓨팅 디바이스, 스마트 시계, 스마트 안경 등), 워크스테이션 등과 같이, 일 실시예에서 SOC(System On Chip, 시스템-온-칩) 플랫폼상에서 구현될 수 있는 임의의 종류의 컴퓨팅 디바이스에 대해 실행될 수 있다.
또한, 본 명세서에서 논의된(예를 들어, 다양한 실시예에서 그래픽 로직에 의해 처리될 수 있는) 장면, 이미지, 또는 프레임은 이미지 캡처 디바이스(예를 들어, 스마트폰, 태블릿, 랩톱, 독립형 카메라 등과 같은 다른 디바이스에 내장될 수 있는 디지털 카메라, 또는 캡처된 이미지가 나중에 디지털 유형으로 변환되는 아날로그 디바이스)에 의해 캡처될 수 있다. 또한, 본 명세서에서 논의된 장면, 이미지, 또는 프레임은 기술 디자인, 게임 디자인, 또는 임의의 종류의 3D/2D(2차원/3차원) 산업 디자인에 의해 생성될 수 있다. 예를 들어, 하나의 장면은 일련의 기하학적 구조 및 관련된 텍스처 맵, 조명 효과 등을 참조할 수 있다. 또한, 이미지 캡처 디바이스는 일 실시예에서 여러 프레임을 캡처할 수 있다. 또한, 장면 내의 하나 이상의 프레임은 일부 실시예에서 컴퓨터상에 도안/생성된다. 또한, 장면의 하나 이상의 프레임은 디스플레이(예를 들어, 평판 디스플레이 디바이스 등을 비롯하여 도 7 및/또는 도 8을 참조하여 논의된 디스플레이)를 통해 제공될 수 있다.
더욱이, 일부 타일 기반의 SOC GPU 아키텍처는 파라미터 버퍼 없는 설계(parameter buffer free design)를 사용할 수 있으며, 이로 인해 파라미터 데이터에 대한 판독 및 기록 동작을 회피함으로써 성능을 개선하고 전력 소모를 줄일 수 있다. 이에 대응하여, (예를 들어, 프리미티브가 속하는 타일을 발견하기 위해) 타일 맵핑 및 속성 계산을 위한 파라미터 위치를 획득하는 2패스 버텍스 셰이딩 메커니즘(two-pass vertex shading mechanism)이 사용될 수 있다. 본 명세서에 논의된 바와 같이, "프리미티브(primitive)"는 일반적으로 그래픽 로직이 처리(예를 들어, 드로잉, 저장, 등)할 수 있는(예를 들어, 기하학적) 형상(예를 들어, 점, 선, 삼각형 등)을 지칭한다. 여러 타일에 걸쳐 이어져 있는 프리미티브의 버텍스 렌더링은 버텍스 데이터의 중복된 판독 동작 및 계산으로 인해 (예를 들어, 전력 소비 및/또는 성능 손상의 관점에서) 비용이 더 소요될 것이다.
이를 위해, 일부 실시예는 파라미터 버퍼 없는 설계에서 중복된 버텍스 데이터 판독 및 계산 동작을 완화하기 위한 적응적 타일 파티션 접근방법을 제공한다. 따라서, 이러한 실시예는 전력 소비를 줄이거나 성능을 향상시키며, 버퍼 사이즈 요건 및 반도체 범프 비용을 줄일 수 있다.
일부 실시예는 스마트폰, 태블릿, UMPC(Ultra-Mobile Personal Computer), 랩톱 컴퓨터, 울트라북™ 컴퓨팅 디바이스, 스마트 시계, 스마트 안경 등과 같이, 예를 들어 모바일 컴퓨팅 디바이스를 비롯하여 도 1 내지 도 9를 참조하여 설명된 바와 같은, (예를 들어, 하나 이상의 프로세서 코어를 갖는) 하나 이상의 프로세서를 포함하는 컴퓨팅 시스템에 적용될 수 있다. 특히, 도 1은 일 실시예에 따른 컴퓨팅 시스템(100)의 블록도를 예시한다. 시스템(100)은 하나 이상의 프로세서(102-1 내지 102-N)(개괄적으로 본 명세서에서 "프로세서들(102)" 또는 "프로세서(102)"라고 지칭함)를 포함할 수 있다. 프로세서(102)는 다양한 실시예에서 범용 CPU 및/또는 GPU일 수 있다. 프로세서(102)는 상호 연결부 또는 버스(104)를 통해 통신할 수 있다. 각각의 프로세서는 다양한 컴포넌트를 포함할 수 있는데, 이들 중 일부만이 명료함을 위해 프로세서(102-1)와 관련하여 논의한다. 그러므로 나머지 프로세서(102-2 내지 102-N)의 각각은 프로세서(102-1)와 관련하여 논의되는 동일 또는 유사한 컴포넌트를 포함할 수 있다.
일 실시예에서, 프로세서(102-1)는 하나 이상의 프로세서 코어(106-1 내지 106-M)(본 명세서에서는 "복수 개의 코어(106)," 또는 "코어(106)"라고 지칭함), 캐시(108), 및/또는 라우터(110)를 포함할 수 있다. 프로세서 코어(106)는 단일의 집적 회로(IC) 칩상에서 구현될 수 있다. 또한, 칩은 하나 이상의 공유 및/또는 전용 캐시(예를 들어, 캐시(108)), 버스 또는 상호 연결부(예를 들어, 버스 또는 상호 연결부(112)), 그래픽 및/또는 메모리 컨트롤러(예를 들어, 도 7 내지 도 9를 참조하여 설명된 메모리 컨트롤러), 또는 다른 컴포넌트를 포함할 수 있다.
일 실시예에서, 라우터(110)는 프로세서(102-1) 및/또는 시스템(100)의 다양한 컴포넌트 사이에서 통신하는데 사용될 수 있다. 더욱이, 프로세서(102-1)는 하나 이상의 라우터(110)를 포함할 수 있다. 또한, 다수의 라우터(110)는 프로세서(102-1)의 내부 또는 외부의 다양한 컴포넌트 사이의 데이터 라우팅이 가능하도록 통신할 수 있다.
캐시(108)는 코어(106)와 같은 프로세서(102-1)의 하나 이상의 컴포넌트에 의해 이용되는 데이터(예를 들어, 명령어를 포함)를 저장할 수 있다. 예를 들어, 캐시(108)는 프로세서(102)의 컴포넌트에 의해 고속 액세스(예를 들어, 코어(106)에 의한 고속 액세스)를 위해 메모리(114)에 저장된 데이터를 국부적으로 캐시할 수 있다. 도 1에 도시된 것처럼, 메모리(114)는 상호 연결부(104)를 통해 프로세서(102)와 통신할 수 있다. 일 실시예에서, 캐시(108)(공유될 수 있음)는 중간 레벨 캐시(mid-level cache, MLC), 최종 레벨 캐시(last level cache, LLC) 등일 수 있다. 또한, 각각의 코어(106)는 레벨1(LI) 캐시(116-1)(본 명세서에서 일반적으로 "LI 캐시(116)"로 지칭함) 또는 레벨 2(L2) 캐시와 같은 다른 레벨의 캐시를 포함할 수 있다. 더욱이, 프로세서(102-1)의 각종 컴포넌트는 버스(예를 들어, 버스(112)), 및/또는 메모리 컨트롤러 또는 허브를 통해 캐시(108)와 직접 통신할 수 있다.
도 1에 도시된 바와 같이, 프로세서(102)는 본 명세서에서 논의된 바와 같은 다양한 그래픽 관련 동작을 수행하는 그래픽 로직(140)을 더 포함할 수 있다. 로직(140)은, 본 명세서에서 논의된 시스템(100)의 각종 컴포넌트와 통신되는 정보와 같은 로직(140)의 동작에 관련된 정보를 저장하는 본 명세서에 논의된 하나 이상의 저장 디바이스(예를 들어, 시스템(100) 내의 캐시(108), LI 캐시(116), 메모리(114), 레지스터(들), 또는 다른 메모리)에 액세스할 수 있다. 또한, 로직(140)이 프로세서(102) 내부에 도시되어 있지만, 다양한 실시예에서는 시스템(100)의 다른 곳에 위치될 수 있다. 예를 들어, 로직(140)은 코어(106) 중 하나를 대체할 수 있고, 상호 연결부(112) 및/또는 상호 연결부(104) 등에 직접 연결될 수 있다.
프리미티브의 스크린 위치 정보에 기초하여, 그래픽 로직(예를 들어, 로직(140))은 임의의 형상(예를 들어, 반드시 직사각형이 아님)으로 타일을 적응적으로 분할하여, 다른 타일 위에 이어지는 프리미티브의 개수를 줄이며, 이에 따라, 불필요한 계산 및 메모리 판독 동작을 감소시킨다. 이러한 타일 파티션 메커니즘은 타일 형상을 높은 비용의 프리미티브의 형상에 맞게 적응적으로 설정하고, 밀집한 프리미티브 영역 전체에서 타일 경계를 자동으로 회피할 수 있다.
도 2는 일 실시예에 따른 기존의 타일 파티션(A) 및 적응적 타일 파티션(B)의 장면을 예시한다. 이러한 장면은 세 개의 드로우콜(drawcall)을 갖는데, 드로우콜 #1은 달 및 별을 렌더링하고, 드로우콜 #2는 구름을 렌더링하고, 드로우콜 #3은 빌딩을 렌더링한다. 구름의 메시는 각 버텍스마다 매우 복잡한 속성을 포함하고 있으며, 모델 공간으로부터 스크린 공간까지 최종 위치를 제공하는 일부 범프 맵핑을 행할 필요가 있다고 가정하면, 구름의 메시 내의 프리미티브가 여러 타일로 분리되어 있는 경우, (예를 들어, 계산의 양, 처리 능력, 및/또는 전력 소모의 관점에서) 더 큰 비용이 소요될 것이다. 스크린상에 네 개의 타일(Tl, T2, T3, 및 T4)이 있으며, 선은 타일의 경계를 예시한다.
도 2에서 알 수 있는 것처럼, 기존의 타일 파티션 방법(A)은 프리미티브와 타일 사이에 많은 교차가 생성되지만, 적응적 타일 파티션 메커니즘(B)은 타일의 형상을 변경함으로써 높은 비용 교차를 피할 수 있다. 또한, 기존의 타일 파티션 해법(B)은 예를 들어, 파라미터 버퍼 없는 설계의 중복 계산 및 메모리 액세스를 줄이기 위해 큰 타일을 사용한다. 그러나 기존 해법은 적어도 다음과 같이 고려할 두 가지 문제, 즉, (a) 큰 다이 영역 및 높은 비용을 초래하는 큰 타일 버퍼가 필요하다는 문제(예를 들면, 이 해법에서 타일은 100 픽셀 x 100 픽셀로 구성되며, 하드웨어는 이것을 수용하기 위해 1 MB의 타일 버퍼를 제공한다), 및 (b) 큰 타일은 "프리미티브와 타일 사이의 교차"의 가능성을 감소시킬 수 있다는 문제(그러나, 현재의 구현예는 예를 들어, 프리미티브가 종종 다른 타일 위에 랜덤하게 이어져있기 때문에, 충분히 맵시가 좋지 못하고, 일부 벤치마크 동안 약 10%-20%의 중복 계산이 평균으로 관찰될 수 있다)를 갖고 있다.
대조적으로, 일부 실시예는 높은 비용의 프리미티브의 중복 처리를 회피할 수 있는 적응적 타일 파티션 메커니즘을 사용한다. 또한, 이 해법은 극단의 큰 타일 버퍼가 필요하지 않다.
도 3a는 일 구현예에 따른 파라미터 버퍼를 갖는 그래픽 처리 컴퓨팅 시스템의 컴포넌트의 블록도를 예시한다. 도 3a의 코어 측에는 일 실시예에서 로직(140)에 제공될 수 있는 샘플 로직이 도시된다. (예를 들어, 도 1 또는 도 7 내지 도 9를 참조하여 논의되는 저장소/메모리 디바이스와 동일 또는 유사할 수 있는) 저장소/메모리 측에는, VBO(Vertex Buffer Object, 버텍스 버퍼 개체) 저장소(302) 및 파라미터 버퍼(304)가 버텍스 개체 및 중간 버텍스 셰이딩 데이터를 각기 저장하기 위해 제공된다. 일반적으로, 타일 기반의 렌더링 아키텍처는 프리미티브 방식으로 버텍스 셰이딩을 수행하지만, 타일 방식으로 픽셀 셰이딩을 수행한다. 이러한 종류의 방식 천이를 지원하기 위하여, 소위 파라미터 버퍼라 불리는 메모리 버퍼(304)는 버텍스 셰이딩(Vertex Shading, VS) 로직(306)에 의해 생성되는 중간 결과를 저장하는데 사용된다. 도 3a에 도시된 바와 같이, VBO 데이터(예를 들어, VBO 저장소 (302)에 저장된 데이터)는 로직 VS(306)에 (버텍스 셰이딩 동작을 수행하기 위해) 전달되고, 이어서, (예를 들어, 뷰포인트 외부의 프리미티브를 제거하기 위해) 로직(308)을 컬링(culling)하고, 이어서, (예를 들어, 프레임 내의 프리미티브를 래스터화하기 위해) 래스터 로직(310)에 의한 후속 처리를 위해 파라미터 버퍼(304)에 저장된다.
결과적으로, 파라미터 버퍼(304)는 추가적인 메모리 트래픽을 야기하지만, 이 버퍼는 프리미티브 데이터가 (프리미티브와 타일의 교차라고 지칭되는) 하나보다 많은 타일에 상주할 수 있기 때문에 사용될 수 있다. 파라미터 버퍼(304)는 버텍스 셰이더 로직(306) 및 타일당 데이터 구조에 의해 생성되는 속성을 기록하기 위해 비교적 큰 부분의 메모리가 필요하다. 일부 벤치마크에서, 파라미터 버퍼의 사이즈는 10MB 내지 100MB일 수 있다. 또한, 파라미터 버퍼(304)에 액세스할 때마다 여분의 대역폭이 소요될 것이다.
도 3b는 일부 실시예에서 이용될 수 있는 파라미터 버퍼를 사용하지 않는 그래픽 처리 컴퓨팅 시스템의 컴포넌트의 블록도를 예시한다. 도 3b의 코어 측에는 일 실시예에서 로직(140)에 제공될 수 있는 샘플 로직이 도시된다. 특히, 일부 구현예는 도 3a의 파라미터 버퍼(304)를 생략할 수 있도록 (예를 들어, 도 3b에서 VS 로직(306-1 및 306-2)으로 예시된 바와 같은) 2패스 버텍스 셰이딩을 사용할 수 있다. 이러한 파라미터 버퍼 없는 설계의 경우, 버텍스 셰이딩 로직은 버텍스 셰이딩 결과를 어디에도 저장할 곳이 없다. 구체적으로, 버텍스 셰이딩 흐름은 두 개의 패스로 분리된다. 즉, (1) (예를 들어, 로직(306-1)에서) 제 1 패스(VS_pass1)는 드로우 콜에 의해 (예를 들어, 로직(312)에 의해, 결국 프리미티브가 속하는 타일(들)을 결정하게 되는) 모든 버텍스 드로우 콜의 스크린 공간 위치를 계산하며, (2) (예를 들어, 로직(306-2)에서) 제 2 패스(VS_pass1)는 타일 방식으로 수행되는데, 예를 들면, 각 타일마다, VS 로직(306-2)은 관련된 모든 프리미티브를 거치고 지나가서 완전한 버텍스 셰이딩 동작을 수행한다. 이러한 설계에서, 여러 타일에 걸쳐 있는 프리미티브의 버텍스 렌더링은 버텍스 데이터의 중복된 판독 및 계산 동작으로 인하여 더 큰 비용이 소요된다. 더 큰 타일 사이즈(예를 들어, 수백 픽셀 x 수백 픽셀)를 사용하면 교차를 어느 정도 줄일 수 있다.
더욱이, 타일 사이즈가 더 크면 효과적으로 교차를 회피할 수 없다. 현존하는 큰 타일 해법의 경우, 일부 벤치마크에 의하면 약 10%-20%의 중복된 버텍스 셰이더 계산을 산출할 수 있다. 이러한 계산에 의한 중복된 메모리 액세스는 심지어 더 클 수 있다. 그뿐만 아니라, 큰 타일 사이즈 설계는 칩 영역 및 비용을 증가시키는 비교적 큰 크기의 온-칩 타일 버퍼(예를 들어, 일부의 경우 1 MB)를 설치할 필요가 있다.
일부 실시예에서, 프리미티브 및 타일의 교차는 줄어들며, 이것은 결과적으로 추가적인 메모리 트래픽 및 계산에 의해 발생되는 낭비를 감소 또는 회피한다.
도 4a는 일 실시예에 따른 2 레벨 타일 구조를 예시한다. 도 4a에 도시된 바와 같이, 타일의 두 개의 층이 사용된다. 상위 층은 슈퍼 타일(Super Tile), 예를 들어, (402 및 403)에 의해 형성되는 구조로서 정의되다. 하위 타일 구조는 본 명세서에 논의되는 바와 같이 분할할 수 없는 직사각형 픽셀 블록인 아토믹 타일(Atomic Tile)(401)로서 정의된다. 결과로서, 슈퍼 타일은 한 세트의 아토믹 타일로 구성된다. 일부 실시예에서, 슈퍼 타일은 반드시 직사각형일 필요는 없다. 슈퍼 타일은 임의의 형상일 수 있다. 그러나 이러한 슈퍼 타일의 사이즈는 타일 버퍼 사이즈를 초과할 수 없다.
도 4a에서, 아토믹 타일은 16x16 픽셀이다. 직사각형의 슈퍼 타일(402)은 256x256 픽셀일 수 있다. 그래서, 직사각형 타일(402)은 256개의 아토믹 타일을 포함한다. 각각의 아토믹 타일(401)에는 그의 스크린 위치에 직접 맵핑되는 2차원 식별자(ID)가 할당될 수 있다. 슈퍼 타일은 (일 실시예에 따라 슈퍼 타일 테이블의 블록도를 예시하는) 도 4b에 도시된 슈퍼 타일 테이블(Super Tile Table)("STT")을 이용하여 관리될 수 있다. 도 4b에 도시된 바와 같이, 각 STT는 슈퍼 타일 ID 및 아토믹 타일 ID의 리스트(2차원 스크린 위치)로 구성될 수 있다.
도 4c는 일 실시예에 따른 프리미티브 교차 비용 버퍼의 블록도를 예시한다. 프리미티브 교차 비용(Primitive Intersection Cost, PIC) 값은 프리미티브가 여러 타일에 걸쳐 이어져 있는 비용에 대한 메트릭으로서 정의될 수 있다. 이러한 메트릭은 버텍스 속성 번호 및 버텍스 셰이더 복합성에 비례할 수 있다. 일 실시예에서, PIC 값은 다음과 같은 공식에 따라 계산된다.
상기 공식에서, "S"는 바이트 단위의 버텍스 요소 사이즈를 나타내고, "L"은 (셰이더 로직에서 명령어의 개수에 대응하는) 버텍스 셰이더 길이이며, α 및 β는 각기 PIC에서 S 및 L의 (조정 가능한) 가중치로서, α+β=1.0 이며, "V"는 프리미티브의 버텍스의 개수이다. 또한, 동일한 드로우 콜에 속하는 프리미티브는 동일한 PIC 값을 갖는다.
"아토믹 타일의 PIC"(PIC of atomic Tile, PICT)는 현재의 아토믹 타일에 걸쳐 있는 프리미티브의 PIC 값의 합으로서 정의될 수 있다. 높은 PICT는 대응하는 아토믹 타일 내의 그와 같은 프리미티브의 높은 렌더링 비용을 의미한다. 이러한 종류의 아토믹 타일은 슈퍼 타일의 경계로서 사용하기에 적합하지 않다. 또한, 각 아토믹 타일의 PICT 값은 도 4c에 도시된 바와 같이, 프리미티브 교차 비용 버퍼(Primitive Intersection Cost Buffer, PICB)에 저장될 수 있다. 이러한 버퍼는 2차원 데이터 구조로서 색인되는데, 예를 들면, 버퍼의 각각의 요소는 (도 4c에 도시된 바와 같이) 스크린의 아토믹 타일에 맵핑된다.
일 실시예에서, PICB는 다음과 같은 의사 코드에 의해 생성된다.
도 5a는 일 실시예에 따른 샘플 프레임에 대한 프리미티브 교차 비용 결과를 도시한다. 이 예에서, 스크린 사이즈는 1920x1080 픽셀이며, 이 픽셀은 16x16 픽셀 사이즈의 120x68 아토믹 타일로 분할된다. 도 5a의 부분(A)은 PICB의 시각적 이미지이고, 밝게 보이는 것(brightness)은 높은 프리미티브 교차 비용을 의미하고, 어둡게 보이는 것은 낮은 프리미티브 교차 비용을 의미한다. 도 5a의 부분(B)은 대응하는 최종 렌더링 이미지이다. 따라서, 16-비트를 가정하면, PICB는 16x16 아토믹 타일마다 한 개만 기록할 수 있다. 이것은 풀 HD 스크린에 대해 칩 버퍼에 소요되는16KB보다 적은 비용이 소요될 것이다.
일 실시예에서, (예를 들어, 로직(140)에 의해 수행되는) 슈퍼 타일 생성 알고리즘은 슈퍼 타일 파티션 메커니즘을 취득하는데 사용된다. 슈퍼 타일의 경계에서, 복수의 높은 비용의 프리미티브는 서로의 위에 걸쳐 있지 않고 슈퍼 타일로 그룹화된다. 일 실시예에서 슈퍼 타일 생성은 PICB에 기초한 확장 절차이다. 이것은 작고 직사각형의 슈퍼 타일로 최고 비용의 아토믹 타일을 덮는 것으로부터 시작한다. 그 다음 알고리즘은 (예를 들어, 배낭 문제 해법기(Knapsack problem solver)와 같은) 검색 기반의 제 3 부분의 알고리즘(third part algorithm)을 이용하여 슈퍼 타일의 (예를 들어, 네 개의) 경계로부터 슈퍼 타일의 시드를 성장시킨다. 슈퍼 타일의 사이즈는 칩에서 사용할 수 있는 타일 버퍼 사이즈를 초과할 수 없다. 도 5b는 일 실시예에 따른 검색 기반의 슈퍼 타일 생성 메커니즘을 예시한다. 다음 슈퍼 타일의 생성은 모든 슈퍼 타일이 생성될 때까지 동일한 프로세스를 따른다.
도 6은 일부 실시예에 따른 타일 기반의 렌더링 동작을 수행하는 방법(600)의 흐름도를 예시한다. (예를 들어 그래픽 로직(140)을 포함하는) 도 1 내지 도 5c 및 도 7 내지 도 9를 참조하여 본 명세서에 논의된 하나 이상의 컴포넌트는 도 6을 참조하여 논의된 하나 이상의 동작을 수행하는데 사용될 수 있다.
도 1 내지 도 6을 참조하면, 동작(602)에서 처리할 많은 드로우 콜이 남아 있다는 결정에 응답하여, 동작(604)에서, 도 3b의 VS 로직(306-1)은 버텍스 데이터(예를 들어, 버텍스 위치, 버텍스 노멀(vertex normal), 및 텍스처 코디네이터(texture coordinator))를 로딩하고 프리미티브 방식으로 스크린 위치 계산을 수행한다. 동작(606)에서, (예를 들어, 로직(140)의) 프리미티브 교차 비용 계산 모듈은 각 아토믹 타일에 대해 PICT를 계산한다. 일 실시예에서, 동작(604 및 606)은 파이프라인 처리되거나 그렇지 않으면 동시에 수행될 수 있다(예를 들면, 동작(604)은 드로우콜(#1)을 완료하고 그 결과를 동작(606)으로 전달하며, 동작(606)은 드로우콜(#1)을 처리하는 반면, 동작(604)은 드로우콜(#2)을 처리하기 시작한다.
동작(602)에서 더 처리할 드로우 콜이 남아 있지 않으면, 동작(608)은 슈퍼 타일이 더 많이 생성될 필요가 있는지를 결정한다. 슈퍼 타일의 형상 및 레이아웃은 동작(610)에서 슈퍼 타일 생성 모듈(예를 들어, 로직(140))에 의해 결정될 것이다. 실시예에서, 동작(610)으로의 입력은 PICB(예를 들면, 도 4c의) PICB로부터 입력된다. 더욱이, 다양한 실시예에서, 방법(600)은 요건에 따라 전용 하드웨어 또는 통합 셰이더에서 실행될 수 있다. 하나의 슈퍼 타일이 생성된 이후에, 슈퍼 타일 테이블은 동작(612)에서 처리를 위해 VS 로직(예를 들어, 도 3b의 VS 로직(306-2))으로 전송될 것이다. 동작(614)에서, 이어지는 처리(예를 들어, 도 3b의 래스터 로직(310)에 의한, 픽셀 셰이딩(PS))는 타일 방식으로 수행된다. 실시예에서, 동작(610)은 파이프라인 처리되거나 그렇지 않으면, 동작(612 및 614)과 동시에 실행된다.
도 5c를 참조하면, 일 실시예에 따른 타일 버퍼로부터 프레임 버퍼로의 이미지 데이터의 흐름이 도시된다. 도 5c에 도시된 바와 같이, 슈퍼 타일을 렌더링할 때, 깊이 및 컬러 결과는 아토믹 타일별로 온-칩 타일 버퍼 내에 캐시될 것이다. 이 슈퍼 타일에 관련된 모든 드로우 콜이 완전히 렌더링될 때, 최종 결과는 온-칩 타일 버퍼로부터 프레임 버퍼에 저장된 다음, 디스플레이 디바이스(예를 들어, 본 명세서에 논의된 디스플레이 디바이스) 상에 제시될 것이다.
도 7은 일 실시예에 따른 컴퓨팅 시스템(700)의 블록도를 예시한다. 컴퓨팅 시스템(700)은 상호 연결 네트워크(또는 버스)(704)를 통해 통신하는 하나 이상의 중앙 처리 유닛(들)(central processing unit(s), CPU)(702) 또는 프로세서를 포함할 수 있다. 프로세서(702)는 범용 프로세서, (컴퓨터 네트워크(703)를 통해 통신하는 데이터를 처리하는) 네트워크 프로세서, 또는 다른 유형의 프로세서(축소 명령어 집합 컴퓨터(reduced instruction set computer, RISC) 프로세서 또는 복잡 명령어 집합 컴퓨터(complex instruction set computer, CISC)를 포함)를 포함할 수 있다.
또한, 프로세서(702)는 단일 또는 다중 코어 설계를 가질 수 있다. 다중 코어 설계를 갖는 프로세서(702)는 동일한 집적 회로(integrated circuit, IC) 다이 상에 상이한 종류의 프로세서 코어를 통합할 수 있다. 또한, 다중 코어 설계를 갖는 프로세서(702)는 대칭 또는 비대칭 멀티프로세서로서 구현될 수 있다. 실시예에서, 하나 이상의 프로세서(702)는 도 1의 프로세서(102)와 동일하거나 유사할 수 있다. 예를 들어, 시스템(700)의 하나 이상의 컴포넌트는 도 1 내지 도 6을 참조하여 논의한 로직(140)을 포함할 수 있다. 또한, 도 1 내지 도 6을 참조하여 논의한 동작은 시스템(700)의 하나 이상의 컴포넌트에 의해 수행될 수 있다.
칩셋(706)은 상호 연결 네트워크(704)와 또한 통신할 수 있다. 칩셋(706)은 시스템(700)의 각종 컴포넌트(예를 들어, 도 7에 도시된 컴포넌트)에 배치될 수 있는 그래픽 메모리 제어 허브(graphics memory control hub, GMCH)(708)를 포함할 수 있다. GMCH(708)은 메모리(712)(도 1의 메모리(114)와 동일 또는 유사한 메모리)와 통신하는 메모리 컨트롤러(710)를 포함할 수 있다. 메모리(712)는 CPU(702) 또는 컴퓨팅 시스템(700)에 포함된 임의의 다른 디바이스에 의해 실행될 수 있는 명령어 시퀀스를 포함하는 데이터를 저장할 수 있다. 일 실시예에서, 메모리(712)는 랜덤 액세스 메모리(random access memory, RAM), 다이나믹 RAM(dynamic DRAM), 동기식 DRAM(synchronous SDRAM), 스태틱 RAM(static SRAM), 또는 다른 종류의 저장 디바이스와 같은 하나 이상의 휘발성 저장소 (또는 메모리) 디바이스를 포함할 수 있다. 하드 디스크와 같은 비휘발성 메모리가 또한 사용될 수 있다. 부가적인 디바이스는 다중 CPU 및/또는 다중 시스템 메모리와 같은 상호 연결 네트워크(704)를 통해 통신할 수 있다.
GMCH(708)는 또한 디스플레이 디바이스(716)와 통신하는 그래픽 인터페이스(714)를 포함할 수 있다. 일 실시예에서, 그래픽 인터페이스(714)는 가속 그래픽 포트(accelerated graphics port, AGP) 또는 주변 컴포넌트 상호 접속(Peripheral Component Interconnect, PCI)(또는 PCI 익스프레스(PCI express, PCIe) 인터페이스)을 통해 디스플레이 디바이스(716)와 통신할 수 있다. 실시예에서, 디스플레이(716)(예를 들어, 평판 디스플레이)는 예를 들어, 비디오 메모리 또는 시스템 메모리와 같은 저장 디바이스에 저장된 이미지의 디지털 표현을 디스플레이(716)에 의해 해석되어 디스플레이되는 디스플레이 신호로 변환하는 신호 변환기를 통해 그래픽 인터페이스(714)와 통신할 수 있다. 디스플레이 디바이스에 의해 생성되는 디스플레이 신호는 각종 제어 디바이스를 통과한 다음, 디스플레이(716)에 의해 해석되고 그런 다음 디스플레이(716)에 의해 디스플레이될 수 있다.
허브 인터페이스(718)는 GMCH(708) 및 입력/출력 제어 허브(input/output control hub, ICH)(720)가 통신할 수 있게 한다. ICH(720)는 컴퓨팅 시스템(700)과 통신하는 I/O 디바이스(들)에 인터페이스를 제공할 수 있다. ICH(720)는 주변 컴포넌트 상호 접속부(PCI) 브리지, 범용 직렬 버스(universal serial bus, USB) 컨트롤러와 같은 주변 브리지(또는 컨트롤러)(724), 또는 다른 유형의 주변 브리지 또는 컨트롤러를 통해 버스(722)와 통신할 수 있다. 브리지(724)는 CPU(702)와 주변 디바이스 사이에서 데이터 경로를 제공할 수 있다. 다른 방식의 기술이 사용될 수 있다. 또한, 다중 버스는 예를 들어, 다중 브리지 또는 제어기를 통해 ICH(720)와 통신할 수 있다. 더욱이, 다양한 실시예에서, ICH(720)와 통신하는 다른 주변 기기는 집적된 드라이브 전자 장치(integrated drive electronics, IDE) 또는 소형 컴퓨터 시스템 인터페이스(small computer system interface, SCSI) 하드 드라이브(들), USB 포트(들), 키보드, 마우스, 병렬 포트(들), 직렬 포트(들), 플로피 디스크 드라이브(들), 디지털 출력 지원(예를 들어, 디지털 비디오 인터페이스(digital video interface, DVI)), 또는 다른 디바이스를 포함할 수 있다.
버스(722)는 오디오 디바이스(726), 하나 이상의 디스크 드라이브(들)(728), 및 (컴퓨터 네트워크(703)와 통신하는 디바이스인) 네트워크 인터페이스 디바이스(730)와 통신할 수 있다. 다른 디바이스는 버스(722)를 통해 통신할 수 있다. 또한, 일부 실시예에서, 다양한 컴포넌트(예를 들어, 네트워크 인터페이스 디바이스(730))는 GMCH(708)와 통신할 수 있다. 또한, 프로세서(702) 및 GMCH(708)는 단일 칩을 형성하도록 결합될 수 있다. 그뿐만 아니라, 다른 실시예에서 그래픽 가속기는 GMCH(708) 내에 포함될 수 있다.
그뿐만 아니라, 컴퓨팅 시스템(700)은 휘발성 및/또는 비휘발성 메모리(또는 저장소)를 포함할 수 있다. 예를 들어, 비휘발성 메모리는, 판독 전용 메모리(Read Only Memory, ROM), 프로그램 가능한 ROM(programmable ROM, PROM), 소거 가능한 PROM(erasable PROM, EPROM), 전기적 EPROM(electrically EEPROM), 디스크 드라이브(예를 들어, 728), 플로피 디스크, 콤팩트디스크 ROM(compact disk ROM, CD-ROM), 디지털 다용도 디스크(digital versatile disk, DVD), 플래시 메모리, 광자기 디스크, 또는 전자 데이터(예를 들어, 명령어를 포함함)를 저장할 수 있는 다른 종류의 비휘발성 머신 판독 가능한 매체 중 하나 이상을 포함할 수 있다.
도 8은 일 실시예에 따른 포인트-투-포인트(point-to-point, PtP) 구성으로 배열된 컴퓨팅 시스템(800)을 예시한다. 특히, 도 8은 프로세서, 메모리, 및 입력/출력 디바이스가 복수의 포인트-투-포인트 인터페이스에 의해 상호 연결된 시스템을 도시한다. 도 1 내지 도 7을 참조하여 논의된 동작은 시스템(800)의 하나 이상의 컴포넌트에 의해 수행될 수 있다.
도 8에 예시된 바와 같이, 시스템(800)은 여러 프로세서를 포함할 수 있으며, 이중 단지 두 개의 프로세서(802 및 804)가 명료함을 위해 도시되어 있다. 프로세서(802 및 804)는 메모리(810 및 812)와의 통신을 가능하게 하는 로컬 메모리 컨트롤러 허브(MCH)(806 및 808)를 각기 포함할 수 있다. 메모리(810 및/또는 812)는 도 7의 메모리(712)를 참조하여 논의한 것과 같은 다양한 데이터를 저장할 수 있다.
실시예에서, 프로세서(802 및 804)는 도 7을 참조하여 논의된 프로세서(702) 중 하나일 수 있다. 프로세서(802 및 804)는 각기 PtP 인터페이스 회로(816 및 818)를 이용하여 포인트-투-포인트(PtP) 인터페이스(814)를 통해 데이터를 교환할 수 있다. 또한, 프로세서(802 및 804)는 각기 포인트-투-포인트 인터페이스 회로(826, 828, 830, 및 832)를 이용하여 개별 PtP 인터페이스(822 및 824)를 통해 칩셋(820)으로 데이터를 교환할 수 있다. 칩셋(820)은 또한 예를 들어, PtP 인터페이스 회로(837)를 이용하여, 그래픽 인터페이스(836)를 통해 그래픽 회로(834)와 데이터를 교환할 수 있다.
적어도 하나의 실시예는 프로세서(802 및 804) 내에서 제공될 수 있다. 예를 들어, 시스템(800)의 하나 이상의 컴포넌트는 프로세서(802 및 804) 내에 위치된 것을 비롯하여, 도 1 내지 도 7의 로직(140)을 포함할 수 있다. 그러나 다른 실시예는 다른 회로, 로직 유닛, 또는 도 8의 시스템(800) 내의 디바이스 내에 존재할 수 있다. 그뿐만 아니라, 다른 실시예는 여러 회로, 로직 유닛, 또는 도 8에 예시된 디바이스의 도처에 분산될 수 있다.
칩셋(820)은 PtP 인터페이스 회로(841)를 이용하여 버스(840)와 통신할 수 있다. 버스(840)는 버스 브리지(842) 및 I/O 디바이스(843)와 같은 하나 이상의 디바이스와 통신할 수 있다. 버스(844)를 통해, 버스 브리지(842)는 키보드/마우스(845), (예를 들어, 모뎀, 네트워크 인터페이스 디바이스, 또는 컴퓨터 네트워크(703)와 통신할 수 있는 다른 통신 디바이스와 같은) 통신 디바이스(846), 오디오 I/O 디바이스(847), 및/또는 데이터 저장 디바이스(848)와 같은 다른 디바이스와 통신할 수 있다. 데이터 저장 디바이스(848)는 프로세서(802 및/또는 804)에 의해 실행될 수 있는 코드(849)를 저장할 수 있다.
일부 실시예에서, 본 명세서에서 논의된 하나 이상의 컴포넌트는 시스템 온 칩(System On Chip, SOC) 디바이스로서 구현될 수 있다. 도 9는 실시예에 따른 SOC 패킷의 블록도를 예시한다. 도 9에 예시된 바와 같이, SOC(902)는 하나 이상의 중앙 처리 유닛(CPU) 코어(920), 하나 이상의 그래픽 프로세서 유닛(GPU) 코어(930), 입력/출력(I/O) 인터페이스(940), 및 메모리 컨트롤러(942)를 포함한다. SOC 패키지(902)의 각종 컴포넌트는 다른 도면을 참조하여 본 명세서에 논의된 것과 같은 상호 접속부 또는 버스에 결합될 수 있다. 또한, SOC 패키지(902)는 다른 도면을 참조하여 본 명세서에 논의된 것과 같은 더 많거나 적은 컴포넌트를 포함할 수 있다. 또한, SOC 패키지(920)의 각 컴포넌트는 예를 들어, 본 명세서에서 다른 도면을 참조하여 논의한 하나 이상의 다른 컴포넌트를 포함할 수 있다. 일 실시예에서, 예를 들어, SOC 패키지(902)(및 그의 컴포넌트)는 단일의 반도체 디바이스에 패키징되는 하나 이상의 집적 회로(IC) 다이상에 제공된다.
도 9에 예시된 바와 같이, SOC 패키지(902)는 메모리 컨트롤러(942)를 통해 (다른 도면을 참조하여 본 명세서에 논의된 메모리와 같거나 유사할 수 있는) 메모리(960)에 결합된다. 실시예에서, 메모리(960)(또는 그 일부)는 SOC 패키지(902) 상에 집적될 수 있다.
I/O 인터페이스(940)는 예를 들어, 다른 도면을 참조하여 본 명세서에 논의된 것과 같은 상호 접속부 및/또는 버스를 통해 하나 이상의 I/O 디바이스(970)에 연결될 수 있다. I/O 디바이스(들)(970)는, 키보드, 마우스, 터치 패드, 디스플레이, (예를 들어, 카메라 또는 캠코더/비디오 레코더와 같은) 이미지/비디오 캡처 디바이스, 터치스크린, 스피커, 등의 하나 이상을 포함할 수 있다. 그뿐만 아니라, 실시예에서, SOC 패키지(902)는 로직(140)을 포함/통합할 수 있다. 대안으로, 로직(140)은 SOC 패키지(902)의 외부(예를 들어, 별개의 로직으로서)에 제공될 수 있다.
다음의 예는 또 다른 실시예에 관한 것이다. 예 1은 로직을 구비하는 장치를 포함하며, 로직은 버텍스 요소 사이즈, 버텍스 셰이더 길이, 및 이미지의 프리미티브의 버텍스의 개수에 적어도 부분적으로 기초하여 이미지의 각 아토믹 타일에 대한 프리미티브 교차 비용 값을 결정하는 하드웨어 로직을 적어도 부분적으로 포함한다. 예 2는 예 1의 장치를 포함하며, 이 장치에서 아토믹 타일은 분할 불가능한 직사각형 픽셀 블록을 포함한다. 예 3은 예 1의 장치를 포함하며, 이 장치에서 로직은 또한 각 아토믹 타일 값마다 프리미티브 교차 비용 값에 기초하여 슈퍼 타일을 생성한다. 예 4는 예 3의 장치를 포함하며, 이 장치에서 로직은 또한 슈퍼 타일에 대해 하나 이상의 버텍스 셰이딩 동작을 수행한다. 예 5는 예 3의 장치를 포함하며, 이 장치에서 로직은 또한 슈퍼 타일에 대해 하나 이상의 래스터 동작을 수행한다. 예 6은 예 1의 장치를 포함하며, 이 장치에서 로직은 또한 버텍스 데이터를 로딩하고 스크린 위치 계산을 수행하며, 버텍스 데이터는 버텍스 위치, 버텍스 노멀, 및 텍스처 코디네이터를 포함한다. 예 7은 예 1의 장치를 포함하며, 이 장치에서 로직은 버텍스 요소 사이즈, 버텍스 셰이더 길이, 버텍스의 개수, 버텍스 요소 사이즈의 가중치, 및 버텍스 셰이더 길이의 가중치에 적어도 부분적으로 기초하여 프리미티브 교차 비용 값을 결정한다. 예 8은 예 1의 장치를 포함하며, 이 장치에서 프로세서가 로직을 포함한다. 예 9는 예 1의 장치를 포함하며, 이 장치에서 하나 이상의 프로세서 코어를 갖는 프로세서, 로직, 또는 메모리는 단일 집적 회로 다이상에 있다.
예 10은 방법을 포함하며, 이 방법은 버텍스 요소 사이즈, 버텍스 셰이더 길이, 및 이미지의 프리미티브의 버텍스의 개수에 적어도 부분적으로 기초하여 이미지의 각 아토믹 타일에 대한 프리미티브 교차 비용 값을 결정하는 단계를 포함한다. 예 11은 예 10의 방법을 포함하며, 방법은 또한 각각의 아토믹 타일 값에 대한 프리미티브 교차 비용 값에 기초하여 슈퍼 타일을 생성하는 단계를 포함한다. 예 12는 예 11의 방법을 포함하며, 방법은 또한 슈퍼 타일에 대해 하나 이상의 버텍스 셰이딩 동작을 수행하는 단계를 포함한다. 예 13은 예 11의 방법을 포함하며, 방법은 슈퍼 타일에 대해 하나 이상의 래스터 동작을 수행하는 단계를 포함한다. 예 14는 예 10의 방법을 포함하며, 방법은 또한 버텍스 데이터를 로딩하고 스크린 위치 계산을 수행하는 단계를 포함하고, 버텍스 데이터는 버텍스 위치, 버텍스 법선, 및 텍스처 코디네이터를 포함한다. 예 15는 예 10의 방법을 포함하며, 방법은 또한 버텍스 요소 사이즈, 버텍스 셰이더 길이, 버텍스의 수, 버텍스 요소 사이즈의 가중치, 및 버텍스 셰이더 길이의 가중치에 적어도 부분적으로 기초하여 프리미티브 교차 비용 값을 결정하는 단계를 포함한다.
예 16은 프로세서에서 실행될 때 예 1 내지 예 15 중 어느 한 예의 하나 이상의 동작을 실행하도록 프로세서를 구성하는 하나 이상의 명령어를 구비하는 컴퓨터 판독 가능한 매체를 포함한다.
예 17은 시스템을 포함하며, 이 시스템은 하나 이상의 프로세서 코어를 갖는 프로세서와, 하나 이상의 프로세서 코어 중 적어도 하나에 의해 액세스되는 장면의, 적어도 하나의 프레임에 대응하는, 데이터를 저장하는 메모리와, 장면의 적어도 하나의 프레임을 표시하는 디스플레이 디바이스와, 버텍스 요소 사이즈, 버텍스 셰이더 길이, 및 프레임의 프리미티브의 버텍스의 개수에 적어도 부분적으로 기초하여 프레임의 각 아토믹 타일에 대한 프리미티브 교차 비용 값을 결정하는 로직을 포함한다. 예 18은 예 17의 시스템을 포함하며, 이 시스템에서 아토믹 타일은 분할 불가능한 직사각형 픽셀 블록을 포함한다. 예 19는 예 17의 시스템을 포함하며, 이 시스템에서 로직은 또한 각 아토믹 타일 값에 대한 프리미티브 교차 비용 값에 기초하여 슈퍼 타일을 생성한다. 예 20은 예 19의 시스템을 포함하며, 이 시스템에서 로직은 또한 슈퍼 타일에 대해 하나 이상의 버텍스 셰이딩 동작을 수행한다. 예 21은 예 19의 시스템을 포함하며, 이 시스템에서 로직은 또한 슈퍼 타일에 대해 하나 이상의 래스터 동작을 수행한다. 예 22는 예 17의 시스템을 포함하며, 이 시스템에서 로직은 또한 버텍스 데이터를 로딩하고 스크린 위치 계산을 수행하며, 버텍스 데이터는 버텍스 위치, 버텍스 노멀, 및 텍스처 코디네이터를 포함한다. 예 23은 예 17의 시스템을 포함하며, 이 시스템에서 로직은 버텍스 요소 사이즈, 버텍스 셰이더 길이, 버텍스의 개수, 버텍스 요소 사이즈의 가중치, 및 버텍스 셰이더 길이의 가중치에 적어도 부분적으로 기초하여 프리미티브 교차 비용 값을 결정한다. 예 24는 예 17의 시스템을 포함하며, 이 시스템에서 프로세서가 로직을 포함한다. 예 25는 예 17의 시스템을 포함하며, 이 시스템에서 프로세서 코어, 로직, 또는 메모리 중 하나 이상은 단일 집적 회로 다이 상에 있다.
예 26은 하나 이상의 명령어를 포함하는 컴퓨터 판독가능한 매체를 포함하며, 이 명령어는 프로세서에서 실행될 때 버텍스 요소 사이즈, 버텍스 셰이더 길이, 및 이미지의 프리미티브의 버텍스의 개수에 적어도 부분적으로 기초하여 이미지의 각각의 아토믹 타일에 대한 프리미티브 교차 비용 값을 결정하는 하나 이상의 동작을 수행하도록 프로세서를 구성한다. 예 27은 예 26의 컴퓨터 판독 가능한 매체를 포함하며, 컴퓨터 판독가능한 매체는 또한 프로세서에서 실행될 때 각 아토믹 타일 값에 대한 프리미티브 교차 비용 값에 기초하여 슈퍼 타일의 생성을 유발하는 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 포함한다. 예 28은 예 27의 컴퓨터 판독 가능한 매체를 포함하며, 컴퓨터 판독가능한 매체는 또한 프로세서에서 실행될 때 슈퍼 타일에 대해 하나 이상의 버텍스 셰이딩 동작을 유발하는 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 포함한다. 예 29는 예 27의 컴퓨터 판독 가능한 매체를 포함하며, 컴퓨터 판독가능한 매체는 또한 프로세서에서 실행될 때 슈퍼 타일에 대해 하나 이상의 래스터 동작의 실행을 유발하는 하나 이상의 동작을 실행하도록 프로세스를 구성하는 하나 이상의 명령어를 포함한다. 예 30은 예 26의 컴퓨터 판독 가능한 매체를 포함하며, 컴퓨터 판독가능한 매체는 또한 프로세서에서 실행될 때 버텍스 데이터의 로딩 및 스크린 위치 계산의 수행을 유발하는 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 포함하며, 버텍스 데이터는 버텍스 위치, 버텍스 노멀, 및 텍스처 코디네이터를 포함한다. 예 31은 예 26의 컴퓨터 판독 가능한 매체를 포함하며, 컴퓨터 판독 가능한 매체는 또한 프로세서에서 실행될 때 버텍스 요소 사이즈, 버텍스 셰이더 길이, 버텍스의 개수, 버텍스 요소 사이즈의 가중치, 및 버텍스 셰이더 길이의 가중치에 적어도 부분적으로 기초하여 프리미티브 교차 비용 값의 결정을 유발하는 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 더 포함한다.
예 32는 임의의 이전의 예에서 언급된 방법을 수행하는 수단을 구비하는 장치를 포함한다.
예 33은 실행할 때, 임의의 이전의 예에서 언급된 방법을 구현하거나 장치를 실현하는 머신 판독 가능한 저장소를 포함하는 머신 판독 가능한 명령어를 포함한다.
다양한 실시예에서, 예를 들어, 도 1 내지 도 9를 참조하여, 본 명세서에 논의된 동작은, 예를 들어, 본 명세서에 논의된 프로세스를 수행하도록 프로그램하는데 사용되는 명령어(또는 소프트웨어 절차)가 저장된 유형의 (예를 들어, 비-일시적인) 머신 판독 가능한 매체 또는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품으로서 제공될 수 있는 하드웨어(예를 들어, 로직 회로), 소프트웨어, 펌웨어, 또는 이들의 조합으로서 구현될 수 있다. 머신 판독 가능한 매체는 도 1 내지 도 9에 대해 논의된 것과 같은 저장 디바이스를 포함할 수 있다.
또한, 그와 같은 컴퓨터 판독 가능한 매체는 컴퓨터 프로그램 제품으로서 다운로드될 수 있고, 프로그램은 통신 링크(예를 들어, 버스, 모뎀, 또는 네트워크 연결)를 통해 반송파 또는 다른 전파 매체에서 제공되는 데이터 신호에 의해 원격 컴퓨터(예를 들어, 서버)로부터 요청 컴퓨터(예를 들어, 클라이언트)로 전송될 수 있다.
본 명세서에서 "일 실시예" 또는 “실시예”라고 언급하는 것은 그 예와 관련하여 설명된 특별한 특징, 구조, 및/또는 특성이 적어도 하나의 구현예에 포함될 수 있다는 것을 의미한다. 그래서 본 명세서의 여러 곳에서 "일 실시예에서"라는 문구의 출현은 모두 동일일 실시예를 언급할 수 있거나 언급하지 않을 수 있다.
또한, 상세한 설명 및 청구 범위에서, "연결된" 및 "접속된"이라는 용어는 이들의 파생어와 함께 사용될 수 있다. 일부 실시예에서, "접속된"은 두 개 이상의 요소가 서로 직접 물리적 또는 전기적으로 접촉되어 있는 것을 나타내기 위해 사용될 수 있다. "연결된"은 두 개 이상의 요소가 직접 물리적 또는 전기적으로 접촉되어 있는 것을 의미할 수 있다. 그러나, "연결된"은 두 개 이상의 요소가 서로 직접 접촉되지 않을 수 있지만, 여전히 서로 협력하거나 상호 작용할 수 있다는 것을 또한 의미할 수 있다.
그러므로 본 실시예가 구조적 기능 및/또는 방법론의 동작에 고유한 언어로 설명되었지만, 첨부된 특허 청구 범위에 정의된 주제는 전술한 특정 기능 또는 동작으로 필연적으로 제한되는 것이 아니라는 것을 이해하여야 한다. 오히려, 전술한 특정 기능 및 동작은 특허 청구 범위에 정의된 주제를 구현하는 샘플의 형태로서 개시된다.
Claims (25)
- 장치로서,
로직을 포함하되, 상기 로직은 이미지의 각 아토믹 타일(atomic tile)에 대한 프리미티브 교차 비용 값(cost value)을 버텍스 요소 사이즈(vertex element size), 버텍스 셰이더 길이(vertex shader length) 및 상기 이미지의 프리미티브의 버텍스의 개수에 적어도 부분적으로 기초하여 결정하는 하드웨어 로직을 적어도 부분적으로 포함하는
장치.
- 제 1 항에 있어서,
상기 아토믹 타일은 분할 불가능한 직사각형 픽셀 블록을 포함하는
장치.
- 제 1 항에 있어서,
상기 로직은 또한 각 아토믹 타일 값에 대한 프리미티브 교차 비용 값에 기초하여 슈퍼 타일을 생성하는
장치.
- 제 3 항에 있어서,
상기 로직은 또한 슈퍼 타일에 대해 하나 이상의 버텍스 셰이딩 동작(vertex shading operation)을 수행하는
장치.
- 제 3 항에 있어서,
상기 로직은 또한 슈퍼 타일에 대해 하나 이상의 래스터 동작을 수행하는
장치.
- 제 1 항에 있어서,
상기 로직은 또한 버텍스 데이터를 로딩하고 스크린 위치 계산을 수행하며, 상기 버텍스 데이터는 버텍스 위치, 버텍스 노멀, 및 텍스처 코디네이터를 포함하는
장치.
- 제 1 항에 있어서,
상기 로직은 버텍스 요소 사이즈, 버텍스 셰이더 길이, 버텍스의 수, 버텍스 요소 사이즈의 가중치, 및 버텍스 셰이더 길이의 가중치에 적어도 부분적으로 기초하여 상기 프리미티브 교차 비용 값을 결정하는
장치.
- 제 1 항에 있어서,
프로세서가 상기 로직을 포함하는
장치.
- 제 1 항에 있어서,
하나 이상의 프로세서 코어를 갖는 프로세서, 로직, 또는 메모리는 단일 집적 회로 다이 상에 있는
장치.
- 이미지의 각 아토믹 타일에 대한 프리미티브 교차 비용 값을 버텍스 요소 사이즈, 버텍스 셰이더 길이 및 상기 이미지의 프리미티브의 버텍스의 개수에 적어도 부분적으로 기초하여 결정하는 단계를 포함하는
방법.
- 제 10 항에 있어서,
각각의 아토믹 타일 값에 대한 프리미티브 교차 비용 값에 기초하여 슈퍼 타일을 생성하는 단계를 더 포함하는
방법.
- 제 11 항에 있어서,
상기 슈퍼 타일에 대해 하나 이상의 버텍스 셰이딩 동작을 수행하는 단계를 더 포함하는
방법.
- 제 11 항에 있어서,
상기 슈퍼 타일에 대해 하나 이상의 래스터 동작을 수행하는 단계를 더 포함하는
방법.
- 제 10 항에 있어서,
버텍스 데이터를 로딩하는 단계와, 스크린 위치 계산을 수행하는 단계를 더 포함하며, 상기 버텍스 데이터는 버텍스 위치, 버텍스 노멀, 및 텍스처 코디네이터를 포함하는
방법.
- 제 10 항에 있어서,
버텍스 요소 사이즈, 버텍스 셰이더 길이, 버텍스의 수, 버텍스 요소 사이즈의 가중치, 및 버텍스 셰이더 길이의 가중치에 적어도 부분적으로 기초하여 상기 프리미티브 교차 비용 값을 결정하는 단계를 더 포함하는
방법.
- 컴퓨터 판독 가능한 매체로서,
프로세서에서 실행될 때 청구항 제 1 항 내지 제 15 항 중 어느 한 항의 하나 이상의 동작을 수행하도록 상기 프로세서를 구성하는 하나 이상의 명령어를 포함하는
컴퓨터 판독 가능한 매체.
- 시스템으로서,
하나 이상의 프로세서 코어를 갖는 프로세서와,
하나 이상의 프로세서 코어 중 적어도 하나에 의해 액세스되는, 장면(scence)의 적어도 하나의 프레임에 대응하는 데이터를 저장하는 메모리와,
상기 장면의 상기 적어도 하나의 프레임을 표시하는 디스플레이 디바이스와,
버텍스 요소 사이즈, 버텍스 셰이더 길이, 및 상기 프레임의 프리미티브의 버텍스의 개수에 적어도 부분적으로 기초하여 상기 프레임의 각 아토믹 타일에 대한 프리미티브 교차 비용 값을 결정하는 로직을 포함하는
시스템.
- 제 17 항에 있어서,
상기 아토믹 타일은 분할 불가능한 직사각형 픽셀 블록을 포함하는
시스템.
- 제 17 항에 있어서,
상기 로직은 또한 각 아토믹 타일 값에 대한 프리미티브 교차 비용 값에 기초하여 슈퍼 타일을 생성하는
시스템.
- 제 19 항에 있어서,
상기 로직은 슈퍼 타일에 대해 하나 이상의 버텍스 셰이딩 동작을 수행하는
시스템.
- 제 19 항에 있어서,
상기 로직은 또한 슈퍼 타일에 대해 하나 이상의 래스터 동작을 수행하는
시스템.
- 제 17 항에 있어서,
상기 로직은 또한 버텍스 데이터를 로딩하고 스크린 위치 계산을 수행하며, 상기 버텍스 데이터는 버텍스 위치, 버텍스 노멀, 및 텍스처 코디네이터를 포함하는
시스템.
- 제 17 항에 있어서,
상기 로직은 버텍스 요소 사이즈, 버텍스 셰이더 길이, 버텍스의 수, 버텍스 요소 사이즈의 가중치, 및 버텍스 셰이더 길이의 가중치에 적어도 부분적으로 기초하여 상기 프리미티브 교차 비용 값을 결정하는
시스템.
- 제 17 항에 있어서,
상기 프로세서가 상기 로직을 포함하는
시스템.
- 제 17 항에 있어서,
상기 프로세서 코어, 상기 로직, 또는 상기 메모리 중 하나 이상은 단일 집적 회로 다이 상에 있는
시스템.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/081164 WO2016000129A1 (en) | 2014-06-30 | 2014-06-30 | Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170005031A true KR20170005031A (ko) | 2017-01-11 |
Family
ID=55018223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167033397A KR20170005031A (ko) | 2014-06-30 | 2014-06-30 | 타일 기반의 렌더링 gpu 아키텍처를 위한 임의의 타일 형상을 갖는 적응적 파티션 메커니즘 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20180174349A1 (ko) |
EP (1) | EP3161793B1 (ko) |
JP (1) | JP6335335B2 (ko) |
KR (1) | KR20170005031A (ko) |
CN (1) | CN106537446B (ko) |
SG (1) | SG11201610041TA (ko) |
WO (1) | WO2016000129A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2561807B (en) | 2017-01-12 | 2019-09-25 | Imagination Tech Ltd | Computing systems and methods for processing graphics data using cost indications for sets of tiles of a rendering space |
GB2558886B (en) * | 2017-01-12 | 2019-12-25 | Imagination Tech Ltd | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space |
GB2558885B (en) | 2017-01-12 | 2021-04-07 | Imagination Tech Ltd | Graphics processing units and methods for subdividing a set of one or more tiles of a rendering space for rendering |
US10504462B2 (en) | 2018-01-25 | 2019-12-10 | Qualcomm Incorporated | Non-linear processing of two-dimensional data |
GB2570743B (en) * | 2018-06-29 | 2021-06-23 | Imagination Tech Ltd | Tile assignment to processing cores within a graphics processing unit |
US10672185B2 (en) | 2018-07-13 | 2020-06-02 | Nvidia Corporation | Multi-rate shading using replayed screen space tiles |
JP2020177073A (ja) | 2019-04-16 | 2020-10-29 | 株式会社デンソー | 車両用装置、車両用装置の制御方法 |
JP7245954B2 (ja) * | 2019-07-30 | 2023-03-24 | ファルコンリー インコーポレイテッド | 大量の時系列データの滑らか且つ解像度が扱いやすいビュー |
CN112416489A (zh) * | 2020-11-06 | 2021-02-26 | 万翼科技有限公司 | 工程图纸显示方法及相关装置 |
CN113254093A (zh) * | 2021-07-06 | 2021-08-13 | 西安芯瞳半导体技术有限公司 | 自适应系统架构的gpu初始化方法、装置及计算机存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6229553B1 (en) * | 1998-08-20 | 2001-05-08 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
JP3838086B2 (ja) * | 2001-12-12 | 2006-10-25 | ソニー株式会社 | 画像処理装置およびその方法 |
EP1489560A1 (en) * | 2003-06-17 | 2004-12-22 | Koninklijke Philips Electronics N.V. | Primitive edge pre-filtering |
CN101371274B (zh) * | 2005-12-30 | 2012-09-19 | 意大利电信股份公司 | 视频序列的分割中的边缘比较 |
KR100793990B1 (ko) * | 2006-09-18 | 2008-01-16 | 삼성전자주식회사 | 타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템 |
GB0710795D0 (en) * | 2007-06-05 | 2007-07-18 | Arm Norway As | Method of and apparatus for processing graphics |
JP2008146415A (ja) * | 2006-12-11 | 2008-06-26 | Canon Inc | 画像処理装置及びその制御方法、プログラム |
GB0823254D0 (en) * | 2008-12-19 | 2009-01-28 | Imagination Tech Ltd | Multi level display control list in tile based 3D computer graphics system |
KR101609266B1 (ko) * | 2009-10-20 | 2016-04-21 | 삼성전자주식회사 | 타일 기반의 랜더링 장치 및 방법 |
US8593466B2 (en) * | 2010-06-08 | 2013-11-26 | Intel Corporation | Tile rendering for image processing |
US20110310102A1 (en) * | 2010-06-17 | 2011-12-22 | Via Technologies, Inc. | Systems and methods for subdividing and storing vertex data |
US10134101B2 (en) * | 2012-02-27 | 2018-11-20 | Intel Corporation | Using cost estimation to improve performance of tile rendering for image processing |
GB2506706B (en) * | 2013-04-02 | 2014-09-03 | Imagination Tech Ltd | Tile-based graphics |
CN103500463B (zh) * | 2013-10-17 | 2016-04-27 | 北京大学 | 一种gpu上多层形状特征融合的可视化方法 |
US9779533B2 (en) * | 2014-01-27 | 2017-10-03 | Nvidia Corporation | Hierarchical tiled caching |
-
2014
- 2014-06-30 WO PCT/CN2014/081164 patent/WO2016000129A1/en active Application Filing
- 2014-06-30 US US15/118,887 patent/US20180174349A1/en not_active Abandoned
- 2014-06-30 JP JP2016569415A patent/JP6335335B2/ja not_active Expired - Fee Related
- 2014-06-30 CN CN201480079408.0A patent/CN106537446B/zh not_active Expired - Fee Related
- 2014-06-30 EP EP14896773.0A patent/EP3161793B1/en not_active Not-in-force
- 2014-06-30 SG SG11201610041TA patent/SG11201610041TA/en unknown
- 2014-06-30 KR KR1020167033397A patent/KR20170005031A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP3161793B1 (en) | 2019-05-08 |
SG11201610041TA (en) | 2016-12-29 |
US20180174349A1 (en) | 2018-06-21 |
JP2017523499A (ja) | 2017-08-17 |
WO2016000129A1 (en) | 2016-01-07 |
CN106537446B (zh) | 2019-08-20 |
CN106537446A (zh) | 2017-03-22 |
EP3161793A1 (en) | 2017-05-03 |
JP6335335B2 (ja) | 2018-05-30 |
EP3161793A4 (en) | 2018-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3161793B1 (en) | Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture | |
US10210651B2 (en) | Allocation of tiles to processing engines in a graphics processing system | |
TWI515716B (zh) | 具備緩衝區限制處理的世界空間與螢幕空間管線間之圖元重新排序 | |
CN111143174B (zh) | 在共享功率/热约束下操作的硬件的最佳操作点估计器 | |
JP5632891B2 (ja) | インライン画像回転 | |
US10217183B2 (en) | System, method, and computer program product for simultaneous execution of compute and graphics workloads | |
US9734548B2 (en) | Caching of adaptively sized cache tiles in a unified L2 cache with surface compression | |
CN109978751A (zh) | 多gpu帧渲染 | |
US9779533B2 (en) | Hierarchical tiled caching | |
US20200013174A1 (en) | Method and apparatus for obtaining sampled positions of texturing operations | |
US20210158127A1 (en) | Layout parasitics and device parameter prediction using graph neural networks | |
US9607352B2 (en) | Prediction based primitive sorting for tile based rendering | |
TW201432609A (zh) | 已分配的拼貼快取 | |
CN110807827B (zh) | 系统生成稳定的重心坐标和直接平面方程访问 | |
US20200327417A1 (en) | Ir drop prediction with maximum convolutional neural network | |
US11232622B2 (en) | Data flow in a distributed graphics processing unit architecture | |
CN107148619B (zh) | 用于多线程图形流水线的自由排序线程模型 | |
US20220406371A1 (en) | Area efficient memory cell read disturb mitigation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |