|
|
@@ -35,20 +35,20 @@ static const char* SHADER_HEADER = R"(#version 450 core
|
|
|
#define ANKI_%s_SHADER 1
|
|
|
|
|
|
#if defined(ANKI_BACKEND_GL)
|
|
|
-# define ANKI_UBO_BINDING(set_, binding_) binding = (set_) * %u + (binding_)
|
|
|
-# define ANKI_SS_BINDING(set_, binding_) binding = (set_) * %u + (binding_)
|
|
|
-# define ANKI_TEX_BINDING(set_, binding_) binding = (set_) * %u + (binding_)
|
|
|
-# define ANKI_IMAGE_BINDING(set_, binding_) binding = (set_) * %u + (binding_)
|
|
|
+# define ANKI_UBO_BINDING(set_, binding_) binding = (set_) * (%u) + (binding_)
|
|
|
+# define ANKI_SS_BINDING(set_, binding_) binding = (set_) * (%u) + (binding_)
|
|
|
+# define ANKI_TEX_BINDING(set_, binding_) location = (set_) * (%u) + (binding_)
|
|
|
+# define ANKI_IMAGE_BINDING(set_, binding_) location = (set_) * (%u) + (binding_) + (%u)
|
|
|
# define ANKI_SPEC_CONST(binding_, type_, name_) const type_ name_ = _anki_spec_const_ ## binding_
|
|
|
-# define ANKI_PUSH_CONSTANTS(struct_, name_) layout(location = %u) uniform struct_ name_
|
|
|
+# define ANKI_PUSH_CONSTANTS(struct_, name_) layout(location = (%u)) uniform struct_ name_
|
|
|
#else
|
|
|
# define gl_VertexID gl_VertexIndex
|
|
|
# define gl_InstanceID gl_InstanceIndex
|
|
|
-# define ANKI_TEX_BINDING(set_, binding_) set = set_, binding = %u + binding_
|
|
|
-# define ANKI_UBO_BINDING(set_, binding_) set = set_, binding = %u + binding_
|
|
|
-# define ANKI_SS_BINDING(set_, binding_) set = set_, binding = %u + binding_
|
|
|
-# define ANKI_IMAGE_BINDING(set_, binding_) set = set_, binding = %u + binding_
|
|
|
-# define ANKI_SPEC_CONST(binding_, type_, name_) layout(constant_id = binding_) const type_ name_ = type_(0)
|
|
|
+# define ANKI_TEX_BINDING(set_, binding_) set = (set_), binding = (%u) + (binding_)
|
|
|
+# define ANKI_UBO_BINDING(set_, binding_) set = (set_), binding = (%u) + (binding_)
|
|
|
+# define ANKI_SS_BINDING(set_, binding_) set = (set_), binding = (%u) + (binding_)
|
|
|
+# define ANKI_IMAGE_BINDING(set_, binding_) set = (set_), binding = (%u) + (binding_)
|
|
|
+# define ANKI_SPEC_CONST(binding_, type_, name_) layout(constant_id = (binding_)) const type_ name_ = type_(0)
|
|
|
# define ANKI_PUSH_CONSTANTS(struct_, name_) layout(push_constant, row_major, std140) \
|
|
|
uniform pushConst_ {struct_ name_;}
|
|
|
#endif
|
|
|
@@ -295,8 +295,9 @@ Error ShaderCompiler::compile(CString source, const ShaderCompilerOptions& optio
|
|
|
MAX_UNIFORM_BUFFER_BINDINGS,
|
|
|
MAX_STORAGE_BUFFER_BINDINGS,
|
|
|
MAX_TEXTURE_BINDINGS,
|
|
|
- MAX_IMAGE_BINDINGS,
|
|
|
- MAX_TEXTURE_BINDINGS * MAX_DESCRIPTOR_SETS, // Push constant location
|
|
|
+ MAX_IMAGE_BINDINGS, // Images
|
|
|
+ MAX_TEXTURE_BINDINGS * MAX_DESCRIPTOR_SETS, // Images offset
|
|
|
+ (MAX_TEXTURE_BINDINGS + MAX_IMAGE_BINDINGS) * MAX_DESCRIPTOR_SETS, // Push constant location
|
|
|
// VK bindings
|
|
|
0,
|
|
|
MAX_TEXTURE_BINDINGS,
|