From a8ba57d35686bd55ffd2f7786b2ad10539ce0cc5 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 2 Aug 2017 15:07:33 -0700 Subject: [PATCH] intel/blorp: Support clearing L8_UNORM_SRGB surfaces Vulkan needs to be able to clear any texture you can create. We want to add support for VK_FORMAT_R8_SRGB and we need to use L8_UNORM_SRGB to do that so we need to be able to clear it. Reviewed-by: Kenneth Graunke --- src/intel/blorp/blorp_clear.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c index 0feebef..94eba7b 100644 --- a/src/intel/blorp/blorp_clear.c +++ b/src/intel/blorp/blorp_clear.c @@ -25,6 +25,7 @@ #include "main/macros.h" /* Needed for MAX3 and MAX2 for format_rgb9e5 */ #include "util/format_rgb9e5.h" +#include "util/format_srgb.h" #include "blorp_priv.h" #include "compiler/brw_eu_defines.h" @@ -382,6 +383,9 @@ blorp_clear(struct blorp_batch *batch, if (format == ISL_FORMAT_R9G9B9E5_SHAREDEXP) { clear_color.u32[0] = float3_to_rgb9e5(clear_color.f32); format = ISL_FORMAT_R32_UINT; + } else if (format == ISL_FORMAT_L8_UNORM_SRGB) { + clear_color.f32[0] = util_format_linear_to_srgb_float(clear_color.f32[0]); + format = ISL_FORMAT_R8_UNORM; } else if (format == ISL_FORMAT_A4B4G4R4_UNORM) { /* Broadwell and earlier cannot render to this format so we need to work * around it by swapping the colors around and using B4G4R4A4 instead. -- 2.7.4