Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Unified Diff: src/gpu/vk/GrVkUtil.cpp

Issue 1970293002: Support allowSRGBInputs on Vulkan (via secondary texture views) (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: default case for switch Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/vk/GrVkUtil.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/vk/GrVkUtil.cpp
diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp
index a6a9d4c1a1df29072efb33b1d2650c6cbf98fe7a..760b20b4580e7f75de814d032b59cd954077aae5 100644
--- a/src/gpu/vk/GrVkUtil.cpp
+++ b/src/gpu/vk/GrVkUtil.cpp
@@ -118,6 +118,105 @@ bool GrVkFormatToPixelConfig(VkFormat format, GrPixelConfig* config) {
return true;
}
+bool GrVkFormatIsSRGB(VkFormat format, VkFormat* linearFormat) {
+ VkFormat linearFmt = format;
+ switch (format) {
+ case VK_FORMAT_R8_SRGB:
+ linearFmt = VK_FORMAT_R8_UNORM;
+ break;
+ case VK_FORMAT_R8G8_SRGB:
+ linearFmt = VK_FORMAT_R8G8_UNORM;
+ break;
+ case VK_FORMAT_R8G8B8_SRGB:
+ linearFmt = VK_FORMAT_R8G8B8_UNORM;
+ break;
+ case VK_FORMAT_B8G8R8_SRGB:
+ linearFmt = VK_FORMAT_B8G8R8_UNORM;
+ break;
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ linearFmt = VK_FORMAT_R8G8B8A8_UNORM;
+ break;
+ case VK_FORMAT_B8G8R8A8_SRGB:
+ linearFmt = VK_FORMAT_B8G8R8A8_UNORM;
+ break;
+ case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
+ linearFmt = VK_FORMAT_A8B8G8R8_UNORM_PACK32;
+ break;
+ case VK_FORMAT_BC1_RGB_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_BC1_RGB_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_BC2_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_BC2_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_BC3_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_BC3_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_BC7_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_BC7_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_4x4_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_5x4_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_5x5_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_6x5_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_6x6_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_8x5_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_8x6_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_8x8_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_10x5_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_10x6_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_10x8_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_10x10_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_12x10_UNORM_BLOCK;
+ break;
+ case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
+ linearFmt = VK_FORMAT_ASTC_12x12_UNORM_BLOCK;
+ break;
+ default:
+ break;
+ }
+ if (linearFormat) {
+ *linearFormat = linearFmt;
+ }
+ return (linearFmt != format);
+}
+
bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSamples) {
switch (samples) {
case 0: // fall through
« no previous file with comments | « src/gpu/vk/GrVkUtil.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698