>

EGL을 사용하여 Linux의 NVidia GPU에 연결된 디스플레이에 직접 그리는 OpenGL 컨텍스트를 열려고합니다.

eglGetDisplay(EGL_DEFAULT_DISPLAY) 로 EGL 디스플레이를 열 때 오프 스크린 렌더링 컨텍스트를 만드는 것 같습니다.

eglGetPlatformDisplayEXT 사용 디스플레이가 없습니다.

X11/Wayland (또는 GPU에 액세스하는 다른 프로세스)없이 프로그램을 시작할 때 화면에 직접 렌더링되는 OpenGL 컨텍스트를 생성하도록 설정할 수 있습니까?

또한 X11이 기본 GPU에만 액세스하도록 설정된 경우 보조 GPU에 연결된 화면에서 EGL을 렌더링 할 수 있습니다.

빠른 OpenGL 컨텍스트를 제공해야하며,이를 CUDA 컨텍스트와 공유 할 수 있습니다. 윈도우 서버를 거치지 않고 CUDA 커널이 생성 한 이미지를 최대한 효율적으로 표시하는 것이 목표입니다.


  • 답변 # 1

    와이즈 비즈

    NVidia의 Linux 드라이버는 X.org 인프라와 밀접한 관련이 있습니다. Wayland는 여전히 예상대로 Wayland를 제대로 지원하지 않습니다. 대신 NVidia는 "EGL 스트림"이라고하는 디스플레이에 직접 액세스하기 위해 자체 "방법"을 사용했습니다. Wayland와의 통합은 https://github.com/NVIDIA/egl-wayland

    에서 찾을 수 있습니다.

    기술적으로 EGL 스트림을 사용하여 X 서버없이 디스플레이에 직접 액세스 할 수 있습니다.

    와이즈 비즈

    이론적으로 X 서버가 사용하고자하는 하나의 디바이스 만 사용하도록 X 서버를 구성했다고 가정하면 EGL 스트림에서도 가능해야합니다. 이는

    Is it possible to set it up such that when the program is launched without X11/Wayland

    에서 BusID를 지정하여 수행 할 수 있습니다.  

    Also, it is possible if X11 is set up to access only the primary GPU, make EGL render onto a screen connected to the secondary GPU.

    의 섹션 .

    Device

관련 자료

  • 이전 Homebrew 관리자는 각 수식의 바이너리 진위를 어떻게 보장합니까?
  • 다음 c++ - 2 차 베 지어를 3 차 베지 어로 변환