summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-12-24 14:01:33 -0500
committerAlyssa Rosenzweig <[email protected]>2019-12-24 19:21:52 -0500
commit3af5a398f33751a839d114c8fd66c9c96a5bc5f7 (patch)
treefb070974b9166ebdb3dc6ae1369841ca02e94923
parent843a6db6bb9408f49514dca2568d6bd5645a829a (diff)
pan/midgard: Enable lower_(un)pack_* lowering
These show up in some blend shaders. Let's use the shared lowering and remove our own. Signed-off-by: Alyssa Rosenzweig <[email protected]>
-rw-r--r--src/panfrost/midgard/midgard_compile.h13
-rw-r--r--src/panfrost/midgard/midgard_nir_algebraic.py2
2 files changed, 13 insertions, 2 deletions
diff --git a/src/panfrost/midgard/midgard_compile.h b/src/panfrost/midgard/midgard_compile.h
index 51966b46471..97dac0e8125 100644
--- a/src/panfrost/midgard/midgard_compile.h
+++ b/src/panfrost/midgard/midgard_compile.h
@@ -123,6 +123,19 @@ static const nir_shader_compiler_options midgard_nir_options = {
.lower_extract_word = true,
.lower_rotate = true,
+ .lower_pack_half_2x16 = true,
+ .lower_pack_half_2x16_split = true,
+ .lower_pack_unorm_2x16 = true,
+ .lower_pack_snorm_2x16 = true,
+ .lower_pack_unorm_4x8 = true,
+ .lower_pack_snorm_4x8 = true,
+ .lower_unpack_half_2x16 = true,
+ .lower_unpack_half_2x16_split = true,
+ .lower_unpack_unorm_2x16 = true,
+ .lower_unpack_snorm_2x16 = true,
+ .lower_unpack_unorm_4x8 = true,
+ .lower_unpack_snorm_4x8 = true,
+
.lower_doubles_options = nir_lower_dmod,
.vectorize_io = true,
diff --git a/src/panfrost/midgard/midgard_nir_algebraic.py b/src/panfrost/midgard/midgard_nir_algebraic.py
index faf83364c3a..951b4b23241 100644
--- a/src/panfrost/midgard/midgard_nir_algebraic.py
+++ b/src/panfrost/midgard/midgard_nir_algebraic.py
@@ -60,8 +60,6 @@ converts = [
# Totally redundant
(('~f2f16', ('f2f32', 'a@16')), a),
-
- (('pack_half_2x16_split', 'a@32', 'b@32'), ('ior', ('ishl', ('i2i32', ('f2f16', b)), 16), ('i2i32', ('f2f16', a)))),
]
# Midgard scales fsin/fcos arguments by pi.