23#define COLOR (VK_IMAGE_ASPECT_COLOR_BIT)
24#define DEPTH (VK_IMAGE_ASPECT_DEPTH_BIT)
25#define STENCIL (VK_IMAGE_ASPECT_STENCIL_BIT)
26#define DEPTH_STENCIL (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)
27#define TYPELESS VKD3D_FORMAT_TYPE_TYPELESS
28#define SINT VKD3D_FORMAT_TYPE_SINT
29#define UINT VKD3D_FORMAT_TYPE_UINT
278 device->format_compatibility_list_count = 0;
281 if (!
device->vk_info.KHR_image_format_list)
301 current_list =
lists;
351 device->format_compatibility_list_count = 0;
372 WARN(
"Mapping VK_FORMAT_D24_UNORM_S8_UINT to VK_FORMAT_D32_SFLOAT_S8_UINT.\n");
480 if (!typeless_format)
497 unsigned int src_row_pitch,
unsigned int src_slice_pitch,
uint8_t *
dst,
unsigned int dst_row_pitch,
498 unsigned int dst_slice_pitch,
unsigned int w,
unsigned int h,
unsigned int d)
500 unsigned int row_block_count, row_count, row_size,
slice,
row;
501 unsigned int slice_count =
d;
505 row_block_count = (
w +
format->block_width - 1) /
format->block_width;
506 row_count = (
h +
format->block_height - 1) /
format->block_height;
507 row_size = row_block_count *
format->byte_count *
format->block_byte_count;
513 src_row = &
src[
slice * src_slice_pitch +
row * src_row_pitch];
514 dst_row = &
dst[
slice * dst_slice_pitch +
row * dst_row_pitch];
515 memcpy(dst_row, src_row, row_size);
568 if (valid_feature_levels[
i] == feature_level)
587 return x && !(
x & (
x -1));
612 if (
state & ~valid_states)
614 WARN(
"Invalid resource states %#x.\n",
state & ~valid_states);
621 WARN(
"Write state cannot be mixed with other states: %#x.\n",
state);
629 REFIID requested_iid,
void **
object)
640 hr = IUnknown_QueryInterface(
unknown, requested_iid,
object);
699 (
unsigned int)
extent.width,
700 (
unsigned int)
extent.height,
701 (
unsigned int)
extent.depth);
709#define FLAG_TO_STR(f) if (flags & f) { strcat(buffer, " | "#f); flags &= ~f; }
716#define FLAG_TO_STR(f, n) if (flags & f) { strcat(buffer, " | "#n); flags &= ~f; }
733#define FLAG_TO_STR(f) if (flags & f) { strcat(buffer, " | "#f); flags &= ~f; }
750#define FLAG_TO_STR(f) if (flags & f) { strcat(buffer, " | "#f); flags &= ~f; }
779 FIXME(
"Unhandled errno %d.\n", rc);
791 WARN(
"Out of device memory.\n");
796 FIXME(
"Unhandled VkResult %d.\n", vr);
804#define LOAD_GLOBAL_PFN(name) \
805 if (!(procs->name = (void *)vkGetInstanceProcAddr(NULL, #name))) \
807 ERR("Could not get global proc addr for '" #name "'.\n"); \
814 memset(procs, 0,
sizeof(*procs));
821 TRACE(
"Loaded global Vulkan procs.\n");
825#define LOAD_INSTANCE_PFN(name) \
826 if (!(procs->name = (void *)global_procs->vkGetInstanceProcAddr(instance, #name))) \
828 ERR("Could not get instance proc addr for '" #name "'.\n"); \
831#define LOAD_INSTANCE_OPTIONAL_PFN(name) \
832 procs->name = (void *)global_procs->vkGetInstanceProcAddr(instance, #name);
837 memset(procs, 0,
sizeof(*procs));
839#define VK_INSTANCE_PFN LOAD_INSTANCE_PFN
840#define VK_INSTANCE_EXT_PFN LOAD_INSTANCE_OPTIONAL_PFN
847#define COPY_PARENT_PFN(name) procs->name = parent_procs->name;
848#define LOAD_DEVICE_PFN(name) \
849 if (!(procs->name = (void *)procs->vkGetDeviceProcAddr(device, #name))) \
851 ERR("Could not get device proc addr for '" #name "'.\n"); \
854#define LOAD_DEVICE_OPTIONAL_PFN(name) \
855 procs->name = (void *)procs->vkGetDeviceProcAddr(device, #name);
860 memset(procs, 0,
sizeof(*procs));
862#define VK_INSTANCE_PFN COPY_PARENT_PFN
863#define VK_DEVICE_PFN LOAD_DEVICE_PFN
864#define VK_DEVICE_EXT_PFN LOAD_DEVICE_OPTIONAL_PFN
871#if HAVE_DECL_PROGRAM_INVOCATION_NAME
877 if ((
name =
strrchr(program_invocation_name,
'/')))
890 else if ((
name =
strrchr(program_invocation_name,
'\\')))
896 name = program_invocation_name;
972 if (data_size !=
sizeof(
IUnknown *))
985 IUnknown_AddRef(
d->u.object);
1018 if (size < data->
size)
1024 if (
data->is_object)
1025 IUnknown_AddRef(
data->u.object);
1034 const GUID *
tag,
unsigned int data_size,
const void *
data)
1049 const void *
data =
object ?
object : (
void *)&
object;
1066 if (!
device->vk_info.EXT_debug_marker)
1071 info.objectType = vk_object_type;
1072 info.object = vk_object;
1086 if (!
device->vk_info.EXT_debug_marker)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
@ D3D12_RESOURCE_STATE_GENERIC_READ
@ D3D12_RESOURCE_STATE_RESOLVE_DEST
@ D3D12_RESOURCE_STATE_INDEX_BUFFER
@ D3D12_RESOURCE_STATE_COPY_DEST
@ D3D12_RESOURCE_STATE_RENDER_TARGET
@ D3D12_RESOURCE_STATE_COPY_SOURCE
@ D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE
@ D3D12_RESOURCE_STATE_UNORDERED_ACCESS
@ D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT
@ D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE
@ D3D12_RESOURCE_STATE_DEPTH_WRITE
@ D3D12_RESOURCE_STATE_DEPTH_READ
@ D3D12_RESOURCE_STATE_STREAM_OUT
@ D3D12_RESOURCE_STATE_COMMON
@ D3D12_RESOURCE_STATE_PREDICATION
@ D3D12_RESOURCE_STATE_RESOLVE_SOURCE
@ D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER
@ D3D12_RESOURCE_STATE_PRESENT
D3D12_SHADER_COMPONENT_MAPPING
@ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1
@ D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0
@ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3
@ D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
@ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0
@ D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2
@ D3D_FEATURE_LEVEL_1_0_CORE
static HINSTANCE instance
static const struct wined3d_format_channels formats[]
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strncmp(const char *, const char *, size_t)
_ACRTIMP char *__cdecl strrchr(const char *, int)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
static void depth_stencil(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLenum GLenum GLenum mapping
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid * lists
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static char * program_name
#define memcpy(s1, s2, n)
struct task_struct * current
static HANDLE PIO_APC_ROUTINE PVOID PIO_STATUS_BLOCK ULONG PVOID ULONG PVOID ULONG out_size
#define IsEqualGUID(rguid1, rguid2)
#define offsetof(TYPE, MEMBER)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
const char * debug_vk_memory_heap_flags(VkMemoryHeapFlags flags)
HRESULT return_interface(void *iface, REFIID iface_iid, REFIID requested_iid, void **object)
static bool dxgi_format_is_depth_stencil(DXGI_FORMAT dxgi_format)
HRESULT vkd3d_load_vk_device_procs(struct vkd3d_vk_device_procs *procs, const struct vkd3d_vk_instance_procs *parent_procs, VkDevice device)
DXGI_FORMAT vkd3d_get_dxgi_format(VkFormat format)
static struct vkd3d_private_data * vkd3d_private_store_get_private_data(const struct vkd3d_private_store *store, const GUID *tag)
const char * debug_vk_extent_3d(VkExtent3D extent)
HRESULT vkd3d_set_private_data(struct vkd3d_private_store *store, const GUID *tag, unsigned int data_size, const void *data)
bool is_valid_resource_state(D3D12_RESOURCE_STATES state)
#define LOAD_GLOBAL_PFN(name)
static const struct vkd3d_format vkd3d_formats[]
static const struct vkd3d_format vkd3d_depth_stencil_formats[]
const char * debug_vk_memory_property_flags(VkMemoryPropertyFlags flags)
static void vkd3d_cleanup_format_compatibility_lists(struct d3d12_device *device)
const char * debug_d3d12_shader_component_mapping(unsigned int mapping)
HRESULT vkd3d_load_vk_instance_procs(struct vkd3d_vk_instance_procs *procs, const struct vkd3d_vk_global_procs *global_procs, VkInstance instance)
HRESULT vkd3d_set_private_data_interface(struct vkd3d_private_store *store, const GUID *tag, const IUnknown *object)
VkResult vkd3d_set_vk_object_name_utf8(struct d3d12_device *device, uint64_t vk_object, VkDebugReportObjectTypeEXT vk_object_type, const char *name)
void vkd3d_format_copy_data(const struct vkd3d_format *format, const uint8_t *src, unsigned int src_row_pitch, unsigned int src_slice_pitch, uint8_t *dst, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int w, unsigned int h, unsigned int d)
bool is_write_resource_state(D3D12_RESOURCE_STATES state)
HRESULT hresult_from_vk_result(VkResult vr)
HRESULT vkd3d_load_vk_global_procs(struct vkd3d_vk_global_procs *procs, PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr)
bool is_valid_feature_level(D3D_FEATURE_LEVEL feature_level)
bool vkd3d_get_program_name(char program_name[PATH_MAX])
HRESULT hresult_from_errno(int rc)
static HRESULT vkd3d_init_depth_stencil_formats(struct d3d12_device *device)
const struct vkd3d_format * vkd3d_get_format(const struct d3d12_device *device, DXGI_FORMAT dxgi_format, bool depth_stencil)
static HRESULT vkd3d_init_format_compatibility_lists(struct d3d12_device *device)
static const struct vkd3d_format * vkd3d_get_depth_stencil_format(const struct d3d12_device *device, DXGI_FORMAT dxgi_format)
static const char * debug_d3d12_shader_component(D3D12_SHADER_COMPONENT_MAPPING component)
static const struct vkd3d_format format_b4g4r4a4
HRESULT vkd3d_init_format_info(struct d3d12_device *device)
static HRESULT vkd3d_private_store_set_private_data(struct vkd3d_private_store *store, const GUID *tag, const void *data, unsigned int data_size, bool is_object)
VkFormat vkd3d_get_vk_format(DXGI_FORMAT format)
static void vkd3d_cleanup_depth_stencil_formats(struct d3d12_device *device)
const char * debug_gpu_handle(D3D12_GPU_DESCRIPTOR_HANDLE handle)
const char * debug_vk_queue_flags(VkQueueFlags flags)
HRESULT vkd3d_set_vk_object_name(struct d3d12_device *device, uint64_t vk_object, VkDebugReportObjectTypeEXT vk_object_type, const WCHAR *name)
const char * debug_d3d12_box(const D3D12_BOX *box)
void vkd3d_cleanup_format_info(struct d3d12_device *device)
const struct vkd3d_format * vkd3d_find_uint_format(const struct d3d12_device *device, DXGI_FORMAT dxgi_format)
static bool is_power_of_two(unsigned int x)
const char * debug_cpu_handle(D3D12_CPU_DESCRIPTOR_HANDLE handle)
HRESULT vkd3d_get_private_data(struct vkd3d_private_store *store, const GUID *tag, unsigned int *out_size, void *out)
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr
const char * vkd3d_dbg_sprintf(const char *fmt,...) VKD3D_PRINTF_FUNC(1
static void vkd3d_mutex_unlock(struct vkd3d_mutex *lock)
static void vkd3d_mutex_lock(struct vkd3d_mutex *lock)
#define VKD3D_ASSERT(cond)
static void * vkd3d_calloc(size_t count, size_t size)
static void vkd3d_free(void *ptr)
static void * vkd3d_malloc(size_t size)
@ VKD3D_FORMAT_TYPE_TYPELESS
static void vkd3d_private_data_destroy(struct vkd3d_private_data *data)
#define VKD3D_MAX_COMPATIBLE_FORMAT_COUNT
char * vkd3d_strdup_w_utf8(const WCHAR *wstr, size_t wchar_size)
VkFlags VkMemoryPropertyFlags
@ VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
@ VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
@ VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
@ VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
@ VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
@ VK_MEMORY_PROPERTY_PROTECTED_BIT
@ VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
@ VK_MEMORY_PROPERTY_HOST_CACHED_BIT
@ VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
PFN_vkVoidFunction(VKAPI_PTR * PFN_vkGetInstanceProcAddr)(VkInstance, const char *)
void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties *pFormatProperties)
VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(VkDevice device, const VkDebugMarkerObjectNameInfoEXT *pNameInfo)
VkDebugReportObjectTypeEXT
VkFlags VkMemoryHeapFlags
VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties)
@ VK_IMAGE_ASPECT_STENCIL_BIT
@ VK_IMAGE_ASPECT_DEPTH_BIT
@ VK_MEMORY_HEAP_MULTI_INSTANCE_BIT
@ VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *pName)
@ VK_QUEUE_SPARSE_BINDING_BIT
@ VK_QUEUE_VIDEO_ENCODE_BIT_KHR
@ VK_QUEUE_VIDEO_DECODE_BIT_KHR
@ VK_ERROR_EXTENSION_NOT_PRESENT
@ VK_ERROR_OUT_OF_HOST_MEMORY
@ VK_ERROR_OUT_OF_DEVICE_MEMORY
@ VK_FORMAT_R16G16B16A16_UNORM
@ VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT
@ VK_FORMAT_A1R5G5B5_UNORM_PACK16
@ VK_FORMAT_R8G8B8A8_SRGB
@ VK_FORMAT_R32G32B32_UINT
@ VK_FORMAT_BC2_UNORM_BLOCK
@ VK_FORMAT_D24_UNORM_S8_UINT
@ VK_FORMAT_B8G8R8A8_UNORM
@ VK_FORMAT_R16G16B16A16_SNORM
@ VK_FORMAT_BC7_SRGB_BLOCK
@ VK_FORMAT_R16G16_SFLOAT
@ VK_FORMAT_R32G32_SFLOAT
@ VK_FORMAT_BC2_SRGB_BLOCK
@ VK_FORMAT_BC1_RGBA_SRGB_BLOCK
@ VK_FORMAT_BC3_UNORM_BLOCK
@ VK_FORMAT_R32G32B32A32_SFLOAT
@ VK_FORMAT_R32G32B32A32_UINT
@ VK_FORMAT_BC6H_SFLOAT_BLOCK
@ VK_FORMAT_A2B10G10R10_UINT_PACK32
@ VK_FORMAT_R5G6B5_UNORM_PACK16
@ VK_FORMAT_R16G16B16A16_SINT
@ VK_FORMAT_A2B10G10R10_UNORM_PACK32
@ VK_FORMAT_B8G8R8A8_SRGB
@ VK_FORMAT_R8G8B8A8_UNORM
@ VK_FORMAT_BC4_SNORM_BLOCK
@ VK_FORMAT_R32G32B32_SINT
@ VK_FORMAT_BC6H_UFLOAT_BLOCK
@ VK_FORMAT_BC7_UNORM_BLOCK
@ VK_FORMAT_R16G16B16A16_SFLOAT
@ VK_FORMAT_BC5_UNORM_BLOCK
@ VK_FORMAT_R8G8B8A8_SINT
@ VK_FORMAT_R8G8B8A8_SNORM
@ VK_FORMAT_R16G16B16A16_UINT
@ VK_FORMAT_R32G32B32A32_SINT
@ VK_FORMAT_BC3_SRGB_BLOCK
@ VK_FORMAT_R32G32B32_SFLOAT
@ VK_FORMAT_R8G8B8A8_UINT
@ VK_FORMAT_BC1_RGBA_UNORM_BLOCK
@ VK_FORMAT_B10G11R11_UFLOAT_PACK32
@ VK_FORMAT_BC5_SNORM_BLOCK
@ VK_FORMAT_BC4_UNORM_BLOCK
@ VK_FORMAT_D32_SFLOAT_S8_UINT
VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkInstance *pInstance)
@ VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define DXGI_ERROR_NOT_FOUND
#define DXGI_ERROR_MORE_DATA