간단한 작곡가를 쓰려고합니다. Vulkan에서 다른 인스턴스의 데이터 객체 (프레임 버퍼, 이미지 또는 버퍼)에 액세스 할 수 있습니까? (즉, 핸들을 다른 프로세스로 전달). 우분투를 사용하고 있으며 X, wayland 등을 사용하지 않고이 작업을 수행하려고합니다. 감사합니다.Vulkan에서 인스턴스간에 프레임 버퍼 개체를 공유 할 수 있습니까?
0
A
답변
3
Vulkan 개체는 엄격한 계층 구조로 그룹화됩니다. 객체를 만드는 데 사용 된 객체는 객체를 소유하고 일반적으로 객체를 생성하는 데 사용 된 객체를 삭제하면 더 이상 객체를 사용할 수 없습니다.
예 : vkAllocateMemory
은 VkDevice
입니다. 해당 메모리 개체는 해당 논리 장치에서 할당되고 바인딩됩니다. 해당 장치가 파괴되면 더 이상 사용할 수 없습니다. 그리고 해당 장치가 응용 프로그램에 속하지 않으면 사용할 수 없습니다.
이제 확장자 (및 변형 집합)를 사용하면 Vulkan에서 장치간에 메모리에 액세스 할 수 있습니다. 이는 여러 프로세스에서도 작동합니다. VkPhysicalDeviceIDPropertiesKHR::deviceUUID
과 동일한 물리적 장치를 사용하는 로컬 논리 장치를 만드는 두 개의 프로세스를 가질 수 있습니다. 이러한 논리적 장치는 서로 메모리를 공유 할 수 있지만 특수 구조체를 사용하여 공유하도록 지정해야합니다.
이 공유는 동일한 실제 장치를 나타내는 논리 장치가 deviceUUID
인 경우에만 작동합니다.
명확한 답변을 보내 주셔서 감사합니다. – phil