nir: Add filter callback for lower_to_scalar to the options
authorGert Wollny <gert.wollny@collabora.com>
Wed, 31 Mar 2021 08:54:47 +0000 (10:54 +0200)
committerMarge Bot <eric+marge@anholt.net>
Fri, 7 May 2021 12:09:03 +0000 (12:09 +0000)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9943>

src/compiler/nir/nir.h

index d154d41..1a1f3db 100644 (file)
@@ -3129,6 +3129,12 @@ typedef enum {
    nir_divergence_multiple_workgroup_per_compute_subgroup = (1 << 5),
 } nir_divergence_options;
 
+/** An instruction filtering callback
+ *
+ * Returns true if the instruction should be processed and false otherwise.
+ */
+typedef bool (*nir_instr_filter_cb)(const nir_instr *, const void *);
+
 typedef struct nir_shader_compiler_options {
    bool lower_fdiv;
    bool lower_ffma16;
@@ -3342,6 +3348,7 @@ typedef struct nir_shader_compiler_options {
     */
    bool vectorize_io;
    bool lower_to_scalar;
+   nir_instr_filter_cb lower_to_scalar_filter;
 
    /**
     * Whether nir_opt_vectorize should only create 16-bit 2D vectors.
@@ -4184,12 +4191,6 @@ static inline bool should_print_nir(nir_shader *shader) { return false; }
 
 #define NIR_SKIP(name) should_skip_nir(#name)
 
-/** An instruction filtering callback
- *
- * Returns true if the instruction should be processed and false otherwise.
- */
-typedef bool (*nir_instr_filter_cb)(const nir_instr *, const void *);
-
 /** An instruction filtering callback with writemask
  *
  * Returns true if the instruction should be processed with the associated