From 18fd2554021f16a70b6a83a1afa1a52cfb22d8c8 Mon Sep 17 00:00:00 2001 From: Jonathan Marek Date: Wed, 2 Dec 2020 23:23:20 -0500 Subject: [PATCH] turnip: no linear_to_srgb for alpha channel for gmem clear value packing Alpha channel is always linear (oops). Fixes: ddac5933f8f3 ("turnip: call packing functions directly for pack_gmem_clear_value") Signed-off-by: Jonathan Marek Part-of: (cherry picked from commit d7ea266e6f5cdcde5dd880839a057afaa560e97e) Conflicts: .gitlab-ci/deqp-freedreno-a630-fails.txt --- .gitlab-ci/deqp-freedreno-a630-fails.txt | 2 -- .pick_status.json | 2 +- src/freedreno/vulkan/tu_clear_blit.c | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci/deqp-freedreno-a630-fails.txt b/.gitlab-ci/deqp-freedreno-a630-fails.txt index b53c4d1839c..e74588f0146 100644 --- a/.gitlab-ci/deqp-freedreno-a630-fails.txt +++ b/.gitlab-ci/deqp-freedreno-a630-fails.txt @@ -1,8 +1,6 @@ # Possibly https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/2035 related,Fail dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z,Fail -dEQP-VK.api.image_clearing.core.clear_color_attachment.single_layer.a8b8g8r8_srgb_pack32_1x33,Fail -dEQP-VK.api.image_clearing.dedicated_allocation.clear_color_attachment.single_layer.b8g8r8a8_srgb_33x128,Fail dEQP-VK.compute.indirect_dispatch.upload_buffer.multi_dispatch,Fail dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint,Fail dEQP-VK.memory_model.message_passing.core11.u32.coherent.fence_fence.atomicwrite.device.payload_local.image.guard_nonlocal.workgroup.comp,Fail diff --git a/.pick_status.json b/.pick_status.json index 83ab0740916..13e5bed0de7 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -796,7 +796,7 @@ "description": "turnip: no linear_to_srgb for alpha channel for gmem clear value packing", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "ddac5933f8f30df66b389c32a634dab16cff5a4c" }, diff --git a/src/freedreno/vulkan/tu_clear_blit.c b/src/freedreno/vulkan/tu_clear_blit.c index a19f91cf77b..30994bec9a2 100644 --- a/src/freedreno/vulkan/tu_clear_blit.c +++ b/src/freedreno/vulkan/tu_clear_blit.c @@ -1983,7 +1983,7 @@ pack_gmem_clear_value(const VkClearValue *val, VkFormat format, uint32_t clear_v float tmp[4]; memcpy(tmp, val->color.float32, 4 * sizeof(float)); if (vk_format_is_srgb(format)) { - for (int i = 0; i < 4; i++) + for (int i = 0; i < 3; i++) tmp[i] = util_format_linear_to_srgb_float(tmp[i]); }