Commit 55e57f96 by Jamie Madill Committed by Commit Bot

Remove some redundant dirty bits notifications.

These were already being signaled in the front end. Bug: angleproject:2763 Change-Id: Id78d3d764e80e687c29c08395b59048d314bfbe2 Reviewed-on: https://chromium-review.googlesource.com/1204490Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent c55aefe3
......@@ -1828,13 +1828,11 @@ void Framebuffer::onSubjectStateChange(const Context *context,
angle::SubjectIndex index,
angle::SubjectMessage message)
{
if (message == angle::SubjectMessage::DEPENDENT_DIRTY_BITS)
{
ASSERT(!mDirtyBitsGuard.valid() || mDirtyBitsGuard.value().test(index));
mDirtyBits.set(index);
onStateChange(context, angle::SubjectMessage::STORAGE_CHANGED);
return;
}
ASSERT(message == angle::SubjectMessage::STORAGE_CHANGED);
ASSERT(!mDirtyBitsGuard.valid() || mDirtyBitsGuard.value().test(index));
mDirtyBits.set(index);
onStateChange(context, angle::SubjectMessage::STORAGE_CHANGED);
invalidateCompletenessCache(context);
......
......@@ -79,10 +79,10 @@ gl::Error EGLImageD3D::copyToLocalRendertarget(const gl::Context *context)
RenderTargetD3D *curRenderTarget = nullptr;
ANGLE_TRY(getRenderTarget(context, &curRenderTarget));
// This only currently applies do D3D11, where it invalidates FBOs with this Image attached.
// Invalidate FBOs with this Image attached. Only currently applies to D3D11.
for (egl::ImageSibling *target : mState.targets)
{
target->getSubject()->onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
target->getSubject()->onStateChange(context, angle::SubjectMessage::STORAGE_CHANGED);
}
return mRenderer->createRenderTargetCopy(context, curRenderTarget, &mRenderTarget);
......
......@@ -29,7 +29,7 @@ RenderbufferD3D::~RenderbufferD3D()
gl::Error RenderbufferD3D::onDestroy(const gl::Context *context)
{
deleteRenderTarget(context);
SafeDelete(mRenderTarget);
return gl::NoError();
}
......@@ -74,7 +74,7 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context,
static_cast<int>(height), creationFormat,
static_cast<GLsizei>(samples), &newRT));
deleteRenderTarget(context);
SafeDelete(mRenderTarget);
mImage = nullptr;
mRenderTarget = newRT;
......@@ -84,7 +84,7 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context,
gl::Error RenderbufferD3D::setStorageEGLImageTarget(const gl::Context *context, egl::Image *image)
{
mImage = GetImplAs<EGLImageD3D>(image);
deleteRenderTarget(context);
SafeDelete(mRenderTarget);
return gl::NoError();
}
......@@ -111,15 +111,6 @@ gl::Error RenderbufferD3D::getAttachmentRenderTarget(const gl::Context *context,
return getRenderTarget(context, reinterpret_cast<RenderTargetD3D **>(rtOut));
}
void RenderbufferD3D::deleteRenderTarget(const gl::Context *context)
{
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
if (mRenderTarget)
{
SafeDelete(mRenderTarget);
}
}
gl::Error RenderbufferD3D::initializeContents(const gl::Context *context,
const gl::ImageIndex &imageIndex)
{
......
......@@ -50,8 +50,6 @@ class RenderbufferD3D : public RenderbufferImpl
const gl::ImageIndex &imageIndex) override;
private:
void deleteRenderTarget(const gl::Context *context);
RendererD3D *mRenderer;
RenderTargetD3D *mRenderTarget;
EGLImageD3D *mImage;
......
......@@ -651,8 +651,6 @@ angle::Result TextureD3D::releaseTexStorage(const gl::Context *context)
return angle::Result::Continue();
}
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
auto err = mTexStorage->onDestroy(context);
SafeDelete(mTexStorage);
return err;
......@@ -1243,8 +1241,6 @@ gl::Error TextureD3D_2D::bindTexImage(const gl::Context *context, egl::Surface *
mDirtyImages = false;
mImageArray[0]->markClean();
mTexStorage->setSubject(this);
return gl::NoError();
}
......@@ -1433,7 +1429,6 @@ angle::Result TextureD3D_2D::createCompleteStorage(bool renderTarget,
// TODO(geofflang): Determine if the texture creation succeeded
outStorage->reset(mRenderer->createTextureStorage2D(internalFormat, renderTarget, width, height,
levels, hintLevelZeroOnly));
(*outStorage)->setSubject(this);
return angle::Result::Continue();
}
......@@ -1453,8 +1448,6 @@ angle::Result TextureD3D_2D::setCompleteTexStorage(const gl::Context *context,
ANGLE_TRY(releaseTexStorage(context));
mTexStorage = newCompleteTexStorage;
mTexStorage->setSubject(this);
mDirtyImages = true;
return angle::Result::Continue();
......
......@@ -37,7 +37,7 @@ class ImageD3D;
class TextureStorage : angle::NonCopyable
{
public:
TextureStorage() : mSubject(nullptr) {}
TextureStorage() {}
virtual ~TextureStorage() {}
virtual angle::Result onDestroy(const gl::Context *context);
......@@ -69,9 +69,6 @@ class TextureStorage : angle::NonCopyable
virtual angle::Result useLevelZeroWorkaroundTexture(const gl::Context *context,
bool useLevelZeroTexture);
// Only used for D3D11.
void setSubject(const angle::Subject *subject);
protected:
const angle::Subject *mSubject;
};
......@@ -87,11 +84,6 @@ inline angle::Result TextureStorage::useLevelZeroWorkaroundTexture(const gl::Con
return angle::Result::Continue();
}
inline void TextureStorage::setSubject(const angle::Subject *subject)
{
mSubject = subject;
}
using TexStoragePointer = angle::UniqueObjectPointer<TextureStorage, gl::Context>;
} // namespace rx
......
......@@ -981,8 +981,6 @@ angle::Result TextureStorage11_2D::copyToStorage(const gl::Context *context,
angle::Result TextureStorage11_2D::useLevelZeroWorkaroundTexture(const gl::Context *context,
bool useLevelZeroTexture)
{
bool lastSetting = mUseLevelZeroTexture;
if (useLevelZeroTexture && mMipLevels > 1)
{
if (!mUseLevelZeroTexture && mTexture.valid())
......@@ -1014,12 +1012,6 @@ angle::Result TextureStorage11_2D::useLevelZeroWorkaroundTexture(const gl::Conte
mUseLevelZeroTexture = false;
}
if (lastSetting != mUseLevelZeroTexture)
{
ASSERT(mSubject);
mSubject->onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
}
return angle::Result::Continue();
}
......
......@@ -40,8 +40,6 @@ gl::Error RenderbufferVk::onDestroy(const gl::Context *context)
mImage.release(renderer->getCurrentQueueSerial(), renderer);
renderer->releaseObject(getStoredQueueSerial(), &mImageView);
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
return gl::NoError();
}
......@@ -63,7 +61,6 @@ gl::Error RenderbufferVk::setStorage(const gl::Context *context,
{
mImage.release(renderer->getCurrentQueueSerial(), renderer);
renderer->releaseObject(getStoredQueueSerial(), &mImageView);
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
}
}
......
......@@ -1225,8 +1225,6 @@ void TextureVk::releaseImage(const gl::Context *context, RendererVk *renderer)
}
mCubeMapFaceImageViews.clear();
mCubeMapRenderTargets.clear();
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
}
uint32_t TextureVk::getLevelCount() const
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment