diff options
author | Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> | 2020-11-21 20:58:37 +0100 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2020-11-24 22:10:09 -0800 |
commit | e1e31f6126c16c8bc24e7c5f2771a32c69f336e7 (patch) | |
tree | d78efedd82cabd4b45b01cbd69b111b9915b7b6f | |
parent | b2c70c3b116cc8874c71e4a1d903ff62e4484f16 (diff) |
radv: Fix RB+ blending for VK_FORMAT_E5B9G9R9_UFLOAT_PACK32.
Fixes: e893102bcf5 ("radv: Add VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 rendering support.")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7716>
(cherry picked from commit 025cb90042ba62db8f4be6b612c8f5d2b6b3746b)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/amd/vulkan/radv_cmd_buffer.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json index d7f2811c588..b4656f158a2 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -355,7 +355,7 @@ "description": "radv: Fix RB+ blending for VK_FORMAT_E5B9G9R9_UFLOAT_PACK32.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "e893102bcf5d6632f36399d745481639344e5526" }, diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index f0a4d05fc6f..e0080320ab6 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -1119,6 +1119,11 @@ radv_emit_rbplus_state(struct radv_cmd_buffer *cmd_buffer) has_alpha = false; } + /* The HW doesn't quite blend correctly with rgb9e5 if we disable the alpha + * optimization, even though it has no alpha. */ + if (has_rgb && format == V_028C70_COLOR_5_9_9_9) + has_alpha = true; + /* Disable value checking for disabled channels. */ if (!has_rgb) sx_blend_opt_control |= S_02875C_MRT0_COLOR_OPT_DISABLE(1) << (i * 4); |