summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2020-11-21 20:58:37 +0100
committerDylan Baker <dylan.c.baker@intel.com>2020-11-24 22:10:09 -0800
commite1e31f6126c16c8bc24e7c5f2771a32c69f336e7 (patch)
treed78efedd82cabd4b45b01cbd69b111b9915b7b6f
parentb2c70c3b116cc8874c71e4a1d903ff62e4484f16 (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.json2
-rw-r--r--src/amd/vulkan/radv_cmd_buffer.c5
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);