mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-08 08:40:55 +00:00
added pvrtc support
This commit is contained in:
@@ -3254,6 +3254,7 @@ void TextureViewer::on_viewTexBuffer_clicked()
|
||||
case ResourceFormatType::ETC2:
|
||||
case ResourceFormatType::EAC:
|
||||
case ResourceFormatType::ASTC:
|
||||
case ResourceFormatType::PVRTC:
|
||||
varName = lit("block");
|
||||
// display a 4x4 block at a time
|
||||
w /= 4;
|
||||
@@ -3280,6 +3281,7 @@ void TextureViewer::on_viewTexBuffer_clicked()
|
||||
case ResourceFormatType::BC4:
|
||||
case ResourceFormatType::ETC2:
|
||||
case ResourceFormatType::EAC:
|
||||
case ResourceFormatType::PVRTC:
|
||||
baseType = lit("row_major xint2x1");
|
||||
break;
|
||||
// 4x4 byte block, for 128-bit block formats
|
||||
|
||||
@@ -1142,6 +1142,7 @@ enum class ResourceFormatType : uint8_t
|
||||
D32S8,
|
||||
S8,
|
||||
YUV,
|
||||
PVRTC,
|
||||
};
|
||||
|
||||
DOCUMENT(R"(An API specific hint for a certain behaviour. A legacy concept in OpenGL that controls
|
||||
|
||||
@@ -337,6 +337,14 @@ ResourceFormat MakeResourceFormat(VkFormat fmt)
|
||||
case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
|
||||
case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: ret.type = ResourceFormatType::ASTC; break;
|
||||
case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: ret.type = ResourceFormatType::PVRTC; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -542,7 +550,11 @@ ResourceFormat MakeResourceFormat(VkFormat fmt)
|
||||
case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB: ret.srgbCorrected = true; break;
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: ret.srgbCorrected = true; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -623,7 +635,15 @@ ResourceFormat MakeResourceFormat(VkFormat fmt)
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
case VK_FORMAT_A8B8G8R8_UNORM_PACK32:
|
||||
case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
|
||||
case VK_FORMAT_A2B10G10R10_UNORM_PACK32: ret.compType = CompType::UNorm; break;
|
||||
case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
|
||||
case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: ret.compType = CompType::UNorm; break;
|
||||
case VK_FORMAT_R8_SNORM:
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8B8_SNORM:
|
||||
@@ -2910,6 +2930,14 @@ string ToStrHelper<false, VkFormat>::Get(const VkFormat &el)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_ASTC_12x10_SRGB_BLOCK)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_ASTC_12x12_UNORM_BLOCK)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_ASTC_12x12_SRGB_BLOCK)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG)
|
||||
TOSTR_CASE_STRINGIZE(VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG)
|
||||
default: break;
|
||||
}
|
||||
|
||||
|
||||
@@ -762,6 +762,11 @@ static const VkExtensionProperties supportedExtensions[] = {
|
||||
{
|
||||
VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME, VK_EXT_VALIDATION_FLAGS_SPEC_VERSION,
|
||||
},
|
||||
#ifdef VK_IMG_format_pvrtc
|
||||
{
|
||||
VK_IMG_FORMAT_PVRTC_EXTENSION_NAME, VK_IMG_FORMAT_PVRTC_SPEC_VERSION,
|
||||
},
|
||||
#endif
|
||||
#ifdef VK_KHR_android_surface
|
||||
{
|
||||
VK_KHR_ANDROID_SURFACE_EXTENSION_NAME, VK_KHR_ANDROID_SURFACE_SPEC_VERSION,
|
||||
|
||||
@@ -184,7 +184,15 @@ bool IsBlockFormat(VkFormat f)
|
||||
case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
|
||||
case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
|
||||
case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: return true;
|
||||
case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
|
||||
case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: return true;
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -290,7 +298,11 @@ bool IsSRGBFormat(VkFormat f)
|
||||
case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
|
||||
case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
case VK_FORMAT_B8G8R8A8_SRGB: return true;
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: return true;
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -707,6 +719,18 @@ uint32_t GetByteSize(uint32_t Width, uint32_t Height, uint32_t Depth, VkFormat F
|
||||
astc[0] = 12;
|
||||
astc[1] = 12;
|
||||
break;
|
||||
case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
|
||||
ret = (uint32_t)(ceil(w / 8.0) * ceil(h / 4.0) * 8.0);
|
||||
break;
|
||||
case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:
|
||||
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:
|
||||
ret = (uint32_t)(ceil(w / 4.0) * ceil(h / 4.0) * 8.0);
|
||||
break;
|
||||
default:
|
||||
ret = 1;
|
||||
RDCERR("Unrecognised Vulkan Format: %d", Format);
|
||||
|
||||
@@ -570,6 +570,7 @@ static std::string ResourceFormatName(const ResourceFormat &fmt)
|
||||
case ResourceFormatType::D32S8: return "D32S8";
|
||||
case ResourceFormatType::S8: return "S8";
|
||||
case ResourceFormatType::YUV: return "YUV";
|
||||
case ResourceFormatType::PVRTC: return "PVRTC";
|
||||
}
|
||||
}
|
||||
else if(fmt.compType == CompType::Depth)
|
||||
|
||||
Reference in New Issue
Block a user