[Mesa-dev] [PATCH 1/2] anv: Advertise support for two more sRGB formats
Jason Ekstrand
jason at jlekstrand.net
Wed Aug 2 01:16:31 UTC 2017
Unreal Engine 4 seems to really like VK_FORMAT_R8_SRGB for some reason.
We don't technically have the hardware format but we do have L8_SRGB.
It's easy enough to fake with that and a swizzle. While we're at it, we
may as well support R8G8_SRGB using L8A8_SRGB.
---
src/intel/vulkan/anv_formats.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c
index c656d7e..2309dfe 100644
--- a/src/intel/vulkan/anv_formats.c
+++ b/src/intel/vulkan/anv_formats.c
@@ -74,14 +74,16 @@ static const struct anv_format anv_formats[] = {
fmt(VK_FORMAT_R8_SSCALED, ISL_FORMAT_R8_SSCALED),
fmt(VK_FORMAT_R8_UINT, ISL_FORMAT_R8_UINT),
fmt(VK_FORMAT_R8_SINT, ISL_FORMAT_R8_SINT),
- fmt(VK_FORMAT_R8_SRGB, ISL_FORMAT_UNSUPPORTED),
+ swiz_fmt(VK_FORMAT_R8_SRGB, ISL_FORMAT_L8_UNORM_SRGB,
+ _ISL_SWIZZLE(RED, ZERO, ZERO, ONE)),
fmt(VK_FORMAT_R8G8_UNORM, ISL_FORMAT_R8G8_UNORM),
fmt(VK_FORMAT_R8G8_SNORM, ISL_FORMAT_R8G8_SNORM),
fmt(VK_FORMAT_R8G8_USCALED, ISL_FORMAT_R8G8_USCALED),
fmt(VK_FORMAT_R8G8_SSCALED, ISL_FORMAT_R8G8_SSCALED),
fmt(VK_FORMAT_R8G8_UINT, ISL_FORMAT_R8G8_UINT),
fmt(VK_FORMAT_R8G8_SINT, ISL_FORMAT_R8G8_SINT),
- fmt(VK_FORMAT_R8G8_SRGB, ISL_FORMAT_UNSUPPORTED), /* L8A8_UNORM_SRGB */
+ swiz_fmt(VK_FORMAT_R8G8_SRGB, ISL_FORMAT_L8A8_UNORM_SRGB,
+ _ISL_SWIZZLE(RED, ALPHA, ZERO, ONE)),
fmt(VK_FORMAT_R8G8B8_UNORM, ISL_FORMAT_R8G8B8_UNORM),
fmt(VK_FORMAT_R8G8B8_SNORM, ISL_FORMAT_R8G8B8_SNORM),
fmt(VK_FORMAT_R8G8B8_USCALED, ISL_FORMAT_R8G8B8_USCALED),
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list