mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-11 09:11:00 +00:00
Track enough while READING to set drawcall topology/index width
This commit is contained in:
@@ -26,6 +26,702 @@
|
||||
#include "vk_manager.h"
|
||||
#include "vk_resources.h"
|
||||
|
||||
ResourceFormat MakeResourceFormat(VkFormat fmt)
|
||||
{
|
||||
ResourceFormat ret;
|
||||
|
||||
ret.rawType = (uint32_t)fmt;
|
||||
ret.special = false;
|
||||
ret.specialFormat = eSpecial_Unknown;
|
||||
ret.strname = ToStr::Get(fmt).substr(10); // 3 == strlen("VK_FORMAT_")
|
||||
ret.compByteWidth = 0;
|
||||
ret.compCount = 0;
|
||||
ret.compType = eCompType_None;
|
||||
ret.srgbCorrected = false;
|
||||
|
||||
if(fmt == VK_FORMAT_UNDEFINED)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
// VKTODOMED R4G4, R4G4B4A4, and refactor BGRA formats
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_B4G4R4A4_UNORM:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_B4G4R4A4;
|
||||
break;
|
||||
case VK_FORMAT_R10G10B10A2_UNORM:
|
||||
case VK_FORMAT_R10G10B10A2_SNORM:
|
||||
case VK_FORMAT_R10G10B10A2_USCALED:
|
||||
case VK_FORMAT_R10G10B10A2_SSCALED:
|
||||
case VK_FORMAT_R10G10B10A2_UINT:
|
||||
case VK_FORMAT_R10G10B10A2_SINT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_R10G10B10A2;
|
||||
break;
|
||||
case VK_FORMAT_R11G11B10_UFLOAT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_R11G11B10;
|
||||
break;
|
||||
case VK_FORMAT_R9G9B9E5_UFLOAT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_R9G9B9E5;
|
||||
break;
|
||||
case VK_FORMAT_D16_UNORM_S8_UINT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_D16S8;
|
||||
break;
|
||||
case VK_FORMAT_D24_UNORM_S8_UINT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_D24S8;
|
||||
break;
|
||||
case VK_FORMAT_D32_SFLOAT_S8_UINT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_D32S8;
|
||||
break;
|
||||
case VK_FORMAT_BC1_RGB_UNORM:
|
||||
case VK_FORMAT_BC1_RGB_SRGB:
|
||||
case VK_FORMAT_BC1_RGBA_UNORM:
|
||||
case VK_FORMAT_BC1_RGBA_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC1;
|
||||
break;
|
||||
case VK_FORMAT_BC2_UNORM:
|
||||
case VK_FORMAT_BC2_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC2;
|
||||
break;
|
||||
case VK_FORMAT_BC3_UNORM:
|
||||
case VK_FORMAT_BC3_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC3;
|
||||
break;
|
||||
case VK_FORMAT_BC4_UNORM:
|
||||
case VK_FORMAT_BC4_SNORM:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC4;
|
||||
break;
|
||||
case VK_FORMAT_BC5_UNORM:
|
||||
case VK_FORMAT_BC5_SNORM:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC5;
|
||||
break;
|
||||
case VK_FORMAT_BC6H_UFLOAT:
|
||||
case VK_FORMAT_BC6H_SFLOAT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC6;
|
||||
break;
|
||||
case VK_FORMAT_BC7_UNORM:
|
||||
case VK_FORMAT_BC7_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC7;
|
||||
break;
|
||||
case VK_FORMAT_ETC2_R8G8B8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_ETC2;
|
||||
break;
|
||||
case VK_FORMAT_EAC_R11_UNORM:
|
||||
case VK_FORMAT_EAC_R11_SNORM:
|
||||
case VK_FORMAT_EAC_R11G11_UNORM:
|
||||
case VK_FORMAT_EAC_R11G11_SNORM:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_EAC;
|
||||
break;
|
||||
case VK_FORMAT_ASTC_4x4_UNORM:
|
||||
case VK_FORMAT_ASTC_4x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x4_UNORM:
|
||||
case VK_FORMAT_ASTC_5x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x5_UNORM:
|
||||
case VK_FORMAT_ASTC_5x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x5_UNORM:
|
||||
case VK_FORMAT_ASTC_6x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x6_UNORM:
|
||||
case VK_FORMAT_ASTC_6x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x5_UNORM:
|
||||
case VK_FORMAT_ASTC_8x5_SRGB:
|
||||
case VK_FORMAT_ASTC_8x6_UNORM:
|
||||
case VK_FORMAT_ASTC_8x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x8_UNORM:
|
||||
case VK_FORMAT_ASTC_8x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x5_UNORM:
|
||||
case VK_FORMAT_ASTC_10x5_SRGB:
|
||||
case VK_FORMAT_ASTC_10x6_UNORM:
|
||||
case VK_FORMAT_ASTC_10x6_SRGB:
|
||||
case VK_FORMAT_ASTC_10x8_UNORM:
|
||||
case VK_FORMAT_ASTC_10x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x10_UNORM:
|
||||
case VK_FORMAT_ASTC_10x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x10_UNORM:
|
||||
case VK_FORMAT_ASTC_12x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x12_UNORM:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_ASTC;
|
||||
break;
|
||||
case VK_FORMAT_B8G8R8A8_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SNORM:
|
||||
case VK_FORMAT_B8G8R8A8_USCALED:
|
||||
case VK_FORMAT_B8G8R8A8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8A8_UINT:
|
||||
case VK_FORMAT_B8G8R8A8_SINT:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_B8G8R8A8;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_R8_UNORM:
|
||||
case VK_FORMAT_R8_SNORM:
|
||||
case VK_FORMAT_R8_USCALED:
|
||||
case VK_FORMAT_R8_SSCALED:
|
||||
case VK_FORMAT_R8_UINT:
|
||||
case VK_FORMAT_R8_SINT:
|
||||
case VK_FORMAT_R8_SRGB:
|
||||
case VK_FORMAT_R16_UNORM:
|
||||
case VK_FORMAT_R16_SNORM:
|
||||
case VK_FORMAT_R16_USCALED:
|
||||
case VK_FORMAT_R16_SSCALED:
|
||||
case VK_FORMAT_R16_UINT:
|
||||
case VK_FORMAT_R16_SINT:
|
||||
case VK_FORMAT_R16_SFLOAT:
|
||||
case VK_FORMAT_R32_UINT:
|
||||
case VK_FORMAT_R32_SINT:
|
||||
case VK_FORMAT_R32_SFLOAT:
|
||||
case VK_FORMAT_R64_SFLOAT:
|
||||
case VK_FORMAT_D16_UNORM:
|
||||
case VK_FORMAT_D24_UNORM:
|
||||
case VK_FORMAT_D32_SFLOAT:
|
||||
case VK_FORMAT_S8_UINT:
|
||||
case VK_FORMAT_BC4_UNORM:
|
||||
case VK_FORMAT_BC4_SNORM:
|
||||
case VK_FORMAT_EAC_R11_UNORM:
|
||||
case VK_FORMAT_EAC_R11_SNORM:
|
||||
ret.compCount = 1;
|
||||
break;
|
||||
case VK_FORMAT_R4G4_UNORM:
|
||||
case VK_FORMAT_R4G4_USCALED:
|
||||
case VK_FORMAT_R8G8_UNORM:
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8_USCALED:
|
||||
case VK_FORMAT_R8G8_SSCALED:
|
||||
case VK_FORMAT_R8G8_UINT:
|
||||
case VK_FORMAT_R8G8_SINT:
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
case VK_FORMAT_R16G16_UNORM:
|
||||
case VK_FORMAT_R16G16_SNORM:
|
||||
case VK_FORMAT_R16G16_USCALED:
|
||||
case VK_FORMAT_R16G16_SSCALED:
|
||||
case VK_FORMAT_R16G16_UINT:
|
||||
case VK_FORMAT_R16G16_SINT:
|
||||
case VK_FORMAT_R16G16_SFLOAT:
|
||||
case VK_FORMAT_R32G32_UINT:
|
||||
case VK_FORMAT_R32G32_SINT:
|
||||
case VK_FORMAT_R32G32_SFLOAT:
|
||||
case VK_FORMAT_R64G64_SFLOAT:
|
||||
case VK_FORMAT_D16_UNORM_S8_UINT:
|
||||
case VK_FORMAT_D24_UNORM_S8_UINT:
|
||||
case VK_FORMAT_D32_SFLOAT_S8_UINT:
|
||||
case VK_FORMAT_BC5_UNORM:
|
||||
case VK_FORMAT_BC5_SNORM:
|
||||
case VK_FORMAT_EAC_R11G11_UNORM:
|
||||
case VK_FORMAT_EAC_R11G11_SNORM:
|
||||
ret.compCount = 2;
|
||||
break;
|
||||
case VK_FORMAT_R5G6B5_UNORM:
|
||||
case VK_FORMAT_R5G6B5_USCALED:
|
||||
case VK_FORMAT_R8G8B8_UNORM:
|
||||
case VK_FORMAT_R8G8B8_SNORM:
|
||||
case VK_FORMAT_R8G8B8_USCALED:
|
||||
case VK_FORMAT_R8G8B8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8_UINT:
|
||||
case VK_FORMAT_R8G8B8_SINT:
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
case VK_FORMAT_R16G16B16_UNORM:
|
||||
case VK_FORMAT_R16G16B16_SNORM:
|
||||
case VK_FORMAT_R16G16B16_USCALED:
|
||||
case VK_FORMAT_R16G16B16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16_UINT:
|
||||
case VK_FORMAT_R16G16B16_SINT:
|
||||
case VK_FORMAT_R16G16B16_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64_SFLOAT:
|
||||
case VK_FORMAT_R11G11B10_UFLOAT:
|
||||
case VK_FORMAT_R9G9B9E5_UFLOAT:
|
||||
case VK_FORMAT_BC1_RGB_UNORM:
|
||||
case VK_FORMAT_BC1_RGB_SRGB:
|
||||
case VK_FORMAT_BC6H_UFLOAT:
|
||||
case VK_FORMAT_BC6H_SFLOAT:
|
||||
case VK_FORMAT_ETC2_R8G8B8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8_SRGB:
|
||||
case VK_FORMAT_B5G6R5_UNORM:
|
||||
case VK_FORMAT_B5G6R5_USCALED:
|
||||
case VK_FORMAT_B8G8R8_UNORM:
|
||||
case VK_FORMAT_B8G8R8_SNORM:
|
||||
case VK_FORMAT_B8G8R8_USCALED:
|
||||
case VK_FORMAT_B8G8R8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8_UINT:
|
||||
case VK_FORMAT_B8G8R8_SINT:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
ret.compCount = 3;
|
||||
break;
|
||||
case VK_FORMAT_R4G4B4A4_UNORM:
|
||||
case VK_FORMAT_R4G4B4A4_USCALED:
|
||||
case VK_FORMAT_R5G5B5A1_UNORM:
|
||||
case VK_FORMAT_R5G5B5A1_USCALED:
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SNORM:
|
||||
case VK_FORMAT_R8G8B8A8_USCALED:
|
||||
case VK_FORMAT_R8G8B8A8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8A8_UINT:
|
||||
case VK_FORMAT_R8G8B8A8_SINT:
|
||||
case VK_FORMAT_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_R32G32B32_UINT:
|
||||
case VK_FORMAT_R32G32B32_SINT:
|
||||
case VK_FORMAT_R32G32B32_SFLOAT:
|
||||
case VK_FORMAT_R10G10B10A2_UNORM:
|
||||
case VK_FORMAT_R10G10B10A2_SNORM:
|
||||
case VK_FORMAT_R10G10B10A2_USCALED:
|
||||
case VK_FORMAT_R10G10B10A2_SSCALED:
|
||||
case VK_FORMAT_R10G10B10A2_UINT:
|
||||
case VK_FORMAT_R10G10B10A2_SINT:
|
||||
case VK_FORMAT_R16G16B16A16_UNORM:
|
||||
case VK_FORMAT_R16G16B16A16_SNORM:
|
||||
case VK_FORMAT_R16G16B16A16_USCALED:
|
||||
case VK_FORMAT_R16G16B16A16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16A16_UINT:
|
||||
case VK_FORMAT_R16G16B16A16_SINT:
|
||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32A32_UINT:
|
||||
case VK_FORMAT_R32G32B32A32_SINT:
|
||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64A64_SFLOAT:
|
||||
case VK_FORMAT_BC1_RGBA_UNORM:
|
||||
case VK_FORMAT_BC1_RGBA_SRGB:
|
||||
case VK_FORMAT_BC2_UNORM:
|
||||
case VK_FORMAT_BC2_SRGB:
|
||||
case VK_FORMAT_BC3_UNORM:
|
||||
case VK_FORMAT_BC3_SRGB:
|
||||
case VK_FORMAT_BC7_UNORM:
|
||||
case VK_FORMAT_BC7_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_B4G4R4A4_UNORM:
|
||||
case VK_FORMAT_B5G5R5A1_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SNORM:
|
||||
case VK_FORMAT_B8G8R8A8_USCALED:
|
||||
case VK_FORMAT_B8G8R8A8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8A8_UINT:
|
||||
case VK_FORMAT_B8G8R8A8_SINT:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
case VK_FORMAT_B10G10R10A2_UNORM:
|
||||
case VK_FORMAT_B10G10R10A2_SNORM:
|
||||
case VK_FORMAT_B10G10R10A2_USCALED:
|
||||
case VK_FORMAT_B10G10R10A2_SSCALED:
|
||||
case VK_FORMAT_B10G10R10A2_UINT:
|
||||
case VK_FORMAT_B10G10R10A2_SINT:
|
||||
ret.compCount = 4;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_R8_SRGB:
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
case VK_FORMAT_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_BC1_RGB_SRGB:
|
||||
case VK_FORMAT_BC1_RGBA_SRGB:
|
||||
case VK_FORMAT_BC2_SRGB:
|
||||
case VK_FORMAT_BC3_SRGB:
|
||||
case VK_FORMAT_BC7_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_ASTC_4x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x5_SRGB:
|
||||
case VK_FORMAT_ASTC_8x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x5_SRGB:
|
||||
case VK_FORMAT_ASTC_10x6_SRGB:
|
||||
case VK_FORMAT_ASTC_10x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
ret.srgbCorrected = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_R4G4_UNORM:
|
||||
case VK_FORMAT_R4G4B4A4_UNORM:
|
||||
case VK_FORMAT_R5G6B5_UNORM:
|
||||
case VK_FORMAT_R5G5B5A1_UNORM:
|
||||
case VK_FORMAT_R8_UNORM:
|
||||
case VK_FORMAT_R8_SRGB:
|
||||
case VK_FORMAT_R8G8_UNORM:
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
case VK_FORMAT_R8G8B8_UNORM:
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_R10G10B10A2_UNORM:
|
||||
case VK_FORMAT_R16_UNORM:
|
||||
case VK_FORMAT_R16G16_UNORM:
|
||||
case VK_FORMAT_R16G16B16_UNORM:
|
||||
case VK_FORMAT_R16G16B16A16_UNORM:
|
||||
case VK_FORMAT_BC1_RGB_UNORM:
|
||||
case VK_FORMAT_BC1_RGB_SRGB:
|
||||
case VK_FORMAT_BC1_RGBA_UNORM:
|
||||
case VK_FORMAT_BC1_RGBA_SRGB:
|
||||
case VK_FORMAT_BC2_UNORM:
|
||||
case VK_FORMAT_BC2_SRGB:
|
||||
case VK_FORMAT_BC3_UNORM:
|
||||
case VK_FORMAT_BC3_SRGB:
|
||||
case VK_FORMAT_BC4_UNORM:
|
||||
case VK_FORMAT_BC5_UNORM:
|
||||
case VK_FORMAT_BC7_UNORM:
|
||||
case VK_FORMAT_BC7_SRGB:
|
||||
case VK_FORMAT_BC6H_UFLOAT:
|
||||
case VK_FORMAT_ETC2_R8G8B8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_EAC_R11_UNORM:
|
||||
case VK_FORMAT_EAC_R11G11_UNORM:
|
||||
case VK_FORMAT_ASTC_4x4_UNORM:
|
||||
case VK_FORMAT_ASTC_4x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x4_UNORM:
|
||||
case VK_FORMAT_ASTC_5x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x5_UNORM:
|
||||
case VK_FORMAT_ASTC_5x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x5_UNORM:
|
||||
case VK_FORMAT_ASTC_6x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x6_UNORM:
|
||||
case VK_FORMAT_ASTC_6x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x5_UNORM:
|
||||
case VK_FORMAT_ASTC_8x5_SRGB:
|
||||
case VK_FORMAT_ASTC_8x6_UNORM:
|
||||
case VK_FORMAT_ASTC_8x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x8_UNORM:
|
||||
case VK_FORMAT_ASTC_8x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x5_UNORM:
|
||||
case VK_FORMAT_ASTC_10x5_SRGB:
|
||||
case VK_FORMAT_ASTC_10x6_UNORM:
|
||||
case VK_FORMAT_ASTC_10x6_SRGB:
|
||||
case VK_FORMAT_ASTC_10x8_UNORM:
|
||||
case VK_FORMAT_ASTC_10x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x10_UNORM:
|
||||
case VK_FORMAT_ASTC_10x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x10_UNORM:
|
||||
case VK_FORMAT_ASTC_12x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x12_UNORM:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB:
|
||||
case VK_FORMAT_B4G4R4A4_UNORM:
|
||||
case VK_FORMAT_B5G5R5A1_UNORM:
|
||||
case VK_FORMAT_B5G6R5_UNORM:
|
||||
case VK_FORMAT_B8G8R8_UNORM:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
case VK_FORMAT_B8G8R8A8_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
case VK_FORMAT_B10G10R10A2_UNORM:
|
||||
ret.compType = eCompType_UNorm;
|
||||
break;
|
||||
case VK_FORMAT_R8_SNORM:
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8B8_SNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SNORM:
|
||||
case VK_FORMAT_R10G10B10A2_SNORM:
|
||||
case VK_FORMAT_R16_SNORM:
|
||||
case VK_FORMAT_R16G16_SNORM:
|
||||
case VK_FORMAT_R16G16B16_SNORM:
|
||||
case VK_FORMAT_R16G16B16A16_SNORM:
|
||||
case VK_FORMAT_BC4_SNORM:
|
||||
case VK_FORMAT_BC5_SNORM:
|
||||
case VK_FORMAT_BC6H_SFLOAT:
|
||||
case VK_FORMAT_EAC_R11_SNORM:
|
||||
case VK_FORMAT_EAC_R11G11_SNORM:
|
||||
case VK_FORMAT_B8G8R8_SNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SNORM:
|
||||
case VK_FORMAT_B10G10R10A2_SNORM:
|
||||
ret.compType = eCompType_SNorm;
|
||||
break;
|
||||
case VK_FORMAT_R4G4_USCALED:
|
||||
case VK_FORMAT_R4G4B4A4_USCALED:
|
||||
case VK_FORMAT_R5G6B5_USCALED:
|
||||
case VK_FORMAT_R5G5B5A1_USCALED:
|
||||
case VK_FORMAT_R8_USCALED:
|
||||
case VK_FORMAT_R8G8_USCALED:
|
||||
case VK_FORMAT_R8G8B8_USCALED:
|
||||
case VK_FORMAT_R8G8B8A8_USCALED:
|
||||
case VK_FORMAT_R16_USCALED:
|
||||
case VK_FORMAT_R16G16_USCALED:
|
||||
case VK_FORMAT_R16G16B16_USCALED:
|
||||
case VK_FORMAT_R16G16B16A16_USCALED:
|
||||
case VK_FORMAT_R10G10B10A2_USCALED:
|
||||
case VK_FORMAT_B5G6R5_USCALED:
|
||||
case VK_FORMAT_B8G8R8_USCALED:
|
||||
case VK_FORMAT_B8G8R8A8_USCALED:
|
||||
case VK_FORMAT_B10G10R10A2_USCALED:
|
||||
ret.compType = eCompType_UScaled;
|
||||
break;
|
||||
case VK_FORMAT_R8_SSCALED:
|
||||
case VK_FORMAT_R8G8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8A8_SSCALED:
|
||||
case VK_FORMAT_R10G10B10A2_SSCALED:
|
||||
case VK_FORMAT_R16_SSCALED:
|
||||
case VK_FORMAT_R16G16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16A16_SSCALED:
|
||||
case VK_FORMAT_B8G8R8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8A8_SSCALED:
|
||||
case VK_FORMAT_B10G10R10A2_SSCALED:
|
||||
ret.compType = eCompType_SScaled;
|
||||
break;
|
||||
case VK_FORMAT_R8_UINT:
|
||||
case VK_FORMAT_R8G8_UINT:
|
||||
case VK_FORMAT_R8G8B8_UINT:
|
||||
case VK_FORMAT_R8G8B8A8_UINT:
|
||||
case VK_FORMAT_R8G8B8A8_SINT:
|
||||
case VK_FORMAT_R10G10B10A2_UINT:
|
||||
case VK_FORMAT_R16_UINT:
|
||||
case VK_FORMAT_R16G16_UINT:
|
||||
case VK_FORMAT_R16G16B16_UINT:
|
||||
case VK_FORMAT_R16G16B16A16_UINT:
|
||||
case VK_FORMAT_R32_UINT:
|
||||
case VK_FORMAT_R32G32_UINT:
|
||||
case VK_FORMAT_R32G32B32_UINT:
|
||||
case VK_FORMAT_R32G32B32A32_UINT:
|
||||
// Maybe S8 should be identified by something else?
|
||||
case VK_FORMAT_S8_UINT:
|
||||
case VK_FORMAT_B8G8R8_UINT:
|
||||
case VK_FORMAT_B8G8R8A8_UINT:
|
||||
case VK_FORMAT_B10G10R10A2_UINT:
|
||||
ret.compType = eCompType_UInt;
|
||||
break;
|
||||
case VK_FORMAT_R8_SINT:
|
||||
case VK_FORMAT_R8G8_SINT:
|
||||
case VK_FORMAT_R8G8B8_SINT:
|
||||
case VK_FORMAT_R10G10B10A2_SINT:
|
||||
case VK_FORMAT_R16_SINT:
|
||||
case VK_FORMAT_R16G16_SINT:
|
||||
case VK_FORMAT_R16G16B16_SINT:
|
||||
case VK_FORMAT_R16G16B16A16_SINT:
|
||||
case VK_FORMAT_R32_SINT:
|
||||
case VK_FORMAT_R32G32_SINT:
|
||||
case VK_FORMAT_R32G32B32_SINT:
|
||||
case VK_FORMAT_R32G32B32A32_SINT:
|
||||
case VK_FORMAT_B8G8R8_SINT:
|
||||
case VK_FORMAT_B8G8R8A8_SINT:
|
||||
case VK_FORMAT_B10G10R10A2_SINT:
|
||||
ret.compType = eCompType_SInt;
|
||||
break;
|
||||
case VK_FORMAT_R16_SFLOAT:
|
||||
case VK_FORMAT_R16G16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||
case VK_FORMAT_R32_SFLOAT:
|
||||
case VK_FORMAT_R32G32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||
case VK_FORMAT_R11G11B10_UFLOAT:
|
||||
case VK_FORMAT_R9G9B9E5_UFLOAT:
|
||||
ret.compType = eCompType_Float;
|
||||
break;
|
||||
case VK_FORMAT_R64_SFLOAT:
|
||||
case VK_FORMAT_R64G64_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64A64_SFLOAT:
|
||||
ret.compType = eCompType_Double;
|
||||
break;
|
||||
case VK_FORMAT_D16_UNORM:
|
||||
case VK_FORMAT_D24_UNORM:
|
||||
case VK_FORMAT_D32_SFLOAT:
|
||||
ret.compType = eCompType_Depth;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_R8_UNORM:
|
||||
case VK_FORMAT_R8_SNORM:
|
||||
case VK_FORMAT_R8_USCALED:
|
||||
case VK_FORMAT_R8_SSCALED:
|
||||
case VK_FORMAT_R8_UINT:
|
||||
case VK_FORMAT_R8_SINT:
|
||||
case VK_FORMAT_R8_SRGB:
|
||||
case VK_FORMAT_R8G8_UNORM:
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8_USCALED:
|
||||
case VK_FORMAT_R8G8_SSCALED:
|
||||
case VK_FORMAT_R8G8_UINT:
|
||||
case VK_FORMAT_R8G8_SINT:
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
case VK_FORMAT_R8G8B8_UNORM:
|
||||
case VK_FORMAT_R8G8B8_SNORM:
|
||||
case VK_FORMAT_R8G8B8_USCALED:
|
||||
case VK_FORMAT_R8G8B8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8_UINT:
|
||||
case VK_FORMAT_R8G8B8_SINT:
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SNORM:
|
||||
case VK_FORMAT_R8G8B8A8_USCALED:
|
||||
case VK_FORMAT_R8G8B8A8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8A8_UINT:
|
||||
case VK_FORMAT_R8G8B8A8_SINT:
|
||||
case VK_FORMAT_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_S8_UINT:
|
||||
case VK_FORMAT_B8G8R8_UNORM:
|
||||
case VK_FORMAT_B8G8R8_SNORM:
|
||||
case VK_FORMAT_B8G8R8_USCALED:
|
||||
case VK_FORMAT_B8G8R8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8_UINT:
|
||||
case VK_FORMAT_B8G8R8_SINT:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
case VK_FORMAT_B8G8R8A8_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SNORM:
|
||||
case VK_FORMAT_B8G8R8A8_USCALED:
|
||||
case VK_FORMAT_B8G8R8A8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8A8_UINT:
|
||||
case VK_FORMAT_B8G8R8A8_SINT:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
ret.compByteWidth = 1;
|
||||
break;
|
||||
case VK_FORMAT_R16_UNORM:
|
||||
case VK_FORMAT_R16_SNORM:
|
||||
case VK_FORMAT_R16_USCALED:
|
||||
case VK_FORMAT_R16_SSCALED:
|
||||
case VK_FORMAT_R16_UINT:
|
||||
case VK_FORMAT_R16_SINT:
|
||||
case VK_FORMAT_R16_SFLOAT:
|
||||
case VK_FORMAT_R16G16_UNORM:
|
||||
case VK_FORMAT_R16G16_SNORM:
|
||||
case VK_FORMAT_R16G16_USCALED:
|
||||
case VK_FORMAT_R16G16_SSCALED:
|
||||
case VK_FORMAT_R16G16_UINT:
|
||||
case VK_FORMAT_R16G16_SINT:
|
||||
case VK_FORMAT_R16G16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16_UNORM:
|
||||
case VK_FORMAT_R16G16B16_SNORM:
|
||||
case VK_FORMAT_R16G16B16_USCALED:
|
||||
case VK_FORMAT_R16G16B16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16_UINT:
|
||||
case VK_FORMAT_R16G16B16_SINT:
|
||||
case VK_FORMAT_R16G16B16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16A16_UNORM:
|
||||
case VK_FORMAT_R16G16B16A16_SNORM:
|
||||
case VK_FORMAT_R16G16B16A16_USCALED:
|
||||
case VK_FORMAT_R16G16B16A16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16A16_UINT:
|
||||
case VK_FORMAT_R16G16B16A16_SINT:
|
||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||
case VK_FORMAT_D16_UNORM:
|
||||
ret.compByteWidth = 2;
|
||||
break;
|
||||
case VK_FORMAT_D24_UNORM:
|
||||
ret.compByteWidth = 3;
|
||||
break;
|
||||
case VK_FORMAT_R32_UINT:
|
||||
case VK_FORMAT_R32_SINT:
|
||||
case VK_FORMAT_R32_SFLOAT:
|
||||
case VK_FORMAT_R32G32_UINT:
|
||||
case VK_FORMAT_R32G32_SINT:
|
||||
case VK_FORMAT_R32G32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32_UINT:
|
||||
case VK_FORMAT_R32G32B32_SINT:
|
||||
case VK_FORMAT_R32G32B32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32A32_UINT:
|
||||
case VK_FORMAT_R32G32B32A32_SINT:
|
||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||
case VK_FORMAT_D32_SFLOAT:
|
||||
ret.compByteWidth = 4;
|
||||
break;
|
||||
case VK_FORMAT_R64_SFLOAT:
|
||||
case VK_FORMAT_R64G64_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64A64_SFLOAT:
|
||||
ret.compByteWidth = 8;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
PrimitiveTopology MakePrimitiveTopology(VkPrimitiveTopology Topo, uint32_t patchControlPoints)
|
||||
{
|
||||
switch(Topo)
|
||||
{
|
||||
default:
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:
|
||||
return eTopology_PointList;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:
|
||||
return eTopology_LineList;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:
|
||||
return eTopology_LineStrip;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:
|
||||
return eTopology_TriangleList;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:
|
||||
return eTopology_TriangleStrip;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:
|
||||
return eTopology_TriangleFan;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_ADJ:
|
||||
return eTopology_LineList_Adj;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_ADJ:
|
||||
return eTopology_LineStrip_Adj;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_ADJ:
|
||||
return eTopology_TriangleList_Adj;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJ:
|
||||
return eTopology_TriangleStrip_Adj;
|
||||
break;
|
||||
case VK_PRIMITIVE_TOPOLOGY_PATCH:
|
||||
return PrimitiveTopology(eTopology_PatchList_1CPs + patchControlPoints);
|
||||
break;
|
||||
}
|
||||
|
||||
return eTopology_Unknown;
|
||||
}
|
||||
|
||||
// VKTODOMED need a Deserialise or otherwise deallocate function to release buffers or new'd memory
|
||||
|
||||
VulkanResourceManager *manager = NULL;
|
||||
|
||||
@@ -60,6 +60,11 @@
|
||||
#include <vk_wsi_swapchain.h>
|
||||
#include <vk_wsi_device_swapchain.h>
|
||||
|
||||
#include "api/replay/renderdoc_replay.h"
|
||||
|
||||
ResourceFormat MakeResourceFormat(VkFormat fmt);
|
||||
PrimitiveTopology MakePrimitiveTopology(VkPrimitiveTopology Topo, uint32_t patchControlPoints);
|
||||
|
||||
// structure for casting to easily iterate and template specialising Serialise
|
||||
struct VkGenericStruct
|
||||
{
|
||||
|
||||
@@ -3937,6 +3937,12 @@ bool WrappedVulkan::Serialise_vkCmdBindPipeline(
|
||||
VkCmdBuffer cmd = (VkCmdBuffer)GetResourceManager()->GetLiveResource(cmdid).handle;
|
||||
pipeline = (VkPipeline)GetResourceManager()->GetLiveResource(pipeid).handle;
|
||||
|
||||
// track this while reading, as we need to bind current topology & index byte width to draws
|
||||
if(bind == VK_PIPELINE_BIND_POINT_GRAPHICS)
|
||||
m_PartialReplayData.state.graphics.pipeline = pipeid;
|
||||
else
|
||||
m_PartialReplayData.state.compute.pipeline = pipeid;
|
||||
|
||||
device_dispatch_table(cmdBuffer)->CmdBindPipeline(cmd, bind, pipeline);
|
||||
}
|
||||
|
||||
@@ -4437,6 +4443,9 @@ bool WrappedVulkan::Serialise_vkCmdBindIndexBuffer(
|
||||
{
|
||||
VkCmdBuffer cmd = (VkCmdBuffer)GetResourceManager()->GetLiveResource(cmdid).handle;
|
||||
buffer = (VkBuffer)GetResourceManager()->GetLiveResource(bufid).handle;
|
||||
|
||||
// track this while reading, as we need to bind current topology & index byte width to draws
|
||||
m_PartialReplayData.state.ibuffer.bytewidth = idxType == VK_INDEX_TYPE_UINT32 ? 4 : 2;
|
||||
|
||||
device_dispatch_table(cmdBuffer)->CmdBindIndexBuffer(cmd, buffer, offs, idxType);
|
||||
}
|
||||
@@ -7329,8 +7338,13 @@ void WrappedVulkan::AddDrawcall(FetchDrawcall d, bool hasEvents)
|
||||
|
||||
draw.depthOut = ResourceId();
|
||||
|
||||
// VKTODOHIGH set index byte width here
|
||||
// VKTODOHIGH set topology here
|
||||
ResourceId pipe = m_PartialReplayData.state.graphics.pipeline;
|
||||
if(pipe != ResourceId())
|
||||
draw.topology = MakePrimitiveTopology(m_CreationInfo.m_Pipeline[pipe].topology, m_CreationInfo.m_Pipeline[pipe].patchControlPoints);
|
||||
else
|
||||
draw.topology = eTopology_Unknown;
|
||||
|
||||
draw.indexByteWidth = m_PartialReplayData.state.ibuffer.bytewidth;
|
||||
|
||||
m_CurDrawcallID++;
|
||||
if(hasEvents)
|
||||
|
||||
@@ -108,655 +108,3 @@ bool IsDepthStencilFormat(VkFormat f)
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
ResourceFormat MakeResourceFormat(VkFormat fmt)
|
||||
{
|
||||
ResourceFormat ret;
|
||||
|
||||
ret.rawType = (uint32_t)fmt;
|
||||
ret.special = false;
|
||||
ret.specialFormat = eSpecial_Unknown;
|
||||
ret.strname = ToStr::Get(fmt).substr(10); // 3 == strlen("VK_FORMAT_")
|
||||
ret.compByteWidth = 0;
|
||||
ret.compCount = 0;
|
||||
ret.compType = eCompType_None;
|
||||
ret.srgbCorrected = false;
|
||||
|
||||
if(fmt == VK_FORMAT_UNDEFINED)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
// VKTODOMED R4G4, R4G4B4A4, and refactor BGRA formats
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_B4G4R4A4_UNORM:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_B4G4R4A4;
|
||||
break;
|
||||
case VK_FORMAT_R10G10B10A2_UNORM:
|
||||
case VK_FORMAT_R10G10B10A2_SNORM:
|
||||
case VK_FORMAT_R10G10B10A2_USCALED:
|
||||
case VK_FORMAT_R10G10B10A2_SSCALED:
|
||||
case VK_FORMAT_R10G10B10A2_UINT:
|
||||
case VK_FORMAT_R10G10B10A2_SINT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_R10G10B10A2;
|
||||
break;
|
||||
case VK_FORMAT_R11G11B10_UFLOAT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_R11G11B10;
|
||||
break;
|
||||
case VK_FORMAT_R9G9B9E5_UFLOAT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_R9G9B9E5;
|
||||
break;
|
||||
case VK_FORMAT_D16_UNORM_S8_UINT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_D16S8;
|
||||
break;
|
||||
case VK_FORMAT_D24_UNORM_S8_UINT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_D24S8;
|
||||
break;
|
||||
case VK_FORMAT_D32_SFLOAT_S8_UINT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_D32S8;
|
||||
break;
|
||||
case VK_FORMAT_BC1_RGB_UNORM:
|
||||
case VK_FORMAT_BC1_RGB_SRGB:
|
||||
case VK_FORMAT_BC1_RGBA_UNORM:
|
||||
case VK_FORMAT_BC1_RGBA_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC1;
|
||||
break;
|
||||
case VK_FORMAT_BC2_UNORM:
|
||||
case VK_FORMAT_BC2_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC2;
|
||||
break;
|
||||
case VK_FORMAT_BC3_UNORM:
|
||||
case VK_FORMAT_BC3_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC3;
|
||||
break;
|
||||
case VK_FORMAT_BC4_UNORM:
|
||||
case VK_FORMAT_BC4_SNORM:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC4;
|
||||
break;
|
||||
case VK_FORMAT_BC5_UNORM:
|
||||
case VK_FORMAT_BC5_SNORM:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC5;
|
||||
break;
|
||||
case VK_FORMAT_BC6H_UFLOAT:
|
||||
case VK_FORMAT_BC6H_SFLOAT:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC6;
|
||||
break;
|
||||
case VK_FORMAT_BC7_UNORM:
|
||||
case VK_FORMAT_BC7_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_BC7;
|
||||
break;
|
||||
case VK_FORMAT_ETC2_R8G8B8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_ETC2;
|
||||
break;
|
||||
case VK_FORMAT_EAC_R11_UNORM:
|
||||
case VK_FORMAT_EAC_R11_SNORM:
|
||||
case VK_FORMAT_EAC_R11G11_UNORM:
|
||||
case VK_FORMAT_EAC_R11G11_SNORM:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_EAC;
|
||||
break;
|
||||
case VK_FORMAT_ASTC_4x4_UNORM:
|
||||
case VK_FORMAT_ASTC_4x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x4_UNORM:
|
||||
case VK_FORMAT_ASTC_5x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x5_UNORM:
|
||||
case VK_FORMAT_ASTC_5x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x5_UNORM:
|
||||
case VK_FORMAT_ASTC_6x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x6_UNORM:
|
||||
case VK_FORMAT_ASTC_6x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x5_UNORM:
|
||||
case VK_FORMAT_ASTC_8x5_SRGB:
|
||||
case VK_FORMAT_ASTC_8x6_UNORM:
|
||||
case VK_FORMAT_ASTC_8x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x8_UNORM:
|
||||
case VK_FORMAT_ASTC_8x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x5_UNORM:
|
||||
case VK_FORMAT_ASTC_10x5_SRGB:
|
||||
case VK_FORMAT_ASTC_10x6_UNORM:
|
||||
case VK_FORMAT_ASTC_10x6_SRGB:
|
||||
case VK_FORMAT_ASTC_10x8_UNORM:
|
||||
case VK_FORMAT_ASTC_10x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x10_UNORM:
|
||||
case VK_FORMAT_ASTC_10x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x10_UNORM:
|
||||
case VK_FORMAT_ASTC_12x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x12_UNORM:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_ASTC;
|
||||
break;
|
||||
case VK_FORMAT_B8G8R8A8_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SNORM:
|
||||
case VK_FORMAT_B8G8R8A8_USCALED:
|
||||
case VK_FORMAT_B8G8R8A8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8A8_UINT:
|
||||
case VK_FORMAT_B8G8R8A8_SINT:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
ret.special = true;
|
||||
ret.specialFormat = eSpecial_B8G8R8A8;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_R8_UNORM:
|
||||
case VK_FORMAT_R8_SNORM:
|
||||
case VK_FORMAT_R8_USCALED:
|
||||
case VK_FORMAT_R8_SSCALED:
|
||||
case VK_FORMAT_R8_UINT:
|
||||
case VK_FORMAT_R8_SINT:
|
||||
case VK_FORMAT_R8_SRGB:
|
||||
case VK_FORMAT_R16_UNORM:
|
||||
case VK_FORMAT_R16_SNORM:
|
||||
case VK_FORMAT_R16_USCALED:
|
||||
case VK_FORMAT_R16_SSCALED:
|
||||
case VK_FORMAT_R16_UINT:
|
||||
case VK_FORMAT_R16_SINT:
|
||||
case VK_FORMAT_R16_SFLOAT:
|
||||
case VK_FORMAT_R32_UINT:
|
||||
case VK_FORMAT_R32_SINT:
|
||||
case VK_FORMAT_R32_SFLOAT:
|
||||
case VK_FORMAT_R64_SFLOAT:
|
||||
case VK_FORMAT_D16_UNORM:
|
||||
case VK_FORMAT_D24_UNORM:
|
||||
case VK_FORMAT_D32_SFLOAT:
|
||||
case VK_FORMAT_S8_UINT:
|
||||
case VK_FORMAT_BC4_UNORM:
|
||||
case VK_FORMAT_BC4_SNORM:
|
||||
case VK_FORMAT_EAC_R11_UNORM:
|
||||
case VK_FORMAT_EAC_R11_SNORM:
|
||||
ret.compCount = 1;
|
||||
break;
|
||||
case VK_FORMAT_R4G4_UNORM:
|
||||
case VK_FORMAT_R4G4_USCALED:
|
||||
case VK_FORMAT_R8G8_UNORM:
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8_USCALED:
|
||||
case VK_FORMAT_R8G8_SSCALED:
|
||||
case VK_FORMAT_R8G8_UINT:
|
||||
case VK_FORMAT_R8G8_SINT:
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
case VK_FORMAT_R16G16_UNORM:
|
||||
case VK_FORMAT_R16G16_SNORM:
|
||||
case VK_FORMAT_R16G16_USCALED:
|
||||
case VK_FORMAT_R16G16_SSCALED:
|
||||
case VK_FORMAT_R16G16_UINT:
|
||||
case VK_FORMAT_R16G16_SINT:
|
||||
case VK_FORMAT_R16G16_SFLOAT:
|
||||
case VK_FORMAT_R32G32_UINT:
|
||||
case VK_FORMAT_R32G32_SINT:
|
||||
case VK_FORMAT_R32G32_SFLOAT:
|
||||
case VK_FORMAT_R64G64_SFLOAT:
|
||||
case VK_FORMAT_D16_UNORM_S8_UINT:
|
||||
case VK_FORMAT_D24_UNORM_S8_UINT:
|
||||
case VK_FORMAT_D32_SFLOAT_S8_UINT:
|
||||
case VK_FORMAT_BC5_UNORM:
|
||||
case VK_FORMAT_BC5_SNORM:
|
||||
case VK_FORMAT_EAC_R11G11_UNORM:
|
||||
case VK_FORMAT_EAC_R11G11_SNORM:
|
||||
ret.compCount = 2;
|
||||
break;
|
||||
case VK_FORMAT_R5G6B5_UNORM:
|
||||
case VK_FORMAT_R5G6B5_USCALED:
|
||||
case VK_FORMAT_R8G8B8_UNORM:
|
||||
case VK_FORMAT_R8G8B8_SNORM:
|
||||
case VK_FORMAT_R8G8B8_USCALED:
|
||||
case VK_FORMAT_R8G8B8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8_UINT:
|
||||
case VK_FORMAT_R8G8B8_SINT:
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
case VK_FORMAT_R16G16B16_UNORM:
|
||||
case VK_FORMAT_R16G16B16_SNORM:
|
||||
case VK_FORMAT_R16G16B16_USCALED:
|
||||
case VK_FORMAT_R16G16B16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16_UINT:
|
||||
case VK_FORMAT_R16G16B16_SINT:
|
||||
case VK_FORMAT_R16G16B16_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64_SFLOAT:
|
||||
case VK_FORMAT_R11G11B10_UFLOAT:
|
||||
case VK_FORMAT_R9G9B9E5_UFLOAT:
|
||||
case VK_FORMAT_BC1_RGB_UNORM:
|
||||
case VK_FORMAT_BC1_RGB_SRGB:
|
||||
case VK_FORMAT_BC6H_UFLOAT:
|
||||
case VK_FORMAT_BC6H_SFLOAT:
|
||||
case VK_FORMAT_ETC2_R8G8B8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8_SRGB:
|
||||
case VK_FORMAT_B5G6R5_UNORM:
|
||||
case VK_FORMAT_B5G6R5_USCALED:
|
||||
case VK_FORMAT_B8G8R8_UNORM:
|
||||
case VK_FORMAT_B8G8R8_SNORM:
|
||||
case VK_FORMAT_B8G8R8_USCALED:
|
||||
case VK_FORMAT_B8G8R8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8_UINT:
|
||||
case VK_FORMAT_B8G8R8_SINT:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
ret.compCount = 3;
|
||||
break;
|
||||
case VK_FORMAT_R4G4B4A4_UNORM:
|
||||
case VK_FORMAT_R4G4B4A4_USCALED:
|
||||
case VK_FORMAT_R5G5B5A1_UNORM:
|
||||
case VK_FORMAT_R5G5B5A1_USCALED:
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SNORM:
|
||||
case VK_FORMAT_R8G8B8A8_USCALED:
|
||||
case VK_FORMAT_R8G8B8A8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8A8_UINT:
|
||||
case VK_FORMAT_R8G8B8A8_SINT:
|
||||
case VK_FORMAT_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_R32G32B32_UINT:
|
||||
case VK_FORMAT_R32G32B32_SINT:
|
||||
case VK_FORMAT_R32G32B32_SFLOAT:
|
||||
case VK_FORMAT_R10G10B10A2_UNORM:
|
||||
case VK_FORMAT_R10G10B10A2_SNORM:
|
||||
case VK_FORMAT_R10G10B10A2_USCALED:
|
||||
case VK_FORMAT_R10G10B10A2_SSCALED:
|
||||
case VK_FORMAT_R10G10B10A2_UINT:
|
||||
case VK_FORMAT_R10G10B10A2_SINT:
|
||||
case VK_FORMAT_R16G16B16A16_UNORM:
|
||||
case VK_FORMAT_R16G16B16A16_SNORM:
|
||||
case VK_FORMAT_R16G16B16A16_USCALED:
|
||||
case VK_FORMAT_R16G16B16A16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16A16_UINT:
|
||||
case VK_FORMAT_R16G16B16A16_SINT:
|
||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32A32_UINT:
|
||||
case VK_FORMAT_R32G32B32A32_SINT:
|
||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64A64_SFLOAT:
|
||||
case VK_FORMAT_BC1_RGBA_UNORM:
|
||||
case VK_FORMAT_BC1_RGBA_SRGB:
|
||||
case VK_FORMAT_BC2_UNORM:
|
||||
case VK_FORMAT_BC2_SRGB:
|
||||
case VK_FORMAT_BC3_UNORM:
|
||||
case VK_FORMAT_BC3_SRGB:
|
||||
case VK_FORMAT_BC7_UNORM:
|
||||
case VK_FORMAT_BC7_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_B4G4R4A4_UNORM:
|
||||
case VK_FORMAT_B5G5R5A1_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SNORM:
|
||||
case VK_FORMAT_B8G8R8A8_USCALED:
|
||||
case VK_FORMAT_B8G8R8A8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8A8_UINT:
|
||||
case VK_FORMAT_B8G8R8A8_SINT:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
case VK_FORMAT_B10G10R10A2_UNORM:
|
||||
case VK_FORMAT_B10G10R10A2_SNORM:
|
||||
case VK_FORMAT_B10G10R10A2_USCALED:
|
||||
case VK_FORMAT_B10G10R10A2_SSCALED:
|
||||
case VK_FORMAT_B10G10R10A2_UINT:
|
||||
case VK_FORMAT_B10G10R10A2_SINT:
|
||||
ret.compCount = 4;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_R8_SRGB:
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
case VK_FORMAT_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_BC1_RGB_SRGB:
|
||||
case VK_FORMAT_BC1_RGBA_SRGB:
|
||||
case VK_FORMAT_BC2_SRGB:
|
||||
case VK_FORMAT_BC3_SRGB:
|
||||
case VK_FORMAT_BC7_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_ASTC_4x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x5_SRGB:
|
||||
case VK_FORMAT_ASTC_8x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x5_SRGB:
|
||||
case VK_FORMAT_ASTC_10x6_SRGB:
|
||||
case VK_FORMAT_ASTC_10x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
ret.srgbCorrected = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_R4G4_UNORM:
|
||||
case VK_FORMAT_R4G4B4A4_UNORM:
|
||||
case VK_FORMAT_R5G6B5_UNORM:
|
||||
case VK_FORMAT_R5G5B5A1_UNORM:
|
||||
case VK_FORMAT_R8_UNORM:
|
||||
case VK_FORMAT_R8_SRGB:
|
||||
case VK_FORMAT_R8G8_UNORM:
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
case VK_FORMAT_R8G8B8_UNORM:
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_R10G10B10A2_UNORM:
|
||||
case VK_FORMAT_R16_UNORM:
|
||||
case VK_FORMAT_R16G16_UNORM:
|
||||
case VK_FORMAT_R16G16B16_UNORM:
|
||||
case VK_FORMAT_R16G16B16A16_UNORM:
|
||||
case VK_FORMAT_BC1_RGB_UNORM:
|
||||
case VK_FORMAT_BC1_RGB_SRGB:
|
||||
case VK_FORMAT_BC1_RGBA_UNORM:
|
||||
case VK_FORMAT_BC1_RGBA_SRGB:
|
||||
case VK_FORMAT_BC2_UNORM:
|
||||
case VK_FORMAT_BC2_SRGB:
|
||||
case VK_FORMAT_BC3_UNORM:
|
||||
case VK_FORMAT_BC3_SRGB:
|
||||
case VK_FORMAT_BC4_UNORM:
|
||||
case VK_FORMAT_BC5_UNORM:
|
||||
case VK_FORMAT_BC7_UNORM:
|
||||
case VK_FORMAT_BC7_SRGB:
|
||||
case VK_FORMAT_BC6H_UFLOAT:
|
||||
case VK_FORMAT_ETC2_R8G8B8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A1_SRGB:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_ETC2_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_EAC_R11_UNORM:
|
||||
case VK_FORMAT_EAC_R11G11_UNORM:
|
||||
case VK_FORMAT_ASTC_4x4_UNORM:
|
||||
case VK_FORMAT_ASTC_4x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x4_UNORM:
|
||||
case VK_FORMAT_ASTC_5x4_SRGB:
|
||||
case VK_FORMAT_ASTC_5x5_UNORM:
|
||||
case VK_FORMAT_ASTC_5x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x5_UNORM:
|
||||
case VK_FORMAT_ASTC_6x5_SRGB:
|
||||
case VK_FORMAT_ASTC_6x6_UNORM:
|
||||
case VK_FORMAT_ASTC_6x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x5_UNORM:
|
||||
case VK_FORMAT_ASTC_8x5_SRGB:
|
||||
case VK_FORMAT_ASTC_8x6_UNORM:
|
||||
case VK_FORMAT_ASTC_8x6_SRGB:
|
||||
case VK_FORMAT_ASTC_8x8_UNORM:
|
||||
case VK_FORMAT_ASTC_8x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x5_UNORM:
|
||||
case VK_FORMAT_ASTC_10x5_SRGB:
|
||||
case VK_FORMAT_ASTC_10x6_UNORM:
|
||||
case VK_FORMAT_ASTC_10x6_SRGB:
|
||||
case VK_FORMAT_ASTC_10x8_UNORM:
|
||||
case VK_FORMAT_ASTC_10x8_SRGB:
|
||||
case VK_FORMAT_ASTC_10x10_UNORM:
|
||||
case VK_FORMAT_ASTC_10x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x10_UNORM:
|
||||
case VK_FORMAT_ASTC_12x10_SRGB:
|
||||
case VK_FORMAT_ASTC_12x12_UNORM:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB:
|
||||
case VK_FORMAT_B4G4R4A4_UNORM:
|
||||
case VK_FORMAT_B5G5R5A1_UNORM:
|
||||
case VK_FORMAT_B5G6R5_UNORM:
|
||||
case VK_FORMAT_B8G8R8_UNORM:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
case VK_FORMAT_B8G8R8A8_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
case VK_FORMAT_B10G10R10A2_UNORM:
|
||||
ret.compType = eCompType_UNorm;
|
||||
break;
|
||||
case VK_FORMAT_R8_SNORM:
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8B8_SNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SNORM:
|
||||
case VK_FORMAT_R10G10B10A2_SNORM:
|
||||
case VK_FORMAT_R16_SNORM:
|
||||
case VK_FORMAT_R16G16_SNORM:
|
||||
case VK_FORMAT_R16G16B16_SNORM:
|
||||
case VK_FORMAT_R16G16B16A16_SNORM:
|
||||
case VK_FORMAT_BC4_SNORM:
|
||||
case VK_FORMAT_BC5_SNORM:
|
||||
case VK_FORMAT_BC6H_SFLOAT:
|
||||
case VK_FORMAT_EAC_R11_SNORM:
|
||||
case VK_FORMAT_EAC_R11G11_SNORM:
|
||||
case VK_FORMAT_B8G8R8_SNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SNORM:
|
||||
case VK_FORMAT_B10G10R10A2_SNORM:
|
||||
ret.compType = eCompType_SNorm;
|
||||
break;
|
||||
case VK_FORMAT_R4G4_USCALED:
|
||||
case VK_FORMAT_R4G4B4A4_USCALED:
|
||||
case VK_FORMAT_R5G6B5_USCALED:
|
||||
case VK_FORMAT_R5G5B5A1_USCALED:
|
||||
case VK_FORMAT_R8_USCALED:
|
||||
case VK_FORMAT_R8G8_USCALED:
|
||||
case VK_FORMAT_R8G8B8_USCALED:
|
||||
case VK_FORMAT_R8G8B8A8_USCALED:
|
||||
case VK_FORMAT_R16_USCALED:
|
||||
case VK_FORMAT_R16G16_USCALED:
|
||||
case VK_FORMAT_R16G16B16_USCALED:
|
||||
case VK_FORMAT_R16G16B16A16_USCALED:
|
||||
case VK_FORMAT_R10G10B10A2_USCALED:
|
||||
case VK_FORMAT_B5G6R5_USCALED:
|
||||
case VK_FORMAT_B8G8R8_USCALED:
|
||||
case VK_FORMAT_B8G8R8A8_USCALED:
|
||||
case VK_FORMAT_B10G10R10A2_USCALED:
|
||||
ret.compType = eCompType_UScaled;
|
||||
break;
|
||||
case VK_FORMAT_R8_SSCALED:
|
||||
case VK_FORMAT_R8G8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8A8_SSCALED:
|
||||
case VK_FORMAT_R10G10B10A2_SSCALED:
|
||||
case VK_FORMAT_R16_SSCALED:
|
||||
case VK_FORMAT_R16G16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16A16_SSCALED:
|
||||
case VK_FORMAT_B8G8R8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8A8_SSCALED:
|
||||
case VK_FORMAT_B10G10R10A2_SSCALED:
|
||||
ret.compType = eCompType_SScaled;
|
||||
break;
|
||||
case VK_FORMAT_R8_UINT:
|
||||
case VK_FORMAT_R8G8_UINT:
|
||||
case VK_FORMAT_R8G8B8_UINT:
|
||||
case VK_FORMAT_R8G8B8A8_UINT:
|
||||
case VK_FORMAT_R8G8B8A8_SINT:
|
||||
case VK_FORMAT_R10G10B10A2_UINT:
|
||||
case VK_FORMAT_R16_UINT:
|
||||
case VK_FORMAT_R16G16_UINT:
|
||||
case VK_FORMAT_R16G16B16_UINT:
|
||||
case VK_FORMAT_R16G16B16A16_UINT:
|
||||
case VK_FORMAT_R32_UINT:
|
||||
case VK_FORMAT_R32G32_UINT:
|
||||
case VK_FORMAT_R32G32B32_UINT:
|
||||
case VK_FORMAT_R32G32B32A32_UINT:
|
||||
// Maybe S8 should be identified by something else?
|
||||
case VK_FORMAT_S8_UINT:
|
||||
case VK_FORMAT_B8G8R8_UINT:
|
||||
case VK_FORMAT_B8G8R8A8_UINT:
|
||||
case VK_FORMAT_B10G10R10A2_UINT:
|
||||
ret.compType = eCompType_UInt;
|
||||
break;
|
||||
case VK_FORMAT_R8_SINT:
|
||||
case VK_FORMAT_R8G8_SINT:
|
||||
case VK_FORMAT_R8G8B8_SINT:
|
||||
case VK_FORMAT_R10G10B10A2_SINT:
|
||||
case VK_FORMAT_R16_SINT:
|
||||
case VK_FORMAT_R16G16_SINT:
|
||||
case VK_FORMAT_R16G16B16_SINT:
|
||||
case VK_FORMAT_R16G16B16A16_SINT:
|
||||
case VK_FORMAT_R32_SINT:
|
||||
case VK_FORMAT_R32G32_SINT:
|
||||
case VK_FORMAT_R32G32B32_SINT:
|
||||
case VK_FORMAT_R32G32B32A32_SINT:
|
||||
case VK_FORMAT_B8G8R8_SINT:
|
||||
case VK_FORMAT_B8G8R8A8_SINT:
|
||||
case VK_FORMAT_B10G10R10A2_SINT:
|
||||
ret.compType = eCompType_SInt;
|
||||
break;
|
||||
case VK_FORMAT_R16_SFLOAT:
|
||||
case VK_FORMAT_R16G16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||
case VK_FORMAT_R32_SFLOAT:
|
||||
case VK_FORMAT_R32G32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||
case VK_FORMAT_R11G11B10_UFLOAT:
|
||||
case VK_FORMAT_R9G9B9E5_UFLOAT:
|
||||
ret.compType = eCompType_Float;
|
||||
break;
|
||||
case VK_FORMAT_R64_SFLOAT:
|
||||
case VK_FORMAT_R64G64_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64A64_SFLOAT:
|
||||
ret.compType = eCompType_Double;
|
||||
break;
|
||||
case VK_FORMAT_D16_UNORM:
|
||||
case VK_FORMAT_D24_UNORM:
|
||||
case VK_FORMAT_D32_SFLOAT:
|
||||
ret.compType = eCompType_Depth;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(fmt)
|
||||
{
|
||||
case VK_FORMAT_R8_UNORM:
|
||||
case VK_FORMAT_R8_SNORM:
|
||||
case VK_FORMAT_R8_USCALED:
|
||||
case VK_FORMAT_R8_SSCALED:
|
||||
case VK_FORMAT_R8_UINT:
|
||||
case VK_FORMAT_R8_SINT:
|
||||
case VK_FORMAT_R8_SRGB:
|
||||
case VK_FORMAT_R8G8_UNORM:
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8_USCALED:
|
||||
case VK_FORMAT_R8G8_SSCALED:
|
||||
case VK_FORMAT_R8G8_UINT:
|
||||
case VK_FORMAT_R8G8_SINT:
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
case VK_FORMAT_R8G8B8_UNORM:
|
||||
case VK_FORMAT_R8G8B8_SNORM:
|
||||
case VK_FORMAT_R8G8B8_USCALED:
|
||||
case VK_FORMAT_R8G8B8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8_UINT:
|
||||
case VK_FORMAT_R8G8B8_SINT:
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SNORM:
|
||||
case VK_FORMAT_R8G8B8A8_USCALED:
|
||||
case VK_FORMAT_R8G8B8A8_SSCALED:
|
||||
case VK_FORMAT_R8G8B8A8_UINT:
|
||||
case VK_FORMAT_R8G8B8A8_SINT:
|
||||
case VK_FORMAT_R8G8B8A8_SRGB:
|
||||
case VK_FORMAT_S8_UINT:
|
||||
case VK_FORMAT_B8G8R8_UNORM:
|
||||
case VK_FORMAT_B8G8R8_SNORM:
|
||||
case VK_FORMAT_B8G8R8_USCALED:
|
||||
case VK_FORMAT_B8G8R8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8_UINT:
|
||||
case VK_FORMAT_B8G8R8_SINT:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
case VK_FORMAT_B8G8R8A8_UNORM:
|
||||
case VK_FORMAT_B8G8R8A8_SNORM:
|
||||
case VK_FORMAT_B8G8R8A8_USCALED:
|
||||
case VK_FORMAT_B8G8R8A8_SSCALED:
|
||||
case VK_FORMAT_B8G8R8A8_UINT:
|
||||
case VK_FORMAT_B8G8R8A8_SINT:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
ret.compByteWidth = 1;
|
||||
break;
|
||||
case VK_FORMAT_R16_UNORM:
|
||||
case VK_FORMAT_R16_SNORM:
|
||||
case VK_FORMAT_R16_USCALED:
|
||||
case VK_FORMAT_R16_SSCALED:
|
||||
case VK_FORMAT_R16_UINT:
|
||||
case VK_FORMAT_R16_SINT:
|
||||
case VK_FORMAT_R16_SFLOAT:
|
||||
case VK_FORMAT_R16G16_UNORM:
|
||||
case VK_FORMAT_R16G16_SNORM:
|
||||
case VK_FORMAT_R16G16_USCALED:
|
||||
case VK_FORMAT_R16G16_SSCALED:
|
||||
case VK_FORMAT_R16G16_UINT:
|
||||
case VK_FORMAT_R16G16_SINT:
|
||||
case VK_FORMAT_R16G16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16_UNORM:
|
||||
case VK_FORMAT_R16G16B16_SNORM:
|
||||
case VK_FORMAT_R16G16B16_USCALED:
|
||||
case VK_FORMAT_R16G16B16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16_UINT:
|
||||
case VK_FORMAT_R16G16B16_SINT:
|
||||
case VK_FORMAT_R16G16B16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16A16_UNORM:
|
||||
case VK_FORMAT_R16G16B16A16_SNORM:
|
||||
case VK_FORMAT_R16G16B16A16_USCALED:
|
||||
case VK_FORMAT_R16G16B16A16_SSCALED:
|
||||
case VK_FORMAT_R16G16B16A16_UINT:
|
||||
case VK_FORMAT_R16G16B16A16_SINT:
|
||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||
case VK_FORMAT_D16_UNORM:
|
||||
ret.compByteWidth = 2;
|
||||
break;
|
||||
case VK_FORMAT_D24_UNORM:
|
||||
ret.compByteWidth = 3;
|
||||
break;
|
||||
case VK_FORMAT_R32_UINT:
|
||||
case VK_FORMAT_R32_SINT:
|
||||
case VK_FORMAT_R32_SFLOAT:
|
||||
case VK_FORMAT_R32G32_UINT:
|
||||
case VK_FORMAT_R32G32_SINT:
|
||||
case VK_FORMAT_R32G32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32_UINT:
|
||||
case VK_FORMAT_R32G32B32_SINT:
|
||||
case VK_FORMAT_R32G32B32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32A32_UINT:
|
||||
case VK_FORMAT_R32G32B32A32_SINT:
|
||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||
case VK_FORMAT_D32_SFLOAT:
|
||||
ret.compByteWidth = 4;
|
||||
break;
|
||||
case VK_FORMAT_R64_SFLOAT:
|
||||
case VK_FORMAT_R64G64_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64_SFLOAT:
|
||||
case VK_FORMAT_R64G64B64A64_SFLOAT:
|
||||
ret.compByteWidth = 8;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -251,5 +251,3 @@ enum DescriptorSlotType
|
||||
|
||||
bool IsBlockFormat(VkFormat f);
|
||||
bool IsDepthStencilFormat(VkFormat f);
|
||||
|
||||
ResourceFormat MakeResourceFormat(VkFormat fmt);
|
||||
|
||||
Reference in New Issue
Block a user