summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2017-04-26 16:29:34 +0200
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>2017-04-26 16:29:34 +0200
commiteba53286cda25433a81a91d86f48d02344e73604 (patch)
tree428a472b6c803cab0f90468851b3c24979744cf5
parent187b3afeb000b7fdb20f38513e038a112c85d084 (diff)
Revert "glsl: use ARB_enhahnced_layouts for packing where possible"
-rw-r--r--src/compiler/glsl/link_varyings.cpp70
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 =