Remove didQueueTransfer check from populateTransferQueue

This commit is contained in:
Ryan Huffman 2017-04-26 14:26:09 -07:00
parent 6a0474934c
commit 1bd95ee19f
2 changed files with 8 additions and 18 deletions

View file

@ -416,7 +416,6 @@ void GL41VariableAllocationTexture::populateTransferQueue() {
--sourceMip;
auto targetMip = sourceMip - _allocatedMip;
auto mipDimensions = _gpuObject.evalMipDimensions(sourceMip);
bool didQueueTransfer = false;
for (uint8_t face = 0; face < maxFace; ++face) {
if (!_gpuObject.isStoredMipFaceAvailable(sourceMip, face)) {
continue;
@ -426,7 +425,6 @@ void GL41VariableAllocationTexture::populateTransferQueue() {
if (glm::all(glm::lessThanEqual(mipDimensions, MAX_TRANSFER_DIMENSIONS))) {
// Can the mip be transferred in one go
_pendingTransfers.emplace(new TransferJob(*this, sourceMip, targetMip, face));
didQueueTransfer = true;
continue;
}
@ -442,17 +440,14 @@ void GL41VariableAllocationTexture::populateTransferQueue() {
uint32_t linesToCopy = std::min<uint32_t>(lines - lineOffset, linesPerTransfer);
_pendingTransfers.emplace(new TransferJob(*this, sourceMip, targetMip, face, linesToCopy, lineOffset));
lineOffset += linesToCopy;
didQueueTransfer = true;
}
}
// queue up the sampler and populated mip change for after the transfer has completed
if (didQueueTransfer) {
_pendingTransfers.emplace(new TransferJob(*this, [=] {
_populatedMip = sourceMip;
syncSampler();
}));
}
_pendingTransfers.emplace(new TransferJob(*this, [=] {
_populatedMip = sourceMip;
syncSampler();
}));
} while (sourceMip != _allocatedMip);
}

View file

@ -186,7 +186,6 @@ void GL45ResourceTexture::populateTransferQueue() {
--sourceMip;
auto targetMip = sourceMip - _allocatedMip;
auto mipDimensions = _gpuObject.evalMipDimensions(sourceMip);
bool didQueueTransfer = false;
for (uint8_t face = 0; face < maxFace; ++face) {
if (!_gpuObject.isStoredMipFaceAvailable(sourceMip, face)) {
continue;
@ -196,7 +195,6 @@ void GL45ResourceTexture::populateTransferQueue() {
if (glm::all(glm::lessThanEqual(mipDimensions, MAX_TRANSFER_DIMENSIONS))) {
// Can the mip be transferred in one go
_pendingTransfers.emplace(new TransferJob(*this, sourceMip, targetMip, face));
didQueueTransfer = true;
continue;
}
@ -212,17 +210,14 @@ void GL45ResourceTexture::populateTransferQueue() {
uint32_t linesToCopy = std::min<uint32_t>(lines - lineOffset, linesPerTransfer);
_pendingTransfers.emplace(new TransferJob(*this, sourceMip, targetMip, face, linesToCopy, lineOffset));
lineOffset += linesToCopy;
didQueueTransfer = true;
}
}
// queue up the sampler and populated mip change for after the transfer has completed
if (didQueueTransfer) {
_pendingTransfers.emplace(new TransferJob(*this, [=] {
_populatedMip = sourceMip;
syncSampler();
}));
}
_pendingTransfers.emplace(new TransferJob(*this, [=] {
_populatedMip = sourceMip;
syncSampler();
}));
} while (sourceMip != _allocatedMip);
}