- removed array length() function from shadowmap shader

Array's length() function is not yet supported by SPIRV-cross and MoltenVK
Its usage was replaced by explicit nodes count value passed as uniform
This commit is contained in:
alexey.lysiuk 2019-05-24 12:42:23 +03:00
commit da2d0e47e6
6 changed files with 13 additions and 3 deletions

View file

@ -845,6 +845,7 @@ void PPShadowMap::Update(PPRenderState *renderstate)
{
ShadowMapUniforms uniforms;
uniforms.ShadowmapQuality = (float)gl_shadowmap_quality;
uniforms.NodesCount = screen->mShadowMap.NodesCount();
renderstate->PushGroup("shadowmap");

View file

@ -762,16 +762,17 @@ public:
struct ShadowMapUniforms
{
float ShadowmapQuality;
float Padding0, Padding1, Padding2;
int NodesCount;
float Padding0, Padding1;
static std::vector<UniformFieldDesc> Desc()
{
return
{
{ "ShadowmapQuality", UniformType::Float, offsetof(ShadowMapUniforms, ShadowmapQuality) },
{ "NodesCount", UniformType::Int, offsetof(ShadowMapUniforms, NodesCount) },
{ "Padding0", UniformType::Float, offsetof(ShadowMapUniforms, Padding0) },
{ "Padding1", UniformType::Float, offsetof(ShadowMapUniforms, Padding1) },
{ "Padding2", UniformType::Float, offsetof(ShadowMapUniforms, Padding2) },
};
}
};