| Index: tools/gpu/gl/GLTestContext.cpp
|
| diff --git a/tools/gpu/gl/GLTestContext.cpp b/tools/gpu/gl/GLTestContext.cpp
|
| index 1069929bf26002f5f8e90e10f19b4c5197f67971..3bd814762ee8ae5da169e3b09963469e05c0ccbd 100644
|
| --- a/tools/gpu/gl/GLTestContext.cpp
|
| +++ b/tools/gpu/gl/GLTestContext.cpp
|
| @@ -1,13 +1,12 @@
|
| -
|
| /*
|
| * Copyright 2013 Google Inc.
|
| *
|
| * Use of this source code is governed by a BSD-style license that can be
|
| * found in the LICENSE file.
|
| */
|
| +
|
| #include "GLTestContext.h"
|
| #include "gl/GrGLUtil.h"
|
| -#include "SkGpuFenceSync.h"
|
|
|
| namespace sk_gpu_test {
|
| class GLTestContext::GLFenceSync : public SkGpuFenceSync {
|
| @@ -38,75 +37,28 @@ private:
|
| typedef SkGpuFenceSync INHERITED;
|
| };
|
|
|
| -GLTestContext::GLTestContext()
|
| - : fCurrentFenceIdx(0) {
|
| - memset(fFrameFences, 0, sizeof(fFrameFences));
|
| -}
|
| +GLTestContext::GLTestContext() : TestContext() {}
|
|
|
| GLTestContext::~GLTestContext() {
|
| - // Subclass should call teardown.
|
| -#ifdef SK_DEBUG
|
| - for (size_t i = 0; i < SK_ARRAY_COUNT(fFrameFences); i++) {
|
| - SkASSERT(0 == fFrameFences[i]);
|
| - }
|
| -#endif
|
| SkASSERT(nullptr == fGL.get());
|
| - SkASSERT(nullptr == fFenceSync.get());
|
| }
|
|
|
| void GLTestContext::init(const GrGLInterface* gl, SkGpuFenceSync* fenceSync) {
|
| SkASSERT(!fGL.get());
|
| fGL.reset(gl);
|
| - fFenceSync.reset(fenceSync ? fenceSync : GLFenceSync::CreateIfSupported(this));
|
| + fFenceSync = fenceSync ? fenceSync : GLFenceSync::CreateIfSupported(this);
|
| }
|
|
|
| void GLTestContext::teardown() {
|
| - if (fFenceSync) {
|
| - for (size_t i = 0; i < SK_ARRAY_COUNT(fFrameFences); i++) {
|
| - if (fFrameFences[i]) {
|
| - fFenceSync->deleteFence(fFrameFences[i]);
|
| - fFrameFences[i] = 0;
|
| - }
|
| - }
|
| - fFenceSync.reset(nullptr);
|
| - }
|
| -
|
| fGL.reset(nullptr);
|
| -}
|
| -
|
| -void GLTestContext::makeCurrent() const {
|
| - this->onPlatformMakeCurrent();
|
| -}
|
| -
|
| -void GLTestContext::swapBuffers() {
|
| - this->onPlatformSwapBuffers();
|
| -}
|
| -
|
| -void GLTestContext::waitOnSyncOrSwap() {
|
| - if (!fFenceSync) {
|
| - // Fallback on the platform SwapBuffers method for synchronization. This may have no effect.
|
| - this->swapBuffers();
|
| - return;
|
| - }
|
| -
|
| - if (fFrameFences[fCurrentFenceIdx]) {
|
| - if (!fFenceSync->waitFence(fFrameFences[fCurrentFenceIdx], true)) {
|
| - SkDebugf("WARNING: Wait failed for fence sync. Timings might not be accurate.\n");
|
| - }
|
| - fFenceSync->deleteFence(fFrameFences[fCurrentFenceIdx]);
|
| - }
|
| -
|
| - fFrameFences[fCurrentFenceIdx] = fFenceSync->insertFence();
|
| - fCurrentFenceIdx = (fCurrentFenceIdx + 1) % SK_ARRAY_COUNT(fFrameFences);
|
| + INHERITED::teardown();
|
| }
|
|
|
| void GLTestContext::testAbandon() {
|
| + INHERITED::testAbandon();
|
| if (fGL) {
|
| fGL->abandon();
|
| }
|
| - if (fFenceSync) {
|
| - memset(fFrameFences, 0, sizeof(fFrameFences));
|
| - }
|
| }
|
|
|
| GLTestContext::GLFenceSync* GLTestContext::GLFenceSync::CreateIfSupported(const GLTestContext* ctx) {
|
|
|