Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Issue 169603002: Add initial support for NV_path_rendering extension to gpu command buffer (Closed)

Created:
6 years, 10 months ago by Kimmo Kinnunen
Modified:
6 years, 3 months ago
CC:
chromium-reviews, extensions-reviews_chromium.org, yusukes+watch_chromium.org, viettrungluu+watch_chromium.org, noelallen1, tzik, yzshen+watch_chromium.org, abarth-chromium, Aaron Boodman, teravest+watch_chromium.org, raymes+watch_chromium.org, nfullagar1, chromium-apps-reviews_chromium.org, piman+watch_chromium.org, darin (slow to review), ben+mojo_chromium.org, binji, ihf+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Visibility:
Public.

Description

Add initial support for NV_path_rendering extension to gpu command buffer Add initial support for NV_path_rendering extension to gpu command buffer. This is needed in order to support NV_path_rendering implementation in Skia. Implement this by creating a new GL ES pseudo-extension called CHROMIUM_path_rendering. The CHROMIUM_path_rendering extension will be exposed to clients only if the context is not a webgl context, NV_path_rendering extension is present. Also, EXT_direct_state_access extension must be present for Open GL. Add matrix functions needed to support the feature: void glMatrixLoadfEXT(GLenum matrixMode, const GLfloat* m) void glMatrixLoadIdentityEXT(GLenum matrixMode) NV_path_rendering needs these functions to implement transformations for the path drawing. Changes the build_gles2_cmd_buffer.py to be able to generate context state variables that are arrays. The state variable is defined to be an an array when its default value is an array. Changes the build_gles2_cmd_buffer.py to round the float GL state variables with round() when querying them with GetInteger. The values GL_*_CHROMIUM tokens added match the values of corresponding GL_*_NV tokens from the NV_path_rendering extensions. This is why the values are passed after validation to the receiving GL function, without any mapping. BUG=344330 Committed: https://crrev.com/337d59638d630d0892b444ca2ab0a2989921d00e Cr-Commit-Position: refs/heads/master@{#291878}

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : rebase #

Patch Set 4 : rebase #

Total comments: 33

Patch Set 5 : address review comments. #

Patch Set 6 : add a check for ext_direct_state_access #

Patch Set 7 : #

Total comments: 27

Patch Set 8 : rebase and address review comments #

Patch Set 9 : just remove ; chars from the extension .txt file #

Patch Set 10 : remove memcmp from matrix ops #

Patch Set 11 : rebase #

Patch Set 12 : rebase and change matrixmode argument names #

Patch Set 13 : add autogenerated tests #

Patch Set 14 : BUILD.gn #

Patch Set 15 : rebase #

Patch Set 16 : rebase #

Patch Set 17 : format #

Total comments: 2

Patch Set 18 : address review comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+931 lines, -26 lines) Patch
M gpu/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download
A gpu/GLES2/extensions/CHROMIUM/CHROMIUM_path_rendering.txt View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +65 lines, -0 lines 0 comments Download
M gpu/GLES2/gl2chromium.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +4 lines, -0 lines 0 comments Download
M gpu/GLES2/gl2chromium_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/GLES2/gl2extchromium.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +16 lines, -0 lines 0 comments Download
M gpu/command_buffer/build_gles2_cmd_buffer.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 12 chunks +150 lines, -14 lines 0 comments Download
M gpu/command_buffer/client/gles2_c_lib_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +14 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_cmd_helper_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +19 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +4 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation_impl_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +24 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation_unittest_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +27 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_interface_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_interface_stub_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +5 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_trace_implementation_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +12 lines, -0 lines 0 comments Download
M gpu/command_buffer/cmd_buffer_functions.txt View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +3 lines, -0 lines 0 comments Download
M gpu/command_buffer/common/gles2_cmd_format_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +73 lines, -0 lines 0 comments Download
M gpu/command_buffer/common/gles2_cmd_format_test_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +44 lines, -0 lines 0 comments Download
M gpu/command_buffer/common/gles2_cmd_ids_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +3 lines, -1 line 0 comments Download
M gpu/command_buffer/common/gles2_cmd_utils_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 6 chunks +22 lines, -1 line 0 comments Download
M gpu/command_buffer/service/context_state.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/context_state_autogen.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/context_state_impl_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 6 chunks +94 lines, -8 lines 0 comments Download
M gpu/command_buffer/service/feature_info.h View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/service/feature_info.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +11 lines, -1 line 0 comments Download
M gpu/command_buffer/service/feature_info_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +28 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +47 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +52 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +10 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_unittest_extensions.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +20 lines, -1 line 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_unittest_extensions_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +23 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_validation_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +5 lines, -0 lines 0 comments Download
A gpu/command_buffer/tests/gl_chromium_path_rendering_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +110 lines, -0 lines 0 comments Download
M gpu/gpu.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download
M gpu/skia_bindings/gl_bindings_skia_cmd_buffer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -0 lines 0 comments Download
M ui/gl/generate_bindings.py View 1 2 3 4 5 6 7 8 9 10 11 16 17 1 chunk +18 lines, -0 lines 0 comments Download
M ui/gl/gl_bindings.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +9 lines, -0 lines 0 comments Download

Messages

Total messages: 39 (0 generated)
Kimmo Kinnunen
Piman, Darin, Vangelis, I wonder who could be best person to maybe look at the ...
6 years, 10 months ago (2014-02-18 16:18:20 UTC) #1
Vangelis Kokkevis
On 2014/02/18 16:18:20, kkinnunen wrote: > Piman, Darin, Vangelis, > I wonder who could be ...
6 years, 9 months ago (2014-03-12 21:04:46 UTC) #2
Kimmo Kinnunen
On 2014/03/12 21:04:46, Vangelis Kokkevis wrote: > On 2014/02/18 16:18:20, kkinnunen wrote: > > Piman, ...
6 years, 9 months ago (2014-03-13 13:48:18 UTC) #3
Vangelis Kokkevis
On 2014/03/13 13:48:18, kkinnunen wrote: > On 2014/03/12 21:04:46, Vangelis Kokkevis wrote: > > On ...
6 years, 9 months ago (2014-03-14 05:37:12 UTC) #4
vmiura
On 2014/03/13 13:48:18, kkinnunen wrote: > On 2014/03/12 21:04:46, Vangelis Kokkevis wrote: > > On ...
6 years, 8 months ago (2014-04-03 22:39:34 UTC) #5
Kimmo Kinnunen
On 2014/04/03 22:39:34, vmiura wrote: > Kimmo, I'll be available to look at this project. ...
6 years, 8 months ago (2014-04-04 05:01:53 UTC) #6
vmiura
Looks good. Some small comments. Also could please rebase, and re-run pu/command_buffer/build_gles2_cmd_buffer.py as formatting has ...
6 years, 8 months ago (2014-04-11 21:54:48 UTC) #7
piman
https://codereview.chromium.org/169603002/diff/200001/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_NV_path_rendering.txt File gpu/GLES2/extensions/CHROMIUM/CHROMIUM_NV_path_rendering.txt (right): https://codereview.chromium.org/169603002/diff/200001/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_NV_path_rendering.txt#newcode3 gpu/GLES2/extensions/CHROMIUM/CHROMIUM_NV_path_rendering.txt:3: CHROMIUM_NV_path_rendering nit: s/CHROMIUM_NV/CHROMIUM/ https://codereview.chromium.org/169603002/diff/200001/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_NV_path_rendering.txt#newcode19 gpu/GLES2/extensions/CHROMIUM/CHROMIUM_NV_path_rendering.txt:19: This extensions is pretty ...
6 years, 8 months ago (2014-04-11 22:19:27 UTC) #8
jbauman
https://codereview.chromium.org/169603002/diff/200001/gpu/command_buffer/build_gles2_cmd_buffer.py File gpu/command_buffer/build_gles2_cmd_buffer.py (right): https://codereview.chromium.org/169603002/diff/200001/gpu/command_buffer/build_gles2_cmd_buffer.py#newcode2574 gpu/command_buffer/build_gles2_cmd_buffer.py:2574: }, LoadIdentity (CHROMIUM) should be added here and should ...
6 years, 8 months ago (2014-04-11 22:25:24 UTC) #9
vmiura
https://codereview.chromium.org/169603002/diff/200001/ppapi/c/ppb_opengles2.h File ppapi/c/ppb_opengles2.h (right): https://codereview.chromium.org/169603002/diff/200001/ppapi/c/ppb_opengles2.h#newcode502 ppapi/c/ppb_opengles2.h:502: void (*LoadIdentity)(PP_Resource context); On 2014/04/11 22:19:27, piman wrote: > ...
6 years, 8 months ago (2014-04-11 22:49:49 UTC) #10
Kimmo Kinnunen
Thanks for the review. I didn't add the existing plain-old-GL functions to the CHROMIUM extension ...
6 years, 8 months ago (2014-04-14 12:56:29 UTC) #11
piman
On Mon, Apr 14, 2014 at 5:56 AM, <kkinnunen@nvidia.com> wrote: > Thanks for the review. ...
6 years, 8 months ago (2014-04-14 18:51:07 UTC) #12
vmiura
https://codereview.chromium.org/169603002/diff/200001/gpu/command_buffer/tests/gl_chromium_nv_path_rendering_unittest.cc File gpu/command_buffer/tests/gl_chromium_nv_path_rendering_unittest.cc (right): https://codereview.chromium.org/169603002/diff/200001/gpu/command_buffer/tests/gl_chromium_nv_path_rendering_unittest.cc#newcode50 gpu/command_buffer/tests/gl_chromium_nv_path_rendering_unittest.cc:50: EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); On 2014/04/14 12:56:30, kkinnunen wrote: > On ...
6 years, 8 months ago (2014-04-14 19:08:29 UTC) #13
vmiura
On 2014/04/14 12:56:29, kkinnunen wrote: > I just want to confirm: the other option is ...
6 years, 8 months ago (2014-04-14 19:25:11 UTC) #14
Kimmo Kinnunen
Patch rebased and updated according to the review comments. Changed away from glmatrixmode to direct_state_access ...
6 years, 8 months ago (2014-04-15 16:16:57 UTC) #15
Kimmo Kinnunen
https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/build_gles2_cmd_buffer.py File gpu/command_buffer/build_gles2_cmd_buffer.py (right): https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/build_gles2_cmd_buffer.py#newcode490 gpu/command_buffer/build_gles2_cmd_buffer.py:490: 'default': ['0.0f'] * 16, This is a mistake, the ...
6 years, 8 months ago (2014-04-15 17:52:27 UTC) #16
vmiura
https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/build_gles2_cmd_buffer.py File gpu/command_buffer/build_gles2_cmd_buffer.py (right): https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/build_gles2_cmd_buffer.py#newcode7129 gpu/command_buffer/build_gles2_cmd_buffer.py:7129: len(item['default']))) nit: %d for len(..) https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/build_gles2_cmd_buffer.py#newcode7173 gpu/command_buffer/build_gles2_cmd_buffer.py:7173: file.Write(" *num_written ...
6 years, 8 months ago (2014-04-15 18:02:43 UTC) #17
piman
https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode10410 gpu/command_buffer/service/gles2_cmd_decoder.cc:10410: || matrixMode == GL_MODELVIEW_CHROMIUM); On 2014/04/15 18:02:43, vmiura wrote: ...
6 years, 8 months ago (2014-04-15 22:30:22 UTC) #18
Kimmo Kinnunen
Thanks for the review. Here's the new version. Additional changes: * added proper glGetIntegerv rounding ...
6 years, 8 months ago (2014-04-23 12:26:54 UTC) #19
vmiura
LGTM, thanks! Need owners LGTM. https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode10410 gpu/command_buffer/service/gles2_cmd_decoder.cc:10410: || matrixMode == GL_MODELVIEW_CHROMIUM); ...
6 years, 8 months ago (2014-04-23 18:00:05 UTC) #20
piman
https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/169603002/diff/260001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode10414 gpu/command_buffer/service/gles2_cmd_decoder.cc:10414: if (memcmp(target_matrix, matrix, sizeof(GLfloat) * 16)) { On 2014/04/23 ...
6 years, 8 months ago (2014-04-24 19:30:06 UTC) #21
Kimmo Kinnunen
On 2014/04/24 19:30:06, piman wrote: > On 2014/04/23 12:26:55, kkinnunen wrote: > > I just ...
6 years, 8 months ago (2014-04-25 05:59:15 UTC) #22
piman
lgtm
6 years, 8 months ago (2014-04-25 06:04:30 UTC) #23
Kimmo Kinnunen
The CQ bit was checked by kkinnunen@nvidia.com
6 years, 8 months ago (2014-04-25 09:02:17 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/kkinnunen@nvidia.com/169603002/320001
6 years, 8 months ago (2014-04-25 09:03:37 UTC) #25
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 8 months ago (2014-04-25 12:38:08 UTC) #26
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_rel
6 years, 8 months ago (2014-04-25 12:38:08 UTC) #27
vmiura
On 2014/04/25 12:38:08, I haz the power (commit-bot) wrote: > Try jobs failed on following ...
6 years, 6 months ago (2014-05-28 19:53:23 UTC) #28
Kimmo Kinnunen
On 2014/05/28 19:53:23, vmiura wrote: > On 2014/04/25 12:38:08, I haz the power (commit-bot) wrote: ...
6 years, 6 months ago (2014-05-30 12:44:23 UTC) #29
vmiura
On 2014/05/30 12:44:23, kkinnunen wrote: > On 2014/05/28 19:53:23, vmiura wrote: > > On 2014/04/25 ...
6 years, 6 months ago (2014-05-30 16:56:44 UTC) #30
Kimmo Kinnunen
vmiura, would it be possible for you to go through the patch again? I think ...
6 years, 4 months ago (2014-08-14 12:13:09 UTC) #31
Kimmo Kinnunen
On 2014/08/14 12:13:09, Kimmo Kinnunen wrote: > vmiura, would it be possible for you to ...
6 years, 4 months ago (2014-08-22 12:56:11 UTC) #32
vmiura
Just one thing. https://codereview.chromium.org/169603002/diff/460001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/169603002/diff/460001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode10669 gpu/command_buffer/service/gles2_cmd_decoder.cc:10669: glMatrixLoadfEXT(matrix_mode, matrix); We're using GL_PATH_MODELVIEW_CHROMIUM/GL_PATH_PROJECTION_CHROMIUM directly ...
6 years, 4 months ago (2014-08-25 19:42:22 UTC) #33
Kimmo Kinnunen
Thanks for looking at this. https://codereview.chromium.org/169603002/diff/460001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/169603002/diff/460001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode10669 gpu/command_buffer/service/gles2_cmd_decoder.cc:10669: glMatrixLoadfEXT(matrix_mode, matrix); On 2014/08/25 ...
6 years, 3 months ago (2014-08-26 06:48:34 UTC) #34
Kimmo Kinnunen
The CQ bit was checked by kkinnunen@nvidia.com
6 years, 3 months ago (2014-08-26 06:50:06 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/kkinnunen@nvidia.com/169603002/480001
6 years, 3 months ago (2014-08-26 06:51:02 UTC) #36
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: mac_chromium_rel_swarming on tryserver.chromium.mac ...
6 years, 3 months ago (2014-08-26 09:33:23 UTC) #37
commit-bot: I haz the power
Committed patchset #18 (480001) as 1a826716b378db9ef4eed563d01156e89ccc5b33
6 years, 3 months ago (2014-08-26 10:20:21 UTC) #38
commit-bot: I haz the power
6 years, 3 months ago (2014-09-10 02:41:52 UTC) #39
Message was sent while issue was closed.
Patchset 18 (id:??) landed as
https://crrev.com/337d59638d630d0892b444ca2ab0a2989921d00e
Cr-Commit-Position: refs/heads/master@{#291878}

Powered by Google App Engine
This is Rietveld 408576698