| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871 |
- #pragma once
- #define DEF_FUNC(x) PFN_vk##x x
- struct vk_inst_funcs {
- DEF_FUNC(GetInstanceProcAddr);
- DEF_FUNC(DestroyInstance);
- DEF_FUNC(CreateWin32SurfaceKHR);
- DEF_FUNC(DestroySurfaceKHR);
- DEF_FUNC(GetPhysicalDeviceMemoryProperties);
- DEF_FUNC(GetPhysicalDeviceImageFormatProperties2);
- };
- struct vk_device_funcs {
- DEF_FUNC(GetDeviceProcAddr);
- DEF_FUNC(DestroyDevice);
- DEF_FUNC(CreateSwapchainKHR);
- DEF_FUNC(DestroySwapchainKHR);
- DEF_FUNC(QueuePresentKHR);
- DEF_FUNC(AllocateMemory);
- DEF_FUNC(FreeMemory);
- DEF_FUNC(BindImageMemory);
- DEF_FUNC(BindImageMemory2);
- DEF_FUNC(GetSwapchainImagesKHR);
- DEF_FUNC(CreateImage);
- DEF_FUNC(DestroyImage);
- DEF_FUNC(GetImageMemoryRequirements);
- DEF_FUNC(GetImageMemoryRequirements2);
- DEF_FUNC(BeginCommandBuffer);
- DEF_FUNC(EndCommandBuffer);
- DEF_FUNC(CmdCopyImage);
- DEF_FUNC(CmdPipelineBarrier);
- DEF_FUNC(GetDeviceQueue);
- DEF_FUNC(QueueSubmit);
- DEF_FUNC(CreateCommandPool);
- DEF_FUNC(DestroyCommandPool);
- DEF_FUNC(AllocateCommandBuffers);
- DEF_FUNC(CreateFence);
- DEF_FUNC(DestroyFence);
- DEF_FUNC(WaitForFences);
- DEF_FUNC(ResetFences);
- };
- #undef DEF_FUNC
- const char *vk_format_to_str(VkFormat format)
- {
- switch (format) {
- default:
- #define VAL(x) \
- case x: \
- return #x
- VAL(VK_FORMAT_UNDEFINED);
- VAL(VK_FORMAT_R4G4_UNORM_PACK8);
- VAL(VK_FORMAT_R4G4B4A4_UNORM_PACK16);
- VAL(VK_FORMAT_B4G4R4A4_UNORM_PACK16);
- VAL(VK_FORMAT_R5G6B5_UNORM_PACK16);
- VAL(VK_FORMAT_B5G6R5_UNORM_PACK16);
- VAL(VK_FORMAT_R5G5B5A1_UNORM_PACK16);
- VAL(VK_FORMAT_B5G5R5A1_UNORM_PACK16);
- VAL(VK_FORMAT_A1R5G5B5_UNORM_PACK16);
- VAL(VK_FORMAT_R8_UNORM);
- VAL(VK_FORMAT_R8_SNORM);
- VAL(VK_FORMAT_R8_USCALED);
- VAL(VK_FORMAT_R8_SSCALED);
- VAL(VK_FORMAT_R8_UINT);
- VAL(VK_FORMAT_R8_SINT);
- VAL(VK_FORMAT_R8_SRGB);
- VAL(VK_FORMAT_R8G8_UNORM);
- VAL(VK_FORMAT_R8G8_SNORM);
- VAL(VK_FORMAT_R8G8_USCALED);
- VAL(VK_FORMAT_R8G8_SSCALED);
- VAL(VK_FORMAT_R8G8_UINT);
- VAL(VK_FORMAT_R8G8_SINT);
- VAL(VK_FORMAT_R8G8_SRGB);
- VAL(VK_FORMAT_R8G8B8_UNORM);
- VAL(VK_FORMAT_R8G8B8_SNORM);
- VAL(VK_FORMAT_R8G8B8_USCALED);
- VAL(VK_FORMAT_R8G8B8_SSCALED);
- VAL(VK_FORMAT_R8G8B8_UINT);
- VAL(VK_FORMAT_R8G8B8_SINT);
- VAL(VK_FORMAT_R8G8B8_SRGB);
- VAL(VK_FORMAT_B8G8R8_UNORM);
- VAL(VK_FORMAT_B8G8R8_SNORM);
- VAL(VK_FORMAT_B8G8R8_USCALED);
- VAL(VK_FORMAT_B8G8R8_SSCALED);
- VAL(VK_FORMAT_B8G8R8_UINT);
- VAL(VK_FORMAT_B8G8R8_SINT);
- VAL(VK_FORMAT_B8G8R8_SRGB);
- VAL(VK_FORMAT_R8G8B8A8_UNORM);
- VAL(VK_FORMAT_R8G8B8A8_SNORM);
- VAL(VK_FORMAT_R8G8B8A8_USCALED);
- VAL(VK_FORMAT_R8G8B8A8_SSCALED);
- VAL(VK_FORMAT_R8G8B8A8_UINT);
- VAL(VK_FORMAT_R8G8B8A8_SINT);
- VAL(VK_FORMAT_R8G8B8A8_SRGB); /* dota 2 */
- VAL(VK_FORMAT_B8G8R8A8_UNORM);
- VAL(VK_FORMAT_B8G8R8A8_SNORM);
- VAL(VK_FORMAT_B8G8R8A8_USCALED);
- VAL(VK_FORMAT_B8G8R8A8_SSCALED);
- VAL(VK_FORMAT_B8G8R8A8_UINT);
- VAL(VK_FORMAT_B8G8R8A8_SINT);
- VAL(VK_FORMAT_B8G8R8A8_SRGB);
- VAL(VK_FORMAT_A8B8G8R8_UNORM_PACK32);
- VAL(VK_FORMAT_A8B8G8R8_SNORM_PACK32);
- VAL(VK_FORMAT_A8B8G8R8_USCALED_PACK32);
- VAL(VK_FORMAT_A8B8G8R8_SSCALED_PACK32);
- VAL(VK_FORMAT_A8B8G8R8_UINT_PACK32);
- VAL(VK_FORMAT_A8B8G8R8_SINT_PACK32);
- VAL(VK_FORMAT_A8B8G8R8_SRGB_PACK32);
- VAL(VK_FORMAT_A2R10G10B10_UNORM_PACK32);
- VAL(VK_FORMAT_A2R10G10B10_SNORM_PACK32);
- VAL(VK_FORMAT_A2R10G10B10_USCALED_PACK32);
- VAL(VK_FORMAT_A2R10G10B10_SSCALED_PACK32);
- VAL(VK_FORMAT_A2R10G10B10_UINT_PACK32);
- VAL(VK_FORMAT_A2R10G10B10_SINT_PACK32);
- VAL(VK_FORMAT_A2B10G10R10_UNORM_PACK32);
- VAL(VK_FORMAT_A2B10G10R10_SNORM_PACK32);
- VAL(VK_FORMAT_A2B10G10R10_USCALED_PACK32);
- VAL(VK_FORMAT_A2B10G10R10_SSCALED_PACK32);
- VAL(VK_FORMAT_A2B10G10R10_UINT_PACK32);
- VAL(VK_FORMAT_A2B10G10R10_SINT_PACK32);
- VAL(VK_FORMAT_R16_UNORM);
- VAL(VK_FORMAT_R16_SNORM);
- VAL(VK_FORMAT_R16_USCALED);
- VAL(VK_FORMAT_R16_SSCALED);
- VAL(VK_FORMAT_R16_UINT);
- VAL(VK_FORMAT_R16_SINT);
- VAL(VK_FORMAT_R16_SFLOAT);
- VAL(VK_FORMAT_R16G16_UNORM);
- VAL(VK_FORMAT_R16G16_SNORM);
- VAL(VK_FORMAT_R16G16_USCALED);
- VAL(VK_FORMAT_R16G16_SSCALED);
- VAL(VK_FORMAT_R16G16_UINT);
- VAL(VK_FORMAT_R16G16_SINT);
- VAL(VK_FORMAT_R16G16_SFLOAT);
- VAL(VK_FORMAT_R16G16B16_UNORM);
- VAL(VK_FORMAT_R16G16B16_SNORM);
- VAL(VK_FORMAT_R16G16B16_USCALED);
- VAL(VK_FORMAT_R16G16B16_SSCALED);
- VAL(VK_FORMAT_R16G16B16_UINT);
- VAL(VK_FORMAT_R16G16B16_SINT);
- VAL(VK_FORMAT_R16G16B16_SFLOAT);
- VAL(VK_FORMAT_R16G16B16A16_UNORM);
- VAL(VK_FORMAT_R16G16B16A16_SNORM);
- VAL(VK_FORMAT_R16G16B16A16_USCALED);
- VAL(VK_FORMAT_R16G16B16A16_SSCALED);
- VAL(VK_FORMAT_R16G16B16A16_UINT);
- VAL(VK_FORMAT_R16G16B16A16_SINT);
- VAL(VK_FORMAT_R16G16B16A16_SFLOAT);
- VAL(VK_FORMAT_R32_UINT);
- VAL(VK_FORMAT_R32_SINT);
- VAL(VK_FORMAT_R32_SFLOAT);
- VAL(VK_FORMAT_R32G32_UINT);
- VAL(VK_FORMAT_R32G32_SINT);
- VAL(VK_FORMAT_R32G32_SFLOAT);
- VAL(VK_FORMAT_R32G32B32_UINT);
- VAL(VK_FORMAT_R32G32B32_SINT);
- VAL(VK_FORMAT_R32G32B32_SFLOAT);
- VAL(VK_FORMAT_R32G32B32A32_UINT);
- VAL(VK_FORMAT_R32G32B32A32_SINT);
- VAL(VK_FORMAT_R32G32B32A32_SFLOAT);
- VAL(VK_FORMAT_R64_UINT);
- VAL(VK_FORMAT_R64_SINT);
- VAL(VK_FORMAT_R64_SFLOAT);
- VAL(VK_FORMAT_R64G64_UINT);
- VAL(VK_FORMAT_R64G64_SINT);
- VAL(VK_FORMAT_R64G64_SFLOAT);
- VAL(VK_FORMAT_R64G64B64_UINT);
- VAL(VK_FORMAT_R64G64B64_SINT);
- VAL(VK_FORMAT_R64G64B64_SFLOAT);
- VAL(VK_FORMAT_R64G64B64A64_UINT);
- VAL(VK_FORMAT_R64G64B64A64_SINT);
- VAL(VK_FORMAT_R64G64B64A64_SFLOAT);
- VAL(VK_FORMAT_B10G11R11_UFLOAT_PACK32);
- VAL(VK_FORMAT_E5B9G9R9_UFLOAT_PACK32);
- VAL(VK_FORMAT_D16_UNORM);
- VAL(VK_FORMAT_X8_D24_UNORM_PACK32);
- VAL(VK_FORMAT_D32_SFLOAT);
- VAL(VK_FORMAT_S8_UINT);
- VAL(VK_FORMAT_D16_UNORM_S8_UINT);
- VAL(VK_FORMAT_D24_UNORM_S8_UINT);
- VAL(VK_FORMAT_D32_SFLOAT_S8_UINT);
- VAL(VK_FORMAT_BC1_RGB_UNORM_BLOCK);
- VAL(VK_FORMAT_BC1_RGB_SRGB_BLOCK);
- VAL(VK_FORMAT_BC1_RGBA_UNORM_BLOCK);
- VAL(VK_FORMAT_BC1_RGBA_SRGB_BLOCK);
- VAL(VK_FORMAT_BC2_UNORM_BLOCK);
- VAL(VK_FORMAT_BC2_SRGB_BLOCK);
- VAL(VK_FORMAT_BC3_UNORM_BLOCK);
- VAL(VK_FORMAT_BC3_SRGB_BLOCK);
- VAL(VK_FORMAT_BC4_UNORM_BLOCK);
- VAL(VK_FORMAT_BC4_SNORM_BLOCK);
- VAL(VK_FORMAT_BC5_UNORM_BLOCK);
- VAL(VK_FORMAT_BC5_SNORM_BLOCK);
- VAL(VK_FORMAT_BC6H_UFLOAT_BLOCK);
- VAL(VK_FORMAT_BC6H_SFLOAT_BLOCK);
- VAL(VK_FORMAT_BC7_UNORM_BLOCK);
- VAL(VK_FORMAT_BC7_SRGB_BLOCK);
- VAL(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK);
- VAL(VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK);
- VAL(VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK);
- VAL(VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK);
- VAL(VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK);
- VAL(VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK);
- VAL(VK_FORMAT_EAC_R11_UNORM_BLOCK);
- VAL(VK_FORMAT_EAC_R11_SNORM_BLOCK);
- VAL(VK_FORMAT_EAC_R11G11_UNORM_BLOCK);
- VAL(VK_FORMAT_EAC_R11G11_SNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_4x4_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_4x4_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_5x4_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_5x4_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_5x5_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_5x5_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_6x5_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_6x5_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_6x6_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_6x6_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_8x5_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_8x5_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_8x6_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_8x6_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_8x8_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_8x8_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_10x5_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_10x5_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_10x6_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_10x6_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_10x8_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_10x8_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_10x10_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_10x10_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_12x10_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_12x10_SRGB_BLOCK);
- VAL(VK_FORMAT_ASTC_12x12_UNORM_BLOCK);
- VAL(VK_FORMAT_ASTC_12x12_SRGB_BLOCK);
- VAL(VK_FORMAT_G8B8G8R8_422_UNORM);
- VAL(VK_FORMAT_B8G8R8G8_422_UNORM);
- VAL(VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM);
- VAL(VK_FORMAT_G8_B8R8_2PLANE_420_UNORM);
- VAL(VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM);
- VAL(VK_FORMAT_G8_B8R8_2PLANE_422_UNORM);
- VAL(VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM);
- VAL(VK_FORMAT_R10X6_UNORM_PACK16);
- VAL(VK_FORMAT_R10X6G10X6_UNORM_2PACK16);
- VAL(VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16);
- VAL(VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16);
- VAL(VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16);
- VAL(VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16);
- VAL(VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16);
- VAL(VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16);
- VAL(VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16);
- VAL(VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16);
- VAL(VK_FORMAT_R12X4_UNORM_PACK16);
- VAL(VK_FORMAT_R12X4G12X4_UNORM_2PACK16);
- VAL(VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16);
- VAL(VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16);
- VAL(VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16);
- VAL(VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16);
- VAL(VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16);
- VAL(VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16);
- VAL(VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16);
- VAL(VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16);
- VAL(VK_FORMAT_G16B16G16R16_422_UNORM);
- VAL(VK_FORMAT_B16G16R16G16_422_UNORM);
- VAL(VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM);
- VAL(VK_FORMAT_G16_B16R16_2PLANE_420_UNORM);
- VAL(VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM);
- VAL(VK_FORMAT_G16_B16R16_2PLANE_422_UNORM);
- VAL(VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM);
- VAL(VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG);
- VAL(VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG);
- VAL(VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG);
- VAL(VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG);
- VAL(VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG);
- VAL(VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG);
- VAL(VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG);
- VAL(VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG);
- }
- }
- const char *result_to_str(VkResult result)
- {
- switch (result) {
- VAL(VK_SUCCESS);
- VAL(VK_NOT_READY);
- VAL(VK_TIMEOUT);
- VAL(VK_EVENT_SET);
- VAL(VK_EVENT_RESET);
- VAL(VK_INCOMPLETE);
- VAL(VK_ERROR_OUT_OF_HOST_MEMORY);
- VAL(VK_ERROR_OUT_OF_DEVICE_MEMORY);
- VAL(VK_ERROR_INITIALIZATION_FAILED);
- VAL(VK_ERROR_DEVICE_LOST);
- VAL(VK_ERROR_MEMORY_MAP_FAILED);
- VAL(VK_ERROR_LAYER_NOT_PRESENT);
- VAL(VK_ERROR_EXTENSION_NOT_PRESENT);
- VAL(VK_ERROR_FEATURE_NOT_PRESENT);
- VAL(VK_ERROR_INCOMPATIBLE_DRIVER);
- VAL(VK_ERROR_TOO_MANY_OBJECTS);
- VAL(VK_ERROR_FORMAT_NOT_SUPPORTED);
- VAL(VK_ERROR_FRAGMENTED_POOL);
- VAL(VK_ERROR_OUT_OF_POOL_MEMORY);
- VAL(VK_ERROR_INVALID_EXTERNAL_HANDLE);
- VAL(VK_ERROR_SURFACE_LOST_KHR);
- VAL(VK_ERROR_NATIVE_WINDOW_IN_USE_KHR);
- VAL(VK_SUBOPTIMAL_KHR);
- VAL(VK_ERROR_OUT_OF_DATE_KHR);
- VAL(VK_ERROR_INCOMPATIBLE_DISPLAY_KHR);
- VAL(VK_ERROR_VALIDATION_FAILED_EXT);
- VAL(VK_ERROR_INVALID_SHADER_NV);
- VAL(VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT);
- VAL(VK_ERROR_FRAGMENTATION_EXT);
- VAL(VK_ERROR_NOT_PERMITTED_EXT);
- VAL(VK_ERROR_INVALID_DEVICE_ADDRESS_EXT);
- VAL(VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT);
- //VAL(VK_ERROR_OUT_OF_POOL_MEMORY_KHR);
- //VAL(VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR);
- //VAL(VK_RESULT_BEGIN_RANGE);
- //VAL(VK_RESULT_END_RANGE);
- VAL(VK_RESULT_RANGE_SIZE);
- VAL(VK_RESULT_MAX_ENUM);
- #undef VAL
- default:
- return "Unknown VkResult";
- break;
- }
- }
- DXGI_FORMAT vk_format_to_dxgi(VkFormat format)
- {
- //this is not a real format matching !
- //ex: we need to avoid stacking srg
- DXGI_FORMAT dxgi_format = DXGI_FORMAT_UNKNOWN;
- switch (format) {
- default:
- case VK_FORMAT_UNDEFINED:
- break;
- case VK_FORMAT_R4G4_UNORM_PACK8:
- break;
- case VK_FORMAT_R4G4B4A4_UNORM_PACK16:
- break;
- case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
- dxgi_format = DXGI_FORMAT_B4G4R4A4_UNORM;
- break;
- case VK_FORMAT_R5G6B5_UNORM_PACK16:
- break;
- case VK_FORMAT_B5G6R5_UNORM_PACK16:
- dxgi_format = DXGI_FORMAT_B5G6R5_UNORM;
- break;
- case VK_FORMAT_R5G5B5A1_UNORM_PACK16:
- break;
- case VK_FORMAT_B5G5R5A1_UNORM_PACK16:
- dxgi_format = DXGI_FORMAT_B5G5R5A1_UNORM;
- break;
- case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
- break;
- case VK_FORMAT_R8_UNORM:
- dxgi_format = DXGI_FORMAT_R8_UNORM;
- break;
- case VK_FORMAT_R8_SNORM:
- dxgi_format = DXGI_FORMAT_R8_SNORM;
- break;
- case VK_FORMAT_R8_USCALED:
- break;
- case VK_FORMAT_R8_SSCALED:
- break;
- case VK_FORMAT_R8_UINT:
- dxgi_format = DXGI_FORMAT_R8_UINT;
- break;
- case VK_FORMAT_R8_SINT:
- dxgi_format = DXGI_FORMAT_R8_SINT;
- break;
- case VK_FORMAT_R8_SRGB:
- break;
- case VK_FORMAT_R8G8_UNORM:
- dxgi_format = DXGI_FORMAT_R8G8_UNORM;
- break;
- case VK_FORMAT_R8G8_SNORM:
- dxgi_format = DXGI_FORMAT_R8G8_SNORM;
- break;
- case VK_FORMAT_R8G8_USCALED:
- break;
- case VK_FORMAT_R8G8_SSCALED:
- break;
- case VK_FORMAT_R8G8_UINT:
- dxgi_format = DXGI_FORMAT_R8G8_UINT;
- break;
- case VK_FORMAT_R8G8_SINT:
- dxgi_format = DXGI_FORMAT_R8G8_UINT;
- break;
- case VK_FORMAT_R8G8_SRGB:
- break;
- case VK_FORMAT_R8G8B8_UNORM:
- break;
- case VK_FORMAT_R8G8B8_SNORM:
- break;
- case VK_FORMAT_R8G8B8_USCALED:
- break;
- case VK_FORMAT_R8G8B8_SSCALED:
- break;
- case VK_FORMAT_R8G8B8_UINT:
- break;
- case VK_FORMAT_R8G8B8_SINT:
- break;
- case VK_FORMAT_R8G8B8_SRGB:
- break;
- case VK_FORMAT_B8G8R8_UNORM:
- break;
- case VK_FORMAT_B8G8R8_SNORM:
- break;
- case VK_FORMAT_B8G8R8_USCALED:
- break;
- case VK_FORMAT_B8G8R8_SSCALED:
- break;
- case VK_FORMAT_B8G8R8_UINT:
- break;
- case VK_FORMAT_B8G8R8_SINT:
- break;
- case VK_FORMAT_B8G8R8_SRGB:
- break;
- case VK_FORMAT_R8G8B8A8_UNORM:
- dxgi_format = DXGI_FORMAT_R8G8B8A8_UNORM;
- break;
- case VK_FORMAT_R8G8B8A8_SNORM:
- dxgi_format = DXGI_FORMAT_R8G8B8A8_SNORM;
- break;
- case VK_FORMAT_R8G8B8A8_USCALED:
- break;
- case VK_FORMAT_R8G8B8A8_SSCALED:
- break;
- case VK_FORMAT_R8G8B8A8_UINT:
- dxgi_format = DXGI_FORMAT_R8G8B8A8_UINT;
- break;
- case VK_FORMAT_R8G8B8A8_SINT:
- dxgi_format = DXGI_FORMAT_R8G8B8A8_SINT;
- break;
- case VK_FORMAT_R8G8B8A8_SRGB:
- dxgi_format = DXGI_FORMAT_R8G8B8A8_UNORM;
- break; //dota2
- case VK_FORMAT_B8G8R8A8_UNORM:
- dxgi_format = DXGI_FORMAT_B8G8R8A8_UNORM;
- break;
- case VK_FORMAT_B8G8R8A8_SNORM:
- break;
- case VK_FORMAT_B8G8R8A8_USCALED:
- break;
- case VK_FORMAT_B8G8R8A8_SSCALED:
- break;
- case VK_FORMAT_B8G8R8A8_UINT:
- break;
- case VK_FORMAT_B8G8R8A8_SINT:
- break;
- case VK_FORMAT_B8G8R8A8_SRGB:
- dxgi_format = DXGI_FORMAT_B8G8R8A8_UNORM;
- break;
- case VK_FORMAT_A8B8G8R8_UNORM_PACK32:
- dxgi_format = DXGI_FORMAT_R8G8B8A8_UNORM;
- break;
- case VK_FORMAT_A8B8G8R8_SNORM_PACK32:
- break;
- case VK_FORMAT_A8B8G8R8_USCALED_PACK32:
- break;
- case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:
- break;
- case VK_FORMAT_A8B8G8R8_UINT_PACK32:
- break;
- case VK_FORMAT_A8B8G8R8_SINT_PACK32:
- break;
- case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
- break;
- case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
- break;
- case VK_FORMAT_A2R10G10B10_SNORM_PACK32:
- break;
- case VK_FORMAT_A2R10G10B10_USCALED_PACK32:
- break;
- case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:
- break;
- case VK_FORMAT_A2R10G10B10_UINT_PACK32:
- dxgi_format = DXGI_FORMAT_R10G10B10A2_UINT;
- break;
- case VK_FORMAT_A2R10G10B10_SINT_PACK32:
- break;
- case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
- dxgi_format = DXGI_FORMAT_R10G10B10A2_UNORM;
- break; //no man sky
- case VK_FORMAT_A2B10G10R10_SNORM_PACK32:
- break;
- case VK_FORMAT_A2B10G10R10_USCALED_PACK32:
- break;
- case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:
- break;
- case VK_FORMAT_A2B10G10R10_UINT_PACK32:
- break;
- case VK_FORMAT_A2B10G10R10_SINT_PACK32:
- break;
- case VK_FORMAT_R16_UNORM:
- dxgi_format = DXGI_FORMAT_R16_UNORM;
- break;
- case VK_FORMAT_R16_SNORM:
- dxgi_format = DXGI_FORMAT_R16_SNORM;
- break;
- case VK_FORMAT_R16_USCALED:
- break;
- case VK_FORMAT_R16_SSCALED:
- break;
- case VK_FORMAT_R16_UINT:
- dxgi_format = DXGI_FORMAT_R16_UINT;
- break;
- case VK_FORMAT_R16_SINT:
- dxgi_format = DXGI_FORMAT_R16_SINT;
- break;
- case VK_FORMAT_R16_SFLOAT:
- dxgi_format = DXGI_FORMAT_R16_FLOAT;
- break;
- case VK_FORMAT_R16G16_UNORM:
- dxgi_format = DXGI_FORMAT_R16G16_UNORM;
- break;
- case VK_FORMAT_R16G16_SNORM:
- dxgi_format = DXGI_FORMAT_R16G16_SNORM;
- break;
- case VK_FORMAT_R16G16_USCALED:
- break;
- case VK_FORMAT_R16G16_SSCALED:
- break;
- case VK_FORMAT_R16G16_UINT:
- dxgi_format = DXGI_FORMAT_R16G16_UINT;
- break;
- case VK_FORMAT_R16G16_SINT:
- dxgi_format = DXGI_FORMAT_R16G16_SINT;
- break;
- case VK_FORMAT_R16G16_SFLOAT:
- dxgi_format = DXGI_FORMAT_R16G16_FLOAT;
- break;
- case VK_FORMAT_R16G16B16_UNORM:
- break;
- case VK_FORMAT_R16G16B16_SNORM:
- break;
- case VK_FORMAT_R16G16B16_USCALED:
- break;
- case VK_FORMAT_R16G16B16_SSCALED:
- break;
- case VK_FORMAT_R16G16B16_UINT:
- break;
- case VK_FORMAT_R16G16B16_SINT:
- break;
- case VK_FORMAT_R16G16B16_SFLOAT:
- break;
- case VK_FORMAT_R16G16B16A16_UNORM:
- dxgi_format = DXGI_FORMAT_R16G16B16A16_UNORM;
- break;
- case VK_FORMAT_R16G16B16A16_SNORM:
- dxgi_format = DXGI_FORMAT_R16G16B16A16_SNORM;
- break;
- case VK_FORMAT_R16G16B16A16_USCALED:
- break;
- case VK_FORMAT_R16G16B16A16_SSCALED:
- break;
- case VK_FORMAT_R16G16B16A16_UINT:
- dxgi_format = DXGI_FORMAT_R16G16B16A16_UINT;
- break;
- case VK_FORMAT_R16G16B16A16_SINT:
- dxgi_format = DXGI_FORMAT_R16G16B16A16_SINT;
- break;
- case VK_FORMAT_R16G16B16A16_SFLOAT:
- dxgi_format = DXGI_FORMAT_R16G16B16A16_FLOAT;
- break;
- case VK_FORMAT_R32_UINT:
- dxgi_format = DXGI_FORMAT_R32_UINT;
- break;
- case VK_FORMAT_R32_SINT:
- dxgi_format = DXGI_FORMAT_R32_SINT;
- break;
- case VK_FORMAT_R32_SFLOAT:
- dxgi_format = DXGI_FORMAT_R32_FLOAT;
- break;
- case VK_FORMAT_R32G32_UINT:
- dxgi_format = DXGI_FORMAT_R32G32_UINT;
- break;
- case VK_FORMAT_R32G32_SINT:
- dxgi_format = DXGI_FORMAT_R32G32_SINT;
- break;
- case VK_FORMAT_R32G32_SFLOAT:
- dxgi_format = DXGI_FORMAT_R32G32_FLOAT;
- break;
- case VK_FORMAT_R32G32B32_UINT:
- dxgi_format = DXGI_FORMAT_R32G32B32_UINT;
- break;
- case VK_FORMAT_R32G32B32_SINT:
- dxgi_format = DXGI_FORMAT_R32G32B32_SINT;
- break;
- case VK_FORMAT_R32G32B32_SFLOAT:
- dxgi_format = DXGI_FORMAT_R32G32B32_FLOAT;
- break;
- case VK_FORMAT_R32G32B32A32_UINT:
- dxgi_format = DXGI_FORMAT_R32G32B32A32_UINT;
- break;
- case VK_FORMAT_R32G32B32A32_SINT:
- dxgi_format = DXGI_FORMAT_R32G32B32A32_SINT;
- break;
- case VK_FORMAT_R32G32B32A32_SFLOAT:
- dxgi_format = DXGI_FORMAT_R32G32B32A32_FLOAT;
- break;
- case VK_FORMAT_R64_UINT:
- break;
- case VK_FORMAT_R64_SINT:
- break;
- case VK_FORMAT_R64_SFLOAT:
- break;
- case VK_FORMAT_R64G64_UINT:
- break;
- case VK_FORMAT_R64G64_SINT:
- break;
- case VK_FORMAT_R64G64_SFLOAT:
- break;
- case VK_FORMAT_R64G64B64_UINT:
- break;
- case VK_FORMAT_R64G64B64_SINT:
- break;
- case VK_FORMAT_R64G64B64_SFLOAT:
- break;
- case VK_FORMAT_R64G64B64A64_UINT:
- break;
- case VK_FORMAT_R64G64B64A64_SINT:
- break;
- case VK_FORMAT_R64G64B64A64_SFLOAT:
- break;
- case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
- break;
- case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
- break;
- case VK_FORMAT_D16_UNORM:
- break;
- case VK_FORMAT_X8_D24_UNORM_PACK32:
- break;
- case VK_FORMAT_D32_SFLOAT:
- break;
- case VK_FORMAT_S8_UINT:
- break;
- case VK_FORMAT_D16_UNORM_S8_UINT:
- break;
- case VK_FORMAT_D24_UNORM_S8_UINT:
- break;
- case VK_FORMAT_D32_SFLOAT_S8_UINT:
- break;
- case VK_FORMAT_BC1_RGB_UNORM_BLOCK:
- break;
- case VK_FORMAT_BC1_RGB_SRGB_BLOCK:
- break;
- case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:
- break;
- case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:
- break;
- case VK_FORMAT_BC2_UNORM_BLOCK:
- break;
- case VK_FORMAT_BC2_SRGB_BLOCK:
- break;
- case VK_FORMAT_BC3_UNORM_BLOCK:
- break;
- case VK_FORMAT_BC3_SRGB_BLOCK:
- break;
- case VK_FORMAT_BC4_UNORM_BLOCK:
- break;
- case VK_FORMAT_BC4_SNORM_BLOCK:
- break;
- case VK_FORMAT_BC5_UNORM_BLOCK:
- break;
- case VK_FORMAT_BC5_SNORM_BLOCK:
- break;
- case VK_FORMAT_BC6H_UFLOAT_BLOCK:
- break;
- case VK_FORMAT_BC6H_SFLOAT_BLOCK:
- break;
- case VK_FORMAT_BC7_UNORM_BLOCK:
- break;
- case VK_FORMAT_BC7_SRGB_BLOCK:
- break;
- case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
- break;
- case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
- break;
- case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
- break;
- case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
- break;
- case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
- break;
- case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
- break;
- case VK_FORMAT_EAC_R11_UNORM_BLOCK:
- break;
- case VK_FORMAT_EAC_R11_SNORM_BLOCK:
- break;
- case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
- break;
- case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
- break;
- case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
- break;
- case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
- break;
- case VK_FORMAT_G8B8G8R8_422_UNORM:
- break;
- case VK_FORMAT_B8G8R8G8_422_UNORM:
- break;
- case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:
- break;
- case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
- break;
- case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:
- break;
- case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:
- break;
- case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:
- break;
- case VK_FORMAT_R10X6_UNORM_PACK16:
- break;
- case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:
- break;
- case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:
- break;
- case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:
- break;
- case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:
- break;
- case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:
- break;
- case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:
- break;
- case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:
- break;
- case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:
- break;
- case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:
- break;
- case VK_FORMAT_R12X4_UNORM_PACK16:
- break;
- case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:
- break;
- case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:
- break;
- case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:
- break;
- case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:
- break;
- case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:
- break;
- case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:
- break;
- case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:
- break;
- case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:
- break;
- case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:
- break;
- case VK_FORMAT_G16B16G16R16_422_UNORM:
- break;
- case VK_FORMAT_B16G16R16G16_422_UNORM:
- break;
- case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:
- break;
- case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:
- break;
- case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:
- break;
- case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:
- break;
- case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:
- break;
- case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:
- break;
- case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:
- break;
- case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:
- break;
- case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:
- break;
- case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
- break;
- case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
- break;
- case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
- break;
- case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:
- break;
- }
- return dxgi_format;
- }
- //#define DEBUG_PRINT
- //#define MORE_DEBUGGING
- //#define DEBUG_PRINT_PROCADDR
- #ifdef DEBUG_PRINT
- #include <stdio.h>
- #define debug(format, ...) \
- do { \
- char str[256]; \
- snprintf(str, sizeof(str) - 1, "%s " format "\n", \
- "[OBS graphics-hook]", ##__VA_ARGS__); \
- OutputDebugStringA(str); \
- } while (false)
- #define debug_res(x, y) debug("%s result: %s", x, result_to_str(y))
- #else
- #define debug(x, ...)
- #define debug_res(x, y)
- #endif
- #ifdef DEBUG_PRINT_PROCADDR
- #define debug_procaddr(format, ...) debug(format, ##__VA_ARGS__)
- #else
- #define debug_procaddr(format, ...)
- #endif
|