blob: acad90450c11c8b66843bb6743e82a5d04e142df [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
reed@google.combf858b72011-01-19 19:04:04 +00008#ifndef GrGLConfig_chrome_DEFINED
9#define GrGLConfig_chrome_DEFINED
10
bsalomon@google.com3723a482011-02-17 21:47:25 +000011// glGetError() forces a sync with gpu process on chrome
bsalomon@google.com4f3c2532012-01-19 16:16:52 +000012#define GR_GL_CHECK_ERROR_START 0
bsalomon@google.com4be283f2011-04-19 21:15:09 +000013
commit-bot@chromium.org43823302013-09-25 20:57:51 +000014#if defined(SK_BUILD_FOR_WIN32)
bsalomon@google.com4be283f2011-04-19 21:15:09 +000015// ANGLE creates a temp VB for vertex attributes not specified per-vertex.
commit-bot@chromium.org43823302013-09-25 20:57:51 +000016#define GR_GL_NO_CONSTANT_ATTRIBUTES 1
bsalomon@google.com3723a482011-02-17 21:47:25 +000017
bsalomon@google.coma85449d2011-11-19 02:36:05 +000018// For RGBA teximage/readpixels ANGLE will sw-convert to/from BGRA.
commit-bot@chromium.org43823302013-09-25 20:57:51 +000019#define GR_GL_RGBA_8888_PIXEL_OPS_SLOW 1
bsalomon@google.com0a97be22011-11-08 19:20:57 +000020
bsalomon@google.com56d11e02011-11-30 19:59:08 +000021// ANGLE can go faster if the entire fbo is read rather than a subrect
commit-bot@chromium.org43823302013-09-25 20:57:51 +000022#define GR_GL_FULL_READPIXELS_FASTER_THAN_PARTIAL 1
23#else
24#define GR_GL_NO_CONSTANT_ATTRIBUTES 0
25#define GR_GL_RGBA_8888_PIXEL_OPS_SLOW 0
26#define GR_GL_FULL_READPIXELS_FASTER_THAN_PARTIAL 0
27#endif
bsalomon@google.com56d11e02011-11-30 19:59:08 +000028
bsalomon@google.com9ae44292011-07-01 15:21:59 +000029// cmd buffer allocates memory and memsets it to zero when it sees glBufferData
30// with NULL.
bsalomon@google.com4f3c2532012-01-19 16:16:52 +000031#define GR_GL_USE_BUFFER_DATA_NULL_HINT 0
bsalomon@google.com9ae44292011-07-01 15:21:59 +000032
bsalomon@google.com56bfc5a2011-09-01 13:28:16 +000033// chrome uses this to set the context on each GL call.
bsalomon@google.com4f3c2532012-01-19 16:16:52 +000034#define GR_GL_PER_GL_FUNC_CALLBACK 1
35
36// Check error is even more expensive in chrome (cmd buffer flush). The
37// compositor also doesn't check its allocations.
38#define GR_GL_CHECK_ALLOC_WITH_GET_ERROR 0
bsalomon@google.com56bfc5a2011-09-01 13:28:16 +000039
bsalomon@google.com4bcb0c62012-02-07 16:06:47 +000040// CheckFramebufferStatus in chrome synchronizes the gpu and renderer processes.
41#define GR_GL_CHECK_FBO_STATUS_ONCE_PER_FORMAT 1
42
bsalomon@google.com96966a52013-02-21 16:34:21 +000043// Non-VBO vertices and indices are not allowed in Chromium.
44#define GR_GL_MUST_USE_VBO 1
45
commit-bot@chromium.orge452a0a2013-02-28 17:11:11 +000046// Use updated Khronos signature for glShaderSource
47// (const char* const instead of char**).
bsalomon@google.com26fb61a2013-02-28 19:26:04 +000048#define GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE 1
commit-bot@chromium.orge452a0a2013-02-28 17:11:11 +000049
commit-bot@chromium.orga8e5a062013-09-05 23:44:09 +000050#if !defined(GR_GL_IGNORE_ES3_MSAA)
51 #define GR_GL_IGNORE_ES3_MSAA 1
52#endif
53
reed@google.combf858b72011-01-19 19:04:04 +000054#endif