diff options
author | Alyssa Rosenzweig <[email protected]> | 2020-06-01 20:34:34 -0400 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-06-03 22:48:10 +0000 |
commit | 3e4a0c2bca32fcf9f13363fa0c54b6a9b70c086b (patch) | |
tree | 871567de011174ed8cfd7073d2852f5eb09bfe0e /src/gallium/drivers | |
parent | 6d00eaf733395323ef06efd08851e49de35ba845 (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')
-rw-r--r-- | src/gallium/drivers/panfrost/nir/nir_lower_blend.c | 12 |
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, |