mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-27 10:30:08 +01:00
brw: Optimize 16-bit texture fetches later
At the point we were calling this, we hadn't necessarily cleaned up derefs via nir_lower_vars_to_ssa, nor movs/vecs via copy propagation, so it wasn't necessarily easy for this pass to see the actual usage of the destination. Moving this later allows us to detect f2f32(txf(...)) and avoid converting it to a 16-bit txf (why convert with ALU instructions when the sampler could do it for us?). Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31750>
This commit is contained in:
parent
ea478efa2e
commit
834b919f6a
1 changed files with 6 additions and 6 deletions
|
|
@ -1019,12 +1019,6 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir,
|
|||
|
||||
OPT(nir_lower_alu_to_scalar, NULL, NULL);
|
||||
|
||||
struct nir_opt_16bit_tex_image_options options = {
|
||||
.rounding_mode = nir_rounding_mode_undef,
|
||||
.opt_tex_dest_types = nir_type_float | nir_type_int | nir_type_uint,
|
||||
};
|
||||
OPT(nir_opt_16bit_tex_image, &options);
|
||||
|
||||
if (nir->info.stage == MESA_SHADER_GEOMETRY)
|
||||
OPT(nir_lower_gs_intrinsics, 0);
|
||||
|
||||
|
|
@ -1084,6 +1078,12 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir,
|
|||
|
||||
brw_nir_optimize(nir, devinfo);
|
||||
|
||||
struct nir_opt_16bit_tex_image_options options = {
|
||||
.rounding_mode = nir_rounding_mode_undef,
|
||||
.opt_tex_dest_types = nir_type_float | nir_type_int | nir_type_uint,
|
||||
};
|
||||
OPT(nir_opt_16bit_tex_image, &options);
|
||||
|
||||
OPT(nir_lower_doubles, opts->softfp64, nir->options->lower_doubles_options);
|
||||
if (OPT(nir_lower_int64_float_conversions)) {
|
||||
OPT(nir_opt_algebraic);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue