mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-10-21 08:20:52 +00:00
Metal: Fix validation when instancing data is provided, but shaders doesn't use it. (#3634)
This commit is contained in:
committed by
GitHub
parent
20a637e3e6
commit
4e6b6f0264
@@ -2520,17 +2520,22 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
|
||||
if (0 < _numInstanceData)
|
||||
{
|
||||
uint32_t numAttribs = 0;
|
||||
for (uint32_t ii = 0; UINT16_MAX != program.m_instanceData[ii]; ++ii)
|
||||
{
|
||||
const uint32_t loc = program.m_instanceData[ii];
|
||||
vertexDesc->attributes()->object(loc)->setFormat(MTL::VertexFormatFloat4);
|
||||
vertexDesc->attributes()->object(loc)->setBufferIndex(stream+1);
|
||||
vertexDesc->attributes()->object(loc)->setOffset(ii*16);
|
||||
++numAttribs;
|
||||
}
|
||||
|
||||
vertexDesc->layouts()->object(stream+1)->setStride(_numInstanceData * 16);
|
||||
vertexDesc->layouts()->object(stream+1)->setStepFunction(MTL::VertexStepFunctionPerInstance);
|
||||
vertexDesc->layouts()->object(stream+1)->setStepRate(1);
|
||||
if (0 < numAttribs)
|
||||
{
|
||||
vertexDesc->layouts()->object(stream+1)->setStride(_numInstanceData * 16);
|
||||
vertexDesc->layouts()->object(stream+1)->setStepFunction(MTL::VertexStepFunctionPerInstance);
|
||||
vertexDesc->layouts()->object(stream+1)->setStepRate(1);
|
||||
}
|
||||
}
|
||||
|
||||
pd->setVertexDescriptor(vertexDesc);
|
||||
|
||||
Reference in New Issue
Block a user