@@ -1415,6 +1415,33 @@ class CVulkanPhysicalDevice final : public IPhysicalDevice
1415
1415
for (uint32_t i = 0 ; i < asset::EF_COUNT; ++i)
1416
1416
{
1417
1417
const asset::E_FORMAT format = static_cast <asset::E_FORMAT>(i);
1418
+ bool skip = false ;
1419
+ switch (format)
1420
+ {
1421
+ case asset::EF_B4G4R4A4_UNORM_PACK16:
1422
+ case asset::EF_R4G4B4A4_UNORM_PACK16:
1423
+ if (instanceApiVersion<VK_MAKE_API_VERSION (0 ,1 ,3 ,0 ) && !isExtensionSupported (VK_EXT_4444_FORMATS_EXTENSION_NAME))
1424
+ skip = true ;
1425
+ break ;
1426
+ // TODO: ASTC HDR stuff
1427
+ // case asset::EF_ASTC__SFLOAT
1428
+ // if (instanceApiVersion<VK_MAKE_API_VERSION(0,1,3,0) && !isExtensionSupported(VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME))
1429
+ // skip = true;
1430
+ // break;
1431
+ case asset::EF_PVRTC1_2BPP_UNORM_BLOCK_IMG:
1432
+ case asset::EF_PVRTC1_4BPP_UNORM_BLOCK_IMG:
1433
+ case asset::EF_PVRTC2_2BPP_UNORM_BLOCK_IMG:
1434
+ case asset::EF_PVRTC2_4BPP_UNORM_BLOCK_IMG:
1435
+ case asset::EF_PVRTC1_2BPP_SRGB_BLOCK_IMG:
1436
+ case asset::EF_PVRTC1_4BPP_SRGB_BLOCK_IMG:
1437
+ case asset::EF_PVRTC2_2BPP_SRGB_BLOCK_IMG:
1438
+ case asset::EF_PVRTC2_4BPP_SRGB_BLOCK_IMG:
1439
+ if (!isExtensionSupported (VK_IMG_FORMAT_PVRTC_EXTENSION_NAME))
1440
+ skip = true ;
1441
+ break ;
1442
+ }
1443
+ if (skip)
1444
+ continue ;
1418
1445
1419
1446
VkFormatProperties vk_formatProps;
1420
1447
vkGetPhysicalDeviceFormatProperties (m_vkPhysicalDevice, getVkFormatFromFormat (format), &vk_formatProps);
@@ -1433,7 +1460,7 @@ class CVulkanPhysicalDevice final : public IPhysicalDevice
1433
1460
m_linearTilingUsages[format].blitDst = (linearTilingFeatures & VK_FORMAT_FEATURE_BLIT_DST_BIT) ? 1 : 0 ;
1434
1461
m_linearTilingUsages[format].transferSrc = (linearTilingFeatures & VK_FORMAT_FEATURE_TRANSFER_SRC_BIT) ? 1 : 0 ;
1435
1462
m_linearTilingUsages[format].transferDst = (linearTilingFeatures & VK_FORMAT_FEATURE_TRANSFER_DST_BIT) ? 1 : 0 ;
1436
- // m_linearTilingUsages[format].log2MaxSmples = ; // Todo(achal )
1463
+ // m_linearTilingUsages[format].log2MaxSmples = ; // Todo(Erfan )
1437
1464
1438
1465
m_optimalTilingUsages[format] = {};
1439
1466
m_optimalTilingUsages[format].sampledImage = optimalTilingFeatures & (VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT) ? 1 : 0 ;
@@ -1445,7 +1472,7 @@ class CVulkanPhysicalDevice final : public IPhysicalDevice
1445
1472
m_optimalTilingUsages[format].blitDst = optimalTilingFeatures & VK_FORMAT_FEATURE_BLIT_DST_BIT ? 1 : 0 ;
1446
1473
m_optimalTilingUsages[format].transferSrc = optimalTilingFeatures & VK_FORMAT_FEATURE_TRANSFER_SRC_BIT ? 1 : 0 ;
1447
1474
m_optimalTilingUsages[format].transferDst = optimalTilingFeatures & VK_FORMAT_FEATURE_TRANSFER_DST_BIT ? 1 : 0 ;
1448
- // m_optimalTilingUsages[format].log2MaxSmples = ; // Todo(achal )
1475
+ // m_optimalTilingUsages[format].log2MaxSmples = ; // Todo(Erfan )
1449
1476
1450
1477
m_bufferUsages[format] = {};
1451
1478
m_bufferUsages[format].vertexAttribute = (bufferFeatures & VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT) ? 1 : 0 ;
0 commit comments