From d0d7270fcc32546005b8e847df516cb11592cd30 Mon Sep 17 00:00:00 2001 From: Brian Salomon Date: Thu, 1 Feb 2018 14:16:02 -0500 Subject: Revert "Revert "Redefine the meaning of sample counts in GPU backend."" Fixes gpu config default samples to be 1 and updates config parsing test accordingly. This reverts commit c1ce2f7966babaae0deb150f93f1227ee5af9285. Bug: skia: Change-Id: I456973b1f52ced85a2011ea10fc49449bfc5846f Reviewed-on: https://skia-review.googlesource.com/102147 Reviewed-by: Brian Salomon Commit-Queue: Brian Salomon --- tools/sk_app/DisplayParams.h | 5 +---- tools/sk_app/GLWindowContext.cpp | 6 ++---- tools/sk_app/Window.cpp | 2 +- tools/sk_app/WindowContext.h | 10 +++++----- tools/sk_app/android/GLWindowContext_android.cpp | 7 +++++-- tools/sk_app/ios/GLWindowContext_ios.cpp | 1 + tools/sk_app/ios/RasterWindowContext_ios.cpp | 1 + tools/sk_app/ios/Window_ios.cpp | 2 +- tools/sk_app/ios/Window_ios.h | 6 +----- tools/sk_app/mac/GLWindowContext_mac.cpp | 1 + tools/sk_app/mac/RasterWindowContext_mac.cpp | 1 + tools/sk_app/mac/Window_mac.cpp | 2 +- tools/sk_app/mac/Window_mac.h | 6 +----- tools/sk_app/unix/GLWindowContext_unix.cpp | 1 + tools/sk_app/unix/Window_unix.cpp | 2 +- tools/sk_app/unix/Window_unix.h | 15 ++++++++------- tools/sk_app/win/ANGLEWindowContext_win.cpp | 5 +++-- tools/sk_app/win/GLWindowContext_win.cpp | 3 ++- 18 files changed, 37 insertions(+), 39 deletions(-) (limited to 'tools/sk_app') diff --git a/tools/sk_app/DisplayParams.h b/tools/sk_app/DisplayParams.h index 959735e8ff..203e8bdeca 100644 --- a/tools/sk_app/DisplayParams.h +++ b/tools/sk_app/DisplayParams.h @@ -13,10 +13,7 @@ namespace sk_app { struct DisplayParams { - DisplayParams() - : fColorType(kN32_SkColorType) - , fColorSpace(nullptr) - , fMSAASampleCount(0) {} + DisplayParams() : fColorType(kN32_SkColorType), fColorSpace(nullptr), fMSAASampleCount(1) {} SkColorType fColorType; sk_sp fColorSpace; diff --git a/tools/sk_app/GLWindowContext.cpp b/tools/sk_app/GLWindowContext.cpp index 9ef5141fee..9d042cf19e 100644 --- a/tools/sk_app/GLWindowContext.cpp +++ b/tools/sk_app/GLWindowContext.cpp @@ -24,9 +24,7 @@ GLWindowContext::GLWindowContext(const DisplayParams& params) : WindowContext(params) , fBackendContext(nullptr) , fSurface(nullptr) { - fDisplayParams.fMSAASampleCount = fDisplayParams.fMSAASampleCount ? - GrNextPow2(fDisplayParams.fMSAASampleCount) : - 0; + fDisplayParams.fMSAASampleCount = GrNextPow2(fDisplayParams.fMSAASampleCount); } void GLWindowContext::initializeContext() { @@ -34,7 +32,7 @@ void GLWindowContext::initializeContext() { fBackendContext = this->onInitializeContext(); fContext = GrContext::MakeGL(fBackendContext, fDisplayParams.fGrContextOptions); - if (!fContext && fDisplayParams.fMSAASampleCount) { + if (!fContext && fDisplayParams.fMSAASampleCount > 1) { fDisplayParams.fMSAASampleCount /= 2; this->initializeContext(); return; diff --git a/tools/sk_app/Window.cpp b/tools/sk_app/Window.cpp index 29e4864ba1..1694beaac8 100644 --- a/tools/sk_app/Window.cpp +++ b/tools/sk_app/Window.cpp @@ -117,7 +117,7 @@ void Window::setRequestedDisplayParams(const DisplayParams& params, bool /* allo int Window::sampleCount() const { if (!fWindowContext) { - return -1; + return 0; } return fWindowContext->sampleCount(); } diff --git a/tools/sk_app/WindowContext.h b/tools/sk_app/WindowContext.h index 5e7d76d4ba..71c21ac089 100644 --- a/tools/sk_app/WindowContext.h +++ b/tools/sk_app/WindowContext.h @@ -21,11 +21,11 @@ namespace sk_app { class WindowContext { public: WindowContext(const DisplayParams& params) - : fContext(nullptr) - , fDisplayParams(params) - , fSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType) - , fSampleCount(0) - , fStencilBits(0) {} + : fContext(nullptr) + , fDisplayParams(params) + , fSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType) + , fSampleCount(1) + , fStencilBits(0) {} virtual ~WindowContext() {} diff --git a/tools/sk_app/android/GLWindowContext_android.cpp b/tools/sk_app/android/GLWindowContext_android.cpp index acdb587230..5111114115 100644 --- a/tools/sk_app/android/GLWindowContext_android.cpp +++ b/tools/sk_app/android/GLWindowContext_android.cpp @@ -70,6 +70,8 @@ sk_sp GLWindowContext_android::onInitializeContext() { SkAssertResult(eglBindAPI(EGL_OPENGL_ES_API)); EGLint numConfigs = 0; + EGLint eglSampleCnt = fDisplayParams.fMSAASampleCount > 1 ? fDisplayParams.fMSAASampleCount > 1 + : 0; const EGLint configAttribs[] = { EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, @@ -78,8 +80,8 @@ sk_sp GLWindowContext_android::onInitializeContext() { EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_STENCIL_SIZE, 8, - EGL_SAMPLE_BUFFERS, fDisplayParams.fMSAASampleCount ? 1 : 0, - EGL_SAMPLES, fDisplayParams.fMSAASampleCount, + EGL_SAMPLE_BUFFERS, eglSampleCnt ? 1 : 0, + EGL_SAMPLES, eglSampleCnt, EGL_NONE }; @@ -131,6 +133,7 @@ sk_sp GLWindowContext_android::onInitializeContext() { eglGetConfigAttrib(fDisplay, surfaceConfig, EGL_STENCIL_SIZE, &fStencilBits); eglGetConfigAttrib(fDisplay, surfaceConfig, EGL_SAMPLES, &fSampleCount); + fSampleCount = SkTMax(fSampleCount, 1); return GrGLMakeNativeInterface(); } diff --git a/tools/sk_app/ios/GLWindowContext_ios.cpp b/tools/sk_app/ios/GLWindowContext_ios.cpp index f4c0d6b3c0..2a57b33e30 100644 --- a/tools/sk_app/ios/GLWindowContext_ios.cpp +++ b/tools/sk_app/ios/GLWindowContext_ios.cpp @@ -67,6 +67,7 @@ sk_sp GLWindowContext_ios::onInitializeContext() { SDL_GL_GetAttribute(SDL_GL_STENCIL_SIZE, &fStencilBits); SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &fSampleCount); + fSampleCount = SkTMax(fSampleCount, 1); SDL_GL_GetDrawableSize(fWindow, &fWidth, &fHeight); glViewport(0, 0, fWidth, fHeight); diff --git a/tools/sk_app/ios/RasterWindowContext_ios.cpp b/tools/sk_app/ios/RasterWindowContext_ios.cpp index cae5774c28..53d7c1a372 100644 --- a/tools/sk_app/ios/RasterWindowContext_ios.cpp +++ b/tools/sk_app/ios/RasterWindowContext_ios.cpp @@ -79,6 +79,7 @@ sk_sp RasterWindowContext_ios::onInitializeContext() { SDL_GL_GetAttribute(SDL_GL_STENCIL_SIZE, &fStencilBits); SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &fSampleCount); + fSampleCount = SkTMax(fSampleCount, 1); SDL_GL_GetDrawableSize(fWindow, &fWidth, &fHeight); glViewport(0, 0, fWidth, fHeight); diff --git a/tools/sk_app/ios/Window_ios.cpp b/tools/sk_app/ios/Window_ios.cpp index c1bdeae5fc..ac0ad0caa0 100644 --- a/tools/sk_app/ios/Window_ios.cpp +++ b/tools/sk_app/ios/Window_ios.cpp @@ -49,7 +49,7 @@ bool Window_ios::initWindow() { SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1); - if (fRequestedDisplayParams.fMSAASampleCount > 0) { + if (fRequestedDisplayParams.fMSAASampleCount > 1) { SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, fRequestedDisplayParams.fMSAASampleCount); } else { diff --git a/tools/sk_app/ios/Window_ios.h b/tools/sk_app/ios/Window_ios.h index 667fa74e82..a0fed90697 100644 --- a/tools/sk_app/ios/Window_ios.h +++ b/tools/sk_app/ios/Window_ios.h @@ -18,11 +18,7 @@ namespace sk_app { class Window_ios : public Window { public: - Window_ios() - : INHERITED() - , fWindow(nullptr) - , fWindowID(0) - , fMSAASampleCount(0) {} + Window_ios() : INHERITED(), fWindow(nullptr), fWindowID(0), fMSAASampleCount(1) {} ~Window_ios() override { this->closeWindow(); } bool initWindow(); diff --git a/tools/sk_app/mac/GLWindowContext_mac.cpp b/tools/sk_app/mac/GLWindowContext_mac.cpp index 005fc07df4..67fb853fee 100644 --- a/tools/sk_app/mac/GLWindowContext_mac.cpp +++ b/tools/sk_app/mac/GLWindowContext_mac.cpp @@ -67,6 +67,7 @@ sk_sp GLWindowContext_mac::onInitializeContext() { SDL_GL_GetAttribute(SDL_GL_STENCIL_SIZE, &fStencilBits); SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &fSampleCount); + fSampleCount = SkTMax(fSampleCount, 1); SDL_GetWindowSize(fWindow, &fWidth, &fHeight); glViewport(0, 0, fWidth, fHeight); diff --git a/tools/sk_app/mac/RasterWindowContext_mac.cpp b/tools/sk_app/mac/RasterWindowContext_mac.cpp index 67022af7fe..fbe9837911 100644 --- a/tools/sk_app/mac/RasterWindowContext_mac.cpp +++ b/tools/sk_app/mac/RasterWindowContext_mac.cpp @@ -79,6 +79,7 @@ sk_sp RasterWindowContext_mac::onInitializeContext() { SDL_GL_GetAttribute(SDL_GL_STENCIL_SIZE, &fStencilBits); SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &fSampleCount); + fSampleCount = SkTMax(fSampleCount, 1); SDL_GetWindowSize(fWindow, &fWidth, &fHeight); glViewport(0, 0, fWidth, fHeight); diff --git a/tools/sk_app/mac/Window_mac.cpp b/tools/sk_app/mac/Window_mac.cpp index 8de5b10450..f2620518a2 100644 --- a/tools/sk_app/mac/Window_mac.cpp +++ b/tools/sk_app/mac/Window_mac.cpp @@ -49,7 +49,7 @@ bool Window_mac::initWindow() { SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1); - if (fRequestedDisplayParams.fMSAASampleCount > 0) { + if (fRequestedDisplayParams.fMSAASampleCount > 1) { SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, fRequestedDisplayParams.fMSAASampleCount); } else { diff --git a/tools/sk_app/mac/Window_mac.h b/tools/sk_app/mac/Window_mac.h index aa5c8df696..35cba095fa 100644 --- a/tools/sk_app/mac/Window_mac.h +++ b/tools/sk_app/mac/Window_mac.h @@ -18,11 +18,7 @@ namespace sk_app { class Window_mac : public Window { public: - Window_mac() - : INHERITED() - , fWindow(nullptr) - , fWindowID(0) - , fMSAASampleCount(0) {} + Window_mac() : INHERITED(), fWindow(nullptr), fWindowID(0), fMSAASampleCount(1) {} ~Window_mac() override { this->closeWindow(); } bool initWindow(); diff --git a/tools/sk_app/unix/GLWindowContext_unix.cpp b/tools/sk_app/unix/GLWindowContext_unix.cpp index 25ec95cdd6..3a3a4b16d4 100644 --- a/tools/sk_app/unix/GLWindowContext_unix.cpp +++ b/tools/sk_app/unix/GLWindowContext_unix.cpp @@ -99,6 +99,7 @@ sk_sp GLWindowContext_xlib::onInitializeContext() { glXGetConfig(fDisplay, fVisualInfo, GLX_STENCIL_SIZE, &fStencilBits); glXGetConfig(fDisplay, fVisualInfo, GLX_SAMPLES_ARB, &fSampleCount); + fSampleCount = SkTMax(fSampleCount, 1); XWindow root; int x, y; diff --git a/tools/sk_app/unix/Window_unix.cpp b/tools/sk_app/unix/Window_unix.cpp index f5ca5ee073..745b4dd3fb 100644 --- a/tools/sk_app/unix/Window_unix.cpp +++ b/tools/sk_app/unix/Window_unix.cpp @@ -72,7 +72,7 @@ bool Window_unix::initWindow(Display* display) { None }; SkASSERT(nullptr == fVisualInfo); - if (fRequestedDisplayParams.fMSAASampleCount > 0) { + if (fRequestedDisplayParams.fMSAASampleCount > 1) { static const GLint kChooseFBConifgAttCnt = SK_ARRAY_COUNT(kChooseFBConfigAtt); GLint msaaChooseFBConfigAtt[kChooseFBConifgAttCnt + 4]; memcpy(msaaChooseFBConfigAtt, kChooseFBConfigAtt, sizeof(kChooseFBConfigAtt)); diff --git a/tools/sk_app/unix/Window_unix.h b/tools/sk_app/unix/Window_unix.h index b59f502eb9..62a2795098 100644 --- a/tools/sk_app/unix/Window_unix.h +++ b/tools/sk_app/unix/Window_unix.h @@ -20,13 +20,14 @@ namespace sk_app { class Window_unix : public Window { public: - Window_unix() : Window() - , fDisplay(nullptr) - , fWindow(0) - , fGC(nullptr) - , fFBConfig(nullptr) - , fVisualInfo(nullptr) - , fMSAASampleCount(0) {} + Window_unix() + : Window() + , fDisplay(nullptr) + , fWindow(0) + , fGC(nullptr) + , fFBConfig(nullptr) + , fVisualInfo(nullptr) + , fMSAASampleCount(1) {} ~Window_unix() override { this->closeWindow(); } bool initWindow(Display* display); diff --git a/tools/sk_app/win/ANGLEWindowContext_win.cpp b/tools/sk_app/win/ANGLEWindowContext_win.cpp index 649528d6cd..452b462ba9 100644 --- a/tools/sk_app/win/ANGLEWindowContext_win.cpp +++ b/tools/sk_app/win/ANGLEWindowContext_win.cpp @@ -76,7 +76,8 @@ sk_sp ANGLEGLWindowContext_win::onInitializeContext() { } EGLint numConfigs; fSampleCount = this->getDisplayParams().fMSAASampleCount; - const int sampleBuffers = fSampleCount > 0 ? 1 : 0; + const int sampleBuffers = fSampleCount > 1 ? 1 : 0; + const int eglSampleCnt = fSampleCount > 1 ? fSampleCount : 0; const EGLint configAttribs[] = {EGL_RENDERABLE_TYPE, // We currently only support ES3. EGL_OPENGL_ES3_BIT, @@ -91,7 +92,7 @@ sk_sp ANGLEGLWindowContext_win::onInitializeContext() { EGL_SAMPLE_BUFFERS, sampleBuffers, EGL_SAMPLES, - fSampleCount, + eglSampleCnt, EGL_NONE}; EGLConfig surfaceConfig; diff --git a/tools/sk_app/win/GLWindowContext_win.cpp b/tools/sk_app/win/GLWindowContext_win.cpp index 7e43d2b544..1c583cb1ed 100644 --- a/tools/sk_app/win/GLWindowContext_win.cpp +++ b/tools/sk_app/win/GLWindowContext_win.cpp @@ -96,8 +96,9 @@ sk_sp GLWindowContext_win::onInitializeContext() { 1, &kSampleCountAttr, &fSampleCount); + fSampleCount = SkTMax(fSampleCount, 1); } else { - fSampleCount = 0; + fSampleCount = 1; } RECT rect; -- cgit v1.2.3