mirror of https://github.com/PCSX2/pcsx2.git
GS:MTL: Add barrier counting
This commit is contained in:
parent
7d4ca441d5
commit
66093c3278
|
@ -1628,6 +1628,9 @@ void GSDeviceMTL::SendHWDraw(GSHWDrawConfig& config, id<MTLRenderCommandEncoder>
|
|||
config.nindices / config.indices_per_prim, config.drawlist->size(), message.c_str()]];
|
||||
#endif
|
||||
|
||||
|
||||
g_perfmon.Put(GSPerfMon::DrawCalls, config.drawlist->size());
|
||||
g_perfmon.Put(GSPerfMon::Barriers, config.drawlist->size());
|
||||
for (size_t count = 0, p = 0, n = 0; n < config.drawlist->size(); p += count, ++n)
|
||||
{
|
||||
count = (*config.drawlist)[n] * config.indices_per_prim;
|
||||
|
@ -1637,13 +1640,15 @@ void GSDeviceMTL::SendHWDraw(GSHWDrawConfig& config, id<MTLRenderCommandEncoder>
|
|||
indexType:MTLIndexTypeUInt32
|
||||
indexBuffer:buffer
|
||||
indexBufferOffset:off + p * sizeof(*config.indices)];
|
||||
g_perfmon.Put(GSPerfMon::DrawCalls, 1);
|
||||
}
|
||||
[enc popDebugGroup];
|
||||
}
|
||||
else if (config.require_full_barrier)
|
||||
{
|
||||
[enc pushDebugGroup:[NSString stringWithFormat:@"Full barrier split draw (%d prims)", config.nindices / config.indices_per_prim]];
|
||||
const u32 ndraws = config.nindices / config.indices_per_prim;
|
||||
g_perfmon.Put(GSPerfMon::DrawCalls, ndraws);
|
||||
g_perfmon.Put(GSPerfMon::Barriers, ndraws);
|
||||
[enc pushDebugGroup:[NSString stringWithFormat:@"Full barrier split draw (%d prims)", ndraws]];
|
||||
for (size_t p = 0; p < config.nindices; p += config.indices_per_prim)
|
||||
{
|
||||
textureBarrier(enc);
|
||||
|
@ -1652,7 +1657,6 @@ void GSDeviceMTL::SendHWDraw(GSHWDrawConfig& config, id<MTLRenderCommandEncoder>
|
|||
indexType:MTLIndexTypeUInt32
|
||||
indexBuffer:buffer
|
||||
indexBufferOffset:off + p * sizeof(*config.indices)];
|
||||
g_perfmon.Put(GSPerfMon::DrawCalls, 1);
|
||||
}
|
||||
[enc popDebugGroup];
|
||||
}
|
||||
|
@ -1666,6 +1670,7 @@ void GSDeviceMTL::SendHWDraw(GSHWDrawConfig& config, id<MTLRenderCommandEncoder>
|
|||
indexBuffer:buffer
|
||||
indexBufferOffset:off];
|
||||
g_perfmon.Put(GSPerfMon::DrawCalls, 1);
|
||||
g_perfmon.Put(GSPerfMon::Barriers, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue