diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index 1b2422b..80db771 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -1553,8 +1553,7 @@
     return false;
   }
   ast::VariableBindingPoint bp = decl->BindingPoint();
-  line() << "layout (set = " << bp.group->value
-         << ", binding = " << bp.binding->value << ") uniform "
+  line() << "layout (binding = " << bp.binding->value << ") uniform "
          << UniqueIdentifier(StructName(str)) << " {";
   EmitStructMembers(current_buffer_, str);
   auto name = builder_.Symbols().NameFor(decl->symbol);
@@ -1573,8 +1572,7 @@
     return false;
   }
   ast::VariableBindingPoint bp = decl->BindingPoint();
-  line() << "layout (set = " << bp.group->value
-         << ", binding = " << bp.binding->value << ") buffer "
+  line() << "layout (binding = " << bp.binding->value << ") buffer "
          << UniqueIdentifier(StructName(str)) << " {";
   EmitStructMembers(current_buffer_, str);
   auto name = builder_.Symbols().NameFor(decl->symbol);
diff --git a/src/writer/glsl/generator_impl_function_test.cc b/src/writer/glsl/generator_impl_function_test.cc
index c8d9279..0cd8b97 100644
--- a/src/writer/glsl/generator_impl_function_test.cc
+++ b/src/writer/glsl/generator_impl_function_test.cc
@@ -434,7 +434,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) uniform UBO_1 {
+layout (binding = 0) uniform UBO_1 {
   vec4 coord;
 } ubo;
 
@@ -484,7 +484,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) uniform Uniforms_1 {
+layout (binding = 0) uniform Uniforms_1 {
   vec4 coord;
 } uniforms;
 
@@ -535,7 +535,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   int a;
   float b;
 } coord;
@@ -587,7 +587,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   int a;
   float b;
 } coord;
@@ -635,7 +635,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   int a;
   float b;
 } coord;
@@ -684,7 +684,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   int a;
   float b;
 } coord;
@@ -735,7 +735,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) uniform S_1 {
+layout (binding = 0) uniform S_1 {
   float x;
 } coord;
 
@@ -791,7 +791,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer S_1 {
+layout (binding = 0) buffer S_1 {
   float x;
 } coord;
 
@@ -1057,7 +1057,7 @@
 precision mediump float;
 
 
-layout (set = 0, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   float d;
 } data;
 
diff --git a/src/writer/glsl/generator_impl_member_accessor_test.cc b/src/writer/glsl/generator_impl_member_accessor_test.cc
index a17ed15..cf5b9b7 100644
--- a/src/writer/glsl/generator_impl_member_accessor_test.cc
+++ b/src/writer/glsl/generator_impl_member_accessor_test.cc
@@ -297,7 +297,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   int a;
   mat2x3 b;
 } data;
@@ -343,7 +343,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   float z;
   mat4x3 a;
 } data;
@@ -387,7 +387,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   float z;
   int a[5];
 } data;
@@ -432,7 +432,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   float z;
   int a[5];
 } data;
@@ -474,7 +474,7 @@
 precision mediump float;
 
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   float z;
   int a[5];
 } data;
@@ -531,7 +531,7 @@
   vec3 b;
 };
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   Inner c[4];
 } data;
 
@@ -590,7 +590,7 @@
   vec3 b;
 };
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   Inner c[4];
 } data;
 
@@ -649,7 +649,7 @@
   vec3 b;
 };
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   Inner c[4];
 } data;
 
@@ -708,7 +708,7 @@
   vec3 b;
 };
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   Inner c[4];
 } data;
 
@@ -763,7 +763,7 @@
   vec3 b;
 };
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   Inner c[4];
 } data;
 
@@ -822,7 +822,7 @@
   vec3 b;
 };
 
-layout (set = 1, binding = 0) buffer Data_1 {
+layout (binding = 0) buffer Data_1 {
   Inner c[4];
 } data;
 
diff --git a/src/writer/glsl/generator_impl_sanitizer_test.cc b/src/writer/glsl/generator_impl_sanitizer_test.cc
index 4c030d0..b85bde6 100644
--- a/src/writer/glsl/generator_impl_sanitizer_test.cc
+++ b/src/writer/glsl/generator_impl_sanitizer_test.cc
@@ -52,7 +52,7 @@
 precision mediump float;
 
 
-layout (set = 2, binding = 1) buffer my_struct_1 {
+layout (binding = 1) buffer my_struct_1 {
   float a[0];
 } b;
 
@@ -103,7 +103,7 @@
 precision mediump float;
 
 
-layout (set = 2, binding = 1) buffer my_struct_1 {
+layout (binding = 1) buffer my_struct_1 {
   float z;
   float a[0];
 } b;
@@ -157,7 +157,7 @@
 precision mediump float;
 
 
-layout (set = 2, binding = 1) buffer my_struct_1 {
+layout (binding = 1) buffer my_struct_1 {
   float a[0];
 } b;
 
