From 1cd1d39d842a7b324ba6792cadd4db176193a26f Mon Sep 17 00:00:00 2001
From: Tobias Frisch <tfrisch@uni-koblenz.de>
Date: Tue, 28 Sep 2021 17:15:05 +0200
Subject: [PATCH] [#105] Fixed shaders by using extensions properly and enabled
 them on CPU

Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de>
---
 projects/indirect_draw/resources/shaders/shader.frag | 2 +-
 projects/indirect_draw/resources/shaders/shader.vert | 1 +
 projects/indirect_draw/src/main.cpp                  | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/projects/indirect_draw/resources/shaders/shader.frag b/projects/indirect_draw/resources/shaders/shader.frag
index 48e4e08b..f0a0b493 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 244cfd09..10b25076 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 45de9ad0..bdc280a2 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) {
-- 
GitLab