glsl: remove the always_active_io flag from GLSL IR
No longer used. Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22846>
This commit is contained in:

committed by
Marge Bot

parent
06f3988c58
commit
bc66c2588a
@@ -506,7 +506,6 @@ nir_visitor::visit(ir_variable *ir)
|
||||
var->name = ralloc_strdup(var, ir->name);
|
||||
|
||||
var->data.assigned = ir->data.assigned;
|
||||
var->data.always_active_io = ir->data.always_active_io;
|
||||
var->data.read_only = ir->data.read_only;
|
||||
var->data.centroid = ir->data.centroid;
|
||||
var->data.sample = ir->data.sample;
|
||||
|
@@ -2043,7 +2043,6 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
|
||||
this->data.depth_layout = ir_depth_layout_none;
|
||||
this->data.used = false;
|
||||
this->data.assigned = false;
|
||||
this->data.always_active_io = false;
|
||||
this->data.read_only = false;
|
||||
this->data.centroid = false;
|
||||
this->data.sample = false;
|
||||
|
@@ -699,13 +699,6 @@ public:
|
||||
*/
|
||||
unsigned assigned:1;
|
||||
|
||||
/**
|
||||
* When separate shader programs are enabled, only input/outputs between
|
||||
* the stages of a multi-stage separate program can be safely removed
|
||||
* from the shader interface. Other input/outputs must remains active.
|
||||
*/
|
||||
unsigned always_active_io:1;
|
||||
|
||||
/**
|
||||
* Enum indicating how the variable was declared. See
|
||||
* ir_var_declaration_type.
|
||||
|
@@ -74,20 +74,6 @@ do_dead_code(exec_list *instructions)
|
||||
|| !entry->declaration)
|
||||
continue;
|
||||
|
||||
/* Section 7.4.1 (Shader Interface Matching) of the OpenGL 4.5
|
||||
* (Core Profile) spec says:
|
||||
*
|
||||
* "With separable program objects, interfaces between shader
|
||||
* stages may involve the outputs from one program object and the
|
||||
* inputs from a second program object. For such interfaces, it is
|
||||
* not possible to detect mismatches at link time, because the
|
||||
* programs are linked separately. When each such program is
|
||||
* linked, all inputs or outputs interfacing with another program
|
||||
* stage are treated as active."
|
||||
*/
|
||||
if (entry->var->data.always_active_io)
|
||||
continue;
|
||||
|
||||
if (!entry->assign_list.is_empty()) {
|
||||
/* Remove all the dead assignments to the variable we found.
|
||||
* Don't do so if it's a shader or function output, though.
|
||||
|
Reference in New Issue
Block a user