Commit ec89dddc authored by Narcis Beleuzu's avatar Narcis Beleuzu
Browse files

Backed out changeset 68318849486e (bug 1886214) for webgl failure on...

Backed out changeset 68318849486e (bug 1886214) for webgl failure on test_2_conformance2__extensions__oes-draw-buffers-indexed.html
parent 660018a5
Loading
Loading
Loading
Loading
+8 −29
Original line number Diff line number Diff line
@@ -1895,45 +1895,24 @@ bool ClientWebGLContext::IsVertexArray(

// ------------------------- GL State -------------------------

void ClientWebGLContext::SetEnabledI(const GLenum cap, Maybe<GLuint> i,
void ClientWebGLContext::SetEnabledI(GLenum cap, Maybe<GLuint> i,
                                     bool val) const {
  const auto notLost = mNotLost;

  Run<RPROC(SetEnabled)>(cap, i, val);

  if (!i) {
    // Non-indexed.
    auto& cache = notLost->state.mIsEnabledCache;
    const auto cached = MaybeFind(cache, cap);
    if (cached) {
      *cached = val;
    }
  }
}

bool ClientWebGLContext::IsEnabled(const GLenum cap) const {
bool ClientWebGLContext::IsEnabled(GLenum cap) const {
  const FuncScope funcScope(*this, "isEnabled");
  if (IsContextLost()) return false;

  auto& cache = State().mIsEnabledCache;
  if (const auto cached = MaybeFind(cache, cap)) {
    return *cached;
  }

  Maybe<bool> ret;
  const auto& inProcess = mNotLost->inProcess;
  if (inProcess) {
    ret = inProcess->IsEnabled(cap);
  } else {
    return inProcess->IsEnabled(cap);
  }
  const auto& child = mNotLost->outOfProcess;
  child->FlushPendingCmds();
  bool ret = {};
  if (!child->SendIsEnabled(cap, &ret)) return false;
  }

  if (ret) {
    cache[cap] = *ret;
  }
  return ret ? *ret : false;
  return ret;
}

template <typename T, typename S>
+0 −3
Original line number Diff line number Diff line
@@ -180,8 +180,6 @@ class ContextGenerationInfo final {

  webgl::ProvokingVertex mProvokingVertex = webgl::ProvokingVertex::LastVertex;

  mutable std::unordered_map<GLenum, bool> mIsEnabledCache;

  ObjectId NextId() { return mLastId += 1; }
};

@@ -1143,7 +1141,6 @@ class ClientWebGLContext final : public nsICanvasRenderingContextInternal,
  void Disable(GLenum cap) const { SetEnabledI(cap, {}, false); }
  void Enable(GLenum cap) const { SetEnabledI(cap, {}, true); }
  void SetEnabledI(GLenum cap, Maybe<GLuint> i, bool val) const;

  bool IsEnabled(GLenum cap) const;

 private:
+1 −1
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ class HostWebGLContext final : public SupportsWeakPtr {
    mContext->SetEnabled(cap, i, val);
  }

  Maybe<bool> IsEnabled(GLenum cap) const { return mContext->IsEnabled(cap); }
  bool IsEnabled(GLenum cap) const { return mContext->IsEnabled(cap); }

  Maybe<double> GetNumber(GLenum pname) const {
    return mContext->GetParameter(pname);
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ parent:
  sync GetTexParameter(uint64_t id, uint32_t pname) returns (double? ret);
  sync GetUniform(uint64_t id, uint32_t loc) returns (GetUniformData ret);
  sync GetVertexAttrib(uint32_t index, uint32_t pname) returns (double? ret);
  sync IsEnabled(uint32_t cap) returns (bool? ret);
  sync IsEnabled(uint32_t cap) returns (bool ret);
  sync OnMemoryPressure();
  sync ValidateProgram(uint64_t id) returns (bool ret);

+1 −1
Original line number Diff line number Diff line
@@ -756,7 +756,7 @@ class WebGLContext : public VRefCounted, public SupportsWeakPtr {
  virtual Maybe<double> GetParameter(GLenum pname);
  Maybe<std::string> GetString(GLenum pname) const;

  Maybe<bool> IsEnabled(GLenum cap);
  bool IsEnabled(GLenum cap);

 private:
  static StaticMutex sLruMutex;
Loading