mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-08-20 01:59:43 +00:00
Metal: Fixed validation error of missing attribute from vertex stream. (#3817)
This commit is contained in:
committed by
GitHub
parent
6425068e04
commit
ea53e7a5ed
@@ -1358,11 +1358,12 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
{
|
||||
const TextureMtl& texture = m_textures[_handle.idx];
|
||||
|
||||
#if BX_PLATFORM_OSX
|
||||
MTL::BlitCommandEncoder* bce = s_renderMtl->getBlitCommandEncoder();
|
||||
#if BX_PLATFORM_OSX
|
||||
bce->synchronizeTexture(texture.m_ptr, _layer, _mip);
|
||||
endEncoding();
|
||||
#endif // BX_PLATFORM_OSX
|
||||
BX_UNUSED(bce);
|
||||
endEncoding();
|
||||
|
||||
m_cmd.kick(false, true);
|
||||
m_commandBuffer = NULL;
|
||||
@@ -1496,12 +1497,12 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
return;
|
||||
}
|
||||
|
||||
#if BX_PLATFORM_OSX
|
||||
m_blitCommandEncoder = getBlitCommandEncoder();
|
||||
#if BX_PLATFORM_OSX
|
||||
m_blitCommandEncoder->synchronizeResource(m_screenshotTarget);
|
||||
#endif // BX_PLATFORM_OSX
|
||||
m_blitCommandEncoder->endEncoding();
|
||||
m_blitCommandEncoder = NULL;
|
||||
#endif // BX_PLATFORM_OSX
|
||||
|
||||
m_cmd.kick(false, true);
|
||||
m_commandBuffer = 0;
|
||||
@@ -2879,6 +2880,7 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
}
|
||||
}
|
||||
|
||||
bool usedFallbackAttrib = false;
|
||||
for (uint32_t ii = 0; Attrib::Count != program.m_used[ii]; ++ii)
|
||||
{
|
||||
const Attrib::Enum attr = Attrib::Enum(program.m_used[ii]);
|
||||
@@ -2889,9 +2891,20 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
vertexDesc->attributes()->object(loc)->setFormat(MTL::VertexFormatUChar2);
|
||||
vertexDesc->attributes()->object(loc)->setBufferIndex(1);
|
||||
vertexDesc->attributes()->object(loc)->setOffset(0);
|
||||
usedFallbackAttrib = true;
|
||||
}
|
||||
}
|
||||
|
||||
MTL::VertexBufferLayoutDescriptor* vbld = vertexDesc->layouts()->object(1);
|
||||
|
||||
if (usedFallbackAttrib
|
||||
&& 0 == vbld->stride() )
|
||||
{
|
||||
vbld->setStride(4);
|
||||
vbld->setStepFunction(MTL::VertexStepFunctionConstant);
|
||||
vbld->setStepRate(0);
|
||||
}
|
||||
|
||||
if (0 < _numInstanceData)
|
||||
{
|
||||
uint32_t numAttribs = 0;
|
||||
@@ -4960,7 +4973,7 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
if (m_blitCommandEncoder)
|
||||
{
|
||||
m_blitCommandEncoder->endEncoding();
|
||||
m_blitCommandEncoder = 0;
|
||||
m_blitCommandEncoder = NULL;
|
||||
}
|
||||
|
||||
updateResolution(_render->m_resolution);
|
||||
|
||||
Reference in New Issue
Block a user