summaryrefslogtreecommitdiffstats
path: root/gpu/GLES2
diff options
context:
space:
mode:
authorjin.a.yang <jin.a.yang@intel.com>2015-09-11 09:46:46 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-11 16:47:21 +0000
commitf23471c866d7d3334d61538eb738d494542b5cac (patch)
tree42ecce69e86019b5924a7e7ceeff171c501b864a /gpu/GLES2
parent2adba8ab46d4c242b94f433bfe873026b6f1cdd4 (diff)
downloadchromium_src-f23471c866d7d3334d61538eb738d494542b5cac.zip
chromium_src-f23471c866d7d3334d61538eb738d494542b5cac.tar.gz
chromium_src-f23471c866d7d3334d61538eb738d494542b5cac.tar.bz2
Add GL_CHROMIUM_screen_space_antialiasing to support alternative AA
MSAA is very expensive on some platforms. We introduce extention GL_CHROMIUM_screen_space_antialiasing to support other antialiasing approach. It will perform antialiasing to the color attachments of the currently bound draw framebuffer. As an example, we implement it using GL_INTEL_framebuffer_CMAA which results in similar quality of MSAA at better performance. The blink side change is in below link: https://codereview.chromium.org/1301923002 BUG=524285 Review URL: https://codereview.chromium.org/1298523003 Cr-Commit-Position: refs/heads/master@{#348412}
Diffstat (limited to 'gpu/GLES2')
-rw-r--r--gpu/GLES2/extensions/CHROMIUM/CHROMIUM_screen_space_antialiasing.txt48
-rw-r--r--gpu/GLES2/gl2chromium_autogen.h2
-rw-r--r--gpu/GLES2/gl2extchromium.h9
3 files changed, 59 insertions, 0 deletions
diff --git a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_screen_space_antialiasing.txt b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_screen_space_antialiasing.txt
new file mode 100644
index 0000000..89574abd
--- /dev/null
+++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_screen_space_antialiasing.txt
@@ -0,0 +1,48 @@
+Name
+
+ CHROMIUM_screen_space_antialiasing
+
+Name Strings
+
+ GL_CHROMIUM_screen_space_antialiasing
+
+Version
+
+ Last Modifed Date: August 27, 2015
+
+Dependencies
+
+ OpenGL ES 2.0 is required.
+
+Overview
+
+ This extension performs the antialiasing to all color attachments of
+ the currently bound draw framebuffer. Reference GL_INTEL_framebuffer_CMAA
+ for more details.
+
+New Tokens
+
+ None
+
+New Procedures and Functions
+
+ void ApplyScreenSpaceAntialiasingCHROMIUM(void);
+
+ Apply antialiasing to all color attachments of the currently bound draw framebuffer.
+
+ INVALID_OPERATION is generated if any of the current draw buffers is multisampled.
+
+ OUT_OF_MEMORY may be generated if fail to allocate internal resources necessary to
+ perform the requested operation.
+
+Errors
+
+ None.
+
+New State
+
+ None.
+
+Revision History
+
+ 27/8/2015 Documented the extension
diff --git a/gpu/GLES2/gl2chromium_autogen.h b/gpu/GLES2/gl2chromium_autogen.h
index 26a8650..810eff8 100644
--- a/gpu/GLES2/gl2chromium_autogen.h
+++ b/gpu/GLES2/gl2chromium_autogen.h
@@ -354,5 +354,7 @@
GLES2_GET_FUN(StencilThenCoverStrokePathCHROMIUM)
#define glGetGraphicsResetStatusKHR GLES2_GET_FUN(GetGraphicsResetStatusKHR)
#define glBlendBarrierKHR GLES2_GET_FUN(BlendBarrierKHR)
+#define glApplyScreenSpaceAntialiasingCHROMIUM \
+ GLES2_GET_FUN(ApplyScreenSpaceAntialiasingCHROMIUM)
#endif // GPU_GLES2_GL2CHROMIUM_AUTOGEN_H_
diff --git a/gpu/GLES2/gl2extchromium.h b/gpu/GLES2/gl2extchromium.h
index 157458c..f96c930 100644
--- a/gpu/GLES2/gl2extchromium.h
+++ b/gpu/GLES2/gl2extchromium.h
@@ -521,6 +521,15 @@ typedef GLboolean (GL_APIENTRYP PFNGLENABLEFEATURECHROMIUMPROC) (
#endif
#endif /* GL_CHROMIUM_command_buffer_latency_query */
+/* GL_CHROMIUM_screen_space_antialiasing */
+#ifndef GL_CHROMIUM_screen_space_antialiasing
+#define GL_CHROMIUM_screen_space_antialiasing 1
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glApplyScreenSpaceAntialiasingCHROMIUM();
+#endif
+typedef void(GL_APIENTRYP PFNGLAPPLYSCREENSPACEANTIALIASINGCHROMIUMPROC)();
+#endif /* GL_CHROMIUM_screen_space_antialiasing */
+
/* GL_ARB_robustness */
#ifndef GL_ARB_robustness
#define GL_ARB_robustness 1