From: Alex Smith Date: Tue, 10 Oct 2017 16:00:09 +0000 (+0100) Subject: radv: Add R16G16B16A16_SNORM fast clear support X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=25d76fd658105b06c241a441899e00c4d912d434;p=mesa.git radv: Add R16G16B16A16_SNORM fast clear support Signed-off-by: Alex Smith Cc: "17.2" Signed-off-by: Dave Airlie --- diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c index 88305abd044..5c79ea74069 100644 --- a/src/amd/vulkan/radv_formats.c +++ b/src/amd/vulkan/radv_formats.c @@ -961,6 +961,12 @@ bool radv_format_pack_clear_color(VkFormat format, clear_vals[1] = ((uint16_t)util_iround(CLAMP(value->float32[2], 0.0f, 1.0f) * 0xffff)) & 0xffff; clear_vals[1] |= ((uint16_t)util_iround(CLAMP(value->float32[3], 0.0f, 1.0f) * 0xffff)) << 16; break; + case VK_FORMAT_R16G16B16A16_SNORM: + clear_vals[0] = ((uint16_t)util_iround(CLAMP(value->float32[0], -1.0f, 1.0f) * 0x7fff)) & 0xffff; + clear_vals[0] |= ((uint16_t)util_iround(CLAMP(value->float32[1], -1.0f, 1.0f) * 0x7fff)) << 16; + clear_vals[1] = ((uint16_t)util_iround(CLAMP(value->float32[2], -1.0f, 1.0f) * 0x7fff)) & 0xffff; + clear_vals[1] |= ((uint16_t)util_iround(CLAMP(value->float32[3], -1.0f, 1.0f) * 0x7fff)) << 16; + break; case VK_FORMAT_A2B10G10R10_UNORM_PACK32: clear_vals[0] = ((uint16_t)util_iround(CLAMP(value->float32[0], 0.0f, 1.0f) * 0x3ff)) & 0x3ff; clear_vals[0] |= (((uint16_t)util_iround(CLAMP(value->float32[1], 0.0f, 1.0f) * 0x3ff)) & 0x3ff) << 10;