Microsoft는 Direct3D 9에서 Direct12D 3로 명령을 변환하는 데 사용되는 D9D3On12 계층의 소스 코드를 발표했습니다.

Microsoft에서 좋은 소식이 발표되었습니다. 그리고 그것은 최근에 그것을 알렸다 블로그 게시물을 통해 D3D9On12 레이어의 소스 코드 열기 Direct3D 9(D3D9) 명령을 Direct3D 12(D3D12) 명령으로 변환하는 DDI(장치 드라이버 인터페이스) 장치의 구현과 함께.

Microsoft의 이러한 움직임은 이제 개발자가 게임을 위해 DirectX11에서 DirectX12로 전환하는 것을 그 어느 때보다 쉽게 ​​만들 것입니다. DX12 번역 레이어는 기본적으로 DX11 스타일 도메인에서 DX12 스타일 도메인으로 그래픽 개념과 명령을 번역하기 위한 도우미 라이브러리입니다.

D3D9On12 매핑 레이어를 마지막으로 언급한 지 오래되었습니다. 빠른 업데이트로 D3D9 명령을 D3D12 DDI(장치 드라이버 인터페이스)로 작동하는 D3D9에 매핑합니다. 이 매핑 계층을 사용하면 D3D9 드라이버가 없을 수도 있는 최신 시스템에서 이전 D3D9 응용 프로그램을 실행할 수 있습니다. 마지막 블로그 게시물 이후로 Alpha to Coverage 확장에 대한 지원을 추가하고 일부 버그를 수정했으며 오픈 소스용 코드 기반을 정리했습니다..

이것은 의심할 여지 없이 좋은 소식이며 레이어와 함께 작동하는 다양한 프로젝트가 이제 이점을 얻을 수 있습니다., 레거시 응용 프로그램이 D3D12만 지원하는 환경에서 작동할 수 있기 때문에 이것은 프로젝트를 기반으로 D3D9를 구현하는 데 유용할 수 있습니다. vkd3d 및 VKD3D-양성자D3D12 호출을 Vulkan 그래픽 API로 변환하여 작동하는 Linux용 Direct3D 12 구현을 제공하기 때문입니다.

D3D9On12는 D3D9에서 D3D12로 그래픽 명령을 매핑하는 레이어입니다. D3D9On12는 D3D9 API의 구현이 아니라 D3D9 DDI(장치 드라이버 인터페이스) 사용자 모드의 구현입니다. 즉, d3d9.dll이라는 바이너리가 아니라 d3d9on12.dll이라고 합니다.

응용 프로그램이 D3D9 장치를 만들 때 기본 D3D9 장치가 아닌 D12D3On9 장치로 선택할 수 있습니다. 이 경우 d3d9on12.dll이 D3D9 런타임에 의해 로드되고 초기화됩니다. 응용 프로그램이 렌더링 명령을 호출하면 D3D9는 해당 명령의 유효성을 검사한 다음 해당 명령을 DDI D3D9로 변환하고 D3D9 드라이버와 마찬가지로 D12D3On9로 보냅니다.

D3D9On12는 이러한 명령을 사용하여 D3D12 API 호출로 변환합니다. 이 호출은 D3D12 런타임에 의해 추가로 검증되며 선택적으로 D3D12 디버그 계층을 포함합니다. 그런 다음 DDI D3D12로 변환되어 D3D12 드라이버로 전송됩니다.

또한 언급됩니다 이 프로젝트는 Windows 10에 포함된 유사한 하위 시스템의 코드를 기반으로 합니다. D3D9On12 코드의 게시는 기회를 제공할 것입니다 지역사회 대표들이 버그 수정 및 최적화 추가에 참여, 또한 D3D9 DDI 드라이버의 구현과 D3D12에서 다양한 그래픽 API의 번역을 위한 이러한 계층을 생성하기 위한 프레임워크를 연구하는 예가 될 수 있습니다.

왜 오픈 소스인가?
D3D9On12는 몇 년 동안 Windows 10의 일부였으며 그 동안 안정성과 사용성이 향상되었습니다. 오픈 소스로 만드세요:

커뮤니티가 추가 버그 수정 또는 성능 개선에 기여할 수 있도록 허용합니다.
D3D12TranslationLayer를 사용하는 방법의 또 다른 예입니다.
관심 있는 사람들에게 D3D9 DDI 구현이 어떻게 생겼는지 살펴보십시오.

동시에 DXBC 파일에 서명할 수 있는 DXBC 서명자 패키지가 출시되었습니다. 타사 툴킷에서 임의 생성. D3D9On12는 이 패키지를 사용하여 셰이더를 새 모델로 변환하여 생성된 DXBC에 서명합니다.

최종적으로 그것에 대해 더 많이 알고 싶다면, Microsoft가 블로그에서 발행한 발행물의 세부 정보를 확인할 수 있습니다. 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.