metal: support constant initializer values for local uniforms.

This commit is contained in:
Alex Szpakowski
2022-01-01 15:28:42 -04:00
parent be6736cba5
commit e602f08c24
5 changed files with 110 additions and 9 deletions
+14
View File
@@ -158,6 +158,13 @@ public:
};
};
union LocalUniformValue
{
float f;
int32 i;
uint32 u;
};
// The members in here must respect uniform buffer alignment/padding rules.
struct BuiltinUniformData
{
@@ -259,10 +266,17 @@ protected:
Access access;
};
struct LocalUniform
{
DataBaseType dataType;
std::vector<LocalUniformValue> initializerValues;
};
struct ValidationReflection
{
std::map<std::string, BufferReflection> storageBuffers;
std::map<std::string, StorageTextureReflection> storageTextures;
std::map<std::string, LocalUniform> localUniforms;
int localThreadgroupSize[3];
bool usesPointSize;
};