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, ...@@ -1828,13 +1828,11 @@ void Framebuffer::onSubjectStateChange(const Context *context,
angle::SubjectIndex index, angle::SubjectIndex index,
angle::SubjectMessage message) angle::SubjectMessage message)
{ {
if (message == angle::SubjectMessage::DEPENDENT_DIRTY_BITS) ASSERT(message == angle::SubjectMessage::STORAGE_CHANGED);
{
ASSERT(!mDirtyBitsGuard.valid() || mDirtyBitsGuard.value().test(index)); ASSERT(!mDirtyBitsGuard.valid() || mDirtyBitsGuard.value().test(index));
mDirtyBits.set(index); mDirtyBits.set(index);
onStateChange(context, angle::SubjectMessage::STORAGE_CHANGED); onStateChange(context, angle::SubjectMessage::STORAGE_CHANGED);
return;
}
invalidateCompletenessCache(context); invalidateCompletenessCache(context);
......
...@@ -79,10 +79,10 @@ gl::Error EGLImageD3D::copyToLocalRendertarget(const gl::Context *context) ...@@ -79,10 +79,10 @@ gl::Error EGLImageD3D::copyToLocalRendertarget(const gl::Context *context)
RenderTargetD3D *curRenderTarget = nullptr; RenderTargetD3D *curRenderTarget = nullptr;
ANGLE_TRY(getRenderTarget(context, &curRenderTarget)); 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) 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); return mRenderer->createRenderTargetCopy(context, curRenderTarget, &mRenderTarget);
......
...@@ -29,7 +29,7 @@ RenderbufferD3D::~RenderbufferD3D() ...@@ -29,7 +29,7 @@ RenderbufferD3D::~RenderbufferD3D()
gl::Error RenderbufferD3D::onDestroy(const gl::Context *context) gl::Error RenderbufferD3D::onDestroy(const gl::Context *context)
{ {
deleteRenderTarget(context); SafeDelete(mRenderTarget);
return gl::NoError(); return gl::NoError();
} }
...@@ -74,7 +74,7 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context, ...@@ -74,7 +74,7 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context,
static_cast<int>(height), creationFormat, static_cast<int>(height), creationFormat,
static_cast<GLsizei>(samples), &newRT)); static_cast<GLsizei>(samples), &newRT));
deleteRenderTarget(context); SafeDelete(mRenderTarget);
mImage = nullptr; mImage = nullptr;
mRenderTarget = newRT; mRenderTarget = newRT;
...@@ -84,7 +84,7 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context, ...@@ -84,7 +84,7 @@ gl::Error RenderbufferD3D::setStorageMultisample(const gl::Context *context,
gl::Error RenderbufferD3D::setStorageEGLImageTarget(const gl::Context *context, egl::Image *image) gl::Error RenderbufferD3D::setStorageEGLImageTarget(const gl::Context *context, egl::Image *image)
{ {
mImage = GetImplAs<EGLImageD3D>(image); mImage = GetImplAs<EGLImageD3D>(image);
deleteRenderTarget(context); SafeDelete(mRenderTarget);
return gl::NoError(); return gl::NoError();
} }
...@@ -111,15 +111,6 @@ gl::Error RenderbufferD3D::getAttachmentRenderTarget(const gl::Context *context, ...@@ -111,15 +111,6 @@ gl::Error RenderbufferD3D::getAttachmentRenderTarget(const gl::Context *context,
return getRenderTarget(context, reinterpret_cast<RenderTargetD3D **>(rtOut)); 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, gl::Error RenderbufferD3D::initializeContents(const gl::Context *context,
const gl::ImageIndex &imageIndex) const gl::ImageIndex &imageIndex)
{ {
......
...@@ -50,8 +50,6 @@ class RenderbufferD3D : public RenderbufferImpl ...@@ -50,8 +50,6 @@ class RenderbufferD3D : public RenderbufferImpl
const gl::ImageIndex &imageIndex) override; const gl::ImageIndex &imageIndex) override;
private: private:
void deleteRenderTarget(const gl::Context *context);
RendererD3D *mRenderer; RendererD3D *mRenderer;
RenderTargetD3D *mRenderTarget; RenderTargetD3D *mRenderTarget;
EGLImageD3D *mImage; EGLImageD3D *mImage;
......
...@@ -651,8 +651,6 @@ angle::Result TextureD3D::releaseTexStorage(const gl::Context *context) ...@@ -651,8 +651,6 @@ angle::Result TextureD3D::releaseTexStorage(const gl::Context *context)
return angle::Result::Continue(); return angle::Result::Continue();
} }
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
auto err = mTexStorage->onDestroy(context); auto err = mTexStorage->onDestroy(context);
SafeDelete(mTexStorage); SafeDelete(mTexStorage);
return err; return err;
...@@ -1243,8 +1241,6 @@ gl::Error TextureD3D_2D::bindTexImage(const gl::Context *context, egl::Surface * ...@@ -1243,8 +1241,6 @@ gl::Error TextureD3D_2D::bindTexImage(const gl::Context *context, egl::Surface *
mDirtyImages = false; mDirtyImages = false;
mImageArray[0]->markClean(); mImageArray[0]->markClean();
mTexStorage->setSubject(this);
return gl::NoError(); return gl::NoError();
} }
...@@ -1433,7 +1429,6 @@ angle::Result TextureD3D_2D::createCompleteStorage(bool renderTarget, ...@@ -1433,7 +1429,6 @@ angle::Result TextureD3D_2D::createCompleteStorage(bool renderTarget,
// TODO(geofflang): Determine if the texture creation succeeded // TODO(geofflang): Determine if the texture creation succeeded
outStorage->reset(mRenderer->createTextureStorage2D(internalFormat, renderTarget, width, height, outStorage->reset(mRenderer->createTextureStorage2D(internalFormat, renderTarget, width, height,
levels, hintLevelZeroOnly)); levels, hintLevelZeroOnly));
(*outStorage)->setSubject(this);
return angle::Result::Continue(); return angle::Result::Continue();
} }
...@@ -1453,8 +1448,6 @@ angle::Result TextureD3D_2D::setCompleteTexStorage(const gl::Context *context, ...@@ -1453,8 +1448,6 @@ angle::Result TextureD3D_2D::setCompleteTexStorage(const gl::Context *context,
ANGLE_TRY(releaseTexStorage(context)); ANGLE_TRY(releaseTexStorage(context));
mTexStorage = newCompleteTexStorage; mTexStorage = newCompleteTexStorage;
mTexStorage->setSubject(this);
mDirtyImages = true; mDirtyImages = true;
return angle::Result::Continue(); return angle::Result::Continue();
......
...@@ -37,7 +37,7 @@ class ImageD3D; ...@@ -37,7 +37,7 @@ class ImageD3D;
class TextureStorage : angle::NonCopyable class TextureStorage : angle::NonCopyable
{ {
public: public:
TextureStorage() : mSubject(nullptr) {} TextureStorage() {}
virtual ~TextureStorage() {} virtual ~TextureStorage() {}
virtual angle::Result onDestroy(const gl::Context *context); virtual angle::Result onDestroy(const gl::Context *context);
...@@ -69,9 +69,6 @@ class TextureStorage : angle::NonCopyable ...@@ -69,9 +69,6 @@ class TextureStorage : angle::NonCopyable
virtual angle::Result useLevelZeroWorkaroundTexture(const gl::Context *context, virtual angle::Result useLevelZeroWorkaroundTexture(const gl::Context *context,
bool useLevelZeroTexture); bool useLevelZeroTexture);
// Only used for D3D11.
void setSubject(const angle::Subject *subject);
protected: protected:
const angle::Subject *mSubject; const angle::Subject *mSubject;
}; };
...@@ -87,11 +84,6 @@ inline angle::Result TextureStorage::useLevelZeroWorkaroundTexture(const gl::Con ...@@ -87,11 +84,6 @@ inline angle::Result TextureStorage::useLevelZeroWorkaroundTexture(const gl::Con
return angle::Result::Continue(); return angle::Result::Continue();
} }
inline void TextureStorage::setSubject(const angle::Subject *subject)
{
mSubject = subject;
}
using TexStoragePointer = angle::UniqueObjectPointer<TextureStorage, gl::Context>; using TexStoragePointer = angle::UniqueObjectPointer<TextureStorage, gl::Context>;
} // namespace rx } // namespace rx
......
...@@ -981,8 +981,6 @@ angle::Result TextureStorage11_2D::copyToStorage(const gl::Context *context, ...@@ -981,8 +981,6 @@ angle::Result TextureStorage11_2D::copyToStorage(const gl::Context *context,
angle::Result TextureStorage11_2D::useLevelZeroWorkaroundTexture(const gl::Context *context, angle::Result TextureStorage11_2D::useLevelZeroWorkaroundTexture(const gl::Context *context,
bool useLevelZeroTexture) bool useLevelZeroTexture)
{ {
bool lastSetting = mUseLevelZeroTexture;
if (useLevelZeroTexture && mMipLevels > 1) if (useLevelZeroTexture && mMipLevels > 1)
{ {
if (!mUseLevelZeroTexture && mTexture.valid()) if (!mUseLevelZeroTexture && mTexture.valid())
...@@ -1014,12 +1012,6 @@ angle::Result TextureStorage11_2D::useLevelZeroWorkaroundTexture(const gl::Conte ...@@ -1014,12 +1012,6 @@ angle::Result TextureStorage11_2D::useLevelZeroWorkaroundTexture(const gl::Conte
mUseLevelZeroTexture = false; mUseLevelZeroTexture = false;
} }
if (lastSetting != mUseLevelZeroTexture)
{
ASSERT(mSubject);
mSubject->onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
}
return angle::Result::Continue(); return angle::Result::Continue();
} }
......
...@@ -40,8 +40,6 @@ gl::Error RenderbufferVk::onDestroy(const gl::Context *context) ...@@ -40,8 +40,6 @@ gl::Error RenderbufferVk::onDestroy(const gl::Context *context)
mImage.release(renderer->getCurrentQueueSerial(), renderer); mImage.release(renderer->getCurrentQueueSerial(), renderer);
renderer->releaseObject(getStoredQueueSerial(), &mImageView); renderer->releaseObject(getStoredQueueSerial(), &mImageView);
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
return gl::NoError(); return gl::NoError();
} }
...@@ -63,7 +61,6 @@ gl::Error RenderbufferVk::setStorage(const gl::Context *context, ...@@ -63,7 +61,6 @@ gl::Error RenderbufferVk::setStorage(const gl::Context *context,
{ {
mImage.release(renderer->getCurrentQueueSerial(), renderer); mImage.release(renderer->getCurrentQueueSerial(), renderer);
renderer->releaseObject(getStoredQueueSerial(), &mImageView); renderer->releaseObject(getStoredQueueSerial(), &mImageView);
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
} }
} }
......
...@@ -1225,8 +1225,6 @@ void TextureVk::releaseImage(const gl::Context *context, RendererVk *renderer) ...@@ -1225,8 +1225,6 @@ void TextureVk::releaseImage(const gl::Context *context, RendererVk *renderer)
} }
mCubeMapFaceImageViews.clear(); mCubeMapFaceImageViews.clear();
mCubeMapRenderTargets.clear(); mCubeMapRenderTargets.clear();
onStateChange(context, angle::SubjectMessage::DEPENDENT_DIRTY_BITS);
} }
uint32_t TextureVk::getLevelCount() const 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