Linux 매니아로서 저는 OpenGL 개발을 취미로 삼고 싶습니다.
OpenGL은 GPU 공급업체가 구현해야 하는 API일 뿐이라는 것을 알고 있습니다.
일부 GPU 공급업체의 OpenGL/Vulkan 구현은 독점적인 반면 다른 공급업체는 오픈 소스(예: Intel)입니다.
저는 오픈 소스를 좋아하기 때문에 개발할 때 독점적인 것을 사용하고 있지 않은지 확인하고 싶습니다. 그러면 내 GPU가 현재 렌더링에 Mesa를 사용하고 있는지 어떻게 확인할 수 있습니까?
제가 이 질문을 드리는 이유는 온라인에서 다양한 메시지를 받았기 때문입니다. Mesa를 여전히 설치할 수 있다는 말을 들었기 때문입니다. 그러나 GPU는 다른 독점 기술을 사용할 것이기 때문에 이것이 제가 이유를 묻고 있는 것입니다.
어떤 도움이라도 대단히 감사하겠습니다.
답변1
긴 이야기 짧게
터미널에서 실행하세요:
glxinfo | grep -i mesa
출력에 뭔가가 표시되면 메사를 사용해야 합니다. 아무것도 나오지 않으면 다른 것입니다.
다른 것이라면 glxinfo | grep -i vendor
그것이 무엇인지 알려주어야 합니다.
전체 설명:
따라서 우선 어떤 OpenGL/Vulkan 구현을 선택할지는 중요하지 않습니다. 사용하는 구현은 사용하는 GPU 드라이버에 따라 다릅니다. 따라서 실제로 하고 싶은 일은 Mesa 지원 GPU 드라이버를 사용하고 있는지 확인하는 것입니다.
즉, GPU 드라이버에는 옵션이 많지 않습니다. Intel이나 AMD를 사용하고 있다면 Mesa와 함께 작동하는 오픈 소스 드라이버를 이미 사용하고 있을 가능성이 높습니다. Intel에는 다른 옵션이 없으며 AMD의 독점 드라이버는 더 이상 사용되지 않습니다.
Nvidia를 사용한다면 좀 더 복잡해집니다. 현재 드라이버에는 공식 및 독점 Nvidia 드라이버, 공식 Nvidia 드라이버의 오픈 소스 버전 및 누보의 세 가지 유형이 있습니다.
첫 번째는 최고의 성능을 제공하지만 앞서 말했듯이 이는 독점적이며 자체 독점 OpenGL 구현을 제공합니다. 조리대에는 사용할 수 없습니다.
두 번째는 올해 5월에 출시된 아주 새로운 것입니다. 이는 독점 드라이버의 오픈 소스 버전입니다. 자체 OpenGL 구현도 있지만 Mesa는 아닙니다. 그러나 이는 오픈 소스이며 독점 소프트웨어와 비슷한 성능을 제공합니다.
마지막 nouveau는 Nvidia의 독점 드라이버를 리버스 엔지니어링하여 커뮤니티에서 작성한 Nvidia의 오래된 오픈 소스 드라이버입니다. 이것은 Nvidia의 GPU에서 오픈 소스 드라이버를 정말로 사용하고 싶은 경우 유일한 옵션이었고 Mesa에서도 작동했습니다. 리버스 엔지니어링을 기반으로 하기 때문에 성능이 좋지 않습니다.
요약하자면, Nvidia GPU를 사용하고 MESA를 사용해야 한다면 nouveau로 갈 수 있지만 성능이 떨어지기 때문에 권장하지는 않습니다. 오픈 소스만 찾고 있다면 Nvidia 공식 드라이버의 오픈 소스 버전을 설치하세요. (다른 모든 드라이버를 제거하고 사용하려는 드라이버만 설치하십시오.)
그러나 그럼에도 불구하고 한 가지는 분명히 해야 한다.
뭔가를 개발할 때 독점적인 것을 사용하지 않았는지 확인하고 싶습니다.
정말로 "컴퓨터를 개발 및/또는 사용할 때 독점적인 콘텐츠를 사용하고 있지 않은지" 확인하고 싶으신가요? 아니면 "개발 중인 소프트웨어의 어떤 것도 독점 콘텐츠를 사용하고 있지 않은지" 확인하고 싶으신가요?
후자의 경우에는 어떤 드라이버나 구현을 사용하고 있는지 신경 쓸 필요조차 없습니다. 어쨌든 모두 OpenGL이고 OpenGL 자체가 개방형이기 때문에 코드에서 독점적인 어떤 것도 사용하지 않을 것입니다. 전자의 경우라면 앞서 말했듯이 올바른 드라이버를 설치하면 됩니다.