nir/builder: Don't assume we have compiler options
We use nir_builder a variety of places where we may not yet have back-end compiler options such as for building meta shaders. Don't assume we always have an options struct. Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24459>
This commit is contained in:

committed by
Marge Bot

parent
0a5fab555d
commit
356a268b46
@@ -612,7 +612,7 @@ nir_gen_rect_vertices(nir_builder *b, nir_ssa_def *z, nir_ssa_def *w)
|
||||
w = nir_imm_float(b, 1.0);
|
||||
|
||||
nir_ssa_def *vertex_id;
|
||||
if (b->shader->options->vertex_id_zero_based)
|
||||
if (b->shader->options && b->shader->options->vertex_id_zero_based)
|
||||
vertex_id = nir_load_vertex_id_zero_base(b);
|
||||
else
|
||||
vertex_id = nir_load_vertex_id(b);
|
||||
|
@@ -795,7 +795,8 @@ _nir_mul_imm(nir_builder *build, nir_ssa_def *x, uint64_t y, bool amul)
|
||||
return nir_imm_intN_t(build, 0, x->bit_size);
|
||||
} else if (y == 1) {
|
||||
return x;
|
||||
} else if (!build->shader->options->lower_bitops &&
|
||||
} else if ((!build->shader->options ||
|
||||
!build->shader->options->lower_bitops) &&
|
||||
util_is_power_of_two_or_zero64(y)) {
|
||||
return nir_ishl(build, x, nir_imm_int(build, ffsll(y) - 1));
|
||||
} else if (amul) {
|
||||
@@ -983,7 +984,8 @@ nir_uclamp(nir_builder *b,
|
||||
static inline nir_ssa_def *
|
||||
nir_ffma_imm12(nir_builder *build, nir_ssa_def *src0, double src1, double src2)
|
||||
{
|
||||
if (build->shader->options->avoid_ternary_with_two_constants)
|
||||
if (build->shader->options &&
|
||||
build->shader->options->avoid_ternary_with_two_constants)
|
||||
return nir_fadd_imm(build, nir_fmul_imm(build, src0, src1), src2);
|
||||
else
|
||||
return nir_ffma(build, src0, nir_imm_floatN_t(build, src1, src0->bit_size),
|
||||
|
Reference in New Issue
Block a user