On 2017-02-08 12:19 PM, Bas Nieuwenhuizen wrote:
For allowing fast color clears in the main render targets of dota2.

Signed-off-by: Bas Nieuwenhuizen <ba...@google.com>
---
 src/amd/vulkan/radv_formats.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/amd/vulkan/radv_formats.c b/src/amd/vulkan/radv_formats.c
index f18ecee9d2a..284e7025fbc 100644
--- a/src/amd/vulkan/radv_formats.c
+++ b/src/amd/vulkan/radv_formats.c
@@ -940,8 +940,11 @@ bool radv_format_pack_clear_color(VkFormat format,
                clear_vals[1] |= ((uint16_t)util_iround(CLAMP(value->float32[3], 
0.0f, 1.0f) * 0xffff)) << 16;
                break;
        case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
-               /* TODO */
-               return false;
+               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;
+               clear_vals[0] |= (((uint16_t)util_iround(CLAMP(value->float32[2], 0.0f, 
1.0f) * 0x3ff)) & 0x3ff) << 20;
+               clear_vals[0] |= (((uint16_t)util_iround(CLAMP(value->float32[1], 0.0f, 
1.0f) * 0x3)) & 0x3) << 30;

Does clear_vals[1] need to also be initialized here? Otherwise it is going to be garbage I believe.

+               return true;
        case VK_FORMAT_R32G32_SFLOAT:
                clear_vals[0] = fui(value->float32[0]);
                clear_vals[1] = fui(value->float32[1]);

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to