diff --git a/icd/intel/compiler/shader/link_uniforms.cpp b/icd/intel/compiler/shader/link_uniforms.cpp
index a269c3a..2c06052 100644
--- a/icd/intel/compiler/shader/link_uniforms.cpp
+++ b/icd/intel/compiler/shader/link_uniforms.cpp
@@ -368,9 +368,8 @@
 public:
    parcel_out_uniform_storage(struct string_to_uint_map *map,
 			      struct gl_uniform_storage *uniforms,
-				  union gl_constant_value *values,
-				  bool xgl)
-	  : map(map), uniforms(uniforms), values(values), isXGL(xgl)
+			      union gl_constant_value *values)
+      : map(map), uniforms(uniforms), values(values)
    {
    }
 
@@ -441,20 +440,8 @@
                     var->get_interface_type()->name);
          else
             process(var);
-      } else {
-
-         // Allow uniform binding to set sampler index for XGL
-         // This means both the texture unit and sampler unit will
-         // be bound based on the binding.  For instance:
-         //     layout (binding = 2) uniform sampler2D surface;
-         // will read from:
-         //     XGL_SLOT_SHADER_SAMPLER 2
-         //     XGL_SLOT_SHADER_RESOURCE 2
-         if (isXGL && var->type->is_sampler())
-             this->next_sampler = var->data.binding;
-
+      } else
          process(var);
-      }
    }
 
    int ubo_block_index;
@@ -809,7 +796,7 @@
 }
 
 void
-link_assign_uniform_locations(struct gl_shader_program *prog, bool isXGL)
+link_assign_uniform_locations(struct gl_shader_program *prog)
 {
    ralloc_free(prog->UniformStorage);
    prog->UniformStorage = NULL;
@@ -901,7 +888,7 @@
    union gl_constant_value *data_end = &data[num_data_slots];
 #endif
 
-   parcel_out_uniform_storage parcel(prog->UniformHash, uniforms, data, isXGL);
+   parcel_out_uniform_storage parcel(prog->UniformHash, uniforms, data);
 
    for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       if (prog->_LinkedShaders[i] == NULL)
diff --git a/icd/intel/compiler/shader/linker.cpp b/icd/intel/compiler/shader/linker.cpp
index fd23997..a55c7c6 100644
--- a/icd/intel/compiler/shader/linker.cpp
+++ b/icd/intel/compiler/shader/linker.cpp
@@ -2590,7 +2590,7 @@
       goto done;
 
    update_array_sizes(prog);
-   link_assign_uniform_locations(prog, ctx->API == API_XGL);
+   link_assign_uniform_locations(prog);
    link_assign_atomic_counter_resources(ctx, prog);
    store_fragdepth_layout(prog);
 
diff --git a/icd/intel/compiler/shader/linker.h b/icd/intel/compiler/shader/linker.h
index 28b0ba9..f0a947b 100644
--- a/icd/intel/compiler/shader/linker.h
+++ b/icd/intel/compiler/shader/linker.h
@@ -37,7 +37,7 @@
 link_invalidate_variable_locations(exec_list *ir);
 
 extern void
-link_assign_uniform_locations(struct gl_shader_program *prog, bool isXGL);
+link_assign_uniform_locations(struct gl_shader_program *prog);
 
 extern void
 link_set_uniform_initializers(struct gl_shader_program *prog);
