컨텍스트 공유없이 두 컨텍스트간에 텍스처 / 이미지를 공유하는 가장 좋은 방법은 무엇입니까?

CurtisGuo

내가 원하는 것은 한 컨텍스트에서 렌더링 결과를 얻고 이전 컨텍스트와 공유되지 않는 다른 컨텍스트에서 추가 렌더링을 수행하는 것입니다.

내가 생각 해낼 수있는 유일한 방법은 API와 같은 glReadPixels를 사용하여 GPU 메모리에서 시스템 메모리로 렌더링 결과를 복사하고 복사 된 데이터를 다른 컨텍스트에서 사용하는 것입니다.

이 작업을 수행하는 더 좋은 방법이 있습니까? GPU 메모리에서 시스템 메모리로, 시스템에서 GPU로 다시 데이터를 복사하지 않는 것입니다.

Linux에서 GLX로 작업하고 있습니다.

레토 코라디

올바르게 공유하는 방법을 모르겠습니다. GLX에서 찾을 수있는 가장 가까운 것은 GLX_NV_copy_image 확장입니다. 서론에서는 다음과 같이 말합니다.

WGL 및 GLX 버전은 해당 컨텍스트가 다른 공유 목록에 있거나 다른 물리적 장치에 있더라도 다른 컨텍스트의 이미지 간 복사를 허용합니다.

이 확장을 사용하면 glXCopyImageSubDataNV()함수를 사용하여 한 컨텍스트에서 다른 컨텍스트로 복사합니다. 이것은 공유를 허용하지 않지만 데이터를 직접 복사하는 것보다 훨씬 빠를 수 있습니다.

이름에서 이미 알 수 있듯이 이것은 공급 업체별 확장입니다. 얼마나 널리 지원되는지는 모르지만 모든 시스템에 존재한다고 믿어서는 안됩니다.

다른 윈도우 시스템 바인딩에는 프로세스간에 이미지를 공유하는 메커니즘이 있습니다. 예를 들어 OpenGL ES와 함께 사용되는 EGL의 경우 EGLImage를이 용도로 사용할 수 있습니다. 그러나 GLX 사양과 확장 목록을 살펴보면 비슷한 것을 찾을 수 없었습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관