2014-03-30 2 views
0

AMD는 x86 CPU에서 실행되는 OpenCL의 대안 implementation을 만들었다는 것을 알고 있습니다. 이것은 단순화 된 디버깅의 관점에서 매우 유용합니다. 불행히도 OpenCL은 나를위한 옵션이 아닙니다.x86 CPU에서 OpenGL 코드를 실행할 수 있습니까?

오픈 GL x86 구현이 있습니까? 물론 이것은 약간의 CPU 시간을 소비하면서 개발 프로세스를 상당히 쉽게 해줍니다. 그런 다음 나중에 GPU에서 동일한 코드를 실행할 것이며 나중에 변경하지 않아도됩니다.

+1

[MESA] (http://www.mesa3d.org/faq.html)? 원하는 기능을 모두 지원하지는 못합니다. – Michael

+0

@Michael, 니스! 나는 그것을 들었지만 그것이 무엇인지를 몰랐다. 하지만 ... 오 ... 오직 OpenGL 3.1과 3.2 코어 프로필을 타겟팅하고 있습니다. :/아직도, 가능성은 아마도 ... –

+0

@Michael, 그건 그들의 페이지에있는 오류입니다. [여기] (http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt)를 보면, 3.3까지 지원합니다. 답변으로 게시 할 수 있다면 받아 들일 것입니다. 감사! –

답변

4

Mesa은 옵션입니다. 자신의 웹 사이트에서

:

메사는 인텔, AMD와 NVIDIA 플러스 VMware 가상 GPU에 의한 하드웨어의 여러 종류의 OpenGL을 구현 한 것입니다. swast (레거시 메사 래스터 라이저), softpipe (갈륨 레퍼런스 드라이버) 및 llvmpipe (LLVM/JIT 기반 고속 래스터 라이저)와 같은 소프트웨어 기반 렌더러도 있습니다. 메사를 사용하는 경우

당신은 "항상 소프트웨어 렌더링을 사용하여"에 메사의 원인이됩니다 LIBGL_ALWAYS_SOFTWARE 환경 변수를 설정할 수 있습니다.

0

OpenGL은 명령어 세트가 아니며 라이브러리도 아닙니다. GPU와 인터페이스하기위한 그리기 API입니다 (예, Mesa softpipe와 같은 소프트웨어 기반 래스터 라이저가 있습니다). 요즘 찾을 수있는 대부분의 컴퓨터는 OpenGL을 지원합니다.

OpenGL API를 사용하면 OpenGL 호출이 프로그램의 일부인 GPU 용 특수 명령어 세트로 "변환"되는 것과 다릅니다. OpenGL 작업은 파일 읽기 또는 쓰기와 같이 결국 장치 드라이버에서 끝나는 호출을 작성합니다.

+0

이것은 답변이 아닙니다. 이것은 의견입니다. 그러나 SO에 대한 많은 _useful_ OpenGL 답변에 감사드립니다. 그 중 하나는 오늘 내가 상향 투표했습니다. –

+0

@NickWiggill : 미안하지만, 당신이 질문하는 것을 처음부터 만들어주는 것이 어렵습니다. x86 OpenGL 구현에 대해 묻고 있습니다. 그렇습니다. x86 아키텍처를위한 모든 GPU 드라이버는 그러한 구현물입니다. 당신은 디버깅에 대해 말하고 있지만, 당신은 전혀 디버깅하고 싶지 않습니다. 또한 OpenGL을 블랙 박스로 간주해야합니다. 디버깅 목적으로 "Mesa softpipe"를 사용한다고 가정 해보십시오. 구현을 사용하는 * 프로그램에 대해 배우고 싶은 것은 무엇입니까? – datenwolf

+0

"x86 아키텍처를위한 모든 GPU 드라이버는 그러한 구현물입니다." 너는 맞다. 그러나 그들은 x86 CPU 이상을 필요로합니다 - 또한 x86 시스템에서 공을 사용할 GPU가 필요합니다. 따라서 혼란이 어디서 발생했는지 알 수 있습니다. 본질적으로 소프트웨어 구현을 요구했습니다. 다시 디버깅, 두 가지 측면 : GPU OpenGL은보고 할 수 있지만 요청하지 않으면 데이터를 출력하지 않습니다. 메사는 단일 스위치로이를 수행 할 수 있습니다. 둘째, 쉐이더가 생성하는 값에 대한 통찰력을 얻고 싶습니다. TBF, 메사가 이것을 제공 할 수 있는지 확실하지 않습니다. –

관련 문제