2022. 9. 18. 18:10ㆍVulkan/특별편
개요
Vulkan API를 이용할 때는 인스턴스를 가장 먼저 생성해야 하며, 여기서는 기본 기능 외에 사용할 필요가 있는 확장 기능을 명시해야 합니다. 저수준 인터페이스까지 제공하길 원한다면, 그 중 사용할 만한 것을 선택지로 주는 것이 바람직하겠죠. 그러니 한번 알아 봅시다. 가장 좋은 것은 공식 문서를 보는 것이지만 한 군데 모아 둔 것이 없어 꽤 보기 힘들었기 때문에 작성하는 것이에요. 물론 이 중에 제 수준에 실제로 몇 개나 사용하겠냐마는.. Vulkan의 이점을 최대한 활용하려면 이걸 알아서 런타임에 가능한 확장을 얻어내어 필요한 방식을 선택하는 게 이론상 좋겠죠? 또한 모르는 영역은 언제나 무섭기 때문에 최소한 '몰라도 된다'를 알기 위한 것도 도감 만들기의 목적 중 하나입니다.
* https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/ 여기에서 찾을 수 있는 내용이오니 더 신뢰도 높은 원문이 필요하면 직접 들어가서 보시면 됩니다. 해당 문서와 내용들은 CC-BY 4.0 하에 게시되어, 출처 명시 및 추가 제한을 걸지 않는 조건 하에 자유롭게 공유/수정 및 사용 가능하다고 하네요(내용 그대로를 사용하는 경우 영리적 사용은 불가능).
Index of /vulkan/specs/1.3-extensions/man/html
registry.khronos.org
주의)
- 인스턴스 내, 가상(logical) 장치 내 계층(layer)에 대한 내용은 없습니다.
- 확장 이름은 사전순으로 정렬되어 있습니다.
- 물리 장치의 기능(properties)과 역량(capabilities)에 대해 찾아야 할 항목은 다음 글에서 다룹니다.
목차
1. 인스턴스 확장 목록
2. 장치 확장 목록
본문
1. 인스턴스 확장 목록
확장의 수는 당연히 아주 많습니다. 이는 Vulkan 1.0만 사용한대도 마찬가지겠죠.
확장을 사용하도록 명시하고 객체를 생성하면 함수 포인터를 불러올 수 있게 되거나 구조체의 pNext 확장으로 이것저것 붙일 수 있게 됩니다. 각 확장 이름으로 표시된 항목은 그 자체를 문자열로 사용하면 되며, 모두 대문자로 바꾼 후 _EXTENSION_NAME을 붙이면 런타임 오류를 예방할 수 있는 매크로 상수를 사용할 수 있습니다. (예: #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"가 헤더에 미리 정의되어 있음)
인스턴스(VkInstance) 확장 목록
확장 이름 |
설명
|
요구 사항
|
비고
|
VK_EXT_acquire_drm_display | 응용에서 '직접 렌더링 매니저'(DRM)로 디스플레이에 대한 독점적 제어가 가능합니다. | VK_EXT_direct_mode_display | |
VK_EXT_acquire_xlib_display | X11 화면에 연관되어 있는 장체에 대한 독점적 제어가 가능해집니다. | VK_EXT_direct_mode_display | |
VK_EXT_debug_report | 확인 계층과 이 확장을 사용하여 객체 사용에 있어 더 자세한 피드백을 얻을 수 있습니다. |
VK_EXT_debug_utils에 편입 | |
VK_EXT_debug_utils | 확인 계층과 이 확장으로 객체 사용에 있어 더 자세한 피드백을 얻을 수 있습니다. 응용 단에서 제공한 콜백으로 디버그 메시지 출력, 객체에 이름/태그를 붙여 디버그 식별 등.. |
||
VK_EXT_directfb_surface | DirectFB API의 IDirectFBSurface로부터 창 표면을 생성할 수 있습니다. DirectFB로 렌더링할 수 있는지 질의할 수 있습니다. |
VK_KHR_surface | |
VK_EXT_direct_mode_display | 관련 플랫폼 확장과 함께 네이티브 창 시스템과 관련된 디스플레이를 독점적으로 제어할 수 있습니다. |
VK_KHR_display | |
VK_EXT_display_surface_counter | 디스플레이 표면에 대하여 수직 공백(vertical blank) 주기 카운터를 정의하며 그것을 질의할 수 있습니다. |
VK_KHR_display | |
VK_EXT_headless_surface | 창 시스템과 무관한 VKSurfaceKHR 객체를 생성합니다. 용도는 문서를 참고하세요. |
VK_KHR_surface | |
VK_EXT_metal_surface | Metal(Objective-C)의 CAMetalLayer로부터 창 표면을 생성할 수 있습니다. |
VK_KHR_surface | |
VK_EXT_validation_features | 인스턴스 생성 시 pNext로 확장하여 유효성 검사 기능을 확장할 수 있습니다. | ||
VK_EXT_validation_flags | 인스턴스 생성 시 확인 계층에서 사용하지 않는 기능을 설정할 수 있습니다. | VK_EXT_validation_features에 의해 사용하지 않음 | |
VK_FUCHSIA_imagepipe_surface | 퓨시아 API의 imagePipeHandle로부터 창 표면을 생성할 수 있습니다. | VK_KHR_surface | |
VK_GGP_stream_descriptor_surface | 구글 게임 플랫폼(GGP) API GgpStreamDescriptor로부터 창 표면을 생성할 수 있습니다. | VK_KHR_surface | |
VK_GOOGLE_surfaceless_query | 창 표면을 주지 않고(nullptr) 물리 장치의 가능 표면 형식, 색 공간, 표시 모드 등을 질의할 수 있습니다. | VK_KHR_surface | |
VK_KHR_android_surface | 안드로이드 API의 ANativeWindow로부터 창 표면을 생성할 수 있습니다. | VK_KHR_surface | |
VK_KHR_device_group_creation | 물리 장치 집단을 열거하고 그 중 하나의 부분집합에서 가상(logical) 장치를 생성할 수 있습니다. 이후 VK_KHR_device_group확장의 기능으로 여기서 나온 가상 장치를 사용할 수 있습니다. | 1.1에서 기본 포함 | |
VK_KHR_display | 주어진 장치에 대한 디스플레이와 가능한 모드를 알아낼 수 있습니다. | VK_KHR_surface | |
VK_KHR_external_fence_capabilities | 가상 장치 혹은 인스턴스 여러 개에서 장치 펜스를 사용하려 할 수 있는데, 응용에서 주어진 용례에 대한 구현 지원이 어떤 형식의 외부 펜스 핸들에서 되는지 질의할 수 있습니다. | VK_KHR_get_physical_device_properties2 | 1.1에서 기본 포함 |
VK_KHR_external_memory_capabilities | 바로 위 확장에서 펜스를 '메모리'로 바꾼 버전입니다. | VK_KHR_get_physical_device_properties2 | 1.1에서 기본 포함 |
VK_KHR_external_semaphore_capabilities | 바로 위 확장에서 메모리를 '세마포어'로 바꾼 버전입니다. | VK_KHR_get_physical_device_properties2 | 1.1에서 기본 포함 |
VK_KHR_get_display_properties2 | 장치 디스플레이 속성과 역량을 질의할 수 있습니다. display에 대하여 VK_KHR_get_physical_device_properties2와 비슷한 확장입니다. | VK_KHR_display | |
VK_KHR_get_physical_device_properties2 | 물리 장치에 대한 질의에서 몇 가지를 더 알아낼 수 있으며 pNext 체인 확장으로 추가 기능을 사용할 수 있습니다. | 1.1에서 기본 포함 | |
VK_KHR_get_surface_capabilities2 | surface에 대하여 VK_KHR_get_physical_device_properties2와 비슷한 확장입니다. | VK_KHR_surface | |
VK_KHR_portability_enumeration |
VK_KHR_portability_subset 확장을 노출하는 장치가 물리적 장치 열거 결과에 포함되는지 여부를 제어할 수 있습니다. 이 확장은 로더에 구현되 있습니다.
|
||
VK_KHR_surface | WSI를 위한 VkSurfaceKHR를 사용할 수 있습니다. | ||
VK_KHR_surface_protected_capabilities | VkSurfaceCapabilities2KHR를 확장하여 스왑체인이 PROTECTED로 생성될 수 있는지 확인할 수 있습니다. | 1.1, VK_KHR_get_surface_capabilities2 | |
VK_KHR_wayland_surface | Wayland API의 wl_surface로부터 창 표면을 얻을 수 있습니다. | VK_KHR_surface | |
VK_KHR_win32_surface | Win32 API의 HWND로부터 창 표면을 얻을 수 있습니다. | ||
VK_KHR_xcb_surface | X11 API의 Window로부터 창 표면을 얻을 수 있고 XCB로 그릴 수 있는지 질의할 수 있습니다. | ||
VK_KHR_xlib_surface | X11 API의 Window로부터 창 표면을 얻을 수 있고 Xlib으로 그릴 수 있는지 질의할 수 있습니다. | ||
VK_MVK_ios_surface | CAMetalLayer로부터 지원되는 iOS API의 UIView로부터 창 표면을 얻을 수 있습니다. | VK_EXT_metal_surface로 대체 | |
VK_MVK_macos_surface | CAMetalLayer로부터 지원되는 macOS API의 NSView로부터 창 표면을 얻을 수 있습니다. | ||
VK_NN_vi_surface | nn::vi::Layer로부터 창 표면을 얻을 수 있습니다. 이 핸들은 C에서 사용하려면 void*로 들어가야 합니다. | ||
VK_NV_external_memory_capabilities | Direct3D나 다른 Vulkan 인스턴스로부터 메모리를 불러오고자 할 때 가능한 win32 메모리 유형을 질의할 수 있습니다. | 1.1에서 기본 포함 | |
VK_QNX_screen_surface | QNX 스크린 API의 window로부터 창 표면을 얻을 수 있습니다. | VK_KHR_surface |
제가 지금 만들고자 하는 엔진에서는 인스턴스 확장 중 넣어서 특별히 좋다고 말할 만한 것이 없네요. surface의 경우 개발자 선택지로 줄 게 아니고 빌드 플랫폼에 따라 자동으로 나와야 할 거기도 하고요.
조금은 더 전문적인 최적화 등으로 나아가고자 한다면, VK_KHR_get_physical_device_properties2 확장을 넣고 다음 함수에서 얻을 수 있는 것을 확인해 보세요. (다음 글에서 물리 장치의 기능과 역량 중 선택지로 제공할 만한 것을 살펴보겠지만 이 2가 붙은 건 예외입니다.)
2. 장치 확장 목록
가상 카드(VkDevice) 확장 목록
확장 | 설명 | 요구 사항 | 비고 |
VK_AMD_buffer_marker | 파이프라인 명령에서 VkBuffer 객체에 마커 값을 쓸 수 있습니다. 파이프라인 명령 중 장치 손실에 대한 원인을 찾는 디버깅 목적입니다. | ||
VK_AMD_device_coherent_memory |
장치 일관(coherent) 메모리 및 캐시 없음 메모리를 사용할 수 있습니다.
|
||
VK_AMD_display_native_hdr |
아래 네이티브 HDR 기능을 사용할 수 있습니다.
VkColorSpaceKHR 기본 디스플레이 색 공간을 추가합니다. Local dimming control
|
VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 VK_KHR_swapchain |
|
VK_AMD_draw_indirect_count | 응용에서 버퍼의 간접 그리기 명령에 대한 그리기 수를 얻을 수 있습니다. 호스트 개입 없이 임의의 수의 그리기 명령이 가능해집니다. |
VK_KHR_draw_indirect_count 로 편입, 1.2부터 기본 포함 | |
VK_AMD_gcn_shader |
SPV_AMD_gcn_shader SPIR-V 확장을 지원합니다.
|
||
VK_AMD_gpu_shader_half_float | 셰이더에서 반 정밀도 부동소수점을 사용할 수 있습니다. | VK_KHR_shader_float16_int8로 대체, 1.2부터 기본 포함 | |
VK_AMD_gpu_shader_int16 | 셰이더에서 16비트 정수를 사용할 수 있습니다. | VK_KHR_shader_float16_int8로 대체, 1.2부터 기본 포함 | |
VK_AMD_memory_overallocation_behavior | 명시적 초과 할당 허용 여부를 정할 수 있습니다. | ||
VK_AMD_mixed_attachment_samples | 색 샘플보다 많은 수의 깊이/스텐실 샘플로 그릴 수 있습니다. |
||
VK_AMD_negative_viewport_height |
VkViewport::height에 음의 값을 지정할 수 있습니다. 즉 y축이 뒤집힌 결과와 같습니다. 이를 통해 다른 API에서도 사용하고 있는 셰이더 코드에서 y축을 뒤집는 조치를 추가로 할 필요가 없어집니다.
|
VK_KHR_maintenance1로 대체 1.1 버전부터 기본 포함 |
|
VK_AMD_pipeline_compiler_control | 파이프라인 생성 정보 구조체를 확장하는 VkPipelineCompilerControlCreateInfoAMD 를 사용할 수 있습니다. | ||
VK_AMD_rasterization_order |
기초 도형 래스터화의 순서를 정할 수 있습니다. 기본적으로는 [깊이 경계 테스트 - 스텐실 테스트 - 스텐실 연산 - 스텐실 쓰기 - 깊이 테스트 - 깊이 쓰기 - 가림 질의 - 블렌딩, 논리 연산, 색 쓰기]의 순서로 고정되는데 이 확장으로 순서 제한을 풀어 병렬화에 더 나은 성능으로 이어질 수 있게 됩니다.
|
왼쪽 절차의 순서가 바뀌어도 괜찮을 경우에 사용하면 되는데, 해당 경우는 문서를 참고하세요. | |
VK_AMD_shader_ballot |
SPV_AMD_shader_ballot SPIR-V 확장을 지원합니다.
|
||
VK_AMD_shader_core_properties |
물리 장치에서 셰이더 코어 속성을 VK_KHR_get_physical_device_properties2 확장의 함수로 얻을 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 문서에 예시 있음 |
VK_AMD_shader_core_properties2 |
물리 장치에서 셰이더 코어 속성을 VK_KHR_get_physical_device_properties2 확장의 함수로 얻을 수 있습니다.
|
VK_AMD_shader_core_properties | |
VK_AMD_shader_early_and_late_fragment_tests |
셰이더에서 조각 테스트를 사전에 하고 사후에도 하는 기능을 모두 하도록 하는 SPV_AMD_shader_early_and_late_fragment_tests 확장을 지원합니다.
VK_EXT_shader_stencil_export 도 된다면 DepthUnchanged, DepthLess, DepthGreater와 같은 사전 깊이 테스트도 가능해집니다.
|
||
VK_AMD_shader_explicit_vertex_parameter |
SPV_AMD_shader_explicit_vertex_parameter SPIR-V 확장을 사용할 수 있습니다.
|
||
VK_AMD_shader_fragment_mask |
압축 멀티샘플 색 표면의 조각 마스크에 대한 효율적 읽기가 지원됩니다. 조각 마스크는 색 샘플과 색 조각 값을 연결하는 룩업 테이블입니다.
셰이더에서 조각 마스크는 fragmentMaskFetchAMD를 호출하여 연속된 4개 비트가 색 샘플의 인덱스를 뜻합니다. 예를 들어 샘플 8개가 사용된다면 리턴값에서 0번 샘플의 인덱스는 0~3번째 비트를 보고 알 수 있고 7번 샘플의 인덱스는 28~31번째 비트를 보고 알 수 있습니다. 거기서 셰이더의 fragmentFetchAMD 함수로 샘플 자체에 접근할 수 있습니다. |
||
VK_AMD_shader_image_load_store_lod |
SPV_AMD_shader_image_load_store_lod SPIR-V 확장이 지원됩니다.
|
||
VK_AMD_shader_info |
파이프라인에 들어간 컴파일된 셰이더에 대한 정보(셰이더 디스어셈블리, 바이너리, 자원 사용량 통계 등)를 질의할 수 있게 됩니다.
그로부터 얻은 값을 해석하는 것은 벤더마다 다를 수 있습니다. 얻을 수 있는 값의 종류 역시 벤더마다 다를 수 있습니다. |
||
VK_AMD_shader_trinary_minmax |
SPV_AMD_shader_trinary_minmax SPIR-V 확장이 지원됩니다.
|
||
VK_AMD_texture_gather_bias_lod |
SPV_AMD_texture_gather_bias_lod SPIR-V 확장이 지원됩니다.
그 확장에서 도입된 새 함수 원형을 사용할 수 있는 포맷을 질의할 수 있습니다. |
VK_KHR_get_physical_device_properties2 | |
VK_ANDROID_external_memory_android_hardware_buffer |
안드로이드의 AHardwareBuffer 객체를 Vulkan 메모리 객체(이미지/버퍼에 바인드할 수 있음)로 들여올 수 있는 기능을 제공합니다.
다른 OS와 마찬가지로 반대 방향도 가능합니다. 외부 형식 중 Vulkan 형식에 없는 것도 있으므로 샘플러 단의 Y′CBCR 변환을 적용할 수도 있습니다. |
VK_KHR_sampler_ycbcr_conversion, VK_KHR_external_memory , VK_EXT_queue_family_foreign , VK_KHR_dedicated_allocation | |
VK_ARM_rasterization_order_attachment_access |
렌더패스, 그리고 서브패스 내 의존성 은 OpenGL ES에서 프레임버퍼 접근과 픽셀 지역 저장소 확장에서와 비슷한 일을 해 줍니다. 다만 그것만으로는 구현이 까다로울 수 있어 입력 첨부물 매커니즘을 확장하여 프레임버퍼 첨부물(입력/색/깊이/스텐실)에 대하여 명시적 동기화 없이 래스터화 순서로 접근할 수 있습니다.
렌더패스 피드백 루프 참고
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_4444_formats |
다른 그래픽스 API에는 있는 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT, VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT 형식을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함(자세한 내용은 문서 참조) |
VK_EXT_astc_decode_mode |
현재 사양에서는 low dynamic range (LDR) ASTC 텍스처가 FP16 값으로 압축해제됩니다. 많은 경우에 LDR 텍스처를 저정밀도로 압축해제하는 것은 그럴듯한 퀄리티가 나옵니다. LDR 텍스처는 보통 8비트 UNORM 값으로 작성되므로 FP16으로 복호화하는 것은 거의 부가되는 가치가 없습니다. 반면 해석한 결과 정밀도를 내리면 복호화한 데이터의 크기가 줄고 텍스처 캐시 효율이 올라가며 전력 절약이 될 수 있습니다.
그래서 기존의 ASTC 텍스처 데이터를 쓸 때 이 확장으로 중간 복호화 정밀도를 선택하여 효율을 올릴 수 있습니다. |
VK_KHR_get_physical_device_properties2 | |
VK_EXT_attachment_feedback_loop_layout |
이미지 형식 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT를 사용할 수 있습니다. 렌더패스에서 그리기와 샘플링 모두 가능합니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_blend_operation_advanced |
고급 블렌딩 동작을 다수 추가합니다.
자세한 내용은 너무 길어서 문서를 참고하세요. |
VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2 | |
VK_EXT_border_color_swizzle |
VK_EXT_custom_border_color가 나온 이후 어떤 구현은 커스텀 테두리 색상을 주는 샘플러가 동등 매핑이 아닌 이미지 뷰와 결합할 때 정의되지 않은 행동으로 이어지는 것이 파악되었습니다.
swizzle이 있는 경우를 위한 확장이 이것입니다. 검정 테두리가 적용되는 샘플러와 swizzle 이미지 뷰에 대한 것도 정의됩니다. |
VK_EXT_custom_border_color | |
VK_EXT_buffer_device_address |
버퍼에서 64비트 버퍼 장치 주소를 질의할 수 있습니다. 그러면 GL_EXT_buffer_reference와 SPV_EXT_physical_storage_buffer를 통해 PhysicalStorageBufferEXT로 접근할 수 있습니다.
버퍼 장치 주소가 추적 리플레이 도구에 의해 제공될 수 있게 하여 캡처 당시의 주소와 일치합니다. |
VK_KHR_get_physical_device_properties2 | VK_KHR_buffer_device_address로 편입, 1.2버전부터 기본 포함 |
VK_EXT_calibrated_timestamps |
2개의 시간 도메인에서 거의 동시에 얻은 것을 조정한 타임스탬프를 질의할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_color_write_enable |
파이프라인 동적 상태로 색 쓰기 가능 여부를 조정할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 용도를 모르겠다면 문서를 참고하세요. |
VK_EXT_conditional_rendering |
버퍼 메모리의 값을 조건으로 하나 이상의 렌더링 명령을 실행할 수 있습니다. 즉 vkCmd... 관련 함수를 씁니다.
|
||
VK_EXT_conservative_rasterization |
보존적 래스터화 모드를 제공합니다. 과대 추정, 과소 추정이 있습니다.
과대 추정은 기초 도형이 픽셀의 일부라도 들어가면 픽셀 전체 색이 생깁니다. 과소 추정은 기초 도형이 픽셀을 완전히 덮어야 픽셀 색이 생성됩니다. |
VK_KHR_get_physical_device_properties2 | |
VK_EXT_custom_border_color |
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER 모드인 샘플러에 대하여 원하는 테두리 색상을 줄 수 있습니다.
|
||
VK_EXT_debug_marker |
Vulkan 객체에 대한 네이밍, 태깅 등 여러 디버그 도구를 추가합니다
|
VK_EXT_debug_report | VK_EXT_debug_utils에 편입 |
VK_EXT_depth_clamp_zero_one |
[0,1] 밖 범위의 조각 깊이에 정의된 동작을 제공합니다. 깊이 편향 등을 OpenGL과 일치하게 할 수 있습니다.
|
||
VK_EXT_depth_clip_control |
NDC에서 OpenGL 깊이 범위 [-1, 1]을 사용하게 합니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_depth_clip_enable |
VkPipelineRasterizationDepthClipStateCreateInfoEXT::depthClipEnable로 깊이 클리핑을 제어합니다. D3D와 같은 셰이더 호환을 위함.
|
||
VK_EXT_depth_range_unrestricted |
VkViewport에서는 깊이 제한이 0과 1 사이로 주어져야 하지만 이것을 해제합니다.
|
여기서 뷰포트 부분을 펼치면 해당 확장에 대한 간단한 설명이 나와 있습니다. | |
VK_EXT_descriptor_indexing |
응용에서 실질적으로 모든 리소스를 포함하는 큰 기술자 집합을 만들고 셰이더에 동적 인덱스가 있는 리소스 중 선택할 수 있는 몇 가지 기능이 제공됩니다. SPV_EXT_descriptor_indexing SPIR-V 확장이 필요하며 자세한 내용은 문서를 참고하세요.
|
VK_KHR_get_physical_device_properties2 VK_KHR_maintenance3 |
1.2버전부터 기본 포함 |
VK_EXT_device_memory_report | 장치 생성 후 장치 메모리 이벤트 콜백을 쓸 수 있습니다. 장치 메모리 사용에 대한 자세한 정보를 알 수 있습니다. | VK_KHR_get_physical_device_properties2 | |
VK_EXT_discard_rectangles |
기초 도형의 래스터화를 제한하는 용도의, 직교로 정렬된 거름 직사각형을 제공합니다. 0~maxDiscardRectangles개의 직사각형이 동시에 작동할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_display_control |
VK_KHR_display와 VK_KHR_display_swapchain에 대한 추가 기능을 몇 개 사용할 수 있습니다.
|
VK_EXT_display_surface_counter VK_KHR_swapchain |
|
VK_EXT_extended_dynamic_state |
파이프라인 동적 상태로 가능한 속성을 더 추가합니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_EXT_extended_dynamic_state2 |
파이프라인 동적 상태로 가능한 속성을 더 추가합니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_EXT_external_memory_dma_buf |
리눅스 커널에서 사용할 수 있는 dma_buf를 VkDeviceMemory와 오갈 수 있게 해 줍니다.
|
VK_KHR_external_memory_fd | |
VK_EXT_external_memory_host |
응용에서 호스트 할당과 호스트 매핑된 외부 장치 메모리를 Vulkan 메모리 객체로 가져올 수 있습니다.
|
VK_KHR_external_memory | |
VK_EXT_filter_cubic |
VK_IMG_fileter_cubic을 확장합니다. 다른 이미지 뷰 타입의 3차 필터링을 정의합니다.
|
||
VK_EXT_fragment_density_map |
조각 셰이더 실행이 더 적게 호출될 프레임버퍼 영역 힌트를 주어 같은 결과를 여러 픽셀에 적용할 수 있게 합니다. 일부 영역에 품질이 낮아도 될 경우 효과적입니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_fragment_density_map2 |
바로 위 항목을 확장하여 지연 시간을 줄이거나 추가 기능을 지원합니다.
|
VK_EXT_fragment_density_map | |
VK_EXT_fragment_shader_interlock |
SPV_EXT_fragment_shader_interlock으로 조각 셰이더 실행에서 임계 구역을 정의합니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_full_screen_exclusive |
스왑체인 생성 및 제출 매커니즘을 전체화면 접근과 관련하여 정책을 정할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 VK_KHR_surface VK_KHR_get_surface_capabilities2 VK_KHR_swapchain |
|
VK_EXT_global_priority |
장치 상 큐 우선순위를 정했던 것을 시스템 전체 범위로 확장할 수 있습니다.
|
VK_KHR_global_priority 확장으로 편입 | |
VK_EXT_global_priority_query |
위 확장에서 나온 전역 큐 우선도를 질의할 수 있습니다.
|
VK_EXT_global_priority VK_KHR_get_physical_device_properties2 |
VK_KHR_global_priority 확장으로 편입 |
VK_EXT_graphics_pipeline_library |
여러 파이프라인에서 동일한 셰이더 혹은 상태를 재사용하는 경우에 더 빠른 로드를 위해 4가지 부분을 따로 컴파일한 뒤에 링크하게 할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 VK_KHR_pipeline_library |
|
VK_EXT_hdr_metadata |
죄송합니다. 문서를 직접 확인해 주세요. 스왑체인에 SMPTE 2086과 CTA 861.3 메타데이터를 할당합니다.
|
VK_KHR_swapchain | |
VK_EXT_host_query_reset |
호스트의 질의를 리셋할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_EXT_image_2d_view_of_3d |
3D 이미지 중 한 층을 이미지 기술자에서 2D 뷰로 사용할 수 있으며 OpenGL의 glBindImageTexture에서 레이어 매개변수가 true로 주어진 것과 EGL_KHR_gl_texture_3D_image와 기능이 일치합니다. GL 에뮬레이션을 위한 것입니다.
|
VK_KHR_maintenance1 VK_KHR_get_physical_device_properties2 |
|
VK_EXT_image_compression_control |
고정 속도 이미지 압축을 사용할 수 있고 이러한 종류의 압축을 적용할 수 있는 시기를 제어할 수 있습니다.
|
||
VK_EXT_image_compression_control_swapchain |
위 확장의 압축이 스왑체인 이미지에 언제 적용될 수 있는지 정할 수 있습니다.
|
VK_EXT_image_compression_control | |
VK_EXT_image_drm_format_modifier |
DRM 형식 한정자의 이미지를 사용할 수 있습니다. Vulkan이 리눅스의 그래픽스, 비디오, 디스플레이 API 생태계와 통합되기 좋습니다.
|
VK_KHR_bind_memory2 VK_KHR_get_physical_device_properties2 VK_KHR_image_format_list VK_KHR_sampler_ycbcr_conversion |
|
VK_EXT_image_robustness |
이미지 범위를 벗어난 읽기를 처리하는 데 더 엄격한 요구사항을 추가하여 정의되지 않은 값이 아닌 투명 혹은 검정으로 정해집니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_EXT_image_view_min_lod | VkImageViewMinLodCreateInfoEXT::minLod에 이미지 뷰를 주어 최소 LOD 클램프를 할 수 있습니다. | VK_KHR_get_physical_device_properties2 | |
VK_EXT_index_type_uint8 |
8비트 비부호형 정수 인덱스 버퍼를 사용할 수 있습니다.
|
||
VK_EXT_inline_uniform_block |
인라인 유니폼 블록을 사용할 수 있습니다. 1.3 스펙을 참고하세요.
|
VK_KHR_get_physical_device_properties2 VK_KHR_maintenance1 |
1.3버전부터 기본 포함 |
VK_EXT_legacy_dithering |
OpenGL 디더링을 지원하기 위한 하드웨어 기능을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_line_rasterization |
선 래스터화 기능을 추가합니다. 자세한 건 문서를 참고하세요.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_load_store_op_none |
렌더패스에서 작성되지 않는 첨부물에 대한 동기화를 쓰지 않게 할 수 있습니다.
|
||
VK_EXT_memory_budget |
그래픽 메모리 예산과 사용량을 질의할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_memory_priority |
메모리 할당 시 우선도를 지정할 수 있습니다. 우선도가 낮은 할당이 힙 부족으로 막히면 더 먼저 다른 힙으로 넘어갑니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_mesh_shader |
고정 기능 어셈블러와 고정 기능 정점 접근에 의한 입력 기초도형 생성 대신 쓸 수 있을 메시 셰이딩으로 기초 도형을 생성하는 기능이 생깁니다.
SPV_EXT_mesh_shader SPIR-V 확장을 지원합니다. |
VK_KHR_get_physical_device_properties2 VK_KHR_spirv_1_4 |
|
VK_EXT_metal_objects |
애플의 Metal과의 인터페이스를 제공합니다.
|
||
VK_EXT_multisampled_render_to_single_sampled |
단일 샘플 첨부물에 다중 샘플 렌더링을 수행할 수 있습니다. 자세한 내용은 문서를 참고하세요.
|
VK_KHR_create_renderpass2 VK_KHR_depth_stencil_resolve |
|
VK_EXT_multi_draw |
상태 변경 없이 여러 draw명령을 사용할 때에 대한 효율적 명령을 사용할 수 있습니다.
|
||
VK_EXT_mutable_descriptor_type |
기술자 형을 가변으로 만들어 필요한 수를 줄여 메모리를 절약할 수 있는 기능을 추가합니다.
|
VK_KHR_maintenance3 | 용례는 문서를 참고하세요. |
VK_EXT_non_seamless_cube_map |
다른 그래픽 API 동작과 일치하는 샘플러 선에서 브맵 모서리 핸들링을 비활성화할 수 있습니다.
|
||
VK_EXT_pageable_device_local_memory |
상화되는 장치 메모리까지 Vulkan에 노출할 수 있게 합니다. 자세한 설명은 문서를 참고하세요.
|
VK_EXT_memory_priority | |
VK_EXT_pci_bus_info |
물리 장치를 연결한 PCI 버스에 대한 몇 가지 정보를 질의할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_physical_device_drm |
물리 장치의 DRM 속성을 질의할 수 있습니다. 리눅스의 DRM 노드와 물리 장치를 일치시킬 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_pipeline_creation_cache_control |
파이프라인과 파이프라인 캐시 생성 정보 구조체에 비용 예측을 위한 플래그를 추가합니다.
|
1.3버전부터 기본 포함 | |
VK_EXT_pipeline_creation_feedback |
파이프라인 생성 피드백을 응용에 제공하는 매커니즘을 추가하며 빌드 시스템과 현장 응용 실행 간의 피드백 루프를 허용할 수 있습니다.
|
1.3버전부터 기본 포함 | |
VK_EXT_pipeline_properties |
Vulkan에서 파이프라인 식별자를 질의할 수 있습니다. Vulkan SC에서 이를 이용하여 같은 상태를 파이프라인 캐시에 매핑할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_pipeline_robustness |
파이프라인당 단계 기준으로 강건성을 요청할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 용도 관련 참고: robustBufferAccess |
VK_EXT_post_depth_coverage |
SPIR-V 확장 SPV_KHR_post_depth_coverage를 지원하며 SampleMask 내장 입력 변수의 값이 조기 깊이/스텐실 테스트 이후의 적용 범위를 반영하는지 여부를 제어할 수 있습니다.
|
||
VK_EXT_primitives_generated_query |
Layering을 위한 GL_PRIMITIVES_GENERATED 같은 질의 유형을 제공합니다.
|
VK_EXT_transform_feedback | |
VK_EXT_primitive_topology_list_restart |
리스트 기초 도형이 재시작 인덱스 값을 사용할 수 있습니다.
|
||
VK_EXT_private_data |
Vulkan 객체에 임의의 페이로드를 연결할 수 있습니다. 사유 데이터 슬롯을 도입합니다.
|
1.3버전에서 기본 포함 | |
VK_EXT_provoking_vertex |
정점 프로보크 규칙을 첫 정점에서 할지 마지막 정점에서 할지 정할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_queue_family_foreign |
외부 메모리에 있는 자원 소유권을 외부 큐로 전송하는 데 사용할 수 있는 큐 계열인 VK_QUEUE_FAMILY_FOREIGN_EXT를 도입합니다.
|
VK_KHR_external_memory | |
VK_EXT_rasterization_order_attachment_access |
프레임버퍼 첨부물에 대하여 입출력이 모두 허용되는 입력 첨부물 매커니즘을 확장하여 명시적 동기화 없이 래스터화 순서로 허용합니다. (??)
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_rgba10x6_formats |
샘플러 Y'CbCr 전환 없이 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 형식을 사용할 수 있습니다.
|
VK_KHR_sampler_ycbcr_conversion | |
VK_EXT_robustness2 |
범위를 벗어난 읽기와 쓰기를 처리하는 방법에 대한 더 엄격한 요구사항을 추가합니다.
|
||
VK_EXT_sampler_filter_minmax |
샘플러의 축소/확대 필터를 추가합니다.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_EXT_sample_locations |
래스터화에 사용되는 픽셀 내에서 샘플 위치를 수정할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_scalar_block_layout |
SPIR-V 블록에서 C식 구조체 레이아웃을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_EXT_separate_stencil_usage |
이미지 생성 시 스텐실 측면에 대하여 별도의 사용 플래그를 지정할 수 있습니다.
|
1.2버전부터 기본 포함 | |
VK_EXT_shader_atomic_float |
셰이더에서 버퍼, 작업 그룹, 이미지 메리에 대한 부동소수점 불가분 연산을 사용할 수 있게 됩니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_shader_atomic_float2 |
위 항목의 추가 확장입니다. (16비트)
|
VK_EXT_shader_atomic_float | |
VK_EXT_shader_demote_to_helper_invocation |
SPIR-V 확장 SPV_EXT_demote_to_helper_invocation을 지원합니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_EXT_shader_image_atomic_int64 |
셰이더에서 64비트 정수 불가분 연산을 이미지에서 사용할 수 있게 됩니다.
|
VK_KHR_get_physical_device_properties2 SPV_EXT_shader_image_int64 |
|
VK_EXT_shader_module_identifier |
VkShaderModule에 식별자를 질의할 수 있습니다. 이것은 이후 모듈 객체 대신 전달할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 VK_EXT_pipeline_creation_cache_control |
|
VK_EXT_shader_stencil_export |
SPV_EXT_shader_stencil_export를 사용할 수 있습니다. 셰이더에서 스텐실 참조값을 생성할 수 있습니다.
|
||
VK_EXT_shader_subgroup_ballot |
SPV_KHR_shader_ballot 확장을 사용할 수 있습니다. 동시 실행 호출 그룹에서 제한된 형식의 통신을 할 수 있습니다.
|
1.2버전부터 사용할 수 없음 (참고) |
|
VK_EXT_shader_subgroup_vote |
SPV_KHR_shader_vote 확장을 사용할 수 있습니다. 동시 실행 호출 그룹에서 진리 조건을 합칠 수 있습니다.
|
1.1버전부터 사용할 수 없음(참고) | |
VK_EXT_shader_viewport_index_layer |
Layer, ViewportIndex 빌트인으로 장식된 변수가 정점/테셀레이션 셰이더에서 나올 수 있습니다.
|
계층 SPV_EXT_shader_viewport_index_layer | 1.2버전부터 기본 포함 |
VK_EXT_subgroup_size_control |
하위 그룹 크기 변경 및 최소치 명시가 가능해집니다.
|
1.1 | 1.3버전부터 기본 포함 |
VK_EXT_subpass_merge_feedback |
렌더패스의 서브패스가 구현에 의해 합쳐졌는지에 대한 피드백을 제공합니다.
|
||
VK_EXT_swapchain_colorspace |
VkColorSpaceKHR에서 스왑체인을 위해 추가적인 값들을 사용할 수 있습니다.
|
VK_KHR_surface | |
VK_EXT_texel_buffer_alignment |
유니폼/저장소 텍셀 버퍼에 대한 더 명시적인 정렬 요구사항을 추가합니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_EXT_texture_compression_astc_hdr |
ASTC 압축 텍스처에 대하여 HDR 프로파일을 지원합니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_EXT_tooling_info |
현재 실행 중인 툴을 질의할 수 있습니다.
|
1.3버전부터 기본 포함 | |
VK_EXT_transform_feedback |
Vulkan API에서 SPIR-V TransformFeedback, GeometryStreams를 사용할 수 있게 하여 변환 피드백을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_validation_cache |
내부 유효성 확인 동작을 캐싱할 수 있습니다.
|
||
VK_EXT_vertex_attribute_divisor |
인스턴싱을 할 때 인스턴스마다 변하는 속성을 원하는 수만큼 반복시킬 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_vertex_input_dynamic_state |
파이프라인의 정점 입력 바인딩을 동적 상태로 정할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_EXT_video_decode_h264 |
H264/AVC, H265/HEVC 압축을 복호화/부호화하는 것을 지원합니다.
|
VK_KHR_video_decode_queue | 임시 확장으로 가급적 사용하지 않는 것이 좋습니다. 안정성 관련 내용(스펙 1.3기준 부록 G) |
VK_EXT_video_decode_h265 | |||
VK_EXT_video_encode_h264 | VK_KHR_video_encode_queue | ||
VK_EXT_video_encode_h265 | |||
VK_EXT_ycbcr_2plane_444_formats |
영상 부호화/복호화에 자주 사용되는 Y′CbCr형식 중 몇 개를 지원합니다.
|
VK_KHR_sampler_ycbcr_conversion | 1.3버전부터 기본 포함 |
VK_EXT_ycbcr_image_arrays |
Y'CbCr 변환이 필요한 이미지 형식을 여러 배열 층으로 생성할 수 있습니다.
|
VK_KHR_sampler_ycbcr_conversion | |
VK_FUCHSIA_buffer_collection |
퓨시아의 Sysmem 서비스의 버퍼 컬렉션과 상호 운용이 가능합니다. 자세한 내용은 문서를 참고하세요.
|
VK_FUCHSIA_external_memory VK_KHR_sampler_ycbcr_conversion |
|
VK_FUCHSIA_external_memory |
다른 가상 장치 메모리를 공유할 수 있습니다.
|
VK_KHR_external_memory_capabilities VK_KHR_external_memory |
|
VK_FUCHSIA_external_semaphore |
Zircon 이벤트 핸들에서 세마포어 페이로드를 가져오거나 내보낼 수 있습니다.
|
VK_KHR_external_semaphore_capabilities VK_KHR_external_semaphore |
|
VK_GGP_frame_token |
구글 게임스 플랫폼 표면에서 생성한 스왑체인을 사용하는 프로그램이 GGP 프레임 토큰과 연결할 수 있습니다.
|
VK_KHR_swapchain VK_GGP_stream_descriptor_surface |
|
VK_GOOGLE_decorate_string |
SPV_GOOGLE_decorate_string 확장을 사용할 수 있습니다.
|
||
VK_GOOGLE_display_timing |
표시 엔진의 디스플레이 정보, 표시 타이밍 정보를 얻거나 조절하는 것이 가능합니다.
|
VK_KHR_swapchain | |
VK_GOOGLE_hlsl_functionality1 |
SPV_GOOGLE_hlsl_functionality1 확장을 사용할 수 있습니다.
|
||
VK_GOOGLE_user_type |
SPV_GOOGLE_user_type 확장을 사용할 수 있습니다.
|
||
VK_HUAWEI_invocation_mask |
레이트레이싱을 할 때, 레이 반사가 사실상 있을 영역에 대한 힌트를 주어 최적화를 시도할 수 있습니다.
|
VK_KHR_ray_tracing_pipeline VK_KHR_synchronization2 |
|
VK_HUAWEI_subpass_shading |
타일 기반 지연 렌더링 및 포워드 플러스와 같은 알고리즘의 메모리 대역폭을 절약하기 위해 서브패스에서 셰이더 파이프라인을 실행할 수 있습니다.
|
||
VK_IMG_filter_cubic |
Catmull-Rom 이중3차 필터를 이용한 3차 필터링을 제공합니다.
|
||
VK_IMG_format_pvrtc |
Imagination Technologies PowerVR 텍스처 압축 형식을 지원합니다.
|
||
VK_INTEL_performance_query |
GPA와 같은 외부 응용/라이브러리에서 성능 데이터를 얻을 수 있게 할 수 있습니다.
|
||
VK_INTEL_shader_integer_functions2 |
셰이더에서 새로운 SPIR-V 정수 명령을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_KHR_8bit_storage |
유니폼/저장소 버퍼, 푸시 상수에서 8비트 타입을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 VK_KHR_storage_buffer_storage_class |
1.2버전부터 기본 포함 |
VK_KHR_16bit_storage |
셰이더 입출력 인터페이스, 푸시 상수에서 16비트 타입을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 VK_KHR_storage_buffer_storage_class |
1.1버전부터 기본 포함 |
VK_KHR_acceleration_structure |
(레이트레이싱 등을 위한) 가속구조 객체 생성 복사를 지원합니다.
|
1.1 VK_EXT_descriptor_indexing VK_KHR_buffer_device_address VK_KHR_deferred_host_operations |
|
VK_KHR_bind_memory2 |
메모리/이미지 버퍼 메모리 바인딩을 여러 개 동시에 할 수 있는 기능을 제공합니다.
|
1.1버전부터 기본 포함 | |
VK_KHR_buffer_device_address |
버퍼의 장치 주소(64비트 값)를 질의할 수 있습니다. 용도는 문서를 참고하세요.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_KHR_copy_commands2 |
Vulkan 버퍼와 이미지 복사의 추가 버전을 제공합니다. 기능은 동일하나 매개변수가 어떤 확장에 따른 것이라는 차이가 있습니다.
|
1.3버전부터 기본 포함 | |
VK_KHR_create_renderpass2 |
렌더패스 생성 함수에 대하여 다른 확장에서 쉽게 확장될 수 있는 방법을 제공합니다.
|
VK_KHR_multiview VK_KHR_maintenance2 |
1.2버전부터 기본 포함 |
VK_KHR_dedicated_allocation |
자원을 전용 할당에 바인드할 수 있고 그에 대한 적합성(쉽게 말해 접근 성능이 좋은지)을 질의할 수 있습니다.
|
VK_KHR_get_memory_requirements2 | 1.1버전부터 기본 포함 |
VK_KHR_deferred_host_operations |
지연 가능 명령의 인프라와 사용 패턴을 정의하지만 지연 가능하다고 지정하지는 않습니다.
|
VK_KHR_deferred_host_operations에 따른 확장에서 지정 가능 | |
VK_KHR_depth_stencil_resolve |
색 첨부물과 유사한 방식으로 서브패스에서 깊이/스텐실 첨부물을 해석(resolve)할 수 있습니다.
|
VK_KHR_create_renderpass2 | 1.2버전부터 기본 포함 |
VK_KHR_descriptor_update_template |
사용자 정의 자료구조 안의 포인터로 VkDescriptorSet 한 개만을 업데이트할 수 있습니다.
|
1.1버전부터 기본 포함 | |
VK_KHR_device_group |
여러 물리 장치 위의 가상 장치 하나를 사용할 수 있습니다.
|
VK_KHR_device_group_creation | 1.1버전부터 기본 포함 |
VK_KHR_display_swapchain |
창 시스템 신경 쓰지 않고 화면에 대하여 직접 스왑체인을 생성할 수 있습니다.
|
VK_KHR_swapchain VK_KHR_display |
1.1버전부터 기본 포함 |
VK_KHR_draw_indirect_count |
버퍼에서 간접 그리기 호출 수를 지정할 수 있습니다.
|
1.2버전부터 기본 포함 | |
VK_KHR_driver_properties |
드라이버 구현에 대한 (물리 장치)질의를 추가로 제공합니다.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_KHR_dynamic_rendering |
렌더패스나 프레임버퍼 객체를 작성할 필요 없이 단일 패스 렌더링 인스턴스를 만들 수 있습니다.
이것은 열린 상태에서 여러 1차 명령 버퍼에 걸칠 수 있습니다. |
VK_KHR_depth_stencil_resolve VK_KHR_get_physical_device_properties2 |
1.3버전부터 기본 포함 |
VK_KHR_external_fence |
기본 동기화 요소를 참조하는 Vulkan 전용이 아닌 핸들을 내보낼 수 있는 펜스를 만들 수 있습니다.
|
VK_KHR_external_fence_capabilities | 1.1버전부터 기본 포함 |
VK_KHR_external_fence_fd |
POSIX FD로 펜스 페이로드를 주거나 받을 수 있습니다.
|
VK_KHR_external_fence | |
VK_KHR_external_fence_win32 |
Win32 핸들로 펜스 페이로드를 주거나 받을 수 있습니다.
|
VK_KHR_external_fence | |
VK_KHR_external_memory |
Vulkan 메모리 객체에 대한 Vulkan 전용이 아닌 핸들을 내보내 범위 밖에서 참조할 수 있습니다.
|
K_KHR_external_memory_capabilities | 1.1버전부터 기본 포함 |
VK_KHR_external_memory_fd |
POSIX FD로 Vulkan 메모리 객체를 주거나 받을 수 있습니다.
|
VK_KHR_external_memory | |
VK_KHR_external_memory_win32 |
Win32 핸들로 Vulkan 메모리 객체를 주거나 받을 수 있습니다.
|
VK_KHR_external_memory | |
VK_KHR_external_semaphore |
위 6개의 세마포어 버전입니다.
|
VK_KHR_external_semaphore_capabilities | 1.1버전부터 기본 포함 |
VK_KHR_external_semaphore_fd | |||
VK_KHR_external_semaphore_win32 | |||
VK_KHR_format_feature_flags2 |
VkFormatFeatureFlagBits보다 큰 타입의 플래그를 도입합니다. 자세한 내용은 문서를 참고하세요.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_KHR_fragment_shader_barycentric | SPIR-V 확장 SPV_KHR_fragment_shader_barycentric을 도입합니다. 자세한 내용은 문서를 참고하세요. |
VK_KHR_get_physical_device_properties2 | |
VK_KHR_fragment_shading_rate |
픽셀의 셰이딩 속도를 변경할 수 있습니다. 예를 들어 여러 픽셀이 한 번의 계산으로 같은 색으로 칠해질 수 있습니다. 자세한 내용은 문서를 참고하세요.
|
VK_KHR_create_renderpass2 VK_KHR_get_physical_device_properties2 |
|
VK_KHR_get_memory_requirements2 |
메모리 요구사항을 기존보다 더 질의할 수 있습니다. (추가 내용)
|
1.1버전부터 기본 포함 | |
VK_KHR_global_priority |
큐 우선도를 전역 범위 적용으로 확장할 수 있습니다.
|
||
VK_KHR_imageless_framebuffer |
이미지를 만들기 전에 프레임버퍼를 생성할 수 있습니다.
|
VK_KHR_maintenance2 VK_KHR_image_format_list |
1.2버전부터 기본 포함 |
VK_KHR_image_format_list |
이미지 생성 시 사용할 수 있는 모든 형식을 알 수 있습니다.
|
1.2버전부터 기본 포함 | |
VK_KHR_incremental_present |
스왑체인에 이미지를 낼 때 바꿀 이미지 영역을 지정할 수 있습니다.
|
VK_KHR_swapchain | |
VK_KHR_maintenance1 | 3D 이미지에서 2D/2D 배열 이미지 뷰를 생성할 수 있습니다. 2D 배열 계층과 3D 슬라이스 간 vkCmdCopyImage를 사용할 수 있습니다. ...총 8개 항목입니다. 자세한 건 문서를 확인해 주세요. |
1.1버전부터 기본 포함 | |
VK_KHR_maintenance2 |
입력 첨부물에서 읽을 수 있는 범위를 지정할 수 있습니다.
구현의 점의 클리핑 동작을 표현하도록 허용합니다. ...총 6개 항목입니다. 자세한 건 문서를 확인해 주세요. |
1.1버전부터 기본 포함 | |
VK_KHR_maintenance3 |
단일 기술자 집합 레이아웃에 대한 기술자 수에 대한 제한이 지원됩니다.
단일 메모리 할당 최대 크기에 대한 제한이 지원됩니다. |
VK_KHR_get_physical_device_properties2 | 1.1버전부터 기본 포함 |
VK_KHR_maintenance4 | 파이프라인 객체를 만든 후 VkPipelineLayout 객체를 제거할 수 있습니다. VkBuffer의 최대 크기를 제한할 수 있습니다. ...총 8개 항목입니다. 자세한 건 문서를 확인해 주세요. |
1.1 | 1.3버전부터 기본 포함 |
VK_KHR_multiview |
VR를 위한 멀티뷰를 위한 렌더패스를 지원합니다.
|
VK_KHR_get_physical_device_properties2 | 1.1버전부터 기본 포함 |
VK_KHR_performance_query |
성능 관련 값을 질의할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_KHR_pipeline_executable_properties |
파이프라인 컴파일 과정에서 생성된 실행 파일에 대한 속성과 통계를 질의할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_KHR_pipeline_library |
바인드할 수 없는 대신 다른 파이프라인에 링크할 수 있는 셰이더, 셰이더 집합을 정의하는 특수 파이프라인인 파이프라인 라이브러리을 도입합니다. 단 파이프라인 라이브러리는 추가 종속 확장이 있어야 만들 수 있습니다.
|
||
VK_KHR_portability_subset |
비호환 Vulkan 구현을 다른 비호환 그래픽스 API 위에 구축할 수 있으며 해당 구현과, 완전 호환되는 네이티브 Vulkan 구현 간의 차이점을 식별합니다.
자세한 내용은 문서를 참고..하기 전에 쓸 마음이 들거든 오른쪽 칸부터 보세요. |
VK_KHR_get_physical_device_properties2 | 임시 확장으로 가급적 사용하지 않는 것이 좋습니다. 안정성 관련 내용(스펙 1.3기준 부록 G) |
VK_KHR_present_id |
스왑체인의 현재 동작에 대한 식별자를 제공할 수 있습니다.
|
VK_KHR_swapchain | |
VK_KHR_present_wait |
스왑체인을 사용하는 응용에서 표시 동작이 끝날 때까지 기다릴 수 있습니다.
|
VK_KHR_swapchain VK_KHR_present_id |
|
VK_KHR_push_descriptor |
명령 버퍼에 기술자를 작성할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 요구는 1.0버전이지만, 1.1버전 대응 기능이 따로 있습니다. |
VK_KHR_ray_query |
GPU 가속 레이트레이싱에 관련된 확장, SPV_KHR_ray_query
을 추가합니다. |
1.1 VK_KHR_spirv_1_4 VK_KHR_acceleration_structure |
|
VK_KHR_ray_tracing_maintenance1 |
GPU 가속 레이트레이싱 관련 작은 기능 4개가 포함됩니다. 자세한 내용은 문서를 참고하세요.
|
1.1 VK_KHR_acceleration_structure |
|
VK_KHR_ray_tracing_pipeline | GPU 가속 레이트레이싱에 관련된 확장, SPV_KHR_ray_tracing 을 추가합니다. |
1.1 VK_KHR_spirv_1_4 VK_KHR_acceleration_structure |
|
VK_KHR_relaxed_block_layout |
블록 오프셋 데코레이션에서 추가 옵션을 지원합니다. (참고)
|
1.1버전부터 기본 포함 | |
VK_KHR_sampler_mirror_clamp_to_edge |
샘플러에서 새 클램프 모드를 추가합니다.
|
1.2버전부터 기본 포함 | |
VK_KHR_sampler_ycbcr_conversion |
Y'CbCr 색 공간에 대하여 텍스처 샘플링 작업 중 지정된 색 공간 변환을 기본적으로 수행할 수 있는 기능을 제공합니다.
|
VK_KHR_maintenance1 VK_KHR_bind_memory2 VK_KHR_get_memory_requirements2 VK_KHR_get_physical_device_properties2 |
1.1버전부터 기본 포함 |
VK_KHR_separate_depth_stencil_layouts |
깊이/스텐실 이미지에 대하여 이미지 메모리 장벽에서 깊이/스텐실 플래그 중 하나만 주어도 되게 합니다. 첨부물 인터페이스도 업데이트됩니다.
|
VK_KHR_get_physical_device_properties2 VK_KHR_create_renderpass2 |
1.2버전부터 기본 포함 |
VK_KHR_shader_atomic_int64 |
SPIR-V Int64Atomics를 사용할 수 있습니다. 64비트 정수 불가분 연산이 가능합니다.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_KHR_shader_clock |
SPIR-V ShaderClockKHR를 사용할 수 있습니다. 셰이더에서 실시간 시계(순증가 카운터)를 질의할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_KHR_shader_draw_parameters |
SPIR-V SPV_KHR_shader_draw_parameters 확장을 사용할 수 있습니다. BaseInstance, BaseVertex, DrawIndex 빌트인 변수가 추가되는데 자세한 내용은 문서를 참고하세요.
|
1.1버전부터 기본 포함 | |
VK_KHR_shader_float16_int8 |
16비트 부동소수점, 8비트 정수 타입을 셰이더에서 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_KHR_shader_float_controls |
반올림, 비정규화, 부호 0, 무한대 등에 대한 기본 동작을 수정할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_KHR_shader_integer_dot_product |
SPV_KHR_integer_dot_product 확장을 사용할 수 있습니다. 셰이더에서 정수 내적 기능을 사용할 수 있습니다.
|
1.3버전부터 기본 포함 | |
VK_KHR_shader_non_semantic_info |
SPV_KHR_non_semantic_info 확장을 사용할 수 있습니다.
|
1.3버전부터 기본 포함 | |
VK_KHR_shader_subgroup_extended_types |
SPIR-V의 비 uniform 집단 연산에서 8, 16, 64비트 정수, 16비트 부동소수점, 그리고 그들의 벡터를 지원합니다.
|
1.1 | 1.2버전부터 기본 포함 |
VK_KHR_shader_subgroup_uniform_control_flow |
SPV_KHR_subgroup_uniform_control_flow 확장을 사용할 수 있습니다. 분기된 하위 그룹이 다시 수렴하는 것을 더 강하게 보장합니다.
|
1.1 | |
VK_KHR_shader_terminate_invocation |
SPV_KHR_terminate_invocation 확장을 사용할 수 있습니다. 어떤 invocation을 즉시 종료하며 값 적용을 하지 않도록 할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_KHR_shared_presentable_image |
공유 표시 가능 이미지에 대한 스왑체인을 생성할 수 있습니다.
|
VK_KHR_swapchain VK_KHR_get_physical_device_properties2 VK_KHR_get_surface_capabilities2 |
|
VK_KHR_spirv_1_4 |
SPIR-V 1.4 셰이더 모듈을 사용할 수 있습니다. 자세한 내용은 문서를 참고하세요.
|
1.1 VK_KHR_shader_float_controls |
1.2버전부터 기본 포함 |
VK_KHR_storage_buffer_storage_class |
SPV_KHR_storage_buffer_storage_class 확장을 사용할 수 있습니다.
|
1.1버전부터 기본 포함 | |
VK_KHR_swapchain |
창 표면으로 결과를 낼 수 있는 스왑체인을 사용할 수 있습니다.
|
VK_KHR_surface | 1.1버전에서 사용할 수 있는 추가 기능이 있습니다. 문서를 참고하세요. |
VK_KHR_swapchain_mutable_format |
스왑체인 이미지가 창 시스템이 사용하는 것과 다른 형식을 처리할 수 있습니다.
|
VK_KHR_swapchain VK_KHR_maintenance2 VK_KHR_image_format_list |
|
VK_KHR_synchronization2 |
기본 동기화 API를 더 사용하기 쉽게 해 주고 64비트 범위로 확장되는 새로운 파이프라인 단계/접근 플래그가 추가됩니다. 자세한 내용은 문서를 참고하세요.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_KHR_timeline_semaphore |
타임라인 세마포어를 사용할 수 있습니다. 자세한 내용은 문서와 스펙을 참고하세요.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_KHR_uniform_buffer_standard_layout |
공유 버퍼에서 더 작은 배열, 구조체 패킹을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 1.2버전부터 기본 포함 |
VK_KHR_variable_pointers |
SPV_KHR_variable_pointers 확장을 사용할 수 있습니다. 포인터에 대한 설명은 문서를 참고하세요.
|
VK_KHR_get_physical_device_properties2 VK_KHR_storage_buffer_storage_class |
|
VK_KHR_video_decode_queue |
동영상 복호화에 관한 확장을 추가합니다.
|
VK_KHR_video_queue VK_KHR_synchronization2 |
임시 확장입니다. 사용에 주의를 요합니다. |
VK_KHR_video_encode_queue |
동영상 부호화에 관한 확장을 추가합니다.
|
VK_KHR_video_queue VK_KHR_synchronization2 |
|
VK_KHR_video_queue |
동영상 코덱 작업 관련 큐 계열을 찾을 수 있습니다.
|
1.1 VK_KHR_get_physical_device_properties2 VK_KHR_synchronization2 |
|
VK_KHR_vulkan_memory_model |
여러 셰이더 스레드 중 공통으로 접근하는 메모리에 대하여 형식적으로 방식을 정하는 Vulkan 메모리 모형을 사용할 수 있습니다.
|
1.2버전부터 기본 포함 | |
VK_KHR_win32_keyed_mutex.html |
명령 버퍼를 큐에 제출할 때 가져온 Vulkan 메모리 개체와 연결된 키 지정 뮤텍스에 접근할 수 있습니다.
|
VK_KHR_external_memory_win32 | |
VK_KHR_workgroup_memory_explicit_layout |
SPV_KHR_workgroup_explicit_layout 확장을 사용할 수 있습니다. 셰이더에서 명시적으로 Workgroup 저상소 클래스 메모리의 레이아웃과 계산 셰이더에서 변수 간 얼라이어스를 생성할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_KHR_zero_initialize_workgroup_memory |
셰이더 작업 그룹 메모리 변수에 null을 전달할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 1.3버전부터 기본 포함 |
VK_NVX_binary_import |
CuBIN 바이너리를 불러와 실행할 수 있습니다.
|
현재 기준 문서에도 별 내용이 없습니다. | |
VK_NVX_image_view_handle |
이미지 뷰로부터 불투명한 핸들을 질의할 수 있습니다.
|
||
VK_NVX_multiview_per_view_attributes |
멀티 뷰 서브패스와 함께 사용할 셰이더를 작성하는 새로운 방법을 추가합니다. 죄송합니다. 자세한 내용은 문서를 참고해 주세요.
|
VK_KHR_multiview | |
VK_NV_acquire_winrt_display |
Windows 10에서 다른 컴포지터로 제어되고 있지 않은 디스플레이를 독점적으로 제어할 수 있습니다.
|
VK_EXT_direct_mode_display | |
VK_NV_clip_space_w_scaling |
VR 씬을 불균일한 해상도로 렌더링하기 위해 w좌표 스케일링하는 해상도를 지원합니다.
|
||
VK_NV_compute_shader_derivatives |
SPV_NV_compute_shader_derivatives 확장을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_NV_cooperative_matrix |
SPIR-V에서 협응 행렬 타입을 사용할 수 있습니다. 분산 식으로 계산됩니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_NV_corner_sampled_image |
코너 샘플드 이미지를 지원합니다. 특성은 문서를 참고해 주세요.
|
VK_KHR_get_physical_device_properties2 | |
VK_NV_coverage_reduction_mode |
여러 샘플이 있는 프레임버퍼에 대하여 조각당 커버리지 축약 작업이 수행됩니다. 이 방식을 병합, 버림 모드로 지원합니다.
|
VK_NV_framebuffer_mixed_samples | |
VK_NV_dedicated_allocation |
장치 메모리를 특정 버퍼 혹은 이미지 자원에 할당할 수 있습니다.
|
VK_KHR_dedicated_allocation에 의해 사용하지 않음 | |
VK_NV_dedicated_allocation_image_aliasing |
특정 제한에 따라 이미지에 별명을 줄 수 있습니다.
|
VK_KHR_dedicated_allocation | |
VK_NV_device_diagnostics_config |
Nvidia Nsight™ Aftermath SDKfor Vulkan을 사용하여 장치 충돌 덤프를 그곳의 오류 보고 매커니즘에 통합할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_NV_device_diagnostic_checkpoints |
명령 스트림에 마커를 삽입하고 사용자 지정 데이터와 연결할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_NV_device_generated_commands |
중요한(critical) 그래픽스 명령과 명령 버퍼를 아주 많이 도입합니다. 자세한 내용은 문서를 참고해 주세요.
|
1.1 VK_KHR_buffer_device_address |
|
VK_NV_external_memory |
Vulkan 인스턴스 외부에서 메모리를 참조할 수 있습니다.
|
VK_NV_external_memory_capabilities | VK_KHR_external_memory에 의해 사용하지 않음 |
VK_NV_external_memory_rdma |
다른 장치에서 원격 직접 메모리 접근(RDMA)을 할 수 있습니다.
|
VK_KHR_external_memory | |
VK_NV_external_memory_win32 |
Win32 핸들과 Vulkan 메모리 개체를 오갈 수 있습니다.
|
VK_NV_external_memory | VK_KHR_external_memory_win32에 의해 사용하지 않음 |
VK_NV_fill_rectangle |
실제 삼각형 모서리를 무시하고 삼각형 2개 대신 사각형 모양으로 래스터화되는 새로운 VkPolygonMode 값을 추가합니다.
|
||
VK_NV_fragment_coverage_to_color |
조각 범위 값(비트마스크)에 색 첨부물 플래그(e.g. VK_FORMAT_R8_UINT)를 줄 수 있습니다.
|
잘못 해석했을 가능성이 꽤 높습니다. 직접 확인해 주세요. | |
VK_NV_fragment_shader_barycentric |
SPV_NV_fragment_shader_barycentric 확장을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | VK_KHR_fragment_shader_barycentric로 편입 |
VK_NV_fragment_shading_rate_enums |
조각 하나에 조각 셰이더 실행 여러 번을 하는 슈퍼샘플과, 실행없음 모드를 지원합니다.
|
VK_KHR_fragment_shading_rate | |
VK_NV_framebuffer_mixed_samples |
깊이/스텐실 샘플 수가 색 샘플수보다 많은 래스터에 대한 렌더링이 가능합니다. 용도는 문서를 참고하세요.
|
||
VK_NV_geometry_shader_passthrough |
SPV_NV_geometry_shader_passthrough 확장을 사용할 수 있습니다. 지오메트리 셰이더에 대하여 패스 스루 데코레이션을 줄 수 있습니다. 자세한 내용은 문서를 참고하세요.
|
||
VK_NV_glsl_shader |
SPIR-V 대신 GLSL 셰이더를 직접 컴파일한 걸 사용할 수 있습니다.
|
사용하지 마세요. | |
VK_NV_inherited_viewport_scissor |
2차 명령 버퍼가 1차 명령 버퍼 또는 동일한 vkCmdExecuteCommands 호출에서 동적 뷰포트/시저 상태를 상속할 수 있습니다.
|
||
VK_NV_linear_color_attachment |
렌더패스의 모든 색 첨부물이 VK_IMAGE_TILING_LINEAR을 가질 때 추가로 어떤 기능을 넣을 수 있습니다. 자세한 내용은 문서를 참고하세요.
|
||
VK_NV_mesh_shader |
SPV_NV_mesh_shader 확장을 사용할 수 있습니다. 고정 기능 어셈블러와 고정 기능 정점 접근에 의한 입력 기초도형 생성 대신 쓸 수 있을 메시 셰이딩으로 기초 도형을 생성하는 기능이 생깁니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_NV_ray_tracing |
레이트레이싱과 관련된 SPV_NV_ray_tracing 확장을 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 VK_KHR_get_memory_requirements2 |
|
VK_NV_ray_tracing_motion_blur |
레이트레이싱 효율을 위한 모션 블러 매커니즘 집합을 추가합니다.
|
VK_KHR_ray_tracing_pipeline | |
VK_NV_representative_fragment_test |
파이프라인 생성 시 대표 조각 테스트를 하게 지정할 수 있습니다. 자세한 내용은 문서를 참고해 주세요.
|
||
VK_NV_sample_mask_override_coverage |
SPV_NV_sample_mask_override_coverage 확장을 사용할 수 있습니다. 자세한 내용은 문서를 참고해 주세요.
|
||
VK_NV_scissor_exclusive |
전용 시저 테스트를 사용할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_NV_shader_image_footprint |
SPV_NV_shader_image_footprint 확장을 사용할 수 있습니다. 동일하게 필터링된 텍스처 룩업에서 접근할 수 있는 텍셀 집합을 결정할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | 내용이 아주 길기 때문에 필요하면 문서를 참고해 주세요. |
VK_NV_shader_sm_builtins |
NVIDIA GPU에서 장치별 속성을 확인할 수 있습니다.
|
1.1 | |
VK_NV_shader_subgroup_partitioned | 하위 그룹에 대한 그룹 동작을 지원합니다. | 1.1 | group operations GL_NV_shader_subgroup_partitioned SPV_NV_shader_subgroup_partitioned |
VK_NV_shading_rate_image |
조각:셰이더 실행수를 조절할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_NV_viewport_array2 |
SPV_NV_viewport_array2 확장을 사용할 수 있습니다. 한 도형을 여러 뷰포트/여러 층에 동시에 넘길수 있습니다. 유효 뷰포트 인덱스가 레이어 내장 데코레이션으로 추가될 수 있는지에 대한 데코레이션이 추가됩니다(?).
|
||
VK_NV_viewport_swizzle |
뷰포트로 간 도형의 위치를 수정할 수 있는 섞기 기능을 추가합니다.
|
||
VK_NV_win32_keyed_mutex |
명령 버퍼를 큐에 제출할 때 가져온 Vulkan 메모리 개체와 연결된 키 지정 뮤텍스에 접근할 수 있습니다.
|
VK_NV_external_memory_win32 | VK_KHR_win32_keyed_mutex로 편입 |
VK_QCOM_fragment_density_map_offset |
조각 밀도 맵 첨부물에 대한 오프셋을 지정하여 값이 적용되는 프레임버퍼 위치를 재생성 없이 바꿀 수 있습니다.
|
VK_KHR_get_physical_device_properties2 VK_EXT_fragment_density_map |
|
VK_QCOM_image_processing |
가중 평균 계산, 박스 필터링, 절대차와 제곱차를 구하는 처리 기능을 사용할 수 있습니다.
|
VK_KHR_format_feature_flags2 | |
VK_QCOM_render_pass_shader_resolve |
고정 기능 resolve 대신 셰이더를 통해 resolve할 수 있습니다. 자세한 내용은 문서를 참고하세요.
|
||
VK_QCOM_render_pass_store_ops |
렌더 영역 내용이 메모리에 쓸 수 없지만 그 이전의 첨부물 내용이 보존되는 저장 옵션을 쓸 수 있습니다.
|
||
VK_QCOM_render_pass_transform |
렌더패스 변환 매커니즘을 지원합니다. 변환은 모바일 장치의 회전 등에 관련되어 있습니다. 자세한 내용은 문서를 참고하세요.
|
VK_KHR_swapchain VK_KHR_surface |
|
VK_QCOM_rotated_copy_commands |
블리팅, 이미지->버퍼 or 버퍼->이미지 변환 명령에 대하여 회전을 추가한 버전을 쓸 수 있습니다.
|
VK_KHR_swapchain VK_KHR_copy_commands2 |
|
VK_QCOM_tile_properties |
렌더패스와 동적 렌더링에 대하여 타일 속성을 질의할 수 있습니다.
|
VK_KHR_get_physical_device_properties2 | |
VK_SEC_amigo_profiling |
...
|
VK_KHR_get_physical_device_properties2 | 사용하지 마세요. |
VK_VALVE_descriptor_set_host_mapping |
기술자 집합 포인터를 직접 질의할 수 있습니다. API 명령을 사용하지 않고
|
특정 임베디드 환경만을 위한 것입니다. | |
VK_VALVE_mutable_descriptor_type |
기술자 형을 가변으로 만들어 필요한 수를 줄여 메모리를 절약할 수 있는 기능을 추가합니다.
|
VK_KHR_maintenance3 | VK_EXT_mutable_descriptor_type로 편입 |
Q1. 왜 이렇게 "자세한 내용은 문서에서 참고"란 말이 많은가? | ||
A1. 할 수 있는 말 없음 설명란을 믿지 마십시오. 딴에 조금 노력한다고 했지만 제가 문서의 내용을 다 이해하고 요약할 수 있었다면 애초에 활용에 별 어려움이 없었을 테니 이 글 자체를 쓰지 않았을 겁니다.. 이 글은 확장 이름을 모아둔 것이 필요한 경우를 위하여 작성되었으며 저 자신이 참고할 때에는 타이틀 하나씩 다 읽으며 문서에 들어가 확인하는 것을 상정하였습니다. |
||
Q2. 어떤 확장에는 '사용하지 마세요' 라는 말을 쓰게 된 배경은? | ||
A2. 문서 원문에서 그 확장을 사용함(디버그용 & 릴리즈용)에 있어 이점이 없다는 식이나 사용을 피해야 한다는 말이 나왔기 때문입니다. | ||
Q3. GOOGLE, NV, QCOM, VALVE 이런 이름이 붙은 확장들은 다 그 관련된 장치 혹은 OS에서만 사용할 수 있는가? | ||
A3. 대체로 그렇다고 보아도 될 것 같습니다. 덧붙여 Windows 11, NVIDIA GeForce GTX 1050이 장착된 저의 컴퓨터에서 검사한 지원 확장을 아래에 나열해 놓았습니다. | ||
Q4. surface, swapchain을 제외하고 보통의 그래픽스 응용을 만들 때 사용을 추천할 만한 확장이 있는가? | ||
A4. 이걸 물어볼 정도, 즉 저랑 비슷한 수준이시라면 없다고 말하는 게 맞을 것 같습니다. |
VK_KHR_device_group_creation
VK_KHR_display
VK_KHR_external_fence_capabilities
VK_KHR_external_memory_capabilities
VK_KHR_external_semaphore_capabilities
VK_KHR_get_display_properties2
VK_KHR_get_physical_device_properties2
VK_KHR_get_surface_capabilities2
VK_KHR_surface
VK_KHR_surface_protected_capabilities
VK_KHR_win32_surface
VK_EXT_debug_report
VK_EXT_debug_utils
VK_EXT_direct_mode_display
VK_EXT_swapchain_colorspace
VK_NV_external_memory_capabilities
VK_KHR_16bit_storage
VK_KHR_8bit_storage
VK_KHR_bind_memory2
VK_KHR_buffer_device_address
VK_KHR_copy_commands2
VK_KHR_create_renderpass2
VK_KHR_dedicated_allocation
VK_KHR_depth_stencil_resolve
VK_KHR_descriptor_update_template
VK_KHR_device_group
VK_KHR_draw_indirect_count
VK_KHR_driver_properties
VK_KHR_dynamic_rendering
VK_KHR_external_fence
VK_KHR_external_fence_win32
VK_KHR_external_memory
VK_KHR_external_memory_win32
VK_KHR_external_semaphore
VK_KHR_external_semaphore_win32
VK_KHR_format_feature_flags2
VK_KHR_get_memory_requirements2
VK_KHR_global_priority
VK_KHR_image_format_list
VK_KHR_imageless_framebuffer
VK_KHR_maintenance1
VK_KHR_maintenance2
VK_KHR_maintenance3
VK_KHR_maintenance4
VK_KHR_multiview
VK_KHR_pipeline_executable_properties
VK_KHR_present_id
VK_KHR_present_wait
VK_KHR_push_descriptor
VK_KHR_relaxed_block_layout
VK_KHR_sampler_mirror_clamp_to_edge
VK_KHR_sampler_ycbcr_conversion
VK_KHR_separate_depth_stencil_layouts
VK_KHR_shader_atomic_int64
VK_KHR_shader_clock
VK_KHR_shader_draw_parameters
VK_KHR_shader_float16_int8
VK_KHR_shader_float_controls
VK_KHR_shader_integer_dot_product
VK_KHR_shader_non_semantic_info
VK_KHR_shader_subgroup_extended_types
VK_KHR_shader_terminate_invocation
VK_KHR_spirv_1_4
VK_KHR_storage_buffer_storage_class
VK_KHR_swapchain
VK_KHR_swapchain_mutable_format
VK_KHR_synchronization2
VK_KHR_timeline_semaphore
VK_KHR_uniform_buffer_standard_layout
VK_KHR_variable_pointers
VK_KHR_vulkan_memory_model
VK_KHR_win32_keyed_mutex
VK_KHR_workgroup_memory_explicit_layout
VK_KHR_zero_initialize_workgroup_memory
VK_EXT_4444_formats
VK_EXT_blend_operation_advanced
VK_EXT_border_color_swizzle
VK_EXT_buffer_device_address
VK_EXT_calibrated_timestamps
VK_EXT_color_write_enable
VK_EXT_conditional_rendering
VK_EXT_conservative_rasterization
VK_EXT_custom_border_color
VK_EXT_depth_clip_control
VK_EXT_depth_clip_enable
VK_EXT_depth_range_unrestricted
VK_EXT_descriptor_indexing
VK_EXT_discard_rectangles
VK_EXT_extended_dynamic_state
VK_EXT_extended_dynamic_state2
VK_EXT_external_memory_host
VK_EXT_fragment_shader_interlock
VK_EXT_full_screen_exclusive
VK_EXT_global_priority
VK_EXT_global_priority_query
VK_EXT_hdr_metadata
VK_EXT_host_query_reset
VK_EXT_image_robustness
VK_EXT_image_view_min_lod
VK_EXT_index_type_uint8
VK_EXT_inline_uniform_block
VK_EXT_line_rasterization
VK_EXT_load_store_op_none
VK_EXT_memory_budget
VK_EXT_memory_priority
VK_EXT_multi_draw
VK_EXT_pci_bus_info
VK_EXT_pipeline_creation_cache_control
VK_EXT_pipeline_creation_feedback
VK_EXT_post_depth_coverage
VK_EXT_primitive_topology_list_restart
VK_EXT_private_data
VK_EXT_provoking_vertex
VK_EXT_queue_family_foreign
VK_EXT_robustness2
VK_EXT_sample_locations
VK_EXT_sampler_filter_minmax
VK_EXT_scalar_block_layout
VK_EXT_separate_stencil_usage
VK_EXT_shader_atomic_float
VK_EXT_shader_demote_to_helper_invocation
VK_EXT_shader_image_atomic_int64
VK_EXT_shader_subgroup_ballot
VK_EXT_shader_subgroup_vote
VK_EXT_shader_viewport_index_layer
VK_EXT_subgroup_size_control
VK_EXT_texel_buffer_alignment
VK_EXT_tooling_info
VK_EXT_transform_feedback
VK_EXT_vertex_attribute_divisor
VK_EXT_vertex_input_dynamic_state
VK_EXT_ycbcr_2plane_444_formats
VK_EXT_ycbcr_image_arrays
VK_NV_acquire_winrt_display
VK_NV_clip_space_w_scaling
VK_NV_coverage_reduction_mode
VK_NV_dedicated_allocation
VK_NV_dedicated_allocation_image_aliasing
VK_NV_device_diagnostic_checkpoints
VK_NV_device_diagnostics_config
VK_NV_device_generated_commands
VK_NV_external_memory
VK_NV_external_memory_win32
VK_NV_fill_rectangle
VK_NV_fragment_coverage_to_color
VK_NV_framebuffer_mixed_samples
VK_NV_geometry_shader_passthrough
VK_NV_inherited_viewport_scissor
VK_NV_sample_mask_override_coverage
VK_NV_shader_sm_builtins
VK_NV_shader_subgroup_partitioned
VK_NV_viewport_array2
VK_NV_viewport_swizzle
VK_NV_win32_keyed_mutex
VK_NVX_multiview_per_view_attributes
'Vulkan > 특별편' 카테고리의 다른 글
안드로이드 스튜디오 NDK와 Vulkan - 2 (0) | 2022.10.23 |
---|---|
Vulkan 물리 장치 속성 (0) | 2022.09.25 |
안드로이드 스튜디오 NDK와 Vulkan - 1 (0) | 2022.08.21 |