Przeglądaj źródła

nir: add option to lower half packing opcodes

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3106>
master
Jonathan Marek 6 lat temu
rodzic
commit
004797002f
2 zmienionych plików z 14 dodań i 0 usunięć
  1. 2
    0
      src/compiler/nir/nir.h
  2. 12
    0
      src/compiler/nir/nir_opt_algebraic.py

+ 2
- 0
src/compiler/nir/nir.h Wyświetl plik

@@ -2761,11 +2761,13 @@ typedef struct nir_shader_compiler_options {
bool lower_ldexp;

bool lower_pack_half_2x16;
bool lower_pack_half_2x16_split;
bool lower_pack_unorm_2x16;
bool lower_pack_snorm_2x16;
bool lower_pack_unorm_4x8;
bool lower_pack_snorm_4x8;
bool lower_unpack_half_2x16;
bool lower_unpack_half_2x16_split;
bool lower_unpack_unorm_2x16;
bool lower_unpack_snorm_2x16;
bool lower_unpack_unorm_4x8;

+ 12
- 0
src/compiler/nir/nir_opt_algebraic.py Wyświetl plik

@@ -1117,6 +1117,18 @@ optimizations.extend([
127.0))),
'options->lower_unpack_snorm_4x8'),

(('pack_half_2x16_split', 'a@32', 'b@32'),
('ior', ('ishl', ('u2u32', ('f2f16', b)), 16), ('u2u32', ('f2f16', a))),
'options->lower_pack_half_2x16_split'),

(('unpack_half_2x16_split_x', 'a@32'),
('f2f32', ('u2u16', a)),
'options->lower_unpack_half_2x16_split'),

(('unpack_half_2x16_split_y', 'a@32'),
('f2f32', ('u2u16', ('ushr', a, 16))),
'options->lower_unpack_half_2x16_split'),

(('isign', a), ('imin', ('imax', a, -1), 1), 'options->lower_isign'),
(('fsign', a), ('fsub', ('b2f', ('flt', 0.0, a)), ('b2f', ('flt', a, 0.0))), 'options->lower_fsign'),


Ładowanie…
Anuluj
Zapisz