anv: Advertise support VK_FORMAT_R8_SRGB
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 30 Jun 2017 01:52:03 +0000 (18:52 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 19 Sep 2017 19:06:30 +0000 (12:06 -0700)
Unreal Engine 4 seems to really like this format 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.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/vulkan/anv_formats.c

index 47acc56fd04137a2a60c542c69c9c0caa566c507..049ffe17ac07819ae9ce57697bac201b996cf742 100644 (file)
@@ -74,7 +74,8 @@ 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),