2017-12-04 7 views
1

안녕하세요, 나는 vulkan API로 시작합니다. 유효성 검사 레이어를 표시하려고합니다. 는하지만 문제는 하나의 장치 만 검증 층에 액세스 할 수 있습니다 : "VK_LAYER_NV_optimus"튜토리얼에서기기 유효성 검사 레이어 vulkan

{//Enumerating Device Verification Layers 
    uint32_t layer_count = 0; 
    vkEnumerateDeviceLayerProperties(_gpu, &layer_count, nullptr); 
    std::vector<VkLayerProperties> layer_property_list(layer_count); 
    vkEnumerateDeviceLayerProperties(_gpu, &layer_count, layer_property_list.data()); 
    std::cout << "Device Layers : \n"; 
    for (auto &i : layer_property_list) { 
     std::cout << " " << i.layerName << "\t\t | " << i.description << std::endl; 
    } 
    std::cout << std::endl; 
} 

난 사람은 누구 "VK_LAYER_LUNARG_standard_validation"그가 사용하는 방법 층 이상이 다음과 같은거야.

here 당신은 그 남자가 무엇을 가지고 있는지 볼 수 있습니다.

자습서가 최신 상태는 아니지만이 주제와 관련된 내용을 찾을 수 없습니다.

+0

환경 변수를 통해 레이어를 활성화 해보십시오. 이렇게하면 특정 레이어를 사용하거나 사용하지 않도록 코드를 다시 컴파일 할 필요가 없습니다. 하지만 그 점을 제외하고 - 최근에 Vulkan SDK의 최신 버전을 설치했으며 (Windows에서) 레이어가 작동하지 않았습니다. 누락 된 항목을 레지스트리에 추가해야했습니다. – Ekzuzy

답변

4

:)을 돕는

덕분에 vkEnumerateInstanceLayerProperties을 사용하는 것이 좋습니다.

기기 레이어는 이전에 Vulkan에서 사용되지 않으므로 본질적으로 모든 레이어 인스턴스 레이어를 만들었습니다. 이 경우 Optimus 계층은 인스턴스와 장치 계층으로 등록되어있을 수 있습니다.이 계층은 허용되므로 장치 계층을 나열 할 때 표시됩니다.

그래도 도움이되지 않는 경우 레이어가 표시되지 않는 설치 문제가있을 수 있습니다. 문제를 해결하는 데 도움이되도록 vulkaninfo 또는 via을 실행 해보십시오.

마지막으로 모든 레이어가 유효성 검사 레이어는 아닙니다. 레이어를 열거하면 제공된 스크린 샷과 같이 다른 기능을 수행하는 레이어가 있습니다.

+0

업데이트 된 드라이버에서 'vkEnumerateDeviceLayerProperties'는'vkCreateInstance'에서 활성화 된 것과 동일한 레이어 목록을 반환한다는 점에 유의할 가치가 있습니다. Optimus는 암시 적 레이어이므로 활성화되고'vkEnumerateDeviceLayerProperties'에 표시됩니다. – krOoze

+0

'vkEnumerateInstanceLayerProperties'를 사용했는데 몇 가지 결과가 있었고 VK_LAYER_LUNARG_standard_validation이 있습니다. 감사합니다. 자습서가 최신이 아닙니다 – Kasmir

+0

자습서에 따르면 장치 레이어가 더 이상 사용되지 않는다고합니다. – Kasmir