mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
glsl/st: move remaining glsl ir lowering to linker
This is a tidy up but also allows us to drop an additional validate_ir_tree() call. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26628>
This commit is contained in:
parent
f4a8aa653d
commit
fe44414662
4 changed files with 13 additions and 32 deletions
|
|
@ -3116,7 +3116,19 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||
if (prog->_LinkedShaders[i] == NULL)
|
||||
continue;
|
||||
|
||||
lower_vector_derefs(prog->_LinkedShaders[i]);
|
||||
struct gl_linked_shader *shader = prog->_LinkedShaders[i];
|
||||
exec_list *ir = shader->ir;
|
||||
|
||||
lower_vector_derefs(shader);
|
||||
|
||||
lower_packing_builtins(ir, ctx->Extensions.ARB_shading_language_packing,
|
||||
ctx->Extensions.ARB_gpu_shader5,
|
||||
ctx->Const.GLSLHasHalfFloatPacking);
|
||||
do_mat_op_to_vec(ir);
|
||||
|
||||
lower_instructions(ir, ctx->Extensions.ARB_gpu_shader5);
|
||||
|
||||
do_vec_index_to_cond_assign(ir);
|
||||
}
|
||||
|
||||
done:
|
||||
|
|
|
|||
|
|
@ -222,7 +222,6 @@ void initialize_context_to_defaults(struct gl_context *ctx, gl_api api)
|
|||
ctx->Extensions.ARB_shader_stencil_export = true;
|
||||
ctx->Extensions.ARB_shader_texture_lod = true;
|
||||
ctx->Extensions.ARB_shading_language_420pack = true;
|
||||
ctx->Extensions.ARB_shading_language_packing = true;
|
||||
ctx->Extensions.ARB_tessellation_shader = true;
|
||||
ctx->Extensions.ARB_texture_cube_map_array = true;
|
||||
ctx->Extensions.ARB_texture_gather = true;
|
||||
|
|
|
|||
|
|
@ -192,14 +192,6 @@ namespace
|
|||
fprintf(stderr, "Linker error: %s", whole_program->data->InfoLog);
|
||||
EXPECT_EQ(whole_program->data->LinkStatus, LINKING_SUCCESS);
|
||||
|
||||
for (unsigned i = 0; i < ARRAY_SIZE(whole_program->_LinkedShaders); i++) {
|
||||
struct gl_linked_shader *sh = whole_program->_LinkedShaders[i];
|
||||
if (!sh)
|
||||
continue;
|
||||
|
||||
do_mat_op_to_vec(sh->ir);
|
||||
}
|
||||
|
||||
/* Save off the GLSL IR now, since glsl_to_nir() frees it. */
|
||||
fs_ir = get_fs_ir();
|
||||
|
||||
|
|
|
|||
|
|
@ -500,28 +500,6 @@ st_link_glsl_to_nir(struct gl_context *ctx,
|
|||
|
||||
assert(shader_program->data->LinkStatus);
|
||||
|
||||
/* Skip the GLSL steps when using SPIR-V. */
|
||||
if (!shader_program->data->spirv) {
|
||||
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
|
||||
if (shader_program->_LinkedShaders[i] == NULL)
|
||||
continue;
|
||||
|
||||
struct gl_linked_shader *shader = shader_program->_LinkedShaders[i];
|
||||
exec_list *ir = shader->ir;
|
||||
|
||||
lower_packing_builtins(ir, ctx->Extensions.ARB_shading_language_packing,
|
||||
ctx->Extensions.ARB_gpu_shader5,
|
||||
ctx->Const.GLSLHasHalfFloatPacking);
|
||||
do_mat_op_to_vec(ir);
|
||||
|
||||
lower_instructions(ir, ctx->Extensions.ARB_gpu_shader5);
|
||||
|
||||
do_vec_index_to_cond_assign(ir);
|
||||
|
||||
validate_ir_tree(ir);
|
||||
}
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
|
||||
if (shader_program->_LinkedShaders[i])
|
||||
linked_shader[num_shaders++] = shader_program->_LinkedShaders[i];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue