diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2017-04-26 16:29:34 +0200 |
---|---|---|
committer | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2017-04-26 16:29:34 +0200 |
commit | eba53286cda25433a81a91d86f48d02344e73604 (patch) | |
tree | 428a472b6c803cab0f90468851b3c24979744cf5 | |
parent | 187b3afeb000b7fdb20f38513e038a112c85d084 (diff) |
Revert "glsl: use ARB_enhahnced_layouts for packing where possible"
This reverts commit 21173194db12f5eff7361040c038dbfc9cde46e4.
-rw-r--r-- | src/compiler/glsl/link_varyings.cpp | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp index d04f546c24..6bcec72f5f 100644 --- a/src/compiler/glsl/link_varyings.cpp +++ b/src/compiler/glsl/link_varyings.cpp @@ -1217,7 +1217,6 @@ class varying_matches { public: varying_matches(bool disable_varying_packing, bool xfb_enabled, - bool enhanced_layouts_enabled, gl_shader_stage producer_stage, gl_shader_stage consumer_stage); ~varying_matches(); @@ -1251,8 +1250,6 @@ private: */ const bool xfb_enabled; - const bool enhanced_layouts_enabled; - /** * Enum representing the order in which varyings are packed within a * packing class. @@ -1329,12 +1326,10 @@ private: varying_matches::varying_matches(bool disable_varying_packing, bool xfb_enabled, - bool enhanced_layouts_enabled, gl_shader_stage producer_stage, gl_shader_stage consumer_stage) : disable_varying_packing(disable_varying_packing), xfb_enabled(xfb_enabled), - enhanced_layouts_enabled(enhanced_layouts_enabled), producer_stage(producer_stage), consumer_stage(consumer_stage) { @@ -1627,12 +1622,6 @@ varying_matches::assign_locations(struct gl_shader_program *prog, void varying_matches::store_locations() const { - /* Check is location needs to be packed with lower_packed_varyings() or if - * we can just use ARB_enhanced_layouts packing. - */ - bool pack_loc[MAX_VARYINGS_INCL_PATCH] = { 0 }; - const glsl_type *loc_type[MAX_VARYINGS_INCL_PATCH][4] = { {NULL, NULL} }; - for (unsigned i = 0; i < this->num_matches; i++) { ir_variable *producer_var = this->matches[i].producer_var; ir_variable *consumer_var = this->matches[i].consumer_var; @@ -1650,64 +1639,6 @@ varying_matches::store_locations() const consumer_var->data.location = VARYING_SLOT_VAR0 + slot; consumer_var->data.location_frac = offset; } - - /* Find locations suitable for native packing via - * ARB_enhanced_layouts. - */ - if (producer_var && consumer_var) { - if (enhanced_layouts_enabled) { - const glsl_type *type = - get_varying_type(producer_var, producer_stage); - if (type->is_array() || type->is_matrix() || type->is_record() || - type->is_double()) { - unsigned comp_slots = type->component_slots() + offset; - unsigned slots = comp_slots / 4; - if (comp_slots % 4) - slots += 1; - - for (unsigned j = 0; j < slots; j++) { - pack_loc[slot + j] = true; - } - } else if (offset + type->vector_elements > 4) { - pack_loc[slot] = true; - pack_loc[slot + 1] = true; - } else { - loc_type[slot][offset] = type; - } - } - } - } - - /* Attempt to use ARB_enhanced_layouts for more efficient packing if - * suitable. - */ - if (enhanced_layouts_enabled) { - for (unsigned i = 0; i < this->num_matches; i++) { - ir_variable *producer_var = this->matches[i].producer_var; - ir_variable *consumer_var = this->matches[i].consumer_var; - unsigned generic_location = this->matches[i].generic_location; - unsigned slot = generic_location / 4; - - if (pack_loc[slot] || !producer_var || !consumer_var) - continue; - - const glsl_type *type = - get_varying_type(producer_var, producer_stage); - bool type_match = true; - for (unsigned j = 0; j < 4; j++) { - if (loc_type[slot][j]) { - if (type->base_type != loc_type[slot][j]->base_type) - type_match = false; - } - } - - if (type_match) { - producer_var->data.explicit_location = 1; - consumer_var->data.explicit_location = 1; - producer_var->data.explicit_component = 1; - consumer_var->data.explicit_component = 1; - } - } } } @@ -2169,7 +2100,6 @@ assign_varying_locations(struct gl_context *ctx, disable_varying_packing = true; varying_matches matches(disable_varying_packing, xfb_enabled, - ctx->Extensions.ARB_enhanced_layouts, producer ? producer->Stage : (gl_shader_stage)-1, consumer ? consumer->Stage : (gl_shader_stage)-1); hash_table *tfeedback_candidates = |