크로노스그룹, SPIR-V를 지원하는 OpenGL 4.6 발표

OpenGL 발표 25주년에 맞추어 새로운 버전 4.6을 발표 – 11개의 ARB와 확장판을 코어 표준으로 추가 

2017년 7월 31일, 미국 캘리포니아주 로스앤젤레스에서 개최되는 SIGGRAPH 2017 에서 하드웨어 및 소프트웨어 산업체 표준화 컨소시엄인 크로노스 그룹은 OpenGL® 4.6 표준을 공개하였다. 이전에 ARB(Architecture Review Board, 구조 검토 위원회 후보기술) EXT(표준 확장판) 이었던 다수의 기술을 원 표준에 통합하여 새로운 표준을 만들었고, 이를 AMD, Intel, NVIDIA 등이 코어에 구현하였다. 또한 SPIR-V™ 쉐이더 기능이 표준에 포함되었다.

SPIR-V(스피어-브이로 발음)는 크로노스 그룹이 제정한 중간 표현언어 표준으로서 병렬 컴퓨팅과 그래픽스에 활용된다. 컨텐츠 제작자가 쉽게 쉐이더 코드를 만들고 파이프라인을 관리할 수 있도록 해 주면서도, 쉐이딩 언어의 유연성과 확장성을 크게 증대시켜 준다. 이번에 OpenGL 4.6이 SPIR-V 쉐이더를 핵심 표준으로 채택함으로써, SPIR-V 쉐이더는 OpenGL 제품에 널리 사용될 것으로 예상된다.

OpenGL 4.6 에는 다음과 같은 ARB 확장판 기능들이 표준으로 추가 되었다.

  • GL_ARB_gl_spirv GL_ARB_spirv_extensions 표준으로서 OpenGL 에서 SPIR-V 지원
  • GL_ARB_indirect_parameters 및 GL_ARB_shader_draw_parameters – 기하의 렌더링 배치처리 관련 CPU 부하를 줄이는 데 유용
  • GL_ARB_pipeline_statistics_query GL_ARB_transform_feedback_overflow_query Direct3D에서 지원되던 기능들을 OpenGL에서 지원
  • GL_ARB_texture_filter_anisotropic (GL_EXT_texture_filter_anisotropic에 기반) 이전에 특허권 문제가 있었던 기능을 OpenGL에 추가함으로써 텍스처 렌더링의 시각적 품질을 크게 행상할 수 있게 되었다.
  • GL_ARB_polygon_offset_clamp (GL_EXT_polygon_offset_clamp에 기반) 그림자 렌더링에서 주로 발생하는 번짐 현상을 감소
  • GL_ARB_shader_atomic_counter_ops and GL_ARB_shader_group_vote 모든 데스크톱 벤더들이 지원하는 셰이더 내장 함수를 추가하여 기능 및 성능 향상
  • GL_KHR_no_error 응용 프로그램이 오류가 없는 작업으로 예측하여 오류를 생성하지 않도록 하여 드라이버의 오버 헤드를 감소

이와 함께, 다음과 같은 확장판이 함께 발표되었다.

  • GL_KHR_parallel_shader_compile 응용 프로그램이 다수의 쉐이더 컴파일 스레드를 실행할 수 있도록 하여 쉐이더 컴파일 성능을 향상
  • WGL_ARB_create_context_no_error 및 GXL_ARB_create_context_no_error GL_KHR_no_error 확장을 지원하는 WGL 또는 GLX로 작성되는 오류 컨텍스트를 허용하지 않는다.

 “역대 가장 기능이 풍부한 버전으로 OpenGL 4.6을 발표하게 된 것을 자랑스럽게 생각합니다. OpenGL 개발자와 최종 사용자에게 향상된 기능을 제공하기 위해 핵심적으로 널리 지원되는 확장판의 기능을 표준으로 통합하였습니다. 여기에는 특허 문제가 있었던 비등방성 텍스처 필터와 폴리곤 오프셋 크램핑 기능이 포함됩니다. OpenGL 워킹 그룹은 시장의 요구에 지속적으로 대응하고 GPU 벤더들과의 협력을 통해 OpenGL이 중요한 산업 분야의 모든 고객과 사용자를 위해 진화하는 API가 되도록 노력할 것입니다.” Piers Daniell, chair of the OpenGL Working Group

OpenGL 4.6 표준은 https://khronos.org/registry/OpenGL/index_gl.php 에서 얻을 수 있다. GLSL 쉐이더를 SPIR-V 로 컴파일하는 glslang은 GLSL 4.6으로 업그레이드 되었으며, https://khronos.org/registry/OpenGL/index_gl.php 에서 얻을 수 있다.

새롭게 발표된 확장판은 OpenGL 과 OpenGL ES 양쪽 모두에서 이용할 수 있다. 이를 통해 Vulkan 및 Direct3D와 상호운용성을 갖게 될 것이다. 이들 확장판의 이름은 다음과 같다.

  • GL_EXT_memory_object
  • GL_EXT_memory_object_fd
  • GL_EXT_memory_object_win32
  • GL_EXT_semaphore
  • GL_EXT_semaphore_fd
  • GL_EXT_semaphore_win32
  • GL_EXT_win32_keyed_mutex

이들 확장판에 대한 내용은 https://khronos.org/registry/OpenGL/index_gl.php에서 얻을 수 있다.

OpenGL 4.6에 대한 산업계의 지원

“우리 고객은 OpenGL 4.x 지원하는 모든 GPU에서 OpenGL 4.6의 향상된 핵심 기능을 사용할 수 있습니다. 이러한 기능은 향상된 렌더링 품질, 성능 및 기능을 제공합니다. 그래픽 업계에서 가장 인기있는 API 인 OpenGL을 완벽하게 지원하며 새로운 OpenGL 사양 개발 및 고객 확장을 위해 Khronos Group과 긴밀하게 협력 할 것입니다. NVIDIA는 오늘 OpenGL 4.6 베타 드라이버를 https://developer.nvidia.com/opengl-driver에서 공개 했으므로 개발자들은 이 새로운 기능을 즉시 사용할 수 있습니다. ” NVIDIA의 Professional Graphics 부사장 인 Bob Pette

“OpenGL 4.6은 표준이 발표된 후 합리적인 시간 내에 적합성 테스트가 완료된 오픈소스 구현이 제공되는 첫번째 OpenGL 표준이 될 것입니다. OpenGL 적합성 테스트 슈트의 오픈 소스의 공개와  Khronos와 X.org 간의 지속적인 협력을 통해 가까운 장래에 비 벤더 주도 오픈 소스 구현이 적합성을 달성 할 수 있도록 해 줄 것입니다.” Red Hat 수석 선임 엔지니어 인 David Airlie와 Mesa / X.org 프로젝트 개발자가 말했다.

OpenGL 소개

OpenGL® 은 산업계에 가장 널리 채택된 2D 및 3D 그래픽스 API로서, 다양한 컴퓨터 플랫폼에서 수많은 응용이 이용하고 있다. 윈도우 시스템이나 운영체계 그리고 네트워크에 독립적인 표준으로서 OpenGL은 개발자들이 PC, 워크스테이션 슈퍼컴퓨터에 이르는 다양한 환경에서 고성능, 높은 품질의 시각 효과를 갖는 그래픽스 응용 소프트웨어 개발을 가능하게 해 준다. 산업계에서 사용되는 CAD, 컨텐츠 저작, 에너지, 연예, 게임 개발, 생산, 의료, 가장 현실과 같은 다양한 분야에서 활용된다. OpenGL은 최신 그래픽스 하드웨어의 기능을 포괄적으로 제공하고 있다.

크로노스 그룹 소개

크로노스 그룹은 다양한 플랫폼과 장치에서 사용되는 병렬컴퓨팅, 그래픽스, 비전 및 신경망 분야의 저작 및 가속하는데 이용되는 개방형 표준을 제정하는 산업 컨소시엄입니다. 크로노스의 표준에는 Vulkan™, OpenGL®, OpenGL® ES, OpenGL® SC, WebGL™, SPIR-V™, OpenCL™, SYCL™, OpenVX™, NNEF™, COLLADA™, OpenXR™ 및 glTF™가 있습니다. 크로노스 그룹의 회원사가 되면 표준제정에 참여하고 기여할 수 있으며, 표준이 공개되기 전 여러 단계에서의 결정에 투표권을 행사할 수 있습니다. 표준이 공개되기 전에 표준안과 개발 중인 인증테스트 접근할 수 있기 때문에 경쟁자 보다 앞서 관련 가속 플랫폼 혹은 응용 제품들을 먼저 개발하고 시장에 출시할 수 있습니다. 

###

Vulkan은 크로노스 그룹의 등록 상표입니다. Khronos, OpenXR, DevU, SPIR, SPIR-V, SYCL, WebGL, WebCL, COLLADA, OpenKODE, OpenVG, OpenVX, EGL, glTF, OpenKCAM, StreamInput, OpenWF, OpenSL ES, NNEF 및 OpenMAX 는 Khronos Group Inc.의 상표입니다. OpenCL 은 Apple Inc.의 등록 상표입니다. OpenGL은 Silicon Graphics International의 등록 상표이며 크로노스 그룹에 사용이 허여 되었습니다. 기타 상품명, 등록상표와 회사명은 각각 소유권을 갖고 있는 기관이 관련 지재권을 소유하고 있습니다.