diff --git a/projects/indirect_draw/resources/shaders/shader.frag b/projects/indirect_draw/resources/shaders/shader.frag
index 48e4e08be43ad1910f5e6ecc6eebcb88a1208602..f0a0b49314926ef9195d9a145b805b55d17b8807 100644
--- a/projects/indirect_draw/resources/shaders/shader.frag
+++ b/projects/indirect_draw/resources/shaders/shader.frag
@@ -14,5 +14,5 @@ layout(set=0, binding=2) uniform texture2D baseColorTex[];
 
 void main()
 {
-    outColor = texture(sampler2D(baseColorTex[passDrawIndex], standardSampler), passUV).rgb;
+    outColor = texture(sampler2D(baseColorTex[nonuniformEXT(passDrawIndex)], standardSampler), passUV).rgb;
 }
\ No newline at end of file
diff --git a/projects/indirect_draw/resources/shaders/shader.vert b/projects/indirect_draw/resources/shaders/shader.vert
index 244cfd09e4f7b0548fe40b019f59d6e28b916e6e..10b250761437dce6eea01dd195e1248fc9c0bd90 100644
--- a/projects/indirect_draw/resources/shaders/shader.vert
+++ b/projects/indirect_draw/resources/shaders/shader.vert
@@ -1,5 +1,6 @@
 #version 460
 #extension GL_ARB_separate_shader_objects : enable
+#extension GL_ARB_shader_draw_parameters : enable
 
 layout(location = 0) in vec3 inPosition;
 layout(location = 1) in vec3 inNormal;
diff --git a/projects/indirect_draw/src/main.cpp b/projects/indirect_draw/src/main.cpp
index 45de9ad010cfc59cac0b9ab929a1c19e43cabc38..bdc280a28513ddb6216e6e02a769c8261ebcd506 100644
--- a/projects/indirect_draw/src/main.cpp
+++ b/projects/indirect_draw/src/main.cpp
@@ -268,6 +268,7 @@ int main(int argc, const char** argv) {
         features.setMultiDrawIndirect(true);
     });
 
+	features.requireExtension(VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME);
     features.requireExtension(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME);
     features.requireExtensionFeature<vk::PhysicalDeviceDescriptorIndexingFeatures>(
             VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, [](vk::PhysicalDeviceDescriptorIndexingFeatures &features) {