radv/formats: add fast clear for 8-bit signed ints.
authorDave Airlie <airlied@redhat.com>
Mon, 27 Feb 2017 02:15:03 +0000 (12:15 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 27 Feb 2017 20:11:50 +0000 (06:11 +1000)
These formats are used by some CTS tests, may as well fill them in.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_formats.c

index 30a20db7dd0d6a46f2e7201ea827151254996436..7483b8dedfc5c52ff1fa46ef832351c36d9d111d 100644 (file)
@@ -864,6 +864,10 @@ bool radv_format_pack_clear_color(VkFormat format,
                clear_vals[0] = value->uint32[0] & 0xff;
                clear_vals[1] = 0;
                break;
+       case VK_FORMAT_R8_SINT:
+               clear_vals[0] = value->int32[0] & 0xff;
+               clear_vals[1] = 0;
+               break;
        case VK_FORMAT_R16_UINT:
                clear_vals[0] = value->uint32[0] & 0xffff;
                clear_vals[1] = 0;
@@ -873,6 +877,11 @@ bool radv_format_pack_clear_color(VkFormat format,
                clear_vals[0] |= (value->uint32[1] & 0xff) << 8;
                clear_vals[1] = 0;
                break;
+       case VK_FORMAT_R8G8_SINT:
+               clear_vals[0] = value->int32[0] & 0xff;
+               clear_vals[0] |= (value->int32[1] & 0xff) << 8;
+               clear_vals[1] = 0;
+               break;
        case VK_FORMAT_R8G8B8A8_UINT:
                clear_vals[0] = value->uint32[0] & 0xff;
                clear_vals[0] |= (value->uint32[1] & 0xff) << 8;
@@ -880,6 +889,13 @@ bool radv_format_pack_clear_color(VkFormat format,
                clear_vals[0] |= (value->uint32[3] & 0xff) << 24;
                clear_vals[1] = 0;
                break;
+       case VK_FORMAT_R8G8B8A8_SINT:
+               clear_vals[0] = value->int32[0] & 0xff;
+               clear_vals[0] |= (value->int32[1] & 0xff) << 8;
+               clear_vals[0] |= (value->int32[2] & 0xff) << 16;
+               clear_vals[0] |= (value->int32[3] & 0xff) << 24;
+               clear_vals[1] = 0;
+               break;
        case VK_FORMAT_A8B8G8R8_UINT_PACK32:
                clear_vals[0] = value->uint32[0] & 0xff;
                clear_vals[0] |= (value->uint32[1] & 0xff) << 8;