mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 13:49:46 +02:00
Remove lowestRequestMip from gltexture
This commit is contained in:
parent
51ee058c0b
commit
65d30d1d0b
3 changed files with 5 additions and 13 deletions
|
@ -395,7 +395,6 @@ void GL41VariableAllocationTexture::populateTransferQueue() {
|
||||||
bool didQueueTransfer = false;
|
bool didQueueTransfer = false;
|
||||||
for (uint8_t face = 0; face < maxFace; ++face) {
|
for (uint8_t face = 0; face < maxFace; ++face) {
|
||||||
if (!_gpuObject.isStoredMipFaceAvailable(sourceMip, face)) {
|
if (!_gpuObject.isStoredMipFaceAvailable(sourceMip, face)) {
|
||||||
const_cast<gpu::Texture&>(_gpuObject).requestInterestInMip(sourceMip);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,8 +117,6 @@ public:
|
||||||
|
|
||||||
void allocateStorage(uint16 mip);
|
void allocateStorage(uint16 mip);
|
||||||
void copyMipsFromTexture();
|
void copyMipsFromTexture();
|
||||||
|
|
||||||
uint16 _lowestRequestedMip { 0 };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -50,7 +50,7 @@ GL45ResourceTexture::GL45ResourceTexture(const std::weak_ptr<GLBackend>& backend
|
||||||
for (uint16_t mip = 0; mip < mipLevels; ++mip) {
|
for (uint16_t mip = 0; mip < mipLevels; ++mip) {
|
||||||
if (glm::all(glm::lessThanEqual(texture.evalMipDimensions(mip), INITIAL_MIP_TRANSFER_DIMENSIONS))
|
if (glm::all(glm::lessThanEqual(texture.evalMipDimensions(mip), INITIAL_MIP_TRANSFER_DIMENSIONS))
|
||||||
&& texture.isStoredMipFaceAvailable(mip)) {
|
&& texture.isStoredMipFaceAvailable(mip)) {
|
||||||
_lowestRequestedMip = _maxAllocatedMip = _populatedMip = mip;
|
_maxAllocatedMip = _populatedMip = mip;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,8 +106,6 @@ void GL45ResourceTexture::promote() {
|
||||||
Q_ASSERT(_allocatedMip > 0);
|
Q_ASSERT(_allocatedMip > 0);
|
||||||
uint16_t targetAllocatedMip = _allocatedMip - std::min<uint16_t>(_allocatedMip, 2);
|
uint16_t targetAllocatedMip = _allocatedMip - std::min<uint16_t>(_allocatedMip, 2);
|
||||||
if (!_gpuObject.isStoredMipFaceAvailable(targetAllocatedMip, 0)) {
|
if (!_gpuObject.isStoredMipFaceAvailable(targetAllocatedMip, 0)) {
|
||||||
_lowestRequestedMip = targetAllocatedMip;
|
|
||||||
const_cast<gpu::Texture&>(_gpuObject).requestInterestInMip(targetAllocatedMip);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
GLuint oldId = _id;
|
GLuint oldId = _id;
|
||||||
|
@ -187,20 +185,17 @@ void GL45ResourceTexture::populateTransferQueue() {
|
||||||
--sourceMip;
|
--sourceMip;
|
||||||
auto targetMip = sourceMip - _allocatedMip;
|
auto targetMip = sourceMip - _allocatedMip;
|
||||||
auto mipDimensions = _gpuObject.evalMipDimensions(sourceMip);
|
auto mipDimensions = _gpuObject.evalMipDimensions(sourceMip);
|
||||||
bool transferQueued = false;
|
bool didQueueTransfer = false;
|
||||||
for (uint8_t face = 0; face < maxFace; ++face) {
|
for (uint8_t face = 0; face < maxFace; ++face) {
|
||||||
if (!_gpuObject.isStoredMipFaceAvailable(sourceMip, face)) {
|
if (!_gpuObject.isStoredMipFaceAvailable(sourceMip, face)) {
|
||||||
const_cast<gpu::Texture&>(_gpuObject).requestInterestInMip(sourceMip);
|
|
||||||
_lowestRequestedMip = sourceMip;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
_lowestRequestedMip = sourceMip;
|
|
||||||
|
|
||||||
// If the mip is less than the max transfer size, then just do it in one transfer
|
// If the mip is less than the max transfer size, then just do it in one transfer
|
||||||
if (glm::all(glm::lessThanEqual(mipDimensions, MAX_TRANSFER_DIMENSIONS))) {
|
if (glm::all(glm::lessThanEqual(mipDimensions, MAX_TRANSFER_DIMENSIONS))) {
|
||||||
// Can the mip be transferred in one go
|
// Can the mip be transferred in one go
|
||||||
_pendingTransfers.emplace(new TransferJob(*this, sourceMip, targetMip, face));
|
_pendingTransfers.emplace(new TransferJob(*this, sourceMip, targetMip, face));
|
||||||
transferQueued = true;
|
didQueueTransfer = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,12 +211,12 @@ void GL45ResourceTexture::populateTransferQueue() {
|
||||||
uint32_t linesToCopy = std::min<uint32_t>(lines - lineOffset, linesPerTransfer);
|
uint32_t linesToCopy = std::min<uint32_t>(lines - lineOffset, linesPerTransfer);
|
||||||
_pendingTransfers.emplace(new TransferJob(*this, sourceMip, targetMip, face, linesToCopy, lineOffset));
|
_pendingTransfers.emplace(new TransferJob(*this, sourceMip, targetMip, face, linesToCopy, lineOffset));
|
||||||
lineOffset += linesToCopy;
|
lineOffset += linesToCopy;
|
||||||
transferQueued = true;
|
didQueueTransfer = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// queue up the sampler and populated mip change for after the transfer has completed
|
// queue up the sampler and populated mip change for after the transfer has completed
|
||||||
if (transferQueued) {
|
if (didQueueTransfer) {
|
||||||
_pendingTransfers.emplace(new TransferJob(*this, [=] {
|
_pendingTransfers.emplace(new TransferJob(*this, [=] {
|
||||||
_populatedMip = sourceMip;
|
_populatedMip = sourceMip;
|
||||||
syncSampler();
|
syncSampler();
|
||||||
|
|
Loading…
Reference in a new issue