|
|
@@ -478,6 +478,7 @@ namespace bgfx { namespace mtl
|
|
|
g_caps.supported |= (0
|
|
|
| BGFX_CAPS_ALPHA_TO_COVERAGE
|
|
|
| BGFX_CAPS_BLEND_INDEPENDENT
|
|
|
+ | BGFX_CAPS_COMPUTE
|
|
|
| BGFX_CAPS_FRAGMENT_DEPTH
|
|
|
| BGFX_CAPS_INDEX32
|
|
|
| BGFX_CAPS_INSTANCING
|
|
|
@@ -491,7 +492,7 @@ namespace bgfx { namespace mtl
|
|
|
| BGFX_CAPS_TEXTURE_READ_BACK
|
|
|
| BGFX_CAPS_VERTEX_ATTRIB_HALF
|
|
|
| BGFX_CAPS_VERTEX_ATTRIB_UINT10
|
|
|
- | BGFX_CAPS_COMPUTE
|
|
|
+ | BGFX_CAPS_VERTEX_ID
|
|
|
);
|
|
|
|
|
|
if (BX_ENABLED(BX_PLATFORM_IOS) )
|
|
|
@@ -4551,6 +4552,7 @@ namespace bgfx { namespace mtl
|
|
|
if (0 != currentState.m_streamMask)
|
|
|
{
|
|
|
uint32_t numVertices = draw.m_numVertices;
|
|
|
+
|
|
|
if (UINT32_MAX == numVertices)
|
|
|
{
|
|
|
const VertexBufferMtl& vb = m_vertexBuffers[currentState.m_stream[0].m_handle.idx];
|
|
|
@@ -4580,9 +4582,9 @@ namespace bgfx { namespace mtl
|
|
|
MTLIndexType indexType = 0 == (ib.m_flags & BGFX_BUFFER_INDEX32) ? MTLIndexTypeUInt16 : MTLIndexTypeUInt32;
|
|
|
|
|
|
numDrawIndirect = UINT16_MAX == draw.m_numIndirect
|
|
|
- ? vb.m_size/BGFX_CONFIG_DRAW_INDIRECT_STRIDE
|
|
|
- : draw.m_numIndirect
|
|
|
- ;
|
|
|
+ ? vb.m_size/BGFX_CONFIG_DRAW_INDIRECT_STRIDE
|
|
|
+ : draw.m_numIndirect
|
|
|
+ ;
|
|
|
|
|
|
for (uint32_t ii = 0; ii < numDrawIndirect; ++ii)
|
|
|
{
|
|
|
@@ -4592,9 +4594,10 @@ namespace bgfx { namespace mtl
|
|
|
else
|
|
|
{
|
|
|
numDrawIndirect = UINT16_MAX == draw.m_numIndirect
|
|
|
- ? vb.m_size/BGFX_CONFIG_DRAW_INDIRECT_STRIDE
|
|
|
- : draw.m_numIndirect
|
|
|
- ;
|
|
|
+ ? vb.m_size/BGFX_CONFIG_DRAW_INDIRECT_STRIDE
|
|
|
+ : draw.m_numIndirect
|
|
|
+ ;
|
|
|
+
|
|
|
for (uint32_t ii = 0; ii < numDrawIndirect; ++ii)
|
|
|
{
|
|
|
rce.drawPrimitives(prim.m_type,vb.m_ptr, (draw.m_startIndirect + ii) * BGFX_CONFIG_DRAW_INDIRECT_STRIDE);
|