You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// there might be some QFOT releases from transfer to compute which need to happen before we execute Compute
4004
4004
auto drain = [&]()->bool
4005
4005
{
4006
-
if (item.recomputeMips && transferBarriers.empty())
4007
-
returndrainCompute()==IQueue::RESULT::SUCCESS;
4008
-
elseif (pipelineBarrier(xferCmdBuf,{.memBarriers={},.bufBarriers={},.imgBarriers=transferBarriers},"Recording QFOT Release from Transfer Queue Familye after overflow failed"))
4006
+
// Transfer and Compute barriers get recorded for image individually (see the TODO why its horrible)
4007
+
// so we only need to worry about QFOTs for current image if they even exist
4008
+
if (item.recomputeMips && !transferBarriers.empty())
4009
4009
{
4010
-
if (drainBoth()!=IQueue::RESULT::SUCCESS)
4010
+
// so now we need a immeidate QFOT Release cause we already recorded some compute mipmapping for current image
4011
+
if (pipelineBarrier(xferCmdBuf,{.memBarriers={},.bufBarriers={},.imgBarriers=transferBarriers},"Recording QFOT Release from Transfer Queue Family after overflow failed"))
4012
+
{
4013
+
// a transfer microsubmit just for QFOT Release will need to be performed before Compute
0 commit comments