KR101784671B1 - 그래픽스 프로세싱에서의 패치된 쉐이딩 - Google Patents
그래픽스 프로세싱에서의 패치된 쉐이딩 Download PDFInfo
- Publication number
- KR101784671B1 KR101784671B1 KR1020147030830A KR20147030830A KR101784671B1 KR 101784671 B1 KR101784671 B1 KR 101784671B1 KR 1020147030830 A KR1020147030830 A KR 1020147030830A KR 20147030830 A KR20147030830 A KR 20147030830A KR 101784671 B1 KR101784671 B1 KR 101784671B1
- Authority
- KR
- South Korea
- Prior art keywords
- shading
- geometry
- vertex
- output
- operations
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 76
- 230000015654 memory Effects 0.000 claims description 120
- 238000009877 rendering Methods 0.000 claims description 76
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 20
- 239000000872 buffer Substances 0.000 description 61
- 239000000835 fiber Substances 0.000 description 44
- 238000010586 diagram Methods 0.000 description 20
- 230000008859 change Effects 0.000 description 16
- 239000008186 active pharmaceutical agent Substances 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 235000021251 pulses Nutrition 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000003321 amplification Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 208000019300 CLIPPERS Diseases 0.000 description 2
- 241000713311 Simian immunodeficiency virus Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 239000011324 bead Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 208000021930 chronic lymphocytic inflammation with pontine perivascular enhancement responsive to steroids Diseases 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 235000014277 Clidemia hirta Nutrition 0.000 description 1
- 244000033714 Clidemia hirta Species 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- 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/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
Description
도 2 는 예시적인 그래픽스 프로세싱 파이프라인 (80) 을 예시하는 블록도이다.
도 3a 및 도 3b 는 이 개시물의 양태들에 따라, 그래픽스 렌더링 파이프라인에서의 데이터 흐름들의 개념적인 도면들이다.
도 4 는 버텍스 쉐이딩 (vertex shading) 동작들 및 지오메트리 쉐이딩 (geometry shading) 동작들을 수행하기 위하여 이 개시물에서 설명된 기술들을 구현하는 하드웨어 쉐이딩 유닛의 일 예의 동작들을 예시하는 도면이다.
도 5a 는 버텍스 쉐이딩 동작들 및 지오메트리 쉐이딩 동작들을 수행할 때, 병합된 버텍스 쉐이더/지오메트리 쉐이더 하드웨어 쉐이딩 유닛에 의해 수행되는 동작들의 흐름을 예시한다.
도 5b 는 병합된 버텍스 쉐이더/지오메트리 쉐이더 하드웨어 쉐이딩 유닛에 의해 실행될 수도 있는, 도 5a 에 도시된 동작들의 흐름에 대응하는 의사 코드를 예시한다.
도 6 은 이 개시물의 양태들에 따라, 병합된 버텍스 쉐이딩 동작들 및 지오메트리 쉐이딩 동작들을 수행하기 위한 그래픽스 프로세싱 유닛의 일 예의 컴포넌트들을 예시하는 도면이다.
도 7 은 이 개시물의 양태들에 따라, 버텍스 쉐이딩 동작들 및 지오메트리 쉐이딩 동작들을 수행하기 위한 일 예의 프로세스를 예시하는 플로우차트이다.
도 8 은 테셀레이션 스테이지 (tessellation stage) 들을 포함하는 일 예의 그래픽스 프로세싱 파이프라인을 예시하는 블록도이다.
도 9 는 테셀레이션을 예시하는 개념적인 도면이다.
도 10a 및 도 10b 는 이 개시물의 양태들에 따라, 그래픽스 렌더링 파이프라인에서의 데이터 흐름들의 개념적인 도면들이다.
도 11 은 버텍스 쉐이딩 및 헐 쉐이딩 (hull shading) 동작들을 수행하기 위하여 이 개시물에서 설명된 기술들을 구현하는 하드웨어 쉐이딩 유닛의 일 예의 동작들을 예시하는 도면이다.
도 12a 는 버텍스 쉐이딩 동작들 및 헐 쉐이딩 동작들을 수행할 때, 병합된 버텍스 쉐이더/헐 쉐이더 하드웨어 쉐이딩 유닛에 의해 수행되는 동작들의 흐름을 예시한다.
도 12b 는 병합된 버텍스 쉐이더/헐 쉐이더 하드웨어 쉐이딩 유닛에 의해 실행될 수도 있는, 도 12a 에 도시된 동작들의 흐름에 대응하는 의사 코드를 일반적으로 예시한다.
도 13a 는 도메인 쉐이딩 동작들 및 지오메트리 쉐이딩 동작들을 수행할 때, 병합된 도메인 쉐이더/지오메트리 쉐이더 하드웨어 쉐이딩 유닛에 의해 수행되는 동작들의 흐름을 일반적으로 예시한다.
도 13b 는 병합된 도메인 쉐이더/지오메트리 쉐이더 하드웨어 쉐이딩 유닛에 의해 실행될 수도 있는, 도 13a 에 도시된 동작들의 흐름에 대응하는 의사 코드를 일반적으로 예시한다.
도 14 는 이 개시물의 양태들에 따라, 병합된 버텍스 쉐이딩, 헐 쉐이딩, 도메인 쉐이딩, 및 지오메트리 쉐이딩 동작들을 수행하기 위한 그래픽스 프로세싱 유닛의 일 예의 컴포넌트들을 예시하는 도면이다.
도 15 는 이 개시물의 양태들에 따라, 동일한 하드웨어 쉐이딩 유닛을 이용하여 2 개의 렌더링 패스들에서 그래픽스 렌더링을 수행하는 것을 예시하는 흐름도이다.
도 16 은 이 개시물의 양태들에 따라, 2 패스 그래픽스 렌더링 프로세스의 제 1 패스와 연관된 그래픽스 렌더링 동작들을 수행하는 것을 예시하는 흐름도이다.
도 17 은 이 개시물의 양태들에 따라, 2 패스 그래픽스 렌더링 프로세스의 제 2 패스와 연관된 그래픽스 렌더링 동작들을 수행하는 것을 예시하는 흐름도이다.
도 18 은 이 개시물의 양태들에 따라, 동일한 하드웨어 쉐이딩 유닛에 의한 실행을 위하여 하나를 초과하는 쉐이더 스테이지를 함께 패치하는 것을 예시하는 흐름도이다.
모드 |
모드 0
GS: 오프 |
모드 1
GS: 온 |
흐름 | VS->PS | VS| GS->PS |
인덱스 (32 비트들) | 버텍스 인덱스 (VS) | 버텍스 인덱스 (VS) |
PrimitiveID (32 -비트들) | 이용되지 않음 |
PrimitiveID
(GS) |
Misc (25 비트들) |
이용되지 않음 | misc-> rel_primID (4:0) |
misc-> rel_vertex (9:5) |
||
misc-> GsInstance (14:10) |
||
misc-> Gsoutvertex (24:15) |
||
Vs_valid (1 비트) |
||
Gshs_valid (1 비트) |
||
모드 (2:0) |
모드 = mode_0 | 모드 = mode_1 |
흐름 | VS| GS->PS |
인덱스 (32 비트들) | 버텍스 인덱스 (VS) |
uv_msb (2-비트들) | 이용되지 않음 |
PrimitiveID (32 -비트들) | PrimitiveID(GS) |
Rel_patchid (32-비트들) | 이용되지 않음 |
Misc (25 비트들) | misc-> rel_primID (4:0) |
misc-> rel_vertex (9:5) | |
misc-> GsInstance (14:10) | |
misc-> Gsoutvertex (24:15) | |
Vs_valid (1 비트) | |
Gshs_valid (1 비트) | |
모드 (2:0) | 모드 = mode_1 |
Instance_cmd (2-비트) |
모드 1
GS: 온 |
파이버 0 | 파이버 1 | 파이버 2 | 파이버 3 | 파이버 4 | 파이버 5 | 파이버 6 | 파이버 7 |
Valid_as_input | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
버텍스 인덱스 (VS) | V0 | V1 | V2 | 0 | 0 | 0 | 0 | 0 |
primitiveID
(GS) |
5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
Valid_as_output | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
misc-> rel_primID (4:0) |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
misc-> rel_vertex (9:5) |
0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 |
misc-> GsInstance (14:10) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
misc-> Gsoutvertex (24:15) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
모드 | 모드 0 GS:오프, HS: 오프 |
모드 1
GS: 온 HS: 오프 |
모드 4
GS: 온, HS: 온 (패스II) |
모드 3
GS: 오프, HS: 온 (패스II) |
모드 2
GS: 오프, HS: 온 (패스 I) |
흐름 | VS->PS | VS| GS->PS | DS| GS ->PS |
DS->PS | VS|HS |
인덱스 (32 비트들) |
버텍스
인덱스 (VS) |
버텍스 인덱스
(VS) |
u(15:0) v (31:16) |
u(15:0) v (31:16) |
버텍스 인덱스 |
uv_msb (2-비트들) |
이용되지 않음 |
이용되지 않음 | u, v 의 상위 비트 |
u, v 의 상위 비트 |
이용되지 않음 |
PrimitiveID (32-비트들) |
이용되지 않음 |
PrimitiveID
(GS) |
PrimtiiveID
(DS, GS) |
PrimtiiveID
(DS) |
PrimtiiveID
(HS) |
Rel_patchid (32-비트들) |
이용되지 않음 |
이용되지 않음 | Rel_patchid (DS) |
Rel_patchid (DS) |
Rel_patchid (HS) |
Misc (25 비트들) |
이용되지 않음 |
misc-> rel_primID (4:0) |
misc-> rel_primID (4:0) |
이용되지 않음 |
misc-> rel_primID (4:0) |
misc-> rel_vertex (9:5) |
misc-> rel_vertex (9:5) |
misc-> rel_vertex (9:5) |
|||
misc-> GsInstance (14:10) |
misc-> GsInstance (14:10) |
misc-> outvertID (14:10) |
|||
misc-> Gsoutvertex (24:15) |
misc-> Gsoutvertex (24:15) |
||||
Vs_valid (1 비트) |
|||||
Gshs_valid (1 비트) |
|||||
모드 (2:0) |
모드 = mode_0 |
모드 = mode_1 |
모드 = mode_4 |
모드 = mode_3 |
모드 = mode_2 |
Instance_cmd (2-비트) |
모드 3
GS: 오프, HS: 온 |
파이버 0 |
파이버 1 |
파이버 2 |
파이버 3 |
파이버 4 |
파이버 5 |
파이버 6 |
파이버 7 |
Valid_as_ input |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
버텍스 인덱스 (VS) | U|V | U|V | U|V | U|V | U|V | U|V | U|V | U|V |
Uv_msb | u|v | u|v | u|v | u|v | u|v | u|v | u|v | u|v |
primitiveID
(HS) |
105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 |
Rel_patchID | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
모드 4
GS: 온, HS: 온 |
파이버 0 |
파이버 1 |
파이버 2 |
파이버 3 |
파이버 4 |
파이버 5 |
파이버 6 |
파이버 7 |
Valid_as_ input |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
버텍스 인덱스 (VS) | U|V | U|V | U|V | U|V | 0 | 0 | 0 | 0 |
Uv_msb | u|v | u|v | u|v | u|v | 0 | 0 | 0 | 0 |
primitiveID( HS & GS) | 105 | 105 | 105 | 105 | 105 | 105 | 105 | 105 |
Rel_patchID | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
Valid_as_output | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
misc-> rel_primID (4:0) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
misc-> rel_vertex (9:5) |
0 |
1 |
2 |
0 |
0 |
0 |
0 |
0 |
misc-> GSInstance1 (4:10) |
0 |
0 |
2 |
0 |
0 |
0 |
0 |
0 |
misc-> GsOutvertex (24:15) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
모드들 | VS 스테이지 | PS 스테이지 | 비닝 패스 | 렌더링 패스 |
Mode_0 | VS | PS | 프리미티브 당 비즈 (Viz) 정보 | 비즈 스트림 소비 |
Mode_1 | VS+GS | PS | 입력 프리미티브 당 비즈 정보: 증폭된 프리미티브에 대하여, 입력 프리미티브에 대한 비즈 정보를 발생시키기 위하여 빈 커버리지가 논리합 (or) 됨 |
비즈 스트림 소비 |
Mode_2 | VS+HS | 비즈 발생 없음 | 비즈 스트림 소비 | |
Mode_3 | DS | PS | 비즈 정보가 입력 패치 당 발생되고, 입력 프리미티브에 대한 비즈 정보를 발생시키기 위하여 모든 테셀레이팅된 프리미티브들 빈-커버리지가 논리합 됨 | 비즈 스트림 소비하지 않음 |
Mode_4 | (DS+GS) | PS | 비즈 정보가 입력 패치 당 발생되고, 입력 프리미티브에 대한 비즈 정보를 발생시키기 위하여 모든 테셀레이팅된 GS 프리미티브들 빈-커버리지가 논리합 됨 | 비즈 스트림 소비하지 않음 |
VS | (HS, TE ,DS) | GS | SO | PS | 드로우 모드 |
온 | 오프 | 오프 | 오프 | 온 | 모드 0 |
온 | 오프 | 오프 | 온 | 온/오프 | 모드 0 |
온 | 오프 | 온 | 오프 | 온 | 모드 1 |
온 | 오프 | 온 | 온 | 온/오프 | 모드 1 |
온 | 온 | 오프 | 오프 | 온 | 패스 1: 모드 2 패스 2 : 모드 3 |
온 | 온 | 오프 | 온 | 온/오프 | 패스 1: 모드 2 패스 2 : 모드 3 |
온 | 온 | 온 | 오프 | 온 | 패스 1: 모드 2 패스 2 : 모드 4 |
온 | 온 | 온 | 온 | 온 | 패스 1: 모드 2 패스 2 : 모드 4 |
Claims (36)
- 그래픽스를 렌더링하는 방법으로서,
상기 그래픽스를 렌더링하기 위해 드로우 콜을 실행하는 단계;
상기 드로우 콜을 실행할 시, 버텍스 쉐이딩 (vertex shading) 동작들을 수행하도록 그래픽스 프로세싱 유닛의 하드웨어 쉐이딩 유닛을 지정하는 단계;
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로, 버텍스 쉐이딩된 버텍스들을 출력하도록 복수의 입력 버텍스들을 쉐이딩하기 위하여 버텍스 쉐이딩 동작들을 수행하는 단계로서, 상기 버텍스 쉐이딩 동작들을 수행하는 단계는 상기 하드웨어 쉐이딩 유닛에 의해, 상기 복수의 입력 버텍스들의 각각의 개별 입력 버텍스에 대하여 단일 버텍스를 출력하는 단계를 포함하는, 상기 버텍스 쉐이딩 동작들을 수행하는 단계; 및
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로, 상기 버텍스 쉐이딩된 버텍스들 중의 하나 이상에 기초하여 하나 이상의 새로운 버텍스들을 발생시키기 위하여 지오메트리 쉐이딩 동작을 수행하는 단계로서, 상기 지오메트리 쉐이딩 동작은 상기 하나 이상의 새로운 버텍스들을 출력하기 위하여 하나 이상의 버텍스 쉐이딩된 버텍스들 중 적어도 하나에 작용하는, 상기 지오메트리 쉐이딩 동작을 수행하는 단계를 포함하는, 그래픽스를 렌더링하는 방법. - 제 1 항에 있어서,
상기 지오메트리 쉐이딩 동작을 수행하는 단계는,
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로 지오메트리 쉐이더 프로그램의 제 1 인스턴스를 실행하는 단계;
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로 지오메트리 쉐이더 프로그램의 제 2 인스턴스를 실행하는 단계;
상기 하드웨어 쉐이딩 유닛의 인터페이스를 고수하도록 상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스로부터 단일 지오메트리 쉐이딩된 출력을 출력하는 단계; 및
상기 하드웨어 쉐이딩 유닛의 인터페이스를 고수하도록 상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스로부터 제 2 의 단일 지오메트리 쉐이딩된 출력을 출력하는 단계를 포함하는, 그래픽스를 렌더링하는 방법. - 제 2 항에 있어서,
상기 하드웨어 쉐이딩 유닛으로 상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스와 상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스를 동시에 실행하는 단계를 더 포함하는, 그래픽스를 렌더링하는 방법. - 제 2 항에 있어서,
상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스에는 제 1 지오메트리 쉐이더 출력 식별자가 할당되고,
상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스에는 제 2 지오메트리 쉐이더 출력 식별자가 할당되며,
상기 단일 지오메트리 쉐이딩된 출력을 출력하는 단계는 상기 제 1 지오메트리 쉐이더 출력 식별자의 출력 카운터와의 비교에 기초하여 상기 단일 지오메트리 쉐이딩된 출력을 출력하는 단계를 포함하고, 그리고
제 2 의 지오메트리 쉐이딩된 출력을 출력하는 것은 상기 제 2 지오메트리 쉐이더 출력 식별자의 상기 출력 카운터와의 비교에 기초하여 상기 제 2 의 단일 지오메트리 쉐이딩된 출력을 출력하는 것을 포함하는, 그래픽스를 렌더링하는 방법. - 제 1 항에 있어서,
상기 지오메트리 쉐이딩 동작을 수행하기 전에, 상기 지오메트리 쉐이딩 동작을 위하여 프로그램 카운터 및 하나 이상의 자원 포인터들을 스위칭하는 단계를 더 포함하는, 그래픽스를 렌더링하는 방법. - 제 1 항에 있어서,
상기 지오메트리 쉐이딩 동작을 수행하는 단계가 상기 그래픽스 프로세싱 유닛 외부에 위치된 오프-칩 메모리로부터 상기 버텍스 쉐이딩된 버텍스들 중 하나 이상을 취출하는 단계를 포함하지 않도록, 상기 하나 이상의 버텍스 쉐이딩된 버텍스들을 로컬 메모리에 저장하는 단계를 더 포함하는, 그래픽스를 렌더링하는 방법. - 제 1 항에 있어서,
상기 하드웨어 쉐이딩 유닛으로, 상기 하나 이상의 새로운 버텍스들 중 적어도 하나로부터 추가의 새로운 버텍스들을 발생시키기 위하여 상기 하나 이상의 새로운 버텍스들 중 적어도 하나에 다른 지오메트리 쉐이딩 동작을 수행하는 단계를 더 포함하는, 그래픽스를 렌더링하는 방법. - 제 1 항에 있어서,
상기 버텍스 쉐이딩 동작 및 상기 지오메트리 쉐이딩 동작이 순차적으로 실행되도록, 상기 지오메트리 쉐이딩 동작과 연관된 명령들을 상기 버텍스 쉐이딩 동작들과 연관된 명령들에 부가하는 단계를 더 포함하는, 그래픽스를 렌더링하는 방법. - 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛으로서,
하드웨어 쉐이딩 유닛; 및
하나 이상의 프로세서들을 포함하고,
상기 하나 이상의 프로세서들은,
상기 그래픽스를 렌더링하기 위해 드로우 콜을 실행하고,
상기 드로우 콜을 실행할 시, 버텍스 쉐이딩 동작들을 수행하도록 상기 하드웨어 쉐이딩 유닛을 지정하도록 구성되며,
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛은 버텍스 쉐이딩된 버텍스들을 출력하도록 복수의 입력 버텍스들을 쉐이딩하기 위하여 버텍스 쉐이딩 동작들을 수행하도록 구성되고, 상기 버텍스 쉐이딩 동작들을 수행하는 것은 상기 하드웨어 쉐이딩 유닛에 의해, 상기 복수의 입력 버텍스들의 각각의 개별 입력 버텍스에 대하여 단일 버텍스를 출력하는 것을 포함하며, 그리고
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛은 상기 버텍스 쉐이딩된 버텍스들 중의 하나 이상에 기초하여 하나 이상의 새로운 버텍스들을 발생시키기 위하여 지오메트리 쉐이딩 동작을 수행하도록 구성되고, 상기 지오메트리 쉐이딩 동작은 상기 하나 이상의 새로운 버텍스들을 출력하기 위하여 하나 이상의 버텍스 쉐이딩된 버텍스들 중 적어도 하나에 작용하는, 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛. - 제 9 항에 있어서,
상기 지오메트리 쉐이딩 동작을 수행하기 위하여, 상기 하드웨어 쉐이딩 유닛은,
지오메트리 쉐이더 프로그램의 제 1 인스턴스를 실행하고;
지오메트리 쉐이더 프로그램의 제 2 인스턴스를 실행하고;
상기 하드웨어 쉐이딩 유닛의 인터페이스를 고수하도록 상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스로부터 단일 지오메트리 쉐이딩된 출력을 출력하며; 그리고
상기 하드웨어 쉐이딩 유닛의 인터페이스를 고수하도록 상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스로부터 제 2 의 단일 지오메트리 쉐이딩된 출력을 출력하도록
구성되는, 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛. - 제 10 항에 있어서,
상기 하드웨어 쉐이딩 유닛은 추가로, 상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스와 상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스를 동시에 실행하도록 구성되는, 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛. - 제 10 항에 있어서,
상기 하나 이상의 프로세서들은 추가로,
상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스에 제 1 지오메트리 쉐이더 출력 식별자를 할당하고,
상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스에 제 2 지오메트리 쉐이더 출력 식별자를 할당하도록
구성되며,
상기 단일 지오메트리 쉐이딩된 출력을 출력하기 위하여, 상기 하드웨어 쉐이딩 유닛은 상기 제 1 지오메트리 쉐이더 출력 식별자의 출력 카운터와의 비교에 기초하여 상기 단일 지오메트리 쉐이딩된 출력을 출력하도록 구성되고, 그리고
제 2 의 지오메트리 쉐이딩된 출력을 출력하기 위하여, 상기 하드웨어 쉐이딩 유닛은 상기 제 2 지오메트리 쉐이더 출력 식별자의 상기 출력 카운터와의 비교에 기초하여 상기 제 2 의 단일 지오메트리 쉐이딩된 출력을 출력하도록 구성되는, 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛. - 제 9 항에 있어서,
상기 하나 이상의 프로세서들은 상기 지오메트리 쉐이딩 동작을 수행하기 전에, 상기 지오메트리 쉐이딩 동작을 위하여 프로그램 카운터 및 하나 이상의 자원 포인터들을 스위칭하도록 구성되는, 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛. - 제 9 항에 있어서,
로컬 그래픽스 프로세싱 유닛 메모리를 더 포함하며,
상기 하나 이상의 프로세서들은, 상기 지오메트리 쉐이딩 동작을 수행하기 위하여, 상기 하나 이상의 프로세서들이 상기 그래픽스 프로세싱 유닛 외부에 위치된 오프-칩 메모리로부터 상기 버텍스 쉐이딩된 버텍스들 중 하나 이상을 취출하지 않도록, 상기 하나 이상의 버텍스 쉐이딩된 버텍스들을 상기 로컬 그래픽스 프로세싱 유닛 메모리에 저장하도록 구성되는, 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛. - 제 9 항에 있어서,
상기 하드웨어 쉐이딩 유닛은 추가로, 상기 하나 이상의 새로운 버텍스들 중 적어도 하나로부터 추가의 새로운 버텍스들을 발생시키기 위하여 상기 하나 이상의 새로운 버텍스들 중 적어도 하나에 다른 지오메트리 쉐이딩 동작을 수행하도록 구성되는, 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛. - 제 9 항에 있어서,
상기 하나 이상의 프로세서들은, 상기 하드웨어 쉐이딩 유닛이 상기 버텍스 쉐이딩 동작과 상기 지오메트리 쉐이딩 동작을 순차적으로 실행하도록, 상기 지오메트리 쉐이딩 동작과 연관된 명령들을 상기 버텍스 쉐이딩 동작들과 연관된 명령들에 부가하도록 구성되는, 그래픽스를 렌더링하기 위한 그래픽스 프로세싱 유닛. - 그래픽스를 렌더링하기 위한 장치로서,
상기 그래픽스를 렌더링하기 위해 드로우 콜을 실행하는 수단;
상기 드로우 콜을 실행할 시, 버텍스 쉐이딩 동작들을 수행하도록 그래픽스 프로세싱 유닛의 하드웨어 쉐이딩 유닛을 지정하는 수단;
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로, 버텍스 쉐이딩된 버텍스들을 출력하도록 복수의 입력 버텍스들을 쉐이딩하기 위하여 버텍스 쉐이딩 동작들을 수행하는 수단으로서, 상기 버텍스 쉐이딩 동작들을 수행하는 것은 상기 하드웨어 쉐이딩 유닛에 의해, 상기 복수의 입력 버텍스들의 각각의 개별 입력 버텍스에 대하여 단일 버텍스를 출력하는 것을 포함하는, 상기 버텍스 쉐이딩 동작들을 수행하는 수단; 및
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로, 상기 버텍스 쉐이딩된 버텍스들 중의 하나 이상에 기초하여 하나 이상의 새로운 버텍스들을 발생시키기 위하여 지오메트리 쉐이딩 동작을 수행하는 수단으로서, 상기 지오메트리 쉐이딩 동작은 상기 하나 이상의 새로운 버텍스들을 출력하기 위하여 하나 이상의 버텍스 쉐이딩된 버텍스들 중 적어도 하나에 작용하는, 상기 지오메트리 쉐이딩 동작을 수행하는 수단을 포함하는, 그래픽스를 렌더링하기 위한 장치. - 제 17 항에 있어서,
상기 지오메트리 쉐이딩 동작을 수행하는 수단은,
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로 지오메트리 쉐이더 프로그램의 제 1 인스턴스를 실행하는 수단;
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로 지오메트리 쉐이더 프로그램의 제 2 인스턴스를 실행하는 수단;
상기 하드웨어 쉐이딩 유닛의 인터페이스를 고수하도록 상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스로부터 단일 지오메트리 쉐이딩된 출력을 출력하는 수단; 및
상기 하드웨어 쉐이딩 유닛의 인터페이스를 고수하도록 상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스로부터 제 2 의 단일 지오메트리 쉐이딩된 출력을 출력하는 수단을 포함하는, 그래픽스를 렌더링하기 위한 장치. - 제 18 항에 있어서,
상기 하드웨어 쉐이딩 유닛으로 상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스와 상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스를 동시에 실행하는 수단을 더 포함하는, 그래픽스를 렌더링하기 위한 장치. - 제 18 항에 있어서,
상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스에는 제 1 지오메트리 쉐이더 출력 식별자가 할당되고,
상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스에는 제 2 지오메트리 쉐이더 출력 식별자가 할당되며,
상기 단일 지오메트리 쉐이딩된 출력을 출력하는 수단은 상기 제 1 지오메트리 쉐이더 출력 식별자의 출력 카운터와의 비교에 기초하여 상기 단일 지오메트리 쉐이딩된 출력을 출력하는 수단을 포함하고, 그리고
제 2 의 지오메트리 쉐이딩된 출력을 출력하는 수단은 상기 제 2 지오메트리 쉐이더 출력 식별자의 상기 출력 카운터와의 비교에 기초하여 상기 제 2 의 단일 지오메트리 쉐이딩된 출력을 출력하는 수단을 포함하는, 그래픽스를 렌더링하기 위한 장치. - 제 17 항에 있어서,
상기 지오메트리 쉐이딩 동작을 수행하기 전에, 상기 지오메트리 쉐이딩 동작을 위하여 프로그램 카운터 및 하나 이상의 자원 포인터들을 스위칭하는 수단을 더 포함하는, 그래픽스를 렌더링하기 위한 장치. - 제 17 항에 있어서,
상기 지오메트리 쉐이딩 동작을 수행하는 수단이 상기 그래픽스 프로세싱 유닛 외부에 위치된 오프-칩 메모리로부터 상기 버텍스 쉐이딩된 버텍스들 중 하나 이상을 취출하는 수단을 포함하지 않도록, 상기 하나 이상의 버텍스 쉐이딩된 버텍스들을 로컬 메모리에 저장하는 수단을 더 포함하는, 그래픽스를 렌더링하기 위한 장치. - 제 17 항에 있어서,
상기 하나 이상의 새로운 버텍스들 중 적어도 하나로부터 추가의 새로운 버텍스들을 발생시키기 위하여 상기 하나 이상의 새로운 버텍스들 중 적어도 하나에 다른 지오메트리 쉐이딩 동작을 수행하는 수단을 더 포함하는, 그래픽스를 렌더링하기 위한 장치. - 제 17 항에 있어서,
상기 버텍스 쉐이딩 동작 및 상기 지오메트리 쉐이딩 동작이 순차적으로 실행되도록, 상기 지오메트리 쉐이딩 동작과 연관된 명령들을 상기 버텍스 쉐이딩 동작들과 연관된 명령들에 부가하는 수단을 더 포함하는, 그래픽스를 렌더링하기 위한 장치. - 명령들을 저장한 컴퓨터-판독가능한 저장 매체로서,
상기 명령들은, 실행될 경우, 하나 이상의 프로세서들로 하여금,
그래픽스를 렌더링하기 위해 드로우 콜을 실행하게 하고;
상기 드로우 콜을 실행할 시, 버텍스 쉐이딩 동작들을 수행하도록 그래픽스 프로세싱 유닛의 하드웨어 쉐이딩 유닛을 지정하게 하고;
상기 그래픽스 프로세싱 유닛의 상기 하드웨어 쉐이딩 유닛으로, 버텍스 쉐이딩된 버텍스들을 출력하도록 복수의 입력 버텍스들을 쉐이딩하기 위하여 버텍스 쉐이딩 동작들을 수행하게 하는 것으로서, 상기 버텍스 쉐이딩 동작들을 수행하는 것은 상기 하드웨어 쉐이딩 유닛에 의해, 상기 복수의 입력 버텍스들의 각각의 개별 입력 버텍스에 대하여 단일 버텍스를 출력하는 것을 포함하는, 상기 버텍스 쉐이딩 동작들을 수행하게 하고; 그리고
버텍스 쉐이딩을 위해 지정된 상기 하드웨어 쉐이딩 유닛으로, 상기 버텍스 쉐이딩된 버텍스들 중의 하나 이상에 기초하여 하나 이상의 새로운 버텍스들을 발생시키기 위하여 지오메트리 쉐이딩 동작을 수행하게 하는 것으로서, 상기 지오메트리 쉐이딩 동작은 상기 하나 이상의 새로운 버텍스들을 출력하기 위하여 하나 이상의 버텍스 쉐이딩된 버텍스들 중 적어도 하나에 작용하는, 상기 지오메트리 쉐이딩 동작을 수행하게 하는, 컴퓨터-판독가능한 저장 매체. - 제 25 항에 있어서,
상기 지오메트리 쉐이딩 동작을 수행하기 위하여, 명령들은 상기 하드웨어 쉐이딩 유닛으로 하여금,
지오메트리 쉐이더 프로그램의 제 1 인스턴스를 실행하게 하고;
지오메트리 쉐이더 프로그램의 제 2 인스턴스를 실행하게 하고;
상기 하드웨어 쉐이딩 유닛의 인터페이스를 고수하도록 상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스로부터 단일 지오메트리 쉐이딩된 출력을 출력하게 하며; 그리고
상기 하드웨어 쉐이딩 유닛의 인터페이스를 고수하도록 상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스로부터 제 2 의 단일 지오메트리 쉐이딩된 출력을 출력하게 하는, 컴퓨터-판독가능한 저장 매체. - 제 26 항에 있어서,
상기 하드웨어 쉐이딩 유닛으로 하여금, 상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스와 상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스를 동시에 실행하게 하는 명령들을 더 포함하는, 컴퓨터-판독가능한 저장 매체. - 제 26 항에 있어서,
상기 하나 이상의 프로세서들로 하여금,
상기 지오메트리 쉐이더 프로그램의 상기 제 1 인스턴스에 제 1 지오메트리 쉐이더 출력 식별자를 할당하게 하고,
상기 지오메트리 쉐이더 프로그램의 상기 제 2 인스턴스에 제 2 지오메트리 쉐이더 출력 식별자를 할당하게 하는 명령들을 더 포함하며,
상기 단일 지오메트리 쉐이딩된 출력을 출력하기 위하여, 상기 명령들은 상기 하드웨어 쉐이딩 유닛으로 하여금, 상기 제 1 지오메트리 쉐이더 출력 식별자의 출력 카운터와의 비교에 기초하여 상기 단일 지오메트리 쉐이딩된 출력을 출력하게 하고, 그리고
제 2 의 지오메트리 쉐이딩된 출력을 출력하기 위하여, 상기 명령들은 상기 하드웨어 쉐이딩 유닛으로 하여금, 상기 제 2 지오메트리 쉐이더 출력 식별자의 상기 출력 카운터와의 비교에 기초하여 상기 제 2 의 단일 지오메트리 쉐이딩된 출력을 출력하게 하는, 컴퓨터-판독가능한 저장 매체. - 제 25 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 지오메트리 쉐이딩 동작을 수행하기 전에, 상기 지오메트리 쉐이딩 동작을 위하여 프로그램 카운터 및 하나 이상의 자원 포인터들을 스위칭하게 하는 명령들을 더 포함하는, 컴퓨터-판독가능한 저장 매체. - 제 25 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 지오메트리 쉐이딩 동작을 수행하기 위하여, 상기 하나 이상의 프로세서들이 외부 메모리로부터 상기 버텍스 쉐이딩된 버텍스들 중 하나 이상을 취출하지 않도록, 상기 하나 이상의 버텍스 쉐이딩된 버텍스들을 로컬 메모리에 저장하게 하는 명령들을 더 포함하는, 컴퓨터-판독가능한 저장 매체. - 제 25 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 하나 이상의 새로운 버텍스들 중 적어도 하나로부터 추가의 새로운 버텍스들을 발생시키기 위하여 상기 하나 이상의 새로운 버텍스들 중 적어도 하나에 다른 지오메트리 쉐이딩 동작을 수행하게 하는 명령들을 더 포함하는, 컴퓨터-판독가능한 저장 매체. - 제 25 항에 있어서,
상기 하나 이상의 프로세서들로 하여금, 상기 버텍스 쉐이딩 동작과 상기 지오메트리 쉐이딩 동작이 순차적으로 실행되도록, 상기 지오메트리 쉐이딩 동작과 연관된 명령들을 상기 버텍스 쉐이딩 동작들과 연관된 명령들에 부가하게 하는 명령들을 더 포함하는, 컴퓨터-판독가능한 저장 매체. - 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261620333P | 2012-04-04 | 2012-04-04 | |
US201261620340P | 2012-04-04 | 2012-04-04 | |
US201261620358P | 2012-04-04 | 2012-04-04 | |
US61/620,358 | 2012-04-04 | ||
US61/620,340 | 2012-04-04 | ||
US61/620,333 | 2012-04-04 | ||
US13/830,145 | 2013-03-14 | ||
US13/830,145 US9412197B2 (en) | 2012-04-04 | 2013-03-14 | Patched shading in graphics processing |
PCT/US2013/032136 WO2013151751A2 (en) | 2012-04-04 | 2013-03-15 | Patched shading in graphics processing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150002745A KR20150002745A (ko) | 2015-01-07 |
KR101784671B1 true KR101784671B1 (ko) | 2017-10-12 |
Family
ID=49291929
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147030816A KR102132040B1 (ko) | 2012-04-04 | 2013-03-15 | 그래픽스 프로세싱에서의 패치된 쉐이딩 |
KR1020147030830A KR101784671B1 (ko) | 2012-04-04 | 2013-03-15 | 그래픽스 프로세싱에서의 패치된 쉐이딩 |
KR1020147030786A KR102046676B1 (ko) | 2012-04-04 | 2013-03-15 | 그래픽스 프로세싱에서의 패치된 쉐이딩 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147030816A KR102132040B1 (ko) | 2012-04-04 | 2013-03-15 | 그래픽스 프로세싱에서의 패치된 쉐이딩 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147030786A KR102046676B1 (ko) | 2012-04-04 | 2013-03-15 | 그래픽스 프로세싱에서의 패치된 쉐이딩 |
Country Status (6)
Country | Link |
---|---|
US (6) | US9412197B2 (ko) |
EP (3) | EP2834793B1 (ko) |
JP (3) | JP6162216B2 (ko) |
KR (3) | KR102132040B1 (ko) |
CN (3) | CN104205174B (ko) |
WO (3) | WO2013151750A2 (ko) |
Families Citing this family (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817043B2 (en) * | 2011-07-26 | 2020-10-27 | Nvidia Corporation | System and method for entering and exiting sleep mode in a graphics subsystem |
US9412197B2 (en) | 2012-04-04 | 2016-08-09 | Qualcomm Incorporated | Patched shading in graphics processing |
US8928679B2 (en) * | 2012-09-14 | 2015-01-06 | Advanced Micro Devices, Inc. | Work distribution for higher primitive rates |
US9013500B2 (en) * | 2012-10-22 | 2015-04-21 | The Boeing Company | Real time intervisibility analysis |
US9299123B2 (en) | 2013-01-22 | 2016-03-29 | Qualcomm Incorporated | Indexed streamout buffers for graphics processing |
US10255650B2 (en) * | 2013-05-24 | 2019-04-09 | Sony Interactive Entertainment Inc. | Graphics processing using dynamic resources |
US9495722B2 (en) | 2013-05-24 | 2016-11-15 | Sony Interactive Entertainment Inc. | Developer controlled layout |
US9779534B2 (en) * | 2013-08-28 | 2017-10-03 | Qualcomm Incorporated | Prefixed summed length in graphics processing |
CN105637556B (zh) * | 2013-10-14 | 2019-06-28 | 马维尔国际贸易有限公司 | 用于图形处理单元功率管理的系统和方法 |
US10198856B2 (en) * | 2013-11-11 | 2019-02-05 | Oxide Interactive, LLC | Method and system of anti-aliasing shading decoupled from rasterization |
US9483862B2 (en) * | 2013-12-20 | 2016-11-01 | Qualcomm Incorporated | GPU-accelerated path rendering |
US9280845B2 (en) | 2013-12-27 | 2016-03-08 | Qualcomm Incorporated | Optimized multi-pass rendering on tiled base architectures |
US9679347B2 (en) | 2014-02-18 | 2017-06-13 | Qualcomm Incorporated | Shader pipeline with shared data channels |
US11302054B2 (en) | 2014-04-05 | 2022-04-12 | Sony Interactive Entertainment Europe Limited | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
US9710957B2 (en) * | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Graphics processing enhancement by tracking object and/or primitive identifiers |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US10783696B2 (en) | 2014-04-05 | 2020-09-22 | Sony Interactive Entertainment LLC | Gradient adjustment for texture mapping to non-orthonormal grid |
US10068311B2 (en) | 2014-04-05 | 2018-09-04 | Sony Interacive Entertainment LLC | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9865074B2 (en) | 2014-04-05 | 2018-01-09 | Sony Interactive Entertainment America Llc | Method for efficient construction of high resolution display buffers |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
WO2015154004A1 (en) | 2014-04-05 | 2015-10-08 | Sony Computer Entertainment America Llc | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
GB2526359B (en) * | 2014-05-23 | 2020-07-22 | Advanced Risc Mach Ltd | Graphics processing systems |
US20150348224A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Graphics Pipeline State Object And Model |
US10346941B2 (en) | 2014-05-30 | 2019-07-09 | Apple Inc. | System and method for unified application programming interface and model |
US10430169B2 (en) | 2014-05-30 | 2019-10-01 | Apple Inc. | Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US20150378920A1 (en) * | 2014-06-30 | 2015-12-31 | John G. Gierach | Graphics data pre-fetcher for last level caches |
KR20170015325A (ko) * | 2014-07-10 | 2017-02-08 | 인텔 코포레이션 | 현재 상태에 기초하여 쉐이더 프로그램을 업데이트하기 위한 방법 및 장치 |
US9665975B2 (en) * | 2014-08-22 | 2017-05-30 | Qualcomm Incorporated | Shader program execution techniques for use in graphics processing |
KR102313020B1 (ko) * | 2014-11-27 | 2021-10-15 | 삼성전자주식회사 | 그래픽스 프로세싱 유닛과 이를 포함하는 장치 |
US9489710B2 (en) * | 2015-02-10 | 2016-11-08 | Qualcomm Incorporated | Hybrid rendering in graphics processing |
US9804666B2 (en) | 2015-05-26 | 2017-10-31 | Samsung Electronics Co., Ltd. | Warp clustering |
GB2539042B (en) * | 2015-06-05 | 2019-08-21 | Imagination Tech Ltd | Tessellation method using displacement factors |
US9786098B2 (en) * | 2015-07-06 | 2017-10-10 | Mediatek Inc. | Apparatus for performing tessellation operation and methods utilizing the same |
US11087644B2 (en) | 2015-08-19 | 2021-08-10 | E Ink Corporation | Displays intended for use in architectural applications |
KR102472131B1 (ko) | 2015-09-03 | 2022-11-29 | 삼성전자주식회사 | 쉐이더 프로그램을 생성하는 방법 및 장치 |
CN106547505B (zh) * | 2015-09-22 | 2021-02-05 | 同方威视技术股份有限公司 | 用于实时滑动显示扫描图像的方法及系统 |
US9824458B2 (en) * | 2015-09-23 | 2017-11-21 | Qualcomm Incorporated | Dynamically switching between late depth testing and conservative depth testing |
US9842376B2 (en) * | 2015-09-29 | 2017-12-12 | Qualcomm Incorporated | Graphics processing unit preemption with pixel tile level granularity |
KR102381945B1 (ko) * | 2015-11-18 | 2022-04-01 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법 |
US10332310B2 (en) * | 2015-12-22 | 2019-06-25 | Nvidia Corporation | Distributed index fetch, primitive assembly, and primitive batching |
US20170236318A1 (en) * | 2016-02-15 | 2017-08-17 | Microsoft Technology Licensing, Llc | Animated Digital Ink |
US20170243375A1 (en) * | 2016-02-18 | 2017-08-24 | Qualcomm Incorporated | Multi-step texture processing with feedback in texture unit |
US10456672B2 (en) | 2016-05-19 | 2019-10-29 | Google Llc | Methods and systems for facilitating participation in a game session |
JP6599569B2 (ja) | 2016-05-24 | 2019-10-30 | イー インク コーポレイション | ディスプレイ上に画像をレンダリングする方法、ディスプレイデバイスおよびコンピューティングデバイスを備える装置、ならびに、非一過性コンピュータ記憶媒体 |
CN107578745A (zh) * | 2016-07-04 | 2018-01-12 | 上海和辉光电有限公司 | Fpga器件以及使用该器件的amoled显示电路 |
CN106210883A (zh) * | 2016-08-11 | 2016-12-07 | 浙江大华技术股份有限公司 | 一种视频渲染的方法、设备 |
US10460513B2 (en) | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
US11379941B2 (en) * | 2016-09-22 | 2022-07-05 | Advanced Micro Devices, Inc. | Primitive shader |
KR102644276B1 (ko) * | 2016-10-10 | 2024-03-06 | 삼성전자주식회사 | 그래픽 처리 장치 및 방법 |
US10346943B2 (en) | 2017-01-03 | 2019-07-09 | Microsoft Technology Licensing, Llc | Prefetching for a graphics shader |
US10650566B2 (en) | 2017-02-15 | 2020-05-12 | Microsoft Technology Licensing, Llc | Multiple shader processes in graphics processing |
GB2560709B (en) * | 2017-03-14 | 2021-02-24 | Imagination Tech Ltd | Graphics processing method and system for processing sub-primitives |
US10685473B2 (en) * | 2017-05-31 | 2020-06-16 | Vmware, Inc. | Emulation of geometry shaders and stream output using compute shaders |
CN110678239B (zh) | 2017-10-10 | 2024-02-09 | 谷歌有限责任公司 | 利用游戏元数据和量度的分布式基于样本的游戏剖析以及支持第三方内容的游戏api平台 |
US10600142B2 (en) * | 2017-11-02 | 2020-03-24 | Advanced Micro Devices, Inc. | Compression and decompression of indices in a graphics pipeline |
US11080927B2 (en) * | 2017-11-30 | 2021-08-03 | Advanced Micro Devices, Inc. | Method and apparatus of cross shader compilation |
US10621782B1 (en) | 2017-12-06 | 2020-04-14 | Apple Inc. | Sub-patch techniques for graphics tessellation |
US10467723B2 (en) * | 2017-12-21 | 2019-11-05 | Qualcomm Incorporated | Tile-based check values for data content integrity in a GPU subsystem |
US10504280B2 (en) * | 2018-01-10 | 2019-12-10 | Qualcomm Incorporated | Accelerated occlusion computation |
GB2570304B (en) | 2018-01-18 | 2022-06-01 | Imagination Tech Ltd | Topology preservation in a graphics pipeline |
KR102407691B1 (ko) | 2018-03-22 | 2022-06-10 | 구글 엘엘씨 | 온라인 인터랙티브 게임 세션들에 대한 콘텐츠를 렌더링 및 인코딩하기 위한 방법들 및 시스템들 |
CN115253276B (zh) | 2018-04-02 | 2024-07-19 | 谷歌有限责任公司 | 交互式云游戏的方法、设备和系统 |
US11077364B2 (en) | 2018-04-02 | 2021-08-03 | Google Llc | Resolution-based scaling of real-time interactive graphics |
GB2572617B (en) * | 2018-04-05 | 2021-06-16 | Imagination Tech Ltd | Blending hardware |
EP3701489B1 (en) | 2018-04-10 | 2022-10-26 | Google LLC | Memory management in gaming rendering |
GB2573316B (en) * | 2018-05-02 | 2021-01-27 | Advanced Risc Mach Ltd | Data processing systems |
KR102589969B1 (ko) | 2018-11-05 | 2023-10-16 | 삼성전자주식회사 | 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법 |
EP3807766B1 (en) | 2018-11-16 | 2021-10-27 | Google LLC | Shadow tracking of real-time interactive simulations for complex system analysis |
US11080928B2 (en) * | 2019-04-01 | 2021-08-03 | Qualcomm Incorporated | Methods and apparatus for visibility stream management |
US11243752B2 (en) * | 2019-07-11 | 2022-02-08 | Advanced Micro Devices, Inc. | Multi-version shaders |
US10930062B2 (en) * | 2019-07-18 | 2021-02-23 | Raytheon Company | 3D view model generation of an object utilizing geometrically diverse image clusters |
US11189002B1 (en) * | 2019-07-24 | 2021-11-30 | Parallels International Gmbh | System and method for detecting when geometry shaders output a constant amount of data |
US11436783B2 (en) | 2019-10-16 | 2022-09-06 | Oxide Interactive, Inc. | Method and system of decoupled object space shading |
US11037358B1 (en) * | 2020-01-03 | 2021-06-15 | Qualcomm Incorporated | Methods and apparatus for reducing memory bandwidth in multi-pass tessellation |
US11514549B2 (en) | 2020-02-03 | 2022-11-29 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by generating information in one rendering phase for use in another rendering phase |
US12112394B2 (en) | 2020-02-03 | 2024-10-08 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using configurable shaders |
US11170461B2 (en) * | 2020-02-03 | 2021-11-09 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering |
US11508110B2 (en) | 2020-02-03 | 2022-11-22 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by performing geometry analysis before rendering |
CN112604293B (zh) * | 2020-12-28 | 2025-01-03 | 完美世界(北京)软件科技发展有限公司 | 数据处理方法、装置、电子设备及可读介质 |
US12002142B2 (en) | 2021-07-12 | 2024-06-04 | Qualcomm Incorporated | Performance overhead optimization in GPU scoping |
US11908079B2 (en) * | 2022-04-08 | 2024-02-20 | Qualcomm Incorporated | Variable rate tessellation |
CN118154759B (zh) * | 2024-05-06 | 2024-07-26 | 武汉凌久微电子有限公司 | 一种可编程管线gpu中固定管线功能实现方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011028986A2 (en) | 2009-09-03 | 2011-03-10 | Advanced Micro Devices, Inc. | A processing unit that enables asyncronous task dispatch |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109504A (en) * | 1989-12-29 | 1992-04-28 | Texas Instruments Incorporated | Graphics program adaptor |
JPH0830471A (ja) | 1994-07-14 | 1996-02-02 | Hitachi Ltd | ジョブの実行プロセサ変更方式 |
WO2000010372A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline |
GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
US7196710B1 (en) | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6732354B2 (en) | 2002-04-23 | 2004-05-04 | Quicksilver Technology, Inc. | Method, system and software for programming reconfigurable hardware |
US7109987B2 (en) | 2004-03-02 | 2006-09-19 | Ati Technologies Inc. | Method and apparatus for dual pass adaptive tessellation |
US7385607B2 (en) | 2004-04-12 | 2008-06-10 | Nvidia Corporation | Scalable shader architecture |
US7671862B1 (en) | 2004-05-03 | 2010-03-02 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7570267B2 (en) | 2004-05-03 | 2009-08-04 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7750914B2 (en) | 2004-08-26 | 2010-07-06 | Intel Corporation | Subdividing geometry images in graphics hardware |
US20070083870A1 (en) | 2005-07-29 | 2007-04-12 | Tomochika Kanakogi | Methods and apparatus for task sharing among a plurality of processors |
JPWO2007049610A1 (ja) | 2005-10-25 | 2009-04-30 | 三菱電機株式会社 | 画像処理装置 |
US7468726B1 (en) | 2005-12-01 | 2008-12-23 | Nvidia Corporation | Culling in a vertex processing unit |
US7533237B1 (en) | 2006-05-11 | 2009-05-12 | Nvidia Corporation | Off-chip memory allocation for a unified shader |
US8154554B1 (en) | 2006-07-28 | 2012-04-10 | Nvidia Corporation | Unified assembly instruction set for graphics processing |
US20080094408A1 (en) | 2006-10-24 | 2008-04-24 | Xiaoqin Yin | System and Method for Geometry Graphics Processing |
US7701459B1 (en) | 2006-11-03 | 2010-04-20 | Nvidia Corporation | Primitive oriented assembly for parallel vertex/geometry processing |
JP2008276407A (ja) | 2007-04-26 | 2008-11-13 | Canon Inc | 画像処理装置及びその方法 |
US8325184B2 (en) | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
WO2009058845A1 (en) | 2007-10-30 | 2009-05-07 | Advanced Micro Devices | Real-time mesh simplification using the graphics-processing unit |
US8031194B2 (en) | 2007-11-09 | 2011-10-04 | Vivante Corporation | Intelligent configurable graphics bandwidth modulator |
US8922565B2 (en) * | 2007-11-30 | 2014-12-30 | Qualcomm Incorporated | System and method for using a secondary processor in a graphics system |
US8174534B2 (en) | 2007-12-06 | 2012-05-08 | Via Technologies, Inc. | Shader processing systems and methods |
JP2011510396A (ja) | 2008-01-23 | 2011-03-31 | インテル コーポレイション | グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト |
US20090189896A1 (en) | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Shader Unit |
US8643644B2 (en) | 2008-03-20 | 2014-02-04 | Qualcomm Incorporated | Multi-stage tessellation for graphics rendering |
CN101271584B (zh) | 2008-04-11 | 2010-11-10 | 威盛电子股份有限公司 | 可编程图形处理单元计算核心的常量缓冲的方法和系统 |
US8259111B2 (en) | 2008-05-30 | 2012-09-04 | Advanced Micro Devices, Inc. | Merged shader for primitive amplification |
US20100079454A1 (en) | 2008-09-29 | 2010-04-01 | Legakis Justin S | Single Pass Tessellation |
US20100123717A1 (en) | 2008-11-20 | 2010-05-20 | Via Technologies, Inc. | Dynamic Scheduling in a Graphics Processor |
US8482560B2 (en) | 2008-12-31 | 2013-07-09 | Intel Corporation | Image forming techniques |
US20100164954A1 (en) | 2008-12-31 | 2010-07-01 | Sathe Rahul P | Tessellator Whose Tessellation Time Grows Linearly with the Amount of Tessellation |
US8436854B2 (en) | 2009-05-29 | 2013-05-07 | Qualcomm Incorporated | Graphics processing unit with deferred vertex shading |
US8471858B2 (en) | 2009-06-02 | 2013-06-25 | Qualcomm Incorporated | Displaying a visual representation of performance metrics for rendered graphics elements |
US8289341B2 (en) | 2009-06-29 | 2012-10-16 | Intel Corporation | Texture sampling |
US8633928B2 (en) | 2009-08-13 | 2014-01-21 | Intel Corporation | Reducing the bandwidth of sampler loads in shaders |
US9142057B2 (en) | 2009-09-03 | 2015-09-22 | Advanced Micro Devices, Inc. | Processing unit with a plurality of shader engines |
US8884957B2 (en) * | 2009-09-09 | 2014-11-11 | Advanced Micro Devices, Inc. | Tessellation engine and applications thereof |
US8917271B2 (en) | 2009-10-05 | 2014-12-23 | Nvidia Corporation | Redistribution of generated geometric primitives |
US8786618B2 (en) | 2009-10-08 | 2014-07-22 | Nvidia Corporation | Shader program headers |
US8810592B2 (en) | 2009-10-09 | 2014-08-19 | Nvidia Corporation | Vertex attribute buffer for inline immediate attributes and constants |
US8427493B2 (en) | 2009-10-13 | 2013-04-23 | Nvidia Corporation | Draw commands with built-in begin/end |
JP2011227864A (ja) | 2010-03-31 | 2011-11-10 | Asahi Kasei Corp | 画像視点変換装置、画像視点変換方法、画像視点変換プログラム |
GB201007348D0 (en) | 2010-04-30 | 2010-06-16 | Imagination Tech Ltd | Programmable tessellation in a tile based rendering system |
US20110310102A1 (en) | 2010-06-17 | 2011-12-22 | Via Technologies, Inc. | Systems and methods for subdividing and storing vertex data |
US8499305B2 (en) | 2010-10-15 | 2013-07-30 | Via Technologies, Inc. | Systems and methods for performing multi-program general purpose shader kickoff |
GB201103699D0 (en) * | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphic processing |
US20120229460A1 (en) * | 2011-03-12 | 2012-09-13 | Sensio Technologies Inc. | Method and System for Optimizing Resource Usage in a Graphics Pipeline |
US9412197B2 (en) | 2012-04-04 | 2016-08-09 | Qualcomm Incorporated | Patched shading in graphics processing |
-
2013
- 2013-03-14 US US13/830,145 patent/US9412197B2/en active Active
- 2013-03-14 US US13/829,900 patent/US10559123B2/en not_active Expired - Fee Related
- 2013-03-14 US US13/830,075 patent/US10535185B2/en active Active
- 2013-03-15 CN CN201380018600.4A patent/CN104205174B/zh active Active
- 2013-03-15 WO PCT/US2013/032123 patent/WO2013151750A2/en active Application Filing
- 2013-03-15 JP JP2015504598A patent/JP6162216B2/ja active Active
- 2013-03-15 WO PCT/US2013/032136 patent/WO2013151751A2/en active Application Filing
- 2013-03-15 KR KR1020147030816A patent/KR102132040B1/ko active IP Right Grant
- 2013-03-15 EP EP13713315.3A patent/EP2834793B1/en active Active
- 2013-03-15 EP EP13713314.6A patent/EP2834792A2/en active Pending
- 2013-03-15 CN CN201380018497.3A patent/CN104813367B/zh active Active
- 2013-03-15 KR KR1020147030830A patent/KR101784671B1/ko active IP Right Grant
- 2013-03-15 WO PCT/US2013/032098 patent/WO2013151748A2/en active Application Filing
- 2013-03-15 EP EP13714779.9A patent/EP2834794B1/en active Active
- 2013-03-15 KR KR1020147030786A patent/KR102046676B1/ko active IP Right Grant
- 2013-03-15 CN CN201380018326.0A patent/CN104246829B/zh active Active
- 2013-03-15 JP JP2015504597A patent/JP6162215B2/ja active Active
- 2013-03-15 JP JP2015504596A patent/JP6258293B2/ja not_active Expired - Fee Related
-
2019
- 2019-12-11 US US16/711,098 patent/US11200733B2/en active Active
-
2021
- 2021-11-09 US US17/522,178 patent/US11769294B2/en active Active
-
2023
- 2023-08-09 US US18/447,155 patent/US12211143B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011028986A2 (en) | 2009-09-03 | 2011-03-10 | Advanced Micro Devices, Inc. | A processing unit that enables asyncronous task dispatch |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12211143B2 (en) | Patched shading in graphics processing | |
US9183664B2 (en) | Tiled forward shading with improved depth filtering | |
US9799088B2 (en) | Render target command reordering in graphics processing | |
CN106233326B (zh) | 图形处理中基于显现目标的灵活显现 | |
JP5960368B2 (ja) | ビジビリティ情報を用いたグラフィックスデータのレンダリング | |
EP3427229B1 (en) | Visibility information modification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
Patent event date: 20141031 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20170201 Comment text: Request for Examination of Application |
|
PA0302 | Request for accelerated examination |
Patent event date: 20170201 Patent event code: PA03022R01D Comment text: Request for Accelerated Examination |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20170309 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20170703 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20170928 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20170928 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20200624 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20220622 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20230626 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20240624 Start annual number: 8 End annual number: 8 |