mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-11 21:58:31 +09:00
Revert "[Optimize] (MG_Backend/DirectGLES): Texture object mipmap dirty bit"
This reverts commit 8f551794
This commit is contained in:
@@ -135,14 +135,6 @@ namespace MobileGL {
|
||||
++m_textureParamsVersion;
|
||||
}
|
||||
|
||||
Bool TextureObjectBase::IsDirty() const {
|
||||
return m_dirtyBit;
|
||||
}
|
||||
|
||||
Bool TextureObjectBase::CheckDirtyBit(TextureDirtyBit bit) const {
|
||||
return m_dirtyBit & bit;
|
||||
}
|
||||
|
||||
Uint16 TextureObjectBase::GetTextureParamsVersion() const {
|
||||
return m_textureParamsVersion;
|
||||
}
|
||||
@@ -178,9 +170,6 @@ namespace MobileGL {
|
||||
void TextureObjectWithOneMipmap::MarkStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel,
|
||||
Bool dirty) {
|
||||
m_textureStorage.MarkDirty(GetIndexOfTextureUploadTarget(uploadTarget), mipmapLevel, dirty);
|
||||
if (dirty) {
|
||||
m_dirtyBit.Set(TextureDirtyBit::StorageDirtyBit);
|
||||
}
|
||||
}
|
||||
|
||||
Bool TextureObjectWithOneMipmap::IsStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel) const {
|
||||
@@ -224,14 +213,6 @@ namespace MobileGL {
|
||||
return true;
|
||||
}
|
||||
|
||||
void TextureObjectWithOneMipmap::ClearAllStorageDirtyBit() {
|
||||
auto levelCount = GetMipmapLevelCount();
|
||||
for (Uint i = 0; i < levelCount; ++i) {
|
||||
m_textureStorage.MarkDirty(0, i, false);
|
||||
}
|
||||
m_dirtyBit.Clear(TextureDirtyBit::StorageDirtyBit);
|
||||
}
|
||||
|
||||
// TODO: add other texture types as needed
|
||||
|
||||
} // namespace GLState
|
||||
|
||||
@@ -17,12 +17,6 @@
|
||||
namespace MobileGL {
|
||||
namespace MG_State {
|
||||
namespace GLState {
|
||||
enum class TextureDirtyBit : Uint8 {
|
||||
None = 0,
|
||||
StorageDirtyBit = 1 << 0, // refers to mipmap or TexBuffer according to tex type
|
||||
ParamDirtyBit = 1 << 1
|
||||
};
|
||||
|
||||
class ITextureObject {
|
||||
public:
|
||||
using TargetEnum = TextureTarget;
|
||||
@@ -47,8 +41,6 @@ namespace MobileGL {
|
||||
virtual const UintVec2& GetLevelRange() const = 0;
|
||||
virtual void SetBaseLevel(Uint baseLevel) = 0;
|
||||
virtual void SetMaxLevel(Uint maxLevel) = 0;
|
||||
virtual Bool IsDirty() const = 0;
|
||||
virtual Bool CheckDirtyBit(TextureDirtyBit bit) const = 0;
|
||||
virtual Uint16 GetTextureParamsVersion() const = 0;
|
||||
|
||||
protected:
|
||||
@@ -76,11 +68,7 @@ namespace MobileGL {
|
||||
const UintVec2& GetLevelRange() const override;
|
||||
void SetBaseLevel(Uint baseLevel) override;
|
||||
void SetMaxLevel(Uint maxLevel) override;
|
||||
Bool IsDirty() const override;
|
||||
Bool CheckDirtyBit(TextureDirtyBit bit) const override;
|
||||
Uint16 GetTextureParamsVersion() const override;
|
||||
virtual void ClearAllStorageDirtyBit() = 0;
|
||||
|
||||
protected:
|
||||
const Uint m_externalIndex;
|
||||
const TextureTarget m_target = TextureTarget::Unknown;
|
||||
@@ -91,8 +79,6 @@ namespace MobileGL {
|
||||
TextureSwizzleParam::Blue, TextureSwizzleParam::Alpha};
|
||||
UintVec2 m_levelRange = {0, 1000};
|
||||
Uint16 m_textureParamsVersion = 0;
|
||||
|
||||
Flags<TextureDirtyBit> m_dirtyBit = TextureDirtyBit::None;
|
||||
};
|
||||
|
||||
class TextureObjectMipmap : public TextureObjectBase {
|
||||
@@ -126,8 +112,7 @@ namespace MobileGL {
|
||||
void UpdateMipmapSubData(TextureUploadTarget uploadTarget, Uint mipmapLevel, DataPtr input) override;
|
||||
void* MapMipmapData(TextureUploadTarget uploadTarget, Uint mipmapLevel) override;
|
||||
void MarkStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel, Bool dirty) override;
|
||||
Bool IsStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel) const override;
|
||||
void ClearAllStorageDirtyBit() override;
|
||||
bool IsStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel) const override;
|
||||
|
||||
IntVec3 GetBaseSize() const override;
|
||||
Bool IsComplete() const override;
|
||||
|
||||
@@ -42,9 +42,6 @@ namespace MobileGL {
|
||||
|
||||
void TextureObject2DCube::MarkStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel, bool dirty) {
|
||||
m_textureStorage.MarkDirty(GetIndexOfTextureUploadTarget(uploadTarget), mipmapLevel, dirty);
|
||||
if (dirty) {
|
||||
m_dirtyBit.Set(TextureDirtyBit::StorageDirtyBit);
|
||||
}
|
||||
}
|
||||
|
||||
bool TextureObject2DCube::IsStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel) const {
|
||||
@@ -85,17 +82,6 @@ namespace MobileGL {
|
||||
// TODO: add more completeness checks based on texture type and mipmap levels
|
||||
return true;
|
||||
}
|
||||
|
||||
void TextureObject2DCube::ClearAllStorageDirtyBit() {
|
||||
auto uploadTargetCount = GetUploadTargets().size();
|
||||
auto levelCount = GetMipmapLevelCount();
|
||||
for (SizeT target = 0; target < uploadTargetCount; ++target) {
|
||||
for (Uint level = 0; level < levelCount; ++level) {
|
||||
m_textureStorage.MarkDirty(target, level, false);
|
||||
}
|
||||
}
|
||||
m_dirtyBit.Clear(TextureDirtyBit::StorageDirtyBit);
|
||||
}
|
||||
} // namespace GLState
|
||||
} // namespace MG_State
|
||||
} // namespace MobileGL
|
||||
|
||||
@@ -26,7 +26,6 @@ namespace MobileGL {
|
||||
void* MapMipmapData(TextureUploadTarget uploadTarget, Uint mipmapLevel) override;
|
||||
void MarkStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel, bool dirty) override;
|
||||
bool IsStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel) const override;
|
||||
void ClearAllStorageDirtyBit() override;
|
||||
|
||||
IntVec3 GetBaseSize() const override;
|
||||
Bool IsComplete() const override;
|
||||
|
||||
@@ -23,14 +23,6 @@ namespace MobileGL {
|
||||
MOBILEGL_ASSERT(target == TextureUploadTarget::TextureBuffer, "Invalid TextureUploadTarget!");
|
||||
return m_bufferBindingSlot;
|
||||
}
|
||||
|
||||
void TextureObjectBuffer::ClearAllStorageDirtyBit() {
|
||||
m_dirtyBit.Clear(TextureDirtyBit::StorageDirtyBit);
|
||||
}
|
||||
|
||||
void TextureObjectBuffer::SetStorageDirtyBit() {
|
||||
m_dirtyBit.Set(TextureDirtyBit::StorageDirtyBit);
|
||||
}
|
||||
} // namespace GLState
|
||||
} // namespace MG_State
|
||||
} // namespace MobileGL
|
||||
@@ -20,8 +20,6 @@ namespace MobileGL {
|
||||
const Vector<TextureUploadTarget>& GetUploadTargets() const override { return m_uploadTargets; }
|
||||
BindingSlot<BufferObject>& GetBufferBindingSlot(
|
||||
TextureUploadTarget target = TextureUploadTarget::TextureBuffer);
|
||||
void ClearAllStorageDirtyBit() override;
|
||||
void SetStorageDirtyBit();
|
||||
|
||||
protected:
|
||||
Uint GetIndexOfTextureUploadTarget(TextureUploadTarget target) const override;
|
||||
|
||||
Reference in New Issue
Block a user