Commit 2d07b04d by Peng Huang Committed by Commit Bot

Revert "Fix bindFramebuffer problem with GLES2 devices"

This reverts commit 92049513. Reason for revert: crbug.com/1186140 Original change's description: > Fix bindFramebuffer problem with GLES2 devices > > GLES2 and OpengGL 2 don't support GL_{DRAW,READ}_FRAMEBUFFER. > Always uses GL_FRAMEBUFFER for them. > > Bug: chromium:1167731 > Change-Id: Iab75a27b4c47d0bdaa2ec18a9019fd2d2535b04d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2737062 > Commit-Queue: Peng Huang <penghuang@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> Bug: chromium:1167731, chromium:1186140 Change-Id: I1425bc9cf4145887193b7d18f956d6fbf07ce028 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743661 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Peng Huang <penghuang@chromium.org>
parent 02a9d011
......@@ -650,9 +650,7 @@ angle::Result FramebufferGL::readPixels(const gl::Context *context,
GL_INVALID_OPERATION);
}
GLenum framebufferTarget =
stateManager->getHasSeparateFramebufferBindings() ? GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER;
stateManager->bindFramebuffer(framebufferTarget, mFramebufferID);
stateManager->bindFramebuffer(GL_READ_FRAMEBUFFER, mFramebufferID);
bool useOverlappingRowsWorkaround = features.packOverlappingRowsSeparatelyPackBuffer.enabled &&
packBuffer && packState.rowLength != 0 &&
......
......@@ -135,8 +135,6 @@ StateManagerGL::StateManagerGL(const FunctionsGL *functions,
mClearStencil(0),
mFramebufferSRGBAvailable(extensions.sRGBWriteControl),
mFramebufferSRGBEnabled(false),
mHasSeparateFramebufferBindings(mFunctions->isAtLeastGL(gl::Version(3, 0)) ||
mFunctions->isAtLeastGLES(gl::Version(3, 0))),
mDitherEnabled(true),
mTextureCubemapSeamlessEnabled(false),
mMultisamplingEnabled(true),
......@@ -288,25 +286,13 @@ void StateManagerGL::deleteFramebuffer(GLuint fbo)
{
if (fbo != 0)
{
if (mHasSeparateFramebufferBindings)
for (size_t binding = 0; binding < mFramebuffers.size(); ++binding)
{
for (size_t binding = 0; binding < mFramebuffers.size(); ++binding)
if (mFramebuffers[binding] == fbo)
{
if (mFramebuffers[binding] == fbo)
{
GLenum enumValue = angle::FramebufferBindingToEnum(
static_cast<angle::FramebufferBinding>(binding));
bindFramebuffer(enumValue, 0);
}
}
}
else
{
ASSERT(mFramebuffers[angle::FramebufferBindingRead] ==
mFramebuffers[angle::FramebufferBindingDraw]);
if (mFramebuffers[angle::FramebufferBindingRead] == fbo)
{
bindFramebuffer(GL_FRAMEBUFFER, 0);
GLenum enumValue = angle::FramebufferBindingToEnum(
static_cast<angle::FramebufferBinding>(binding));
bindFramebuffer(enumValue, 0);
}
}
mFunctions->deleteFramebuffers(1, &fbo);
......@@ -622,7 +608,6 @@ void StateManagerGL::bindFramebuffer(GLenum type, GLuint framebuffer)
break;
case GL_READ_FRAMEBUFFER:
ASSERT(mHasSeparateFramebufferBindings);
if (mFramebuffers[angle::FramebufferBindingRead] != framebuffer)
{
mFramebuffers[angle::FramebufferBindingRead] = framebuffer;
......@@ -633,7 +618,6 @@ void StateManagerGL::bindFramebuffer(GLenum type, GLuint framebuffer)
break;
case GL_DRAW_FRAMEBUFFER:
ASSERT(mHasSeparateFramebufferBindings);
if (mFramebuffers[angle::FramebufferBindingDraw] != framebuffer)
{
mFramebuffers[angle::FramebufferBindingDraw] = framebuffer;
......@@ -1917,9 +1901,7 @@ angle::Result StateManagerGL::syncState(const gl::Context *context,
continue;
FramebufferGL *framebufferGL = GetImplAs<FramebufferGL>(framebuffer);
bindFramebuffer(
mHasSeparateFramebufferBindings ? GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER,
framebufferGL->getFramebufferID());
bindFramebuffer(GL_READ_FRAMEBUFFER, framebufferGL->getFramebufferID());
break;
}
case gl::State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING:
......@@ -1931,9 +1913,7 @@ angle::Result StateManagerGL::syncState(const gl::Context *context,
continue;
FramebufferGL *framebufferGL = GetImplAs<FramebufferGL>(framebuffer);
bindFramebuffer(
mHasSeparateFramebufferBindings ? GL_DRAW_FRAMEBUFFER : GL_FRAMEBUFFER,
framebufferGL->getFramebufferID());
bindFramebuffer(GL_DRAW_FRAMEBUFFER, framebufferGL->getFramebufferID());
const gl::Program *program = state.getProgram();
if (program)
......
......@@ -260,8 +260,6 @@ class StateManagerGL final : angle::NonCopyable
}
GLuint getBufferID(gl::BufferBinding binding) const { return mBuffers[binding]; }
bool getHasSeparateFramebufferBindings() const { return mHasSeparateFramebufferBindings; }
void validateState() const;
void syncFromNativeContext(const gl::Extensions &extensions, ExternalContextState *state);
......@@ -451,7 +449,6 @@ class StateManagerGL final : angle::NonCopyable
bool mFramebufferSRGBAvailable;
bool mFramebufferSRGBEnabled;
const bool mHasSeparateFramebufferBindings;
bool mDitherEnabled;
bool mTextureCubemapSeamlessEnabled;
......
......@@ -797,9 +797,7 @@ angle::Result TextureGL::copySubImage(const gl::Context *context,
destOffset.y + clippedArea.y - sourceArea.y, destOffset.z);
stateManager->bindTexture(getType(), mTextureID);
GLenum framebufferTarget =
stateManager->getHasSeparateFramebufferBindings() ? GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER;
stateManager->bindFramebuffer(framebufferTarget, sourceFramebufferGL->getFramebufferID());
stateManager->bindFramebuffer(GL_READ_FRAMEBUFFER, sourceFramebufferGL->getFramebufferID());
const LevelInfoGL &levelInfo = getLevelInfo(target, level);
if (levelInfo.lumaWorkaround.enabled)
......
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