vkd3d는 Wine의 Direct3D 12에서 Vulkan으로의 변환 레이어입니다.
프로젝트 와인 공개 며칠 전 새로운 버전의 vkd3d 1.7 패키지 Vulkan 그래픽 API에 대한 호출 변환을 통해 작동하는 Direct3D 12 구현으로.
엘 파 케테 libvkd3d 라이브러리 포함 Direct3D 12 구현, 셰이더 모델 변환 3 및 4가 포함된 libvkd5d-shader, Direct3D 3 애플리케이션의 마이그레이션을 단순화하는 기능이 포함된 libvkd12d-utils 및 Direct3D 12로의 glxgears 포트를 포함한 일련의 데모가 있습니다.
libvkd3d 라이브러리 대부분의 Direct3D 12 기능을 지원하며, 그래픽 및 계산, 명령 목록 및 대기열, 설명자 및 힙 설명자, 루트 서명, 순서 없는 액세스, 샘플, 명령 서명, 루트 상수, 간접 표현, Clear*() 및 Copy*() 메서드를 포함합니다.
게다가 libvkd3d-shader는 바이트코드 4 및 5의 변환을 구현합니다. SPIR-V의 중간 표현에서 음영 모델의. 버텍스, 픽셀, 테셀레이션, 계산 및 간단한 기하 도형 셰이더, 루트 서명 직렬화 및 역직렬화를 지원합니다.
산술, 원자 및 비트 연산, 비교 및 데이터 흐름 제어 연산자, 샘플, 수집 및 로드 명령어, 비순차 액세스 연산(UAV, out-of-order access view)은 섀도잉 명령어에서 구현됩니다.
vkd3d 1.7의 주요 새 기능
vkd3d 1.7이 제공되는 이 새 버전에서 눈에 띕니다.l HLSL 셰이더 컴파일러를 개선하기 위한 지속적인 작업 (High-Level Shader Language), 사용자 정의 함수 호출 기능 추가 배열을 사용자 정의 함수의 매개변수로 사용합니다.
새 버전에서 눈에 띄는 또 다른 변경 사항은 프로필에 대한 지원이 크게 향상되었습니다. 셰이더 모델 다이렉트3D 1/2/3, 또한 min16float와 같은 저정밀도 부동 소수점 유형에 대한 초기 지원이 추가되었습니다.
라는 점도 강조된다. SV_DispatchThreadID, SV_GroupID 및 SV_GroupThreadID 매개변수에 대한 지원 추가 DXBC 바이너리 데이터를 구문 분석(vkd3d_shader_parse_dxbc) 및 직렬화(vkd3d_shader_serialize_dxbc)하기 위해 공용 API가 추가되었습니다.
의 눈에 띄는 다른 변화 새 버전 :
- Load() 텍스처 객체의 선택적 "offset" 매개변수 지원
방법. - 내장 함수 all() 지원.
- distance() 내장 함수 지원.
- 내장 함수 exp() 및 exp2() 지원.
- frac() 내장 함수 지원.
- lit() 내장 함수를 지원합니다.
- reflect() 내장 함수를 지원합니다.
- 내장 함수 sin() 및 cos() 지원.
- smoothstep() 내장 함수를 지원합니다.
- 내장 sqrt() 및 rsqrt() 함수 지원.
- step() 내장 함수를 지원합니다.
- 내장 함수 transpose() 지원.
- 대소문자를 구분하지 않는 float 및 dword 데이터 변형 지원
tipos - "min16float"와 같은 최소 정밀도 데이터 유형을 부분적으로 지원합니다. 이들은 현재 정규 대응물로 해석됩니다.
특히 swizzle을 통한 지속적인 전파에 대한 지속적인 전파 지원이 개선되었습니다. - VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE 컴파일 옵션을 사용하여 Vulkan 환경을 대상으로 하는 SPIR-V 셰이더가 지오메트리 및 테셀레이션 셰이더에 대한 포인트 크기를 작성해야 하는지 여부를 지정할 수 있습니다. 지정되지 않은 경우 포인트 크기가 작성됩니다.
마지막으로, 그것에 대해 더 알고 싶은 사람들을 위해, 그들은 프로젝트 코드가 LGPLv2.1에 따라 라이센스가 부여되고 이 새 릴리스의 세부 사항을 참조할 수 있음을 알아야 합니다. 다음 링크에서.
vkd3d 1.7을 설치하는 방법?
에 vkd3d를 설치할 수 있는지에 관심이 있습니다. 그들은 소스 코드를 컴파일해야 한다는 것을 알아야 하므로 먼저 소스 코드를 얻어야 합니다. Vkd3d가 SPIRV-Headers 및 Vulkan-Headers(>= 1.2.139)에 의존한다는 점을 언급하는 것이 중요합니다.
컴파일을 수행하려면 터미널을 열어야 하며 터미널에 다음 명령을 입력합니다.
git clone https://gitlab.winehq.org/wine/vkd3d.git
이 작업이 완료되면 다음을 사용하여 최근에 다운로드한 디렉토리로 이동합니다.
cd vkd3d
그리고 다음 명령을 실행하여 컴파일을 진행합니다.
./configure make make install
Si 당신은 컴파일에 대해 더 알고 싶어 vkd3d의 세부 정보를 확인할 수 있습니다. 이 링크.
코멘트를 첫번째로 올려