glsl: replace LowerPrecisionConstants with pipe caps

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36582>
This commit is contained in:
Marek Olšák 2025-08-05 15:06:04 -04:00
parent 2fc83bca1f
commit c57af04c9f
2 changed files with 3 additions and 6 deletions

View file

@ -1050,7 +1050,7 @@ lower_variables_visitor::visit(ir_variable *var)
/* Lower constant initializers. */
if (var->constant_value &&
var->type == var->constant_value->type) {
if (!options->LowerPrecisionConstants)
if (!screen->shader_caps[stage].glsl_16bit_consts)
return visit_continue;
var->constant_value =
var->constant_value->clone(var->node_linalloc, NULL);
@ -1059,7 +1059,7 @@ lower_variables_visitor::visit(ir_variable *var)
if (var->constant_initializer &&
var->type == var->constant_initializer->type) {
if (!options->LowerPrecisionConstants)
if (!screen->shader_caps[stage].glsl_16bit_consts)
return visit_continue;
var->constant_initializer =
var->constant_initializer->clone(var->node_linalloc, NULL);

View file

@ -370,10 +370,7 @@ standalone_compile_shader(const struct standalone_options *_options,
((struct pipe_shader_caps*)&ctx->screen->shader_caps[i])->fp16_derivatives = true;
((struct pipe_shader_caps*)&ctx->screen->shader_caps[i])->fp16_const_buffers = true;
((struct pipe_shader_caps*)&ctx->screen->shader_caps[i])->glsl_16bit_load_dst = true;
struct gl_shader_compiler_options *options =
&ctx->Const.ShaderCompilerOptions[i];
options->LowerPrecisionConstants = true;
((struct pipe_shader_caps*)&ctx->screen->shader_caps[i])->glsl_16bit_consts = true;
}
}