diff --git a/icd/intel/cmd_pipeline.c b/icd/intel/cmd_pipeline.c
index c16aff3..d0b5114 100644
--- a/icd/intel/cmd_pipeline.c
+++ b/icd/intel/cmd_pipeline.c
@@ -1484,7 +1484,7 @@
     if (!rmap || !rmap->sampler_count)
         return 0;
 
-    surface_count = rmap->rt_count + rmap->resource_count + rmap->uav_count;
+    surface_count = rmap->rt_count + rmap->texture_resource_count + rmap->resource_count + rmap->uav_count;
 
     border_offset = cmd_state_pointer(cmd, INTEL_CMD_ITEM_BLOB,
             GEN6_ALIGNMENT_SAMPLER_BORDER_COLOR,
@@ -1563,7 +1563,7 @@
     CMD_ASSERT(cmd, 6, 7.5);
 
     surface_count = (rmap) ?
-        rmap->rt_count + rmap->resource_count + rmap->uav_count : 0;
+        rmap->rt_count + rmap->texture_resource_count + rmap->resource_count + rmap->uav_count : 0;
     if (!surface_count)
         return 0;
 
diff --git a/icd/intel/compiler/pipeline/brw_shader.cpp b/icd/intel/compiler/pipeline/brw_shader.cpp
index 20490b6..9c84dc1 100644
--- a/icd/intel/compiler/pipeline/brw_shader.cpp
+++ b/icd/intel/compiler/pipeline/brw_shader.cpp
@@ -961,16 +961,6 @@
 void
 backend_visitor::assign_common_binding_table_offsets(uint32_t next_binding_table_offset)
 {
-   // LunarG:  Don't allow compiler to separate number spaces for textures and buffers
-   stage_prog_data->binding_table.texture_start = next_binding_table_offset;
-   stage_prog_data->binding_table.ubo_start     = next_binding_table_offset;
-
-   // LunarG: Turn these on when we are ready to support
-   //stage_prog_data->binding_table.gather_texture_start = ??;
-   //stage_prog_data->binding_table.abo_start = ??;
-   //stage_prog_data->binding_table.pull_constants_start = ??;
-   return;
-
    int num_textures = _mesa_fls(prog->SamplersUsed);
 
    stage_prog_data->binding_table.texture_start = next_binding_table_offset;
diff --git a/icd/intel/pipeline.h b/icd/intel/pipeline.h
index aa5845a..fbc0390 100644
--- a/icd/intel/pipeline.h
+++ b/icd/intel/pipeline.h
@@ -69,6 +69,7 @@
     /* this is not an intel_obj */
 
     XGL_UINT rt_count;
+    XGL_UINT texture_resource_count;
     XGL_UINT resource_count;
     XGL_UINT uav_count;
     XGL_UINT sampler_count;
diff --git a/icd/intel/pipeline_shader.c b/icd/intel/pipeline_shader.c
index 329bdba..b66c00f 100644
--- a/icd/intel/pipeline_shader.c
+++ b/icd/intel/pipeline_shader.c
@@ -33,7 +33,10 @@
                                                       XGL_DESCRIPTOR_SET_SLOT_TYPE type,
                                                       XGL_UINT index)
 {
-    const XGL_UINT resource_offset = rmap->rt_count;
+    // The ordering of below offsets is important.  Textures need to come before
+    // buffers with the current compiler conventions.
+    const XGL_UINT texture_resource_offset = rmap->rt_count;
+    const XGL_UINT resource_offset = texture_resource_offset + rmap->texture_resource_count;
     const XGL_UINT uav_offset = resource_offset + rmap->resource_count;
     const XGL_UINT sampler_offset = uav_offset + rmap->uav_count;
     struct intel_pipeline_rmap_slot *slot;
@@ -42,6 +45,9 @@
     case XGL_SLOT_UNUSED:
         slot = NULL;
         break;
+    case XGL_SLOT_SHADER_TEXTURE_RESOURCE:
+        slot = &rmap->slots[texture_resource_offset + index];
+        break;
     case XGL_SLOT_SHADER_RESOURCE:
         slot = &rmap->slots[resource_offset + index];
         break;
@@ -138,6 +144,10 @@
     switch (type) {
     case XGL_SLOT_UNUSED:
         break;
+    case XGL_SLOT_SHADER_TEXTURE_RESOURCE:
+        if (rmap->texture_resource_count < index + 1)
+            rmap->texture_resource_count = index + 1;
+        break;
     case XGL_SLOT_SHADER_RESOURCE:
         if (rmap->resource_count < index + 1)
             rmap->resource_count = index + 1;
@@ -225,7 +235,7 @@
     rmap_update_count(rmap, dyn->slotObjectType, dyn->shaderEntityIndex);
     rmap->rt_count = rt_count;
 
-    rmap->slot_count = rmap->rt_count + rmap->resource_count +
+    rmap->slot_count = rmap->rt_count + rmap->texture_resource_count + rmap->resource_count +
         rmap->uav_count + rmap->sampler_count;
 
     rmap->slots = icd_alloc(sizeof(rmap->slots[0]) * rmap->slot_count,
diff --git a/include/xgl.h b/include/xgl.h
index 52a5f80..f28aa22 100644
--- a/include/xgl.h
+++ b/include/xgl.h
@@ -288,8 +288,13 @@
     XGL_SLOT_SHADER_SAMPLER                                 = 0x00000003,
     XGL_SLOT_NEXT_DESCRIPTOR_SET                            = 0x00000004,
 
+    // LUNARG CHANGE BEGIN - differentiate between textures and buffers
+    XGL_SLOT_SHADER_TEXTURE_RESOURCE                        = 0x00000005,
+
     XGL_DESCRIPTOR_SET_SLOT_TYPE_BEGIN_RANGE                = XGL_SLOT_UNUSED,
-    XGL_DESCRIPTOR_SET_SLOT_TYPE_END_RANGE                  = XGL_SLOT_NEXT_DESCRIPTOR_SET,
+    XGL_DESCRIPTOR_SET_SLOT_TYPE_END_RANGE                  = XGL_SLOT_SHADER_TEXTURE_RESOURCE,
+    // LUNARG CHANGE END
+
     XGL_NUM_DESCRIPTOR_SET_SLOT_TYPE                        = (XGL_DESCRIPTOR_SET_SLOT_TYPE_END_RANGE - XGL_DESCRIPTOR_SET_SLOT_TYPE_BEGIN_RANGE + 1),
     XGL_MAX_ENUM(_XGL_DESCRIPTOR_SET_SLOT_TYPE)
 } XGL_DESCRIPTOR_SET_SLOT_TYPE;
diff --git a/layers/draw_state.c b/layers/draw_state.c
index 75193b8..1e8b163 100644
--- a/layers/draw_state.c
+++ b/layers/draw_state.c
@@ -760,6 +760,7 @@
     char str[1024];
     switch (shaderMapping)
     {
+        case XGL_SLOT_SHADER_TEXTURE_RESOURCE:
         case XGL_SLOT_SHADER_RESOURCE:
             if (MAPPING_MEMORY != slotBinding && MAPPING_IMAGE != slotBinding)
                 error = XGL_TRUE;
