소스 검색

add missing vulkan video constants

wrapperup 9 달 전
부모
커밋
59d88f2a22
2개의 변경된 파일56개의 추가작업 그리고 2개의 파일을 삭제
  1. 30 2
      vendor/vulkan/_gen/create_vulkan_odin_wrapper.py
  2. 26 0
      vendor/vulkan/core.odin

+ 30 - 2
vendor/vulkan/_gen/create_vulkan_odin_wrapper.py

@@ -47,9 +47,9 @@ def no_vk(t):
     t = t.replace('PFN_', 'Proc')
 
     t = re.sub('(?:Vk|VK_)?(\w+)', '\\1', t)
-    # Vulkan Video
 
-    t = re.sub('(?:Std|STD_)?(\w+)', '\\1', t)
+    # Vulkan Video
+    t = re.sub('(?:Std|STD_|VK_STD)?(\w+)', '\\1', t)
     return t
 
 OPAQUE_STRUCTS = """
@@ -282,6 +282,16 @@ def parse_constants(f):
     for name, value in vulkan_video_data:
         f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
 
+    f.write("\n// Vulkan Video Codec Constants\n")
+    vulkan_video_codec_allowed_suffixes = (
+        "_EXTENSION_NAME",
+    )
+    vulkan_video_codec_data = re.findall(r"#define VK_STD_(\w+)\s*(.*?)U?\n", src, re.S)
+    vulkan_video_codec_allowed_data = [nv for nv in vulkan_video_codec_data if nv[0].endswith(vulkan_video_codec_allowed_suffixes)]
+    max_len = max(len(name) for name, value in vulkan_video_codec_allowed_data)
+    for name, value in vulkan_video_codec_allowed_data:
+        f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
+
     f.write("\n// Vendor Constants\n")
     fixes = '|'.join(ext_suffixes)
     inner = r"((?:(?:" + fixes + r")\w+)|(?:\w+" + fixes + r"))"
@@ -798,6 +808,7 @@ package vulkan
 with open("../core.odin", 'w', encoding='utf-8') as f:
     f.write(BASE)
     f.write("""
+// Core API
 API_VERSION_1_0 :: (1<<22) | (0<<12) | (0)
 API_VERSION_1_1 :: (1<<22) | (1<<12) | (0)
 API_VERSION_1_2 :: (1<<22) | (2<<12) | (0)
@@ -848,6 +859,23 @@ MAX_GLOBAL_PRIORITY_SIZE              :: 16
 MAX_GLOBAL_PRIORITY_SIZE_EXT          :: MAX_GLOBAL_PRIORITY_SIZE
 QUEUE_FAMILY_EXTERNAL                 :: MAX_QUEUE_FAMILY_EXTERNAL
 
+// Vulkan Video API Constants
+VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0  :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0  :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 :: (1<<22) | (0<<12) | (0)
+
+VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION  :: VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_AV1_ENCODE_SPEC_VERSION  :: VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0
+
+MAKE_VIDEO_STD_VERSION :: MAKE_VERSION
+
 """[1::])
     parse_constants(f)
     parse_handles_def(f)

+ 26 - 0
vendor/vulkan/core.odin

@@ -2,6 +2,7 @@
 // Vulkan wrapper generated from "https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/master/include/vulkan/vulkan_core.h"
 //
 package vulkan
+// Core API
 API_VERSION_1_0 :: (1<<22) | (0<<12) | (0)
 API_VERSION_1_1 :: (1<<22) | (1<<12) | (0)
 API_VERSION_1_2 :: (1<<22) | (2<<12) | (0)
@@ -52,6 +53,23 @@ MAX_GLOBAL_PRIORITY_SIZE              :: 16
 MAX_GLOBAL_PRIORITY_SIZE_EXT          :: MAX_GLOBAL_PRIORITY_SIZE
 QUEUE_FAMILY_EXTERNAL                 :: MAX_QUEUE_FAMILY_EXTERNAL
 
+// Vulkan Video API Constants
+VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0  :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0  :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 :: (1<<22) | (0<<12) | (0)
+VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 :: (1<<22) | (0<<12) | (0)
+
+VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION  :: VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_AV1_ENCODE_SPEC_VERSION  :: VULKAN_VIDEO_CODEC_AV1_ENCODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0
+VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION :: VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0
+
+MAKE_VIDEO_STD_VERSION :: MAKE_VERSION
+
 // General Constants
 HEADER_VERSION       :: 303
 MAX_DRIVER_NAME_SIZE :: 256
@@ -113,6 +131,14 @@ VIDEO_H265_MAX_DELTA_POC                            :: 48
 VIDEO_H265_NO_REFERENCE_PICTURE                     :: 0xFF
 VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE             :: 8
 
+// Vulkan Video Codec Constants
+VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME  :: "VK_STD_vulkan_video_codec_av1_decode"
+VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME  :: "VK_STD_vulkan_video_codec_av1_encode"
+VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME :: "VK_STD_vulkan_video_codec_h264_decode"
+VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME :: "VK_STD_vulkan_video_codec_h264_encode"
+VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME :: "VK_STD_vulkan_video_codec_h265_decode"
+VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME :: "VK_STD_vulkan_video_codec_h265_encode"
+
 // Vendor Constants
 KHR_surface                                               :: 1
 KHR_SURFACE_SPEC_VERSION                                  :: 25