KR20190076709A - 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법 - Google Patents

와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법 Download PDF

Info

Publication number
KR20190076709A
KR20190076709A KR1020170178741A KR20170178741A KR20190076709A KR 20190076709 A KR20190076709 A KR 20190076709A KR 1020170178741 A KR1020170178741 A KR 1020170178741A KR 20170178741 A KR20170178741 A KR 20170178741A KR 20190076709 A KR20190076709 A KR 20190076709A
Authority
KR
South Korea
Prior art keywords
warping
information
rendering
host
memory
Prior art date
Application number
KR1020170178741A
Other languages
English (en)
Other versions
KR102604738B1 (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 삼성전자주식회사
Priority to KR1020170178741A priority Critical patent/KR102604738B1/ko
Priority to US16/028,535 priority patent/US10769753B2/en
Priority to DE102018119053.0A priority patent/DE102018119053A1/de
Priority to CN201810941406.8A priority patent/CN109978749A/zh
Publication of KR20190076709A publication Critical patent/KR20190076709A/ko
Application granted granted Critical
Publication of KR102604738B1 publication Critical patent/KR102604738B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 그래픽 프로세서는, 타이밍 정보를 수신하고, 상기 타이밍 정보에 기반하여 주기적으로 와핑 처리를 수행하기 위한 와핑 커맨드를 생성하는 내부 커맨드 생성기 및 호스트에 의한 컨텍스트 전환(context switch) 없이 상기 와핑 커맨드에 응답하여 외부로부터 제공된 센싱 정보와 기존의 렌더링 처리된 프레임 데이터를 이용하여 주기적으로 와핑 처리를 수행하는 그래픽 연산 장치를 구비하는 것을 특징으로 한다.

Description

와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법{Graphic processor performing warping process, Rendering system having the same and Operating method of graphic processor}
본 개시의 기술적 사상은 그래픽 프로세서에 관한 것으로서, 상세하게는 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법에 관한 것이다.
가상 현실(Virtual Reality)이란 어떤 특정한 환경이나 상황을 컴퓨터로 만들어서, 그것을 사용하는 사람이 마치 실제 환경 및 상황과 상호 작용을 하고 있는 것처럼 만들어주는 사용자와 디바이스 사이의 인터페이스를 나타낸다. 가상 현실 응용에서 사용자의 움직임(Motion)을 시각(Photon)에 반영함으로써 현실감에 큰 영향을 미치게 된다.
사용자의 움직임을 시각에 빠르게 반영하기 위해 기존의 렌더링 처리 결과를 이용하는 와핑(warping) 기법이 적용될 수 있다. 그러나, 렌더링 처리를 위한 컨텍스트(context)와 와핑 처리를 위한 컨텍스트를 전환(switching)하는 과정에서 발생되는 지연 시간은 가상 현실에서 현실감을 저해하는 요소가 될 수 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 와핑 처리 과정에서 발생되는 지연 시간을 감소함으로써 가상 현실에서 현실감을 향상할 수 있는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 그래픽 프로세서는, 타이밍 정보를 수신하고, 상기 타이밍 정보에 기반하여 주기적으로 와핑 처리를 수행하기 위한 와핑 커맨드를 생성하는 내부 커맨드 생성기 및 호스트에 의한 컨텍스트 전환(context switch) 없이 상기 와핑 커맨드에 응답하여 외부로부터 제공된 센싱 정보와 기존의 렌더링 처리된 프레임 데이터를 이용하여 주기적으로 와핑 처리를 수행하는 그래픽 연산 장치를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 렌더링 시스템은, 와핑 처리 타이밍을 나타내는 주기 정보를 생성하는 타이머와, 호스트로부터의 커맨드에 응답하여 렌더링 처리를 수행함으로써 렌더링 처리된 프레임 데이터를 생성하는 그래픽 프로세서 및 상기 렌더링 처리된 프레임 데이터를 저장하는 메모리 영역과, 상기 타이밍 정보에 응답하여 상기 렌더링 처리된 프레임 데이터와 외부로부터 제공된 센싱 정보를 이용하여 와핑 처리를 수행하고 와핑 처리된 이미지를 상기 메모리 영역에 저장하는 프로세서를 포함하는 메모리를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 그래픽 프로세서의 동작방법은, 호스트로부터의 커맨드에 응답하여 렌더링 처리된 프레임 데이터를 생성하는 단계와, 상기 호스트의 제어에 무관하게 수신되는 타이밍 정보에 기반하여 와핑 처리 타이밍을 판단하는 단계와, 상기 렌더링 처리된 프레임 데이터와 상기 호스트의 제어에 무관하게 수신되는 센싱 정보에 기반하여 와핑 처리를 수행하는 단계 및 상기 와핑 처리가 완료되었음을 나타내는 정보를 상기 호스트로 전송하는 단계를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상의 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법에 따르면, 호스트에 의한 컨텍스트 전환 없이 그래픽 프로세서 자체적으로 와핑 처리를 수행할 수 있으며, 이에 따라 와핑 처리 과정에서 발생되는 지연 시간을 감소함으로써 가상 현실에서 현실감을 향상할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법에 따르면, 일반 렌더링 처리와 와핑 처리를 병렬하게 수행할 수 있으므로, 렌더링 처리에 소요되는 시간을 감소할 수 있는 효과가 있다.
도 1은 본 발명의 예시적인 실시예에 따른 렌더링(rendering) 시스템을 나타내는 블록도이다.
도 2는 도 1의 렌더링 시스템이 HMD(Head Mounted Display)에 적용된 예를 나타내는 블록도이다.
도 3은 본 발명의 예시적인 실시예의 렌더링 시스템의 일 동작 예를 나타내는 블록도이다.
도 4는 본 발명의 예시적인 실시예에 따른 그래픽 프로세서의 동작방법을 나타내는 플로우차트이다.
도 5a,b는 일반적인 컨텍스트 전환에 의한 와핑 처리와 본 발명의 실시예에 따른 와핑 처리의 일 동작 예를 나타내는 도면이다.
도 6은 본 발명의 변형 가능한 실시예에 따른 렌더링 시스템을 나타내는 블록도이다.
도 7은 본 발명의 예시적인 실시예에 따른 그래픽 프로세서의 구체적인 구성 및 동작 예를 나타내는 블록도이다.
도 8은 GPU의 일 동작 예에 따른 플로우를 나타내는 블록도이다.
도 9 및 도 10은 본 발명의 예시적인 실시예들에 따른 렌더링 시스템의 동작방법을 나타내는 플로우차트이다.
도 11은 전술한 실시예에서의 동작방법을 구현하는 그래픽 프로세서의 일 구현 예를 나타내는 블록도이다.
도 12는 전술한 실시예에서의 동작방법을 구현하는 렌더링 시스템의 일 구현 예를 나타내는 블록도이다.
도 13은 호스트의 제어에 의한 와핑 처리, GPU 자체적인 와핑 처리 및 연산 처리기에서의 와핑 처리 시의 동작 특성의 일 예를 나타내는 도면이다.
도 14는 본 발명의 예시적인 실시예에 따른 메모리 장치를 포함하는 모바일 장치의 일 구현 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명의 예시적인 실시예에 따른 렌더링(rendering) 시스템을 나타내는 블록도이다. 렌더링 시스템(10)은 그래픽 프로세서(100) 및 메모리(101)를 포함할 수 있으며, 그래픽 프로세서(100)로서 그래픽 프로세싱 유닛(Graphic Processing Unit, GPU)이 예시된다. 설명의 편의상, 이하의 실시예들에서 GPU가 그래픽 프로세서로 지칭될 것이나, 본 발명의 그래픽 프로세서는 다른 다양한 종류의 프로세서로 구현될 수도 있을 것이다.
그래픽 프로세서(100)는 렌더링 시스템(10) 내에서 그래픽 연산을 담당할 수 있다. 일 예로서, 그래픽 프로세서(100)는 3 차원의 오브젝트(object)를 수신하고, 이에 대한 그래픽 연산을 수행함으로써 2 차원의 렌더링 이미지를 출력할 수 있다. 그래픽 프로세서(100)는 타일 기반 렌더링(tile-based rendering)을 수행하도록 구성될 수 있고, 이를 위해 그래픽스 파이프라인(graphics pipeline)들을 포함할 수 있으며, 그래픽스 파이프라인들에 의해 그래픽 데이터들이 병렬 처리될 수 있다. 각각의 그래픽스 파이프라인은 그래픽 연산을 위한 다양한 종류의 구성들을 포함할 수 있으며, 일 예로 그래픽스 파이프라인은 하드웨어로 구성되거나 또는 소프트웨어로 구성될 수 있다. 또는, 그래픽스 파이프라인은 하드웨어 및 소프트웨어의 조합에 의해 구성될 수 있다.
도 1에는 도시되지 않았으나, 렌더링 시스템(10)은 시스템 전반의 동작을 제어하는 CPU(Central Processing Unit)와, 구성 요소들 사이의 통신을 위해 PCI bus, PCI Express bus 등 다양한 종류의 버스(BUS)를 더 포함할 수 있다. 또한, 렌더링 시스템(10)은 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 스마트 TV, HMD(Head Mounted Display), 웨어러블 디바이스 등을 예로 들 수 있지만, 이에 제한될 필요가 없이 다양한 종류의 전자 시스템에 해당할 수 있다.
그래픽 프로세서(100)는 OpenGL(Open Graphic(s) Library), DirectX, CUDA(Compute Unified Device Architecture) 등의 다양한 종류의 API(Application Program Interface) 표준에 기반하는 렌더링 관련 정보들을 수신할 수 있으며, 그래픽 연산들로서 쉐이딩(shading) 처리, 텍스쳐링(texturing) 처리, 와핑(warping) 처리 등의 다양한 연산들을 수행할 수 있다. 또한, 메모리(101)는 그래픽 프로세서(100)와 동일한 반도체 칩에 집적되거나 또는 서로 다른 반도체 칩으로 구현될 수 있으며, DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory)에 해당되거나, 또는 ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리(flash memory) 등과 같은 메모리 장치에 해당될 수 있다. 메모리(101)는 그래픽 프로세서(100)에 의해 처리될 그래픽 데이터를 저장하거나, 또는 그래픽 프로세서(100)에 의해 처리된 그래픽 데이터(예컨대, 프레임 데이터)를 저장할 수 있다.
일 실시예에 따라, 그래픽 프로세서(100)는 가상 현실(Virtual Reality) 응용을 위한 그래픽 연산을 수행할 수 있으며, 그래픽 프로세서(100)는 가상 현실 응용에서 사용자의 움직임(Motion)을 시각(Photon)에 반영할 수 있다. 이 때, 움직임이 사용자에게 인식되기까지의 지연 시간은 Motion-To-Photon으로 정의될 수 있으며, 그래픽 프로세서(100)는 Motion-To-Photon 시간을 감소시키기 위해 렌더링 처리가 완료된 그래픽 데이터(예컨대, 프레임 데이터)를 대상으로 사용자 움직임 정보를 다시 반영하는 와핑(warping) 처리를 수행할 수 있다.
그래픽 프로세서(100)는 렌더링 시스템(10) 내의 호스트에 의한(또는, 운영 체제에 의한) 컨텍스트 전환(context switching) 등 다양한 요인들에 기인하는 Motion-To-Photon 지연 시간을 감소하기 위해, 고정적인 갱신을 통해 와핑 처리(또는, 와핑 처리를 위한 쓰레드(thread))를 수행할 수 있다. 예컨대, 그래픽 프로세서(100)는 호스트 또는 운영 체제의 컨텍스트 전환에 의해 렌더링 처리 동작을 와핑 처리를 위한 동작으로 변경하는 것이 아니라, 소정의 주기에 따른 고정적인 갱신을 통해 와핑 처리를 수행할 수 있다.
일 실시예에 따라, 그래픽 프로세서(100)는 소정의 주기를 나타내는 타이밍 정보(Info_T)를 기반으로 하여 와핑 커맨드(CMD_warp)를 자체적으로 생성할 수 있다. 그래픽 프로세서(100)는 외부 또는 내부에 구비될 수 있는 타이머(미도시)로부터 제공되는 타이밍 정보(Info_T)에 기반하여 와핑 커맨드(CMD_warp)를 주기적으로 생성할 수 있다. 즉, 그래픽 프로세서(100)의 쓰레드 변경을 위해 호스트에 의한 컨텍스트 전환을 필요로함이 없이 그래픽 프로세서(100) 자체적으로 와핑 처리를 수행할 수 있으므로 Motion-To-Photon 지연 시간이 감소될 수 있다.
상기와 같은 동작을 위해, 그래픽 프로세서(100)는 내부 커맨드 생성기(110) 및 그래픽 연산 장치(120)를 포함할 수 있다. 내부 커맨드 생성기(110)는 그래픽 프로세서(100) 내부에서의 그래픽 연산 동작을 제어하기 위한 내부 커맨드를 생성할 수 있으며, 일 예로서 내부 커맨드 생성기(110)는 타이밍 정보(Info_T)에 응답하여 전술한 와핑 커맨드(CMD_warp)를 생성할 수 있다. 또한, 내부 커맨드 생성기(110)는 호스트로부터 제공된 커맨드를 처리하고, 그래픽 프로세서(100)의 내부 동작을 제어하기 위한 다른 내부 커맨드를 더 생성할 수도 있을 것이다.
그래픽 연산 장치(120)는 다양한 종류의 그래픽 연산을 수행할 수 있으며, 일 예로서 와핑 커맨드(CMD_warp)에 응답하여 렌더링 처리가 완료된 프레임 데이터 및 센싱 정보(Info_sen)를 이용하여 와핑 처리를 수행할 수 있다. 예컨대, 그래픽 연산 장치(120)는 센싱 정보(Info_sen)에 기반하여 사용자의 시각이 변동한 상태를 판단하고, 프레임 데이터에 대한 와핑 처리를 통해 사용자의 시각이 반영된 와핑 처리된 프레임 데이터(예컨대, 와핑 이미지)를 생성할 수 있다. 일 실시예에 따라, 그래픽 연산 장치(120)는 와핑 처리가 완료되었음을 나타내는 정보(Info_warp)를 호스트로 제공할 수 있다.
또한, 그래픽 연산 장치(120)는 호스트로부터의 커맨드에 응답하여 일반적인 렌더링 처리를 위한 그래픽 연산을 수행할 수도 있다. 호스트는 호스트 드라이버를 통해 렌더링할 데이터와 함께 렌더링 방법을 기술한 일련의 커맨드를 그래픽 프로세서(100)로 제공할 수 있으며, 그래픽 프로세서(100)는 커맨드를 수신하고 해석함으로써 기하변환 처리 과정, 래스터화 과정 및 픽셀 쉐이딩 처리 과정 등을 포함하는 렌더링 처리를 수행할 수 있다.
그래픽 연산 장치(120)는 하나 이상의 하드웨어(예컨대, 프로세싱 코어 등)를 포함할 수 있으며, 상기 와핑 처리는 하나 이상의 하드웨어에 의해 수행될 수 있다. 일 실시예에 따라, 와핑 처리와 일반 렌더링 처리는 동일한 하드웨어에 의해 수행될 수도 있으며, 또는 와핑 처리와 일반 렌더링 처리는 서로 다른 하드웨어에 의해 수행될 수도 있을 것이다. 또한, 일 실시예에 따라, 그래픽 연산 장치(120)는 호스트로부터의 커맨드에 따라 일반 렌더링 처리를 수행하는 도중에, 내부 커맨드 생성기(110)로부터의 와핑 커맨드(CMD_warp)에 응답하여 일반 렌더링 처리를 중단하고 와핑 처리를 수행할 수 있다.
타이밍 정보(Info_T)는 소정의 주기를 갖는 정보를 포함하여 그래픽 프로세서(100)로 제공될 수 있다. 일 예로서, 타이밍 정보(Info_T)는 하나 이상의 프레임 구간마다 활성화되는 정보를 포함할 수 있다. 그래픽 프로세서(100)는 타이밍 정보(Info_T)가 활성화된 타이밍에서 센싱 정보(Info_sen)를 이용한 와핑 처리를 수행할 수 있다. 센싱 정보(Info_sen)는 다양한 종류의 정보를 가질 수 있으며, 일 예로서 사용자의 헤드 모션이나 헤드 포지션을 센싱한 정보를 가질 수 있을 것이다. 그래픽 프로세서(100)는 메모리(101)와 통신하여 메모리(101)로부터 렌더링 처리가 완료된 프레임 데이터를 수신할 수 있다. 일 예로서, 와핑 처리가 수행되는 프레임은 현재 렌더링 처리중인 프레임의 직전의 프레임 또는 최종 출력된(또는, 디스플레이된) 프레임에 해당할 수 있다. 본 발명의 실시예에 따라 와핑 처리가 주기적으로 수행되므로, 소정의 주기에 따라 와핑 처리된 프레임 데이터가 메모리(101)에 업데이트될 수 있다.
상기와 같은 본 발명의 예시적인 실시예에 따르면, 지연 시간을 유발하는 호스트의 컨텍스트 전환을 수행할 필요 없이 그래픽 프로세서(100)가 타이밍 정보(Info_T)에 따라 주기적으로 와핑 처리를 수행하므로, 와핑 처리 과정에서 상기 지연 시간이 제거될 수 있다. 즉, 본 발명의 실시예에 따르면, 와핑 처리가 시작되는 시점이 딜레이됨에 따라 실제 와핑된 이미지가 출력되어야 할 시점에 와핑 처리가 완료되지 않는 문제가 개선될 수 있으며, 최종 출력된 프레임을 이용한 와핑 처리 결과가 적절하게 출력될 수 있다.
도 2는 도 1의 렌더링 시스템(10)이 HMD(Head Mounted Display)에 적용된 예를 나타내는 블록도이다. 렌더링 시스템(10)이 HMD에 해당할 때, 렌더링 시스템(10)은 VR(Virtual Reality) 본체(11)를 더 포함할 수 있다. 또한, 렌더링 시스템(10)은 도 1에 도시된 구성 요소들을 포함할 수 있으며, 도 1에 도시된 구성 요소들은 렌더링 디바이스를 구성할 수 있다. 도 2에 도시된 바와 같이, 렌더링 디바이스는 그래픽 프로세서(100) 및 메모리(101)를 포함할 수 있으며, 렌더링 디바이스는 VR 본체(11)와 결합될 수 있다. 사용자는 VR 본체(11)를 착용함에 의해 렌더링 시스템(10)에서 처리된 가상 현실의 영상을 볼 수 있다.
일 실시예에 따라, 렌더링 시스템(10)은 타이머(130) 및 센서(140)를 더 포함할 수 있다. 타이머(130)는 전술한 와핑 처리가 수행될 타이밍을 나타내는 타이밍 정보(Info_T)를 생성하고 이를 그래픽 프로세서(100)로 제공할 수 있다. 또한, 센서(140)는 사용자의 헤드 모션 및 헤드 포지션을 포함한 다양한 종류의 센싱 정보들을 생성할 수 있으며, 일 예로서 센서(140)는 관성 센서, 광센서, 압력 센서, 지자기 센서(Magnetic sensor), 가속도 센서(Acceleration sensor), 적외선 센서, 자이로스코프 센서, 위치 센서(예컨대, GPS), 근접 센서, RGB 센서(illuminance sensor) 등 다양한 종류의 센서를 포함할 수 있다. 또는, 센서(140)는 이외의 다른 센서들에 해당하거나, 또는 다른 센서들을 더 포함할 수도 있을 것이다. 도 2에서는 센서(140)가 렌더링 디바이스 내에 구비되는 것으로 도시되었으나, 센서(140)는 VR 본체(11)에 구비되고, 유무선 통신을 통해 센싱 정보(Info_sen)를 그래픽 프로세서(100)로 제공할 수도 있을 것이다.
도 3은 본 발명의 예시적인 실시예의 렌더링 시스템의 일 동작 예를 나타내는 블록도이다.
도 3을 참조하면, 렌더링 시스템(200)은 그래픽 프로세서로서 GPU(210), 센서의 일 예로서 헤드 포지션 센서(220), 타이머(230) 및 호스트(240)를 포함할 수 있다. 호스트(240)는 어플리케이션 및 호스트 드라이버를 포함할 수 있다. 일 예로서, 어플리케이션 및 호스트 드라이버는 렌더링 시스템(200) 내의 동작 메모리에 저장되는 소프트웨어에 해당할 수 있으며, 렌더링 시스템(200)에 구비되는 중앙 처리 장치(CPU, 미도시)에 의해 어플리케이션 및 호스트 드라이버가 실행됨에 따라 해당 기능이 구현될 수 있을 것이다. 호스트 드라이버는, 렌더링 시스템(200) 내에 구비되는 각종 구성 요소들에 대응하여 배치될 수 있으며, 렌더링 시스템(200) 내의 구성 요소들은 호스트 드라이버에 의해 제어될 수 있다.
호스트(240)는 렌더링 처리될 데이터 및 커맨드를 호스트 드라이버를 통해 GPU(210)로 제공할 수 있다. GPU(210)는 호스트 드라이버를 통한 커맨드에 응답하여 렌더링 처리를 수행하고, 렌더링 결과를 외부의 메모리(미도시)에 저장할 수 있다.
GPU(210)는 호스트 드라이버의 개입 없이 타이밍 정보(Info_T) 및 센싱 정보(Info_sen)를 직접 수신할 수 있으며, 수신된 정보에 기반하여 와핑 처리 타이밍을 판단할 수 있다. 타이밍 정보(Info_T)는 와핑 처리된 프레임 데이터를 갱신하기 위한 주기 정보를 포함하고, GPU(210)는 타이밍 정보(Info_T)에 따라 와핑 처리를 수행할 수 있다. 즉, GPU(210)는 운영 체제(또는, 호스트)에 의한 컨텍스트 전환과 무관하게 와핑 처리를 수행할 수 있으며, 와핑 처리가 완료되었음을 나타내는 정보를 호스트로 제공할 수 있다. GPU(210)는 와핑 처리를 수행하기 위해 현재 진행중인 렌더링 처리를 임시 중지할 수 있으며, 일 예로서 Preemption 방식에 따라 특정 작업의 프로세스를 중단하고 와핑 처리를 수행할 수 있다. 또한, GPU(210)는 다른 일부의 리소스(예컨대, 프로세싱 코어)를 할당받아 상기 와핑 처리를 수행하거나, 변형 가능한 실시예로서 일반 렌더링 처리를 수행하는 리소스에 의해 와핑 처리가 수행될 수도 있을 것이다.
또한, 일 실시예에 따라, 렌더링 시스템(200) 내에서 타이밍 정보(Info_T) 및 센싱 정보(Info_sen)는 호스트(240)로 제공될 수도 있을 것이다. 예컨대, 상기 타이밍 정보(Info_T) 및 센싱 정보(Info_sen)가 운영 체제 드라이버를 통해 호스트(240)로 제공될 수도 있으며, 호스트(240)는 수신된 각종 정보를 기반으로 하여 와핑 이미지의 출력 동작을 제어할 수 있을 것이다.
변형 가능한 실시예에 따라, GPU(210)는 다수의 프로세싱 코어들을 포함하고, 일부의 프로세싱 코어는 렌더링 처리를 수행하며, 다른 일부의 프로세싱 코어는 와핑 처리를 상기 렌더링 처리와 병렬하게 수행할 수 있다. 또한, 변형 가능한 실시예에 따라, GPU(210)는 타이밍 정보(Info_T)에 따른 와핑 처리시에 센싱 정보(Info_sen)를 판단하고, 사용자의 헤드 포지션에 변동이 없는 경우에는 와핑 처리를 스킵할 수도 있을 것이다.
상기와 같은 본 발명의 예시적인 실시예에 따르면, 소정의 어플리케이션을 실행함에 있어서 운영 체제의 제어에 기반하여 컨텍스트 전환이 다수 발생될 수 있는데, 와핑 처리의 경우 운영 체제에 의한 컨텍스트 전환 없이 GPU(210)가 자체적으로 수행할 수 있으므로, 사용자의 움직임을 빠르게 시각에 반영할 수 있으며, 이에 따라 가상 현실에서 현실감을 향상할 수 있다. 또한, 운영 체제에 의한 컨텍스트 전환으로 인해 렌더링 처리가 늦어짐으로써, 정해진 프레임 타이밍에 새로운 프레임이 렌더링되지 못하는 문제가 감소될 수 있다.
도 4는 본 발명의 예시적인 실시예에 따른 그래픽 프로세서의 동작방법을 나타내는 플로우차트이다.
도 4를 참조하면, 그래픽 프로세서는 호스트로부터의 커맨드에 응답하여 일반 렌더링 처리를 수행할 수 있으며(S11), 렌더링을 처리하는 도중에 호스트와 무관하게 주기적으로 타이밍 정보 및 센싱 정보를 수신할 수 있다(S12). 변형 가능한 예로서, 센싱 정보는 그래픽 프로세서 내부의 레지스터 또는 그래픽 프로세서 외부의 메모리에 주기적으로 업데이트될 수 있으며, 상기 레지스터 또는 메모리로부터 독출되어 그래픽 프로세서 내의 커맨드 처리기로 제공될 수 있다.
그래픽 프로세서는 수신된 타이밍 정보에 따라 와핑 처리를 수행할 타이밍을 판단하고(S13), 렌더링 완료된 프레임 데이터(또는, 최종 출력된 프레임 데이터)와 센싱 정보를 이용하여 와핑 처리를 수행할 수 있다(S14). 일 실시예에 따라, 현재 진행중인 렌더링 처리를 중단하고 상기 와핑 처리가 수행될 수 있으며, 렌더링 처리를 수행하는 하드웨어 또는 별개의 하드웨어에 의해 상기 와핑 처리가 수행될 수 있다. 또한, 그래픽 프로세서는 와핑 처리가 완료되었음을 나타내는 정보를 호스트로 전송할 수 있다(S15).
도 5a,b는 일반적인 컨텍스트 전환에 의한 와핑 처리와 본 발명의 실시예에 따른 와핑 처리의 일 동작 예를 나타내는 도면이다. 이하의 실시예들에서는, 전술한 일반 렌더링 처리와 구분되는 개념으로써 와핑 처리가 정의되고, 일반 렌더링 처리와 렌더링 처리는 그 용어가 혼용될 수 있다. 또한, 도 5a,b를 참조함으로써, 호스트의 관점에서 렌더링을 처리하는 일 옐가 설명된다.
메모리에는 다수의 버퍼들이 구비될 수 있고, 도 5a,b의 제1 및 제2 버퍼(Buffer0, Buffer1)는 렌더링 결과가 저장되는 공간으로서, 디스플레이에 이용되는 프론트 버퍼, 렌더링의 중간 데이터가 기록되는 백 버퍼를 나타낼 수 있다. 그러나, 이는 하나의 실시예에 불과한 것으로서, 삼중 또는 그 이상의 버퍼로 확장하여 해석이 가능할 것이다.
도 5a를 참조하면, 호스트는 GPU로 렌더링 처리를 위한 커맨드를 제공하고, GPU가 제2 버퍼(Buffer1)을 이용하여 N 번째 프레임의 렌더링을 처리할 수 있다. 렌더링 처리 도중에 와핑 주기를 나타내는 운영 체제(OS) 이벤트가 발생될 수 있으며, 호스트는 현재 진행중인 렌더링 처리를 중단하고, 호스트 드라이버를 통해 렌더링 처리된 프레임 데이터와 헤드 포지션 정보를 기반으로 하여 와핑 처리를 위한 컨텍스트로의 전환을 요청한다. 이 때, N 번째 프레임의 렌더링 처리가 완료되기 이전이므로, 호스트의 제어에 기반하여 GPU는 직전에 렌더링 처리가 완료되어 제1 버퍼(Buffer0)에 저장된 N-1 번째 프레임 데이터(Frame(N-1))를 이용하여 와핑 처리를 수행하고, 와핑 처리가 완료된 프레임 데이터(예컨대, 와핑 이미지(Frame(N-1)'))를 생성할 수 있다. 생성된 와핑 이미지(Frame(N-1)')는 N-1 번째 프레임 프레임에 최근 갱신된 사용자의 헤드 포지션 정보가 반영된 새로운 이미지에 해당하고, 상기 생성된 와핑 이미지(Frame(N-1)')가 출력될 수 있다.
와핑 처리 이후, N 번째 프레임에 대한 렌더링 처리를 위해 컨텍스트가 다시 전환되고, N 번째 프레임에 대한 렌더링 처리가 이어서 수행된다. 이와 같은 동작은 N+1 번째 프레임, N+2 번째 프레임 등에도 계속하여 반복될 수 있다.
이 때, 도 5a에 도시된 바와 같이 컨텍스트 전환에 의해 발생된 지연 시간에 의해 프레임 누락이 발생될 수 있다. 예컨대, N 번째 프레임의 렌더링 처리가 완료된 이후 N+1 번째 프레임의 렌더링 처리 도중에, 점선에 도시된 바와 같이 와핑을 위한 컨텍스트 전환이 발생된 상황에서 예기치 못한 지연 시간의 증가가 발생될 수 있으며, 최종 출력된 프레임(예컨대, N 번째 프레임)을 이용한 와핑 이미지가 출력될 수 없다. 이 경우, 호스트의 제어하에서 기존의 와핑 이미지(Frame(N-1)')가 재사용될 수 있으며, 이는 현실감과 관련된 사용자 경험을 저하시키는 결과를 낳게 된다.
한편, 도 5b를 참조하면, GPU가 와핑 처리를 수행함에 있어서 운영 체제의 개입을 감소시킴으로써, 와핑 처리 시 렌더링 처리가 완료되어 업데이트된 프레임이 적절히 반영되도록 할 수 있다. 일 예로서, 도 5b에 도시된 바와 같이 운영 체제의 개입 없이 GPU가 소정의 주기 마다 와핑 처리를 수행하기 때문에, 운영 체제에 의한 컨텍스트 전환을 위한 지연 시간이 제거될 수 있다.
예컨대, 호스트의 커맨드에 따라 GPU는 N 번째 프레임에 대해 제2 버퍼(Buffer1)를 이용하여 일반 렌더링을 처리할 수 있으며, GPU는 타이밍 정보에 따라 제1 버퍼(Buffer0)에 저장된 N-1 번째 프레임 데이터 및 센싱 정보를 이용하여 와핑 처리를 수행하고, 와핑 처리에 의해 생성된 와핑 이미지(Frame(N-1)')를 출력할 수 있다. 이 때, 호스트는 컨텍스트 전환 없이 일반 렌더링 처리를 위한 커맨드 및 데이터를 GPU로 지속적으로 제공할 수 있다.
이후, GPU는 호스트의 커맨드에 기반하여 N+1 번째 프레임에 대한 렌더링 처리를 수행하고, GPU는 타이밍 정보에 따라 제2 버퍼(Buffer1)에 저장된 N 번째 프레임 데이터 및 센싱 정보를 이용하여 와핑 처리를 수행하고, 와핑 처리에 의해 생성된 와핑 이미지(FrameN')를 출력할 수 있다. 즉, 와핑 처리를 수행하기까지 발생되는 호스트의 컨텍스트 전환에 의한 지연 시간이 제거될 수 있으므로, 와핑 처리 결과가 적절하게 갱신될 수 있으며, 이에 따라 보다 안정적이고 일관된 사용자 경험의 제공이 가능해질 수 있다.
도 6은 본 발명의 변형 가능한 실시예에 따른 렌더링 시스템을 나타내는 블록도이다.
렌더링 시스템(300)은 그래픽 프로세서로서 GPU(310), VR 본체(320) 및 메모리(330)를 포함할 수 있다. 전술한 바와 같이, 렌더링 시스템(300)이 HMD에 해당하는 경우, VR 본체(320)를 제외한 나머지 구성 요소들은 렌더링 디바이스를 구성할 수 있으며, 렌더링 디바이스가 VR 본체(320)에 결합될 수 있다.
GPU(310)는 타이머(311) 및 내부 커맨드 생성기(312)를 포함할 수 있으며, VR 본체(320)는 센서(321)를 포함할 수 있다. 또한, 메모리(330)는 전술한 실시예에서의 하나 이상의 버퍼들을 포함할 수 있으며, GPU(310)는 메모리(330)로부터 렌더링 처리된 프레임 데이터(Data_Ren)를 수신하고, 이에 대해 전술한 실시예에 따른 와핑 처리를 수행하며, 와핑 처리된 프레임 데이터(Data_warp)를 메모리(330)에 저장할 수 있다.
일 실시예에 따라, 타이밍 정보(Info_T) 및 센싱 정보(Info_sen)는 렌더링 시스템(300) 내에서 다양한 형태로 생성될 수 있다. 도 6에서는 VR 본체(320)가 센서(321)를 포함함에 따라, 사용자의 헤드 모션 및 헤드 포지션을 센싱하고, 센싱 정보(Info_sen)를 유선 또는 무선 전송 수단을 통해 GPU(310)로 제공할 수 있다. 또한, GPU(310)는 그 내부의 타이머(311)로부터의 타이밍 정보(Info_T)에 따라 호스트 또는 운영 체제의 개입 없이 주기적으로 와핑 처리를 수행할 수 있다. 도 6에 도시된 특징은 하나의 실시예에 불과한 것으로서, 타이머(311) 및 센서(321)는 렌더링 시스템(300) 내에서 다른 다양한 위치에 배치되어도 무방할 것이다.
도 7은 본 발명의 예시적인 실시예에 따른 그래픽 프로세서의 구체적인 구성 및 동작 예를 나타내는 블록도이다.
도 7을 참조하면, 렌더링 시스템(400)은 그래픽 프로세서로서 GPU(410)를 포함할 수 있으며, 또한 센서(420), 타이머(430) 및 메모리(440)를 더 포함할 수 있다. 도 7에는 센서(420)로서 사용자의 헤드 모션 및/또는 헤드 포지션을 센싱하는 헤드 포지션 센서가 도시된다. 또한, 센서(420) 및 타이머(430)는 렌더링 시스템(400) 내에서 다양한 위치에 배치될 수 있으며, 또는 전술한 실시예에 따라 센서(420)는 VR 본체에 배치될 수도 있을 것이다.
GPU(410)는 레지스터(411), 인터럽트 컨트롤러(413), 커맨드 처리기(414), 쉐이더 프로세서(415) 및 메모리 컨트롤러(416)를 포함할 수 있다. 선택 가능한 구성으로서, GPU(410)는 내부적으로 타이밍을 검출하는 구성을 포함할 수 있으며, 도 7에는 내부 타이머(412)가 GPU(410)에 구비되는 예가 도시된다. 이 때, 타이머(430)는 렌더링 시스템(400)에 구비되지 않거나, 또는 GPU(410)는 타이머(430)로부터 타이밍 정보(Info_T)를 수신하지 않아도 무방할 것이다. 또한, 일 예로서, 메모리 컨트롤러(416)는 Direct Memory Access(DMA) 컨트롤러에 해당할 수 있다.
또한, 메모리(440)는 다양한 저장 영역들을 포함할 수 있으며, 일 예로 렌더링 시스템(400) 내에서 사용되는 각종 정보들을 저장하는 영역과, 전술한 실시예에 따라 렌더링 처리가 완료된 프레임 데이터 및 렌더링 처리 진행중인 프레임 데이터를 저장하는 하나 이상의 버퍼 영역들을 포함할 수 있다. 또한, 와핑 처리가 완료된 프레임 데이터가 메모리(440)에 더 저장될 수 있으며, 호스트는 메모리(440)에 저장된 와핑 이미지를 디스플레이에 출력할 수 있다.
레지스터(411)는 그래픽 연산과 관련된 다양한 정보를 일시적으로 저장할 수 있으며, 일 예로서 GPU(410)의 동작과 관련된 상태 정보를 저장하거나, 센서(420)로부터 수신된 헤드 모션 및/또는 헤드 포지션 정보 등의 센싱 정보(Info_sen)를 저장할 수 있다. GPU(410) 내에서의 와핑 처리에 있어서, 레지스터(411)에 주기적으로 업데이트되는 센싱 정보(Info_sen)가 이용될 수 있을 것이다.
또는, 변형 가능한 예로서, 센서(420)로부터의 센싱 정보(Info_sen)는 메모리(440)의 일 영역에 저장되고, 렌더링 시스템(400)의 초기 설정 과정을 통해 메모리(440)에서 센싱 정보(Info_sen)가 저장된 영역의 주소 정보가 레지스터(411)에 저장될 수도 있을 것이다. GPU(410) 내에서의 와핑 처리에 있어서, 레지스터(411)에 저장된 주소에 따라 메모리(440)로부터 독출된 센싱 정보(Info_sen)가 이용될 수 있을 것이다.
인터럽트 컨트롤러(413)는 GPU(410) 내부 또는 외부의 타이밍 정보(Info_T)에 응답하여 인터럽트 동작을 제어할 수 있다. 일 실시예에 따라, 인터럽트 컨트롤러(413)는 타이밍 정보(Info_T)에 기반하여 GPU(410)가 와핑 처리를 수행하도록 인터럽트를 제어할 수 있으며, 예컨대 현재 진행중인 렌더링 처리 동작을 중단하고 와핑 처리가 수행되도록 인터럽트를 제어할 수 있다. 또한, 커맨드 처리기(414)는 전술한 실시예들에 따른 내부 커맨드 생성 동작을 수행할 수 있으며, 본 발명의 실시예에 따라 와핑 처리를 제어하기 위한 와핑 커맨드를 생성할 수 있다. 또한, 커맨드 처리기(414)는 GPU(410) 내부에서의 전반적인 커맨드 관리 동작을 수행할 수 있으며, 호스트로부터 수신된 커맨드를 처리하는 동작을 수행할 수도 있다.
쉐이더 프로세서(415)는 전술한 실시예에서의 그래픽 연산 장치에 포함되는 구성일 수 있으며, 와핑 처리를 포함하는 그래픽 연산 처리를 수행하는 하나 이상의 하드웨어들을 포함할 수 있다. 일 예로서, 쉐이더 프로세서(415)는 일반 렌더링 처리시 쉐이딩 처리에 기반하는 그래픽 연산을 수행할 수 있으며, 전술한 실시예에 따라 커맨드 처리기(414)의 제어에 기반하여 와핑 처리를 수행할 수 있다. 전술한 바와 같이, 상기 렌더링 처리 및 와핑 처리는 동일한 하드웨어에 의해 수행되거나, 또는 다른 하드웨어에 의해 수행될 수도 있을 것이다.
메모리 컨트롤러(416)는 GPU(410) 외부의 메모리(440)를 직접 억세스하기 위한 컨트롤 기능을 수행할 수 있다. 쉐이더 프로세서(415)는 메모리 컨트롤러(416)를 통해 수신된 프레임 데이터를 이용하여 와핑 처리를 수행하고, 와핑 처리 결과에 따른 프레임 데이터를 메모리 컨트롤러(416)를 통해 메모리(440)로 제공할 수 있다.
GPU(410)의 일 동작 예를 도 7 및 도 8을 참조하여 설명하면 다음과 같다. 도 8은 GPU(410)의 일 동작 예에 따른 플로우를 나타내는 블록도이며, 도 8에는 렌더링 시스템(400)에 구비되어 GPU(410)를 제어하는 호스트 드라이버(450)가 더 도시된다.
호스트는 호스트 드라이버(450)를 통해 와핑 처리를 위한 쉐이더(shader)를 GPU(410)로 전달할 수 있다(S21). 와핑 처리를 위한 쉐이더(shader)는 쉐이더 프로세서(415)에서 수행될 와핑 연산에 관련된 명령어, 프로그램 등의 정보를 포함할 수 있으며, 렌더링 시스템(400)의 구동 시에 GPU(410) 내에 설정될 수 있다. 일 예로서, 와핑 처리는 다양한 종류의 연산에 의해 수행될 수 있으며, 와핑 연산 방법을 기술한 명령어가 GPU(410)로 전달될 수 있다. GPU(410)는 설정된 정보를 기반으로 하여 이후 호스트의 개입 없이 와핑 처리를 수행할 수 있다. 일 실시예에 따라, 상기 와핑 처리를 위한 쉐이더(shader)는 메모리(440)에 저장되고, GPU(410)는 메모리(440)로부터 상기 와핑 처리를 위한 쉐이더(shader)를 수신할 수 있다.
GPU(410)는 호스트로부터의 커맨드 및 그래픽 데이터를 기반으로 하여 일반적인 렌더링 처리를 수행할 수 있다(S22). 또한, 호스트는 화면에 최종적으로 출력될 프레임에 대응하여 별도의 인디케이터(Indicator) 정보를 포함하여 GPU(410)로 전송할 수 있다. GPU(410)는 프레임에 포함된 인디케이터 정보를 확인함으로써, 와핑 처리를 수행할 프레임을 판단할 수 있다. 또한, GPU(410)는 일반 렌더링 처리된 프레임 이미지를 메모리(440)에 저장할 수 있다(S23).
전술한 실시예들에 따라, GPU(410)는 주기적으로 센싱 정보를 수신할 수 있으며, 예컨대 헤드 모션 및/또는 헤드 포지션 정보를 수신할 수 있다(S24). 일 실시예에 따라, 렌더링 시스템(400)의 초기 설정 시 센서(420)로부터의 센싱 정보(Info_sen)가 저장되는 위치가 설정될 수 있으며, 일 예로서 센싱 정보(Info_sen)는 렌더링 시스템(400)의 레지스터(411)에 저장될 수 있다. 센싱 정보(Info_sen)는 레지스터(411)에 주기적으로 업데이트될 수 있으며, 레지스터(411)에 저장된 센싱 정보(Info_sen)는 주기적으로 커맨드 처리기(414)로 제공될 수 있다.
변형 가능한 예로서, 센서(420)로부터의 센싱 정보(Info_sen)는 메모리(440) 내의 저장 공간에 저장될 수 있으며, 센싱 정보(Info_sen)는 메모리(440)에 주기적으로 업데이트될 수 있다. 또한, 센싱 정보(Info_sen)가 저장된 메모리(440)의 주소 정보는 레지스터(411)에 설정될 수 있으며, GPU(410)는 레지스터(411)에 저장된 주소 정보를 이용하여 메모리(440)에 저장된 센싱 정보(Info_sen)는 주기적으로 독출하여 커맨드 처리기(414)로 제공할 수 있다. 다른 변형 가능한 예로서, 센서(420)로부터의 센싱 정보(Info_sen)는 센서(420) 내부에 저장되어 주기적으로 GPU(410)로 제공될 수도 있다.
또한, 타이머(430)는 렌더링 시스템(400)의 상태 설정에 따라 타이밍 정보(Info_T)를 주기적으로 GPU(410)로 제공할 수 있다(S25). 변형 가능한 실시예에 따라, GPU(410) 내에 내부 타이머(412)가 구비된 경우에는 내부 타이머(412)로부터의 타이밍 정보(Info_T)가 인터럽트 컨트롤러(413)로 제공될 수도 있다.
GPU(410)는 일반적인 인터럽트 핸들링 방식이나 그에 상응하는 다른 방식에 기반하여 외부로부터 제공된 신호들을 처리할 수 있다. 만약, 외부로부터 제공된 신호가 센싱 정보(Info_sen) 및 타이밍 정보(Info_T) 등 와핑 처리에 관련된 신호인 경우에는 다음과 같이 와핑 처리가 수행될 수 있다.
GPU(410)는 메모리(440)로부터 와핑 처리에 이용될 프레임 데이터를 수신할 수 있으며, 일 예로서 렌더링 처리가 완료된 프레임 데이터를 수신할 수 있으며, 또한 메모리(440)의 최초 설정된 주소에 저장된 센싱 정보(Info_sen)를 수신할 수 있다(S26). 도 8에서는 센싱 정보(Info_sen)가 메모리(440)에 저장된 경우를 예시하였으나, 전술한 바와 같이 센싱 정보(Info_sen)는 GPU(410) 내의 레지스터(411)로부터 독출될 수도 있으며, 또는 센서(420) 내에 저장된 센싱 정보(Info_sen)가 커맨드 처리기(414)로 제공될 수도 있을 것이다.
커맨드 처리기(414)는 앞서 수신된 와핑 처리를 위한 쉐이더, 렌더링 처리 완료된 프레임 데이터 및 센싱 정보(Info_sen) 등 와핑 처리에 관련된 정보를 이용하여 내부 커맨드를 생성할 수 있다. 쉐이더 프로세서(415)는 생성된 내부 커맨드에 따라 와핑 처리를 위한 그래픽 연산을 수행할 수 있다. 일 실시예에 따라, 생성된 내부 커맨드는 즉시 커맨드 스케줄링을 위해 이용될 수 있으며, 또는 생성된 내부 커맨드는 메모리(440)에 저장된 이후에 커맨드 스케줄링을 위해 이용될 수 있다.
GPU(410)는 와핑 처리를 위해 전술한 바와 같이 Preemption 방식 등에 따라 전체 또는 일부 리소스를 대상으로 기존에 수행되던 렌더링 처리를 중단시킬 수 있다. 또한, 렌더링 처리가 완료된 프레임 데이터에 대해, 센싱 정보(Info_sen)를 이용한 보간 또는 변환 동작에 기반하여 와핑 처리가 수행될 수 있으며, 와핑 처리 결과로서 사용자의 움직임이 시각에 반영된 와핑 이미지가 생성될 수 있다. 와핑 이미지는 메모리(440)에 저장될 수 있다(S28).
한편, GPU(410)는 와핑 처리가 완료된 경우 이를 나타내는 정보를 호스트 드라이버(450)로 제공할 수 있다(S29). 와핑 처리가 완료됨을 나타내는 정보는 일반 렌더링 처리가 완료됨을 나타내는 정보와 구분될 수 있으며, 호스트는 해당 정보를 기반으로 하여 와핑 이미지의 출력을 제어할 수 있다.
도 9 및 도 10은 본 발명의 예시적인 실시예들에 따른 렌더링 시스템의 동작방법을 나타내는 플로우차트이다. 도 9 및 도 10에서는 와핑 처리를 위한 그래픽 연산이 쉐이더 프로세서 외부에서 수행되는 예가 도시된다.
도 9를 참조하면, 호스트로부터의 커맨드에 응답하여 쉐이더 프로세서가 일반 렌더링 처리를 수행할 수 있다(S31). 또한, 그래픽 프로세서(GPU)는 호스트와 무관하게 와핑 처리에 관련된 타이밍 정보 및 센싱 정보를 수신하고(S32), 수신된 타이밍 정보에 따라 와핑 처리 타이밍을 판단할 수 있다(S33).
그래픽 프로세서(GPU)는 일반 렌더링 처리를 위한 쉐이더 프로세서 이외에, 소정의 연산을 수행하는 연산 장치를 더 포함할 수 있으며, 연산 장치는 렌더링 처리와는 무관한 연산을 수행할 수 있다. 이 때, 그래픽 프로세서(GPU)는 와핑 처리 타이밍이 도달한 경우, 내부 커맨드를 통해 상기 연산 장치의 동작을 제어할 수 있으며, 연산 장치는 기존의 렌더링 처리된 프레임 데이터와 센싱 정보를 이용하여 와핑 처리를 위한 연산을 수행할 수 있다(S34). 또한, 연산 장치에 의해 와핑 처리가 완료되면, 그래픽 프로세서는 이를 나타내는 정보를 호스트로 전송할 수 있다(S35).
한편, 도 10을 참조하면, 그래픽 프로세서(GPU)가 호스트로부터의 커맨드에 응답하여 일반 렌더링 처리를 수행할 수 있다(S41). 또한, 렌더링 시스템에는 기 설정된 연산을 수행할 수 있는 연산 장치가 구비되고, 전술한 실시예에서의 타이밍 정보 및 센싱 정보는 연산 장치가 수신할 수 있다(S42). 일 실시예에 따라, 외부의 연산 장치는 호스트와 무관하게 타이밍 정보 및 센싱 정보를 수신할 수 있다. 변형 가능한 실시예에 따라, 외부의 연산 장치는 호스트를 통해 타이밍 정보 및 센싱 정보를 수신할 수도 있을 것이다.
외부의 연산 장치는 상기 타이밍 정보에 기반하여 와핑 처리 타이밍을 판단하고, 렌더링 처리된 프레임 데이터와 센싱 정보를 이용하여 와핑 처리를 위한 연산을 수행할 수 있다(S43). 또한, 외부의 연산 장치는 호스트로 와핑 처리가 완료되었음을 나타내는 정보를 전송할 수 있다(S44).
도 9 및 도 10에 도시된 실시예에 따르면, 그래픽 프로세서 내에서 일반 렌더링 처리를 수행하는 하드웨어와 서로 별개의 연산 장치에 의해 와핑 처리가 수행되므로, 렌더링 처리와 와핑 처리는 동시에 수행될 수 있다. 즉, 와핑 처리가 안정적으로 수행될 수 있으며, 그래픽 프로세서 내에서 렌더링 처리가 중단되는 빈도를 감소시킴으로써 렌더링 처리 속도가 향상될 수 있다.
도 11은 전술한 실시예에서의 동작방법을 구현하는 그래픽 프로세서의 일 구현 예를 나타내는 블록도이다.
도 11을 참조하면, 그래픽 프로세서로서 GPU(500)는 커맨드 처리기(510), 쉐이더 프로세서(520) 및 DMA 컨트롤러(530)를 포함할 수 있다. 또한, DMA 컨트롤러(530)는 외부의 메모리(미도시)를 제어하여 데이터를 기록 및 독출할 수 있으며, 와핑 처리에 관련된 그래픽 연산을 수행하는 연산 처리기(531)를 포함할 수 있다. 연산 처리기(531)는 와핑 처리에 필요한 연산 기능을 고정된(fixed) 또는 프로그래머블 하드웨어 형태로 포함할 수 있다.
와핑 처리는 기존에 렌더링 처리된 프레임 데이터를 이용하여 보간 및/또는 변환 처리 등 간단한 연산을 통해 수행될 수 있으며, GPU(500) 내에서 와핑 처리는 DMA 컨트롤러(530) 내의 연산 처리기(531)에 의해 수행될 수 있다. 일 실시예에 따라, 와핑 처리를 위한 프레임 데이터와 와핑 처리 완료된 프레임 데이터는 DMA 컨트롤러(530)와 외부의 메모리 사이에서 전송될 수 있다. 또한, 와핑 처리에 관련된 다양한 정보들 중 적어도 일부가 DMA 컨트롤러(530)와 외부의 메모리 사이에서 전송될 수 있다. 예컨대, 센싱 정보가 메모리에 저장되는 경우에는, DMA 컨트롤러(530)와 메모리 사이에서 센싱 정보가 전송될 수 있다. 또한, DMA 컨트롤러(530) 내에서의 와핑 연산을 위해 와핑 연산 방식을 기술한 프로그램이 DMA 컨트롤러(530) 내에 저장되거나 또는 메모리에 저장될 수 있으며, DMA 컨트롤러(530)와 메모리 사이에서 상기 와핑 연산에 관련된 프로그램 정보가 전송될 수도 있을 것이다.
일 동작 예에 따라, 커맨드 처리기(510)는 전술한 실시예들에 따라 호스트로부터의 커맨드를 처리하는 동작을 수행할 수 있으며, 또한 내부 와핑 처리를 위한 와핑 커맨드(CMD_warp)를 생성할 수 있다. 일 예로서, 커맨드 처리기(510)는 호스트로부터의 커맨드를 처리하여 일반 렌더링 처리를 위한 내부 커맨드(CMD_Ren)를 쉐이더 프로세서(520)로 제공할 수 있다.
또한, 커맨드 처리기(510)는 전술한 실시예들에 따라 와핑 처리에 관련된 정보들을 이용하여 와핑 커맨드(CMD_warp)를 생성하고 이를 DMA 컨트롤러(530)로 제공할 수 있다. 예컨대, 커맨드 처리기(510)는 타이밍 정보에 기반하여 주기적으로 와핑 커맨드(CMD_warp)를 생성할 수 있다. 또한, 센싱 정보가 외부의 센서에서 GPU(500)로 제공되는 경우에는, 커맨드 처리기(510)의 제어에 기반하여 사용자의 헤드 모션 및/또는 헤드 포지션 정보에 관련된 센싱 정보가 DMA 컨트롤러(530)로 제공될 수 있을 것이다. 예컨대, 센싱 정보가 GPU(500) 내의 레지스터에 저장된 경우에는, 커맨드 처리기(510)의 제어에 기반하여 레지스터로부터 센싱 정보가 독출되어 DMA 컨트롤러(530)로 제공될 수 있다.
일 실시예에 따라, 쉐이더 프로세서(520)에 의한 일반 렌더링 처리와 DMA 컨트롤러(530)에 의한 와핑 처리는 병렬하게 수행될 수 있다. 예컨대, GPU(500) 내에 구비되는 인터럽트 컨트롤러(미도시)는 와핑 처리가 수행될 타이밍이 도달하더라도 일반 쉐이딩 처리를 중단하기 위한 인터럽트를 발생하지 않을 수 있다.
도 12는 전술한 실시예에서의 동작방법을 구현하는 렌더링 시스템의 일 구현 예를 나타내는 블록도이다. 도 12에서는 와핑 처리가 외부의 메모리에서 수행되는 예가 도시된다.
렌더링 시스템(600)은 그래픽 프로세서로서 GPU(610), 호스트(620), 외부 메모리(630), 센서(640) 및 타이머(650)를 포함할 수 있다. 전술한 실시예에서와 같이, 센서(640)는 헤드 모션 및/또는 헤드 포지션을 센싱하여 센싱 정보를 생성할 수 있으며, 타이머(650)는 GPU(610) 내의 내부 타이머 형태로 구현될 수도 있을 것이다.
일 실시예에 따라, 메모리(630)는 다양한 정보 및 데이터를 저장하는 저장 공간과 함께, 와핑 처리를 위한 그래픽 연산을 수행하는 프로세서(631)를 포함할 수 있다. 메모리(630)가 내부 프로세싱 기능을 포함함에 따라, 메모리(630)는 PIM(Processor In Memory)로 지칭될 수 있다. 도 12에서는, 메모리(630)의 저장 공간이 렌더링 처리된 프레임 이미지를 저장하는 공간, 와핑 처리된 이미지를 저장하는 공간 및 각종 정보들을 저장하는 공간을 포함하는 예가 도시된다. 일 실시예에 따라, 센서(640)로부터의 센싱 정보(Info_sen)는 메모리(630)에 주기적으로 저장될 수 있다.
GPU(610)는 호스트(620)로부터의 커맨드에 따라 일반 렌더링 처리를 수행하고, 렌더링 처리된 프레임 데이터를 메모리(630)에 저장할 수 있다. 또한, 타이머(650)로부터의 타이밍 정보는 GPU(610)를 통함이 없이 메모리(630)로 제공되고, 프로세서(631)는 타이밍 정보에 기반하여 주기적으로 와핑 처리를 위한 그래픽 연산을 직접 수행할 수 있다. 예컨대, 렌더링 처리된 직전의 프레임 이미지와 센싱 정보(Info_sen)가 프로세서(631)로 제공될 수 있다. 프로세서(631)는 타이밍 정보에 따라 주기적으로 센싱 정보(Info_sen)가 반영된 와핑 처리를 수행하고, 와핑 처리가 완료되었음을 나타내는 정보를 호스트(620)로 제공할 수 있다. 또한, 전술한 실시예에서와 유사하게, 와핑 연산 방식을 기술한 프로그램 정보가 메모리(630) 내에 저장되고, 전술한 와핑 처리는 상기 프로그램 정보를 이용하여 수행될 수 있을 것이다.
도 12에 도시된 실시예에 따르면, 와핑 처리가 GPU(610) 외부에서 수행될 수 있으며, 이에 따라 와핑 처리에 관련된 각종 정보들은 메모리(630)로 직접 제공될 수 있을 것이다. 도 12에서는 타이밍 정보와 센싱 정보가 모두 메모리(630)로 제공되는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요 없이 다양한 형태로 구현될 수 있다. 예컨대, 타이밍 정보는 GPU(610)로 제공되고, GPU(610)가 주기적으로 메모리(630)로 와핑 처리를 위한 그래픽 연산을 수행하는 커맨드를 제공할 수도 있을 것이다. 또한, 도 12에 도시된 실시예에서, GPU(610)에 의한 일반 렌더링 처리와 메모리(630)에 의한 와핑 처리는 병렬하게 수행될 수 있을 것이다.
도 13은 호스트의 제어에 의한 와핑 처리, GPU 자체적인 와핑 처리 및 연산 처리기에서의 와핑 처리 시의 동작 특성의 일 예를 나타내는 도면이다. 도 13에서는 GPU 관점에서의 렌더링 처리 및 와핑 처리의 일 예가 도시된다.
도 13의 (a)를 참조하면, 호스트의 컨텍스트 전환에 의해 와핑 처리가 수행되는 경우, 호스트는 주기적으로 컨텍스트 전환을 통해 일반 렌더링 처리와 와핑 처리 사이의 전환을 수행한다. 또한, GPU는 컨텍스트 전환에 따른 지연 시간이 반영되어 일반 렌더링 처리와 와핑 처리를 수행할 수 있다.
반면에, 도 13의 (b)를 참조하면, 호스트는 와핑 처리로의 전환 없이 렌더링 처리를 위한 커맨드를 GPU로 제공할 수 있다. 또한, GPU는 자체적으로 렌더링 처리와 와핑 처리를 번갈아 수행할 수 있으며, 이 때 렌더링 처리와 와핑 처리 사이의 변경 과정에서의 지연 시간이 제거 또는 감소될 수 있다.
한편, 도 13의 (c)를 참조하면, 전술한 실시예에 따라 메모리 컨트롤러 내의 연산 처리기나 메모리의 프로세서에서 와핑 처리가 수행되는 경우에는, GPU는 와핑 처리로의 변경 없이 렌더링 처리를 지속적으로 수행할 수 있으며, 연산 처리기나 프로세서는 상기 렌더링 처리와는 별개로 와핑 처리를 병렬하게 수행될 수 있다. 이에 따라, GPU에 의한 렌더링 처리 속도가 향상될 수 있으며, 연산 처리기 또는 프로세서는 와핑 처리를 안정적으로 수행할 수 있다.
도 14는 본 발명의 예시적인 실시예에 따른 메모리 장치를 포함하는 모바일 장치의 일 구현 예를 나타내는 블록도이다.
모바일 장치(700)은 렌더링 시스템에 해당하고, 어플리케이션 프로세서(Application Processor, 710)와 메모리 장치(720)를 포함할 수 있다. 어플리케이션 프로세서(710)는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 온 칩(SoC)은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스(미도시)를 포함할 수 있으며, 상기 시스템 버스에 연결되는 각종 IP(Intellectual Property) 장치들을 포함할 수 있다. IP 장치들의 일 예로서, 도 15에는 어플리케이션 프로세서(710)가 중앙 처리 장치(CPU, 711), 그래픽 프로세서(GPU, 712), 모뎀 프로세서(713), 메모리 컨트롤 유닛(714) 및 동작 메모리(715)를 포함하는 예가 도시된다. 또한, 어플리케이션 프로세서(710)가 모뎀 통신 기능을 수행함에 따라, 어플리케이션 프로세서(710)는 ModAP으로 지칭될 수도 있다.
시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다.
그래픽 프로세서(712)는 전술한 실시예들에서 설명된 와핑 처리를 수행할 수 있다. 이에 따라, 그래픽 프로세서(712)는 운영 체제의 관여 없이 와핑 처리의 수행 타이밍을 판단하고 내부 커맨드를 생성할 수 있으며, 생성된 내부 커맨드에 따라 와핑 처리를 위한 연산을 수행할 수 있다. 예컨대, CPU(711)가 와핑 처리에 관련된 컨텍스트 전환을 위해 동작 메모리(715)에 저장된 프로그램을 실행할 필요 없이, 그래픽 프로세서(712) 자체적으로 센싱 정보를 수신하고 이를 이용한 와핑 처리를 수행할 수 있을 것이다. 또한, 그래픽 프로세서(712)는 와핑 처리된 이미지를 메모리 장치(720)로 전송하고, 와핑 처리가 완료되었음을 나타내는 정보를 호스트로 제공할 수 있을 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 타이밍 정보를 수신하고, 상기 타이밍 정보에 기반하여 주기적으로 와핑 처리를 수행하기 위한 와핑 커맨드를 생성하는 내부 커맨드 생성기; 및
    호스트에 의한 컨텍스트 전환(context switch) 없이 상기 와핑 커맨드에 응답하여 외부로부터 제공된 센싱 정보와 기존의 렌더링 처리된 프레임 데이터를 이용하여 주기적으로 와핑 처리를 수행하는 그래픽 연산 장치를 구비하는 그래픽 프로세서.
  2. 제1항에 있어서,
    상기 타이밍 정보에 기반하여, 상기 그래픽 연산 장치가 현재 진행중인 렌더링 처리를 중단하고 상기 와핑 처리를 수행하도록 인터럽트를 제어하는 인터럽트 컨트롤러를 더 구비하는 것을 특징으로 하는 그래픽 프로세서.
  3. 제1항에 있어서,
    상기 센싱 정보 및 상기 타이밍 정보는 상기 호스트를 통함이 없이 상기 그래픽 연산 장치로 직접 제공되는 것을 특징으로 하는 그래픽 프로세서.
  4. 제3항에 있어서,
    상기 센싱 정보는, 상기 그래픽 프로세서와 결합된 VR(Virtual Reality) 본체에 구비되는 센서로부터 생성된 사용자의 헤드 포지션 정보를 포함하는 것을 특징으로 하는 그래픽 프로세서.
  5. 제1항에 있어서,
    상기 와핑 처리의 수행 타이밍을 나타내는 정보를 갖는 상기 타이밍 정보를 생성하는 내부 타이머를 더 구비하고,
    상기 내부 커맨드 생성기는 상기 내부 타이머로부터 상기 타이밍 정보를 수신하는 것을 특징으로 하는 그래픽 프로세서.
  6. 제1항에 있어서,
    상기 외부로부터의 센싱 정보를 저장하고, 주기적으로 상기 센싱 정보가 업데이트되는 레지스터를 더 구비하고,
    상기 센싱 정보는 상기 레지스터로부터 독출되어 상기 그래픽 연산 장치로 제공되는 것을 특징으로 하는 그래픽 프로세서.
  7. 제1항에 있어서,
    상기 그래픽 연산 장치는, 상기 그래픽 프로세서의 초기 구동 시 호스트에 의해 제공되는 쉐이더 프로그램을 더 이용하여 상기 와핑 처리를 수행하는 것을 특징으로 하는 그래픽 프로세서.
  8. 제1항에 있어서,
    상기 그래픽 연산 장치는 외부의 메모리를 제어하기 위한 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 연산 처리기를 포함하며,
    상기 와핑 처리는 상기 메모리 컨트롤러 내의 연산 처리기에 의해 수행되는 것을 특징으로 하는 그래픽 프로세서.
  9. 와핑 처리 타이밍을 나타내는 주기 정보를 생성하는 타이머;
    호스트로부터의 커맨드에 응답하여 렌더링 처리를 수행함으로써 렌더링 처리된 프레임 데이터를 생성하는 그래픽 프로세서; 및
    상기 렌더링 처리된 프레임 데이터를 저장하는 메모리 영역과, 상기 타이밍 정보에 응답하여 상기 렌더링 처리된 프레임 데이터와 외부로부터 제공된 센싱 정보를 이용하여 와핑 처리를 수행하고 와핑 처리된 이미지를 상기 메모리 영역에 저장하는 프로세서를 포함하는 메모리를 구비하는 렌더링 시스템.
  10. 제9항에 있어서,
    상기 타이밍 정보 및 상기 센싱 정보는 상기 렌더링 시스템 내의 호스트를 통함이 없이 상기 메모리로 직접 제공되는 것을 특징으로 하는 렌더링 시스템.
KR1020170178741A 2017-12-22 2017-12-22 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법 KR102604738B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170178741A KR102604738B1 (ko) 2017-12-22 2017-12-22 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법
US16/028,535 US10769753B2 (en) 2017-12-22 2018-07-06 Graphics processor that performs warping, rendering system having the graphics processor, and method of operating the graphics processor
DE102018119053.0A DE102018119053A1 (de) 2017-12-22 2018-08-06 Grafikprozessor, welcher Warping durchführt und Rendering-System mit dem Grafikprozessor
CN201810941406.8A CN109978749A (zh) 2017-12-22 2018-08-17 图形处理器、渲染系统及操作图形处理器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170178741A KR102604738B1 (ko) 2017-12-22 2017-12-22 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법

Publications (2)

Publication Number Publication Date
KR20190076709A true KR20190076709A (ko) 2019-07-02
KR102604738B1 KR102604738B1 (ko) 2023-11-22

Family

ID=66767966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170178741A KR102604738B1 (ko) 2017-12-22 2017-12-22 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법

Country Status (4)

Country Link
US (1) US10769753B2 (ko)
KR (1) KR102604738B1 (ko)
CN (1) CN109978749A (ko)
DE (1) DE102018119053A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210192681A1 (en) * 2019-12-18 2021-06-24 Ati Technologies Ulc Frame reprojection for virtual reality and augmented reality
CN112860318A (zh) * 2021-01-29 2021-05-28 成都商汤科技有限公司 一种数据传输方法、芯片、设备和存储介质
US20220309734A1 (en) * 2021-03-29 2022-09-29 Samsung Electronics Co., Ltd. Apparatus and method with graphics processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449674B1 (en) * 1998-12-24 2002-09-10 Hyundai Electronics Industries Co., Ltd. Internal command signal generator and method therefor
US20110285735A1 (en) * 2010-05-21 2011-11-24 Bolz Jeffrey A System and method for compositing path color in path rendering
US8447134B1 (en) * 2010-12-20 2013-05-21 Ambarella, Inc. Image warp caching
KR20160139461A (ko) * 2015-05-27 2016-12-07 엘지전자 주식회사 헤드 마운티드 디스플레이 및 그 제어 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7973804B2 (en) * 2008-03-11 2011-07-05 International Business Machines Corporation Image processing with highly threaded texture fragment generation
US9563970B2 (en) 2010-01-15 2017-02-07 Digimarc Corporation Methods and arrangements relating to signal rich art
KR101514653B1 (ko) 2013-01-29 2015-04-24 목포대학교산학협력단 특징점 추적 방법을 이용한 영상 컨텐츠 제어 방법 및 장치
US9063330B2 (en) 2013-05-30 2015-06-23 Oculus Vr, Llc Perception based predictive tracking for head mounted displays
US9736467B2 (en) 2013-08-05 2017-08-15 Samsung Display Co., Ltd. Apparatus and method for adjusting stereoscopic images in response to head roll
US10203762B2 (en) 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US20150370322A1 (en) 2014-06-18 2015-12-24 Advanced Micro Devices, Inc. Method and apparatus for bezel mitigation with head tracking
US20160094837A1 (en) 2014-09-30 2016-03-31 3DOO, Inc. Distributed stereoscopic rendering for stereoscopic projecton and display
US10104361B2 (en) 2014-11-14 2018-10-16 Samsung Electronics Co., Ltd. Coding of 360 degree videos using region adaptive smoothing
US9672586B2 (en) 2015-10-22 2017-06-06 Texas Instruments Incorporated Image synthesis method with DSP and GPU
US9832451B2 (en) 2015-11-17 2017-11-28 Survios, Inc. Methods for reduced-bandwidth wireless 3D video transmission
US10089725B2 (en) 2016-02-09 2018-10-02 Google Llc Electronic display stabilization at a graphics processing unit
US9681096B1 (en) 2016-07-18 2017-06-13 Apple Inc. Light field capture
US10043318B2 (en) * 2016-12-09 2018-08-07 Qualcomm Incorporated Display synchronized image warping
US10475150B2 (en) * 2017-09-29 2019-11-12 Intel Corporation GPU minimum latency dispatch for short-duration tasks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449674B1 (en) * 1998-12-24 2002-09-10 Hyundai Electronics Industries Co., Ltd. Internal command signal generator and method therefor
US20110285735A1 (en) * 2010-05-21 2011-11-24 Bolz Jeffrey A System and method for compositing path color in path rendering
US8447134B1 (en) * 2010-12-20 2013-05-21 Ambarella, Inc. Image warp caching
KR20160139461A (ko) * 2015-05-27 2016-12-07 엘지전자 주식회사 헤드 마운티드 디스플레이 및 그 제어 방법

Also Published As

Publication number Publication date
US20190197663A1 (en) 2019-06-27
KR102604738B1 (ko) 2023-11-22
US10769753B2 (en) 2020-09-08
DE102018119053A1 (de) 2019-06-27
CN109978749A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
EP2936492B1 (en) Multi-mode memory access techniques for performing graphics processing unit-based memory transfer operations
CN108463804B (zh) 自适应上下文切换
JP6309620B2 (ja) 頂点シェーダのフロント・エンドとしてコンピュート・シェーダを使用すること
KR100882842B1 (ko) 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법
JPH05282458A (ja) グラフィックス・システムにおける拡張可能な複数のイメージ・バッファ
TW201346759A (zh) 自動依附任務啟始
US11430174B2 (en) Memory consistency in memory hierarchy with relaxed ordering
KR20190076709A (ko) 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법
JP2018533137A (ja) ピクセルタイルレベルグラニュラリティをもつグラフィックス処理ユニットプリエンプション
US10223822B2 (en) Mid-render compute for graphics processing
TWI498849B (zh) 圖形驅動程式層級解耦顯像以及顯示的方法
US20180182058A1 (en) Local Image Blocks for Graphics Processing
TWI571826B (zh) 一種電腦系統、繪圖處理單元及其繪圖處理方法
JP2006092219A (ja) グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
US9251557B2 (en) System, method, and computer program product for recovering from a memory underflow condition associated with generating video signals
JP7308197B2 (ja) アクセラレーテッド処理デバイスの帯域幅を増加させるための並列データ転送
CN114998089A (zh) 计算系统和操作计算系统的方法
US10678553B2 (en) Pro-active GPU hardware bootup
CN108460718B (zh) 基于低功耗飞腾的三维图形显示系统优化方法及装置
US10467724B1 (en) Fast determination of workgroup batches from multi-dimensional kernels
JP4137903B2 (ja) グラフィックス表示装置およびグラフィックスプロセッサ
US10324844B2 (en) Memory consistency in graphics memory hierarchy with relaxed ordering
JPH10105154A (ja) グラフィックス表示装置およびグラフィックスプロセッサ
JP2006092218A (ja) グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
JPH1186026A (ja) 画像処理装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right