aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/panfrost/nir
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2020-06-01 20:34:34 -0400
committerMarge Bot <[email protected]>2020-06-03 22:48:10 +0000
commit3e4a0c2bca32fcf9f13363fa0c54b6a9b70c086b (patch)
tree871567de011174ed8cfd7073d2852f5eb09bfe0e /src/gallium/drivers/panfrost/nir
parent6d00eaf733395323ef06efd08851e49de35ba845 (diff)
panfrost: Explicitly convert to 32-bit for logic-ops
Signed-off-by: Alyssa Rosenzweig <[email protected]> Reported-by: Icecream95 <[email protected]> Fixes: 19b4e586f62 ("panfrost: Switch to pan_lower_framebuffer") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5289>
Diffstat (limited to 'src/gallium/drivers/panfrost/nir')
-rw-r--r--src/gallium/drivers/panfrost/nir/nir_lower_blend.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/gallium/drivers/panfrost/nir/nir_lower_blend.c b/src/gallium/drivers/panfrost/nir/nir_lower_blend.c
index f46f635da48..13cef5d6e14 100644
--- a/src/gallium/drivers/panfrost/nir/nir_lower_blend.c
+++ b/src/gallium/drivers/panfrost/nir/nir_lower_blend.c
@@ -215,6 +215,11 @@ nir_blend_logicop(
const struct util_format_description *format_desc =
util_format_description(options.format);
+ if (options.half) {
+ src = nir_f2f32(b, src);
+ dst = nir_f2f32(b, dst);
+ }
+
assert(src->num_components <= 4);
assert(dst->num_components <= 4);
@@ -235,7 +240,12 @@ nir_blend_logicop(
out = nir_iand(b, out, nir_build_imm(b, 4, 32, mask));
}
- return nir_format_unorm_to_float(b, out, bits);
+ out = nir_format_unorm_to_float(b, out, bits);
+
+ if (options.half)
+ out = nir_f2f16(b, out);
+
+ return out;
}
/* Given a blend state, the source color, and the destination color,