New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 612542 link

Starred by 21 users

Issue metadata

Status: Assigned
Owner:
OOO until 2019-01-24
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug


Sign in to add a comment

Expand GPU to GPU texture uploading from canvas/video for ES3 and more cases

Project Member Reported by zmo@chromium.org, May 17 2016

Issue description

When we use canvas or video as tex upload source, we have a GPU-GPU path, so we don't have to read back to CPU mem, and upload to GPU again.  The implementation only worked for a limited number of internal formats.  So we depends on the internal formats to decide if we go down the GPU-GPU path or the read back path.

Unfortunately, when blink side tex state is removed, we no longer have the information of a texture's internal format on the blink side, so TexSubImage can't decide whether the GPU-GPU path is implemented.

One possible fix is that we make this work for all formats, so on blink side we can just call the copyTexture chromium extension, regardless of texture internalformat.

Recent refactoring to remove blink side tex-related validation and state caching introduced a regression for WebGL 1.
 

Comment 1 by kbr@chromium.org, Jul 7 2016

Blocking: 625738
Cc: zmo@chromium.org bajones@chromium.org kbr@chromium.org xidac...@chromium.org qiankun....@intel.com yunchao...@intel.com
 Issue 622958  has been merged into this issue.

Comment 3 by kbr@chromium.org, Jul 9 2016

As pointed out in  Issue 622958 , the revised GPU-to-GPU copy path also needs to handle WebGL 2.0 and essentially all internal formats.

Another problem is uploading of HTML elements to cube map faces. On many Android devices binding a cube map face to a framebuffer object for the purpose of doing the GPU-GPU blit results in an incomplete framebuffer if the cube map isn't already cube complete. Some workarounds were added for this in the past but they're sub-optimal and aren't enabled. The best solution will be to read back the source texture to the CPU and then use TexImage2D to upload that data to the cube map face. This will turn CopyTextureCHROMIUM and CopySubTextureCHROMIUM into more of a "macro" command, where it may actually do a software upload, but is the best solution to prevent the caller from having to know about the texture's state, internal format, etc.

Comment 4 by kbr@chromium.org, Aug 16 2016

Blocking: 569836

Comment 5 by kbr@chromium.org, Aug 25 2016

Blocking: 640684

Comment 6 by kbr@chromium.org, Oct 10 2016

Blocking: 349871

Comment 7 by kbr@chromium.org, Oct 10 2016

Labels: M-56

Comment 8 by kbr@chromium.org, Oct 12 2016

Cc: cwallez@chromium.org
Owner: ----
Status: Available (was: Assigned)
I apologize to everyone who's blocked on this (especially Mo) but at this point I'll be OOO for a week and it's not fair for me to continue holding other people up. Let me write down the design I have so far. (The CPU readback described above should not be necessary.) Appreciate anyone's help making progress on this in my absence.

There are a few cases to consider:

1) Destination texture is renderable. Bind it to an FBO, and draw a quad sampling the source texture.

2) Destination texture is not renderable (for example, a face of an incomplete cube map on Android) but the source texture is. Bind source texture to an FBO, and glCopyTexImage2D or glCopyTexSubImage2D from the framebuffer into the destination texture.

3) Neither the source nor destination textures are renderable. Allocate a temporary texture of an appropriate type and size(for example, if source and destination are unsigned 8-bit textures, that's fine, but if they're floating-point textures, would need a floating-point temporary). Bind the temporary texture to an FBO. Draw a quad sampling the source texture. glCopyTex{Sub}Image2D to the destination texture.

I think these should cover all the cases. (2) will make a large number of WebGL conformance tests start passing again on Android (those which upload GPU-accelerated videos to cube map faces).

There are several more points to consider:

i. Validation of whether the source and destination textures are compatible. Only the command buffer service knows the textures' levels' internal formats. Some CopyTextureCHROMIUM calls will need to be rejected; for example, if it's on behalf of WebGL's TexSubImage2D, and the format isn't compatible with the internal format of the target texture. There may be other cases.

ii. WebGL 2.0 adds support for many more internal formats for the destination texture as enumerated in the table for texImage2D taking TexImageSource in https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.6 . These need to be handled.

iii. The existing CopyTextureCHROMIUM code has support for GL_TEXTURE_RECTANGLE_ARB and GL_TEXTURE_EXTERNAL_OES textures and the latter requires supporting applying a texture transformation matrix to the source texture. I think this should imply that case (3) above is taken if the destination texture isn't renderable, since hopefully that should be a temporary condition (i.e., the cube map's faces should all eventually be defined).

I'm not sure who all the callers are of this API at this point. There are more than just WebGL. The WebGL conformance tests should cover this code path reasonably well but more tests would be needed for WebGL 2.0's formats.

Thanks again to anyone who can help move this forward in the short term.

Cc: yang...@intel.com
Hi Ken, I have touched the GPU-GPU path before, if no conflicts I would like to take this task. 

Comment 10 by kbr@chromium.org, Oct 20 2016

Owner: qiankun....@intel.com
Status: Assigned (was: Available)
Thanks Qiankun. No conflicts. Thank you for your offer.

Comment 11 by zmo@chromium.org, Oct 20 2016

Labels: -Pri-2 Pri-1
Raise to pri-1 because this is blocking WebGL2 release
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 29 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1592241702983c6e5c4778e6aefd2bd81a755b30

commit 1592241702983c6e5c4778e6aefd2bd81a755b30
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Sat Oct 29 02:02:53 2016

Add missing integer formats

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2450663002
Cr-Commit-Position: refs/heads/master@{#428589}

[modify] https://crrev.com/1592241702983c6e5c4778e6aefd2bd81a755b30/gpu/command_buffer/common/gles2_cmd_utils.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 3 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bd9c65851a44e78989b39e6e75222f5b70499fc4

commit bd9c65851a44e78989b39e6e75222f5b70499fc4
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Thu Nov 03 15:26:55 2016

Float formats are allowed for CopyTexImage with EXT_color_buffer_float

BUG=612542
TEST=gpu_unittests
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2474593002
Cr-Commit-Position: refs/heads/master@{#429595}

[modify] https://crrev.com/bd9c65851a44e78989b39e6e75222f5b70499fc4/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/bd9c65851a44e78989b39e6e75222f5b70499fc4/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc
[modify] https://crrev.com/bd9c65851a44e78989b39e6e75222f5b70499fc4/gpu/command_buffer/service/test_helper.cc

Comment 14 by zmo@chromium.org, Nov 5 2016

Cc: dongseong.hwang@chromium.org
 Issue 586269  has been merged into this issue.
Project Member

Comment 15 by bugdroid1@chromium.org, Nov 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8c28970babf05637d242b861eb46efe690911cc2

commit 8c28970babf05637d242b861eb46efe690911cc2
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Fri Nov 18 04:26:11 2016

Fix unsized internalformat color-renderable detection

GenerateMipmap requires an unsized internal format or color-renderable
and texture-filterable sized internal format, es_spec_3.0.4 page 160.

For unsized internal format, only RGBA and RGB are color-renderable,
in section 4.4.4 Framebuffer Completeness, es_spec_3.0.4, page 212.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2496633005
Cr-Commit-Position: refs/heads/master@{#433100}

[modify] https://crrev.com/8c28970babf05637d242b861eb46efe690911cc2/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/8c28970babf05637d242b861eb46efe690911cc2/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/8c28970babf05637d242b861eb46efe690911cc2/gpu/command_buffer/service/texture_manager_unittest.cc

Comment 16 by kbr@chromium.org, Dec 6 2016

Summary: Expand GPU to GPU texture uploading from canvas/video for ES3 and more cases (was: Implement GPU to GPU texture uploading from canvas/video)

Comment 17 by kbr@chromium.org, Dec 9 2016

Blocking: 91208
Labels: -Pri-1 Pri-2
Project Member

Comment 19 by bugdroid1@chromium.org, Dec 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bcf132827ebd0436fd3620bbda4cbcf3febdc161

commit bcf132827ebd0436fd3620bbda4cbcf3febdc161
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Sat Dec 17 03:43:45 2016

Extend CopyTextureCHROMIUM to more ES 3.0 texture formats.

Add support for the following copying techniques:

1) Using CopyTexImage2D when the source is color-renderable.

2) Drawing a quad when the destination is color-renderable.

3) Drawing to an intermediate texture, and copying from that
intermediate texture to the destination, when neither is
color-renderable.

Add support for nearly all of the new ES 3.0 texture formats.

Follow-on work remains, including some scenarios described in the bug,
such as copying to faces of currently-incomplete cube maps.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2479513002
Cr-Commit-Position: refs/heads/master@{#439312}

[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/common/gles2_cmd_utils.cc
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/common/gles2_cmd_utils.h
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/service/texture_manager.h
[modify] https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Dec 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad

commit f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad
Author: tkent <tkent@chromium.org>
Date: Mon Dec 19 04:58:51 2016

Revert of Extend CopyTextureCHROMIUM to more ES 3.0 texture formats. (patchset #27 id:620001 of https://codereview.chromium.org/2479513002/ )

Reason for revert:
Caused crashes in dozens of layout tests.
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Trusty/builds/21138

Original issue's description:
> Extend CopyTextureCHROMIUM to more ES 3.0 texture formats.
>
> Add support for the following copying techniques:
>
> 1) Using CopyTexImage2D when the source is color-renderable.
>
> 2) Drawing a quad when the destination is color-renderable.
>
> 3) Drawing to an intermediate texture, and copying from that
> intermediate texture to the destination, when neither is
> color-renderable.
>
> Add support for nearly all of the new ES 3.0 texture formats.
>
> Follow-on work remains, including some scenarios described in the bug,
> such as copying to faces of currently-incomplete cube maps.
>
> BUG=612542
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
>
> Committed: https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161
> Cr-Commit-Position: refs/heads/master@{#439312}

TBR=kbr@chromium.org,zmo@chromium.org,yunchao.he@intel.com,qiankun.miao@intel.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=612542

Review-Url: https://codereview.chromium.org/2589613002
Cr-Commit-Position: refs/heads/master@{#439411}

[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/common/gles2_cmd_utils.cc
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/common/gles2_cmd_utils.h
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/service/texture_manager.h
[modify] https://crrev.com/f1c05a3a8f62bb12a94141b9501e6d246ab6e7ad/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Comment 21 by kbr@chromium.org, Dec 19 2016

Sorry Qiankun that your CL above got reverted. Can you reproduce these layout test crashes locally? Here's the stdout from the run above, in case it expires on the bots. Scroll to the bottom to see the tests that failed.

stdout.txt
5.9 MB View Download
Thank you ken. I can reproduce them locally. I have updated the CL: https://codereview.chromium.org/2479513002/. Can you take a look? The rootcause is layout test runs with use-gl=osmesa by default all the time, see https://cs.chromium.org/chromium/src/content/shell/app/shell_main_delegate.cc?rcl=0&l=172, while the mesa version is very low on the bot. I changed to use ESSL 1.0 shader for OpenGL less than 3.2 now.
Project Member

Comment 23 by bugdroid1@chromium.org, Dec 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d12b5bc5fbeaa7729873bb7274fe8841de432c22

commit d12b5bc5fbeaa7729873bb7274fe8841de432c22
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Tue Dec 20 04:09:51 2016

Reland of Extend CopyTextureCHROMIUM to more ES 3.0 texture formats.

Add support for the following copying techniques:

1) Using CopyTexImage2D when the source is color-renderable.

2) Drawing a quad when the destination is color-renderable.

3) Drawing to an intermediate texture, and copying from that
intermediate texture to the destination, when neither is
color-renderable.

Add support for nearly all of the new ES 3.0 texture formats.

Follow-on work remains, including some scenarios described in the bug,
such as copying to faces of currently-incomplete cube maps.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Committed: https://crrev.com/bcf132827ebd0436fd3620bbda4cbcf3febdc161
Review-Url: https://codereview.chromium.org/2479513002
Cr-Original-Commit-Position: refs/heads/master@{#439312}
Cr-Commit-Position: refs/heads/master@{#439701}

[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/common/gles2_cmd_utils.cc
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/common/gles2_cmd_utils.h
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/service/texture_manager.h
[modify] https://crrev.com/d12b5bc5fbeaa7729873bb7274fe8841de432c22/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Comment 24 by kbr@chromium.org, Dec 21 2016

Blockedon: 676331

Comment 25 by kbr@chromium.org, Dec 21 2016

Blocking: 676209
Project Member

Comment 26 by bugdroid1@chromium.org, Dec 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/43c62e6cae8262c8840b0a801f026233d53c6d5d

commit 43c62e6cae8262c8840b0a801f026233d53c6d5d
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Wed Dec 21 16:25:00 2016

Disable CopyTextureCHROMIUM gl_tests for RGB5_A1 format

RGB5_A1 is not color-renderable on NVIDIA Mac. This makes related
gl_tests fail on NVIDIA Mac. Disable it before it is fixed in NVIDIA Mac
driver or we make a workaround for it.

BUG=612542, 676209
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2591173002
Cr-Commit-Position: refs/heads/master@{#440120}

[modify] https://crrev.com/43c62e6cae8262c8840b0a801f026233d53c6d5d/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Comment 27 by kbr@chromium.org, Dec 22 2016

Thanks for your work on this Qiankun. From my standpoint, the next top priority is to fix the CopyTextureCHROMIUM path when the destination is a cube map face. On OpenGL ES implementations, these cube maps are incomplete at the time, so the copy currently fails since the cube map face can not be bound to a framebuffer. We need to use the CopyTex{Sub}Image2D path, possibly with an intermediate texture, for this purpose.

This causes a lot of failures in the texture tests. From what I remember, most of the conformance/textures/ failures on the Nexus 5X, 6, and 6P are caused by this bug.
See webgl_conformance_expectations.py.

What is your next top priority in this code?

Two top priorities in my mind are remove two limitations in Extensions3DUtil::canUseCopyTextureCHROMIUM https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.cpp?rcl=0&l=77
(1) destTarget == GL_TEXTURE_2D
(2) level == 0

After these two limitations are removed, we can simplify the implementation of WebGLRenderingContextBase::texImageByGPU by using glCopyTextureCHROMIUM directly. See https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp?rcl=0&l=4919.

The first item is what you mentioned. I am working on the second item now and will be ready for review soon. I will enable new glCopyTextureCHROMIUM in blink after these two limitations are solved. Does this make sense to you?

Comment 29 by kbr@chromium.org, Jan 4 2017

Sorry for the long delay replying Qiankun. Yes, your organization of the problem sounds good, and agree with solving these two problems in whatever order you see fit. Thanks again for your contributions!

Project Member

Comment 30 by bugdroid1@chromium.org, Jan 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/563327d4d7c71b1e124f539fc6f598f92ced3043

commit 563327d4d7c71b1e124f539fc6f598f92ced3043
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Wed Jan 04 02:27:58 2017

Unify texture and fbo creation for ES2 and ES3 in gl_tests

These are some reasons to do this:
1. Code can be shared between ES2 and ES3 tests.
2. We don't always create GL_TEXTURE_2D textures in test.
3. We may create textures many times in a single test. In such case,
  it's ugly to delete the textures created in Setup at the beginning of
  each test round.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2602933002
Cr-Commit-Position: refs/heads/master@{#441297}

[modify] https://crrev.com/563327d4d7c71b1e124f539fc6f598f92ced3043/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Jan 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5fae2b9711128d4c0b88064c6cda1dfe97119e4e

commit 5fae2b9711128d4c0b88064c6cda1dfe97119e4e
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Wed Jan 04 03:33:00 2017

Refactor DrawTextureQuad and CheckPixels in gl_tests util

BUG=612542
TEST=gl_tests
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2602563002
Cr-Commit-Position: refs/heads/master@{#441310}

[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/compressed_texture_test.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_apply_screen_space_antialiasing_CHROMIUM_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_bind_uniform_location_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_chromium_framebuffer_multisample_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_chromium_path_rendering_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_clear_framebuffer_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_compressed_copy_texture_CHROMIUM_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_copy_tex_image_2d_workaround_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_cube_map_texture_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_ext_blend_func_extended_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_ext_srgb_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_iosurface_readback_workaround_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_lose_context_chromium_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_map_buffer_range_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_pointcoord_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_program_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_stream_draw_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_test_utils.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_test_utils.h
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_texture_storage_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_unittest.cc
[modify] https://crrev.com/5fae2b9711128d4c0b88064c6cda1dfe97119e4e/gpu/command_buffer/tests/gl_virtual_contexts_unittest.cc

Blockedon: 678526
Project Member

Comment 33 by bugdroid1@chromium.org, Jan 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae0ddfaace8dd20347b3898655f0209583ad8b96

commit ae0ddfaace8dd20347b3898655f0209583ad8b96
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Fri Jan 06 02:04:52 2017

Add CopyTexture gl_tests for level == 0

CopyTextureLevel test is added for both ES2 and ES3. Move testing code
to a common RunCopyTexture function.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2609393002
Cr-Commit-Position: refs/heads/master@{#441818}

[modify] https://crrev.com/ae0ddfaace8dd20347b3898655f0209583ad8b96/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Jan 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7ff451867f332a745a18fde712f091cb80e18548

commit 7ff451867f332a745a18fde712f091cb80e18548
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Mon Jan 09 11:29:24 2017

Modify Copy{Sub}TextureCHROMIUM entry point to add level argument

This CL is just to add level argument and only allow level == 0
currently. Level > 0 support will be implemented in a separate CL.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2610853005
Cr-Commit-Position: refs/heads/master@{#442232}

[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/cc/raster/one_copy_raster_buffer_provider.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/cc/resources/video_resource_updater.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/components/exo/buffer.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/content/renderer/media/android/webmediaplayer_android.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/GLES2/gl2extchromium.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/cmd_buffer_functions.txt
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/media/renderers/skcanvas_video_renderer.cc
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp
[modify] https://crrev.com/7ff451867f332a745a18fde712f091cb80e18548/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp

Blockedon: 679639

Comment 36 by kbr@chromium.org, Jan 11 2017

Blocking: 680048
Blockedon: 680460

Comment 38 by kbr@chromium.org, Jan 13 2017

Cc: gman@chromium.org junov@chromium.org senorblanco@chromium.org
 Issue 229578  has been merged into this issue.

Comment 39 by kbr@chromium.org, Jan 13 2017

Blocking: 517548

Comment 40 by kbr@chromium.org, Jan 13 2017

Cc: j.iso...@samsung.com
 Issue 349871  has been merged into this issue.
Project Member

Comment 41 by bugdroid1@chromium.org, Jan 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbaeb8aa76be268c5179deb56e67a765303e34cc

commit cbaeb8aa76be268c5179deb56e67a765303e34cc
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Wed Jan 18 06:29:28 2017

Support level > 0 for CopyTextureCHROMIUM extension

Source level > 0 is not supported in ES 2.0 due to
glFramebufferTexture2D doesn't support level > 0 in ES 2.0. Run into
DRAW_AND_COPY path for dest level > 0 in ES 2.0, i.e. draw the source
texture to a fbo attaching level 0 of an intermediate texture, then use
glCopyTexImage2D to copy intermediate texture to dest texture.

For ES 3.0, we can set base level of source and dest texture to the
specifed level respectively, then do CopyTextureCHROMIUM as before,
restore base level to previous value at the end of CopyTextureCHROMIUM.
But we fall back to DRAW_AND_COPY path due to driver bug of base level
on some scenarios.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2623863002
Cr-Commit-Position: refs/heads/master@{#444295}

[modify] https://crrev.com/cbaeb8aa76be268c5179deb56e67a765303e34cc/gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc
[modify] https://crrev.com/cbaeb8aa76be268c5179deb56e67a765303e34cc/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/cbaeb8aa76be268c5179deb56e67a765303e34cc/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
[modify] https://crrev.com/cbaeb8aa76be268c5179deb56e67a765303e34cc/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/cbaeb8aa76be268c5179deb56e67a765303e34cc/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Project Member

Comment 42 by bugdroid1@chromium.org, Jan 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/728aa8652fcdef20b24213d96eeb7db6a2543748

commit 728aa8652fcdef20b24213d96eeb7db6a2543748
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Sun Jan 22 15:03:03 2017

Add target argument to Copy{Sub}TextureCHROMIUM entry point

This CL just modify the entry point to support target argument which is
preliminary work to allow CUBE_MAP target. It doesn't change chrome's
behavior currently, while the real support for CUBE_MAP target will be
implemented in a follow-up CL. This CL partly reverts
https://codereview.chromium.org/1551143002. In that CL, target argument
was removed.

TBR=reveman@chromium.org
BUG=612542
TEST=n/a; no behavior changes
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2639973002
Cr-Commit-Position: refs/heads/master@{#445303}

[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/cc/raster/one_copy_raster_buffer_provider.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/cc/resources/video_resource_updater.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/components/exo/buffer.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/content/renderer/media/android/webmediaplayer_android.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/GLES2/gl2extchromium.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/cmd_buffer_functions.txt
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/media/renderers/skcanvas_video_renderer.cc
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/ppapi/lib/gl/include/GLES2/gl2ext.h
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp
[modify] https://crrev.com/728aa8652fcdef20b24213d96eeb7db6a2543748/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp

Blockedon: 658930
Project Member

Comment 44 by bugdroid1@chromium.org, Jan 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/88a4e827ea7c5066a990cef70eec165ef6f28c26

commit 88a4e827ea7c5066a990cef70eec165ef6f28c26
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Sun Jan 29 15:43:41 2017

Support cube map dest target for CopyTextureCHROMIUM extension

DIRECT_DRAW path isn't available for cube map dest texture if it isn't
cube map complete. So, use DRAW_AND_COPY path in this scenario, i.e.
draw to a 2D intemediate texture first, then copy from the 2d texture to
the cube map dest texture.

Also, this CL makes DIRECT_COPY and DRAW_AND_COPY path work well for cube
map dest texture.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2656563002
Cr-Commit-Position: refs/heads/master@{#446940}

[modify] https://crrev.com/88a4e827ea7c5066a990cef70eec165ef6f28c26/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/88a4e827ea7c5066a990cef70eec165ef6f28c26/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/88a4e827ea7c5066a990cef70eec165ef6f28c26/gpu/command_buffer/tests/gl_copy_tex_image_2d_workaround_unittest.cc
[modify] https://crrev.com/88a4e827ea7c5066a990cef70eec165ef6f28c26/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
[modify] https://crrev.com/88a4e827ea7c5066a990cef70eec165ef6f28c26/gpu/command_buffer/tests/gl_test_utils.cc
[modify] https://crrev.com/88a4e827ea7c5066a990cef70eec165ef6f28c26/gpu/command_buffer/tests/gl_test_utils.h

Cc: -j.iso...@samsung.com julien.isorce@chromium.org

Comment 46 by kbr@chromium.org, Feb 10 2017

Status: Started (was: Assigned)
Qiankun, thank you for your tremendous work on this issue. How close are we to being able to call this fixed?

There are still some tasks to todo here:
1. Enable current implementation in Blink, check the status of WebGL CTS, fix WebGL CTS failures if any.
2. Support TEXTRE_3D target
3. Support fallback path if GPU-GPU is not available.

Any comments about the above tasks, zmo and kbr?

Comment 48 by kbr@chromium.org, Feb 14 2017

Let's start using and testing the new code paths ASAP. I would suggest (1) as the highest priority, followed by (3), and then (2).

What is the situation with (3) though? Adding a path for full CPU side readbacks and uploads to the destination texture? At this point, do you think that is needed? To be honest I'm not sure any more of all of the cases we need to cover.

Comment 49 by kbr@chromium.org, Feb 14 2017

Blockedon: 687180

Comment 50 by kbr@chromium.org, Feb 14 2017

Blockedon: 691741
Project Member

Comment 51 by bugdroid1@chromium.org, Feb 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7ff34467488f2eb5e4fa0dc38f14e18a4a17584f

commit 7ff34467488f2eb5e4fa0dc38f14e18a4a17584f
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Mon Feb 20 05:21:16 2017

Refactor CopyTextureCHROMIUM internalformat validation

Move CopyTexture method decision to a common place.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2686043002
Cr-Commit-Position: refs/heads/master@{#451560}

[modify] https://crrev.com/7ff34467488f2eb5e4fa0dc38f14e18a4a17584f/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/7ff34467488f2eb5e4fa0dc38f14e18a4a17584f/gpu/command_buffer/service/gles2_cmd_decoder.cc

Project Member

Comment 52 by bugdroid1@chromium.org, Mar 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/83c9185edb57a156c2c52270448dacef9d0b7cc1

commit 83c9185edb57a156c2c52270448dacef9d0b7cc1
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Fri Mar 03 10:07:46 2017

Support RGB32F and RGBA32F for CopyTextureCHROMIUM in ES2 with related extensions

CHROMIUM_color_buffer_float_rgb and CHROMIUM_color_buffer_float_rgba
support GL_RGB32F and GL_RGBA32F formats in ES2 context.
CopyTextureCHROMIUM should also support RGB32F/RGBA32F when the above
two extensions are enabled.

Blink WebGL will convert format and type combinations RGBA/FLOAT and
RGB/FLOAT to RGBA32F/FLOAT to RGB32F/FLOAT if the above two extensions
is supported.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2717953003
Cr-Commit-Position: refs/heads/master@{#454556}

[modify] https://crrev.com/83c9185edb57a156c2c52270448dacef9d0b7cc1/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/83c9185edb57a156c2c52270448dacef9d0b7cc1/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Project Member

Comment 53 by bugdroid1@chromium.org, Mar 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/77fb94be2f982ec3d944c4fff739076f517c6c94

commit 77fb94be2f982ec3d944c4fff739076f517c6c94
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Tue Mar 07 01:19:09 2017

Refactor CopyTexture method determination

Separate validations from method calculation. Move method calculation to
a common function.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2728343002
Cr-Commit-Position: refs/heads/master@{#455015}

[modify] https://crrev.com/77fb94be2f982ec3d944c4fff739076f517c6c94/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/77fb94be2f982ec3d944c4fff739076f517c6c94/gpu/command_buffer/service/gles2_cmd_decoder.cc

Project Member

Comment 54 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c0ad74ee97e52704cd1516ceecfb1873b0b5884

commit 5c0ad74ee97e52704cd1516ceecfb1873b0b5884
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Thu Mar 16 03:32:44 2017

Set the type of hardware decoded texture to UNSIGNED_BYTE

We need type info when copying video texture to another texture. 0 is
not a valid texture type. 0 type causes DoCopySubTextureCHROMIUM to
fail.

Format/internalformat info was added in the following two CLs:
https://codereview.chromium.org/775863005
https://codereview.chromium.org/759573002

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2711903002
Cr-Commit-Position: refs/heads/master@{#457338}

[modify] https://crrev.com/5c0ad74ee97e52704cd1516ceecfb1873b0b5884/media/gpu/ipc/service/gpu_video_decode_accelerator.cc

Project Member

Comment 55 by bugdroid1@chromium.org, Mar 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1

commit e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1
Author: geofflang <geofflang@chromium.org>
Date: Tue Mar 28 15:17:02 2017

Update the passthrough command decoder to use the new CHROMIUM_copy_texture.

Clean up the extension spec to not use GL prefixes.

Fix the missmatch between using GLuint and GLenum for texture IDs.

BUG=612542
BUG= angleproject:1932 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2776753002
Cr-Commit-Position: refs/heads/master@{#460105}

[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/DEPS
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/cmd_buffer_functions.txt
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/generate_bindings.py
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/gl_bindings_api_autogen_gl.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/gl_bindings_autogen_gl.cc
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/gl_bindings_autogen_gl.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/gl_bindings_autogen_mock.cc
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/gl_bindings_autogen_mock.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/gl_mock.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/gl_mock_autogen_gl.h
[modify] https://crrev.com/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1/ui/gl/gl_stub_autogen_gl.h

Project Member

Comment 56 by bugdroid1@chromium.org, Mar 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/95cf7a59de278ede5e772ba752215c80a80ed122

commit 95cf7a59de278ede5e772ba752215c80a80ed122
Author: geofflang <geofflang@chromium.org>
Date: Tue Mar 28 15:45:20 2017

Revert of Update the passthrough command decoder to use the new CHROMIUM_copy_texture. (patchset #2 id:20001 of https://codereview.chromium.org/2776753002/ )

Reason for revert:
ANGLE vulkan layers roll broke Windows builders.

Original issue's description:
> Update the passthrough command decoder to use the new CHROMIUM_copy_texture.
>
> Clean up the extension spec to not use GL prefixes.
>
> Fix the missmatch between using GLuint and GLenum for texture IDs.
>
> BUG=612542
> BUG= angleproject:1932 
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
>
> Review-Url: https://codereview.chromium.org/2776753002
> Cr-Commit-Position: refs/heads/master@{#460105}
> Committed: https://chromium.googlesource.com/chromium/src/+/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1

TBR=piman@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=612542

Review-Url: https://codereview.chromium.org/2781863002
Cr-Commit-Position: refs/heads/master@{#460114}

[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/DEPS
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/cmd_buffer_functions.txt
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/generate_bindings.py
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/gl_bindings_api_autogen_gl.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/gl_bindings_autogen_gl.cc
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/gl_bindings_autogen_gl.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/gl_bindings_autogen_mock.cc
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/gl_bindings_autogen_mock.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/gl_mock.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/gl_mock_autogen_gl.h
[modify] https://crrev.com/95cf7a59de278ede5e772ba752215c80a80ed122/ui/gl/gl_stub_autogen_gl.h

Project Member

Comment 57 by bugdroid1@chromium.org, Mar 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7

commit 8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7
Author: geofflang <geofflang@chromium.org>
Date: Tue Mar 28 18:01:06 2017

Update the passthrough command decoder to use the new CHROMIUM_copy_texture.

Clean up the extension spec to not use GL prefixes.

Fix the missmatch between using GLuint and GLenum for texture IDs.

Roll ANGLE 4063e20..795e757
https://chromium.googlesource.com/angle/angle.git/+log/4063e20..795e757

BUG=612542
BUG= angleproject:1932 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2776753002
Cr-Original-Commit-Position: refs/heads/master@{#460105}
Committed: https://chromium.googlesource.com/chromium/src/+/e8f6d1aee5378201806dcf6c0dc4fde3dabb60a1
Review-Url: https://codereview.chromium.org/2776753002
Cr-Commit-Position: refs/heads/master@{#460166}

[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/DEPS
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/cmd_buffer_functions.txt
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/generate_bindings.py
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/gl_bindings_api_autogen_gl.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/gl_bindings_autogen_gl.cc
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/gl_bindings_autogen_gl.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/gl_bindings_autogen_mock.cc
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/gl_bindings_autogen_mock.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/gl_mock.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/gl_mock_autogen_gl.h
[modify] https://crrev.com/8ff20f23f09ac7211555bbe9f519cf49c9bfe0e7/ui/gl/gl_stub_autogen_gl.h

Project Member

Comment 58 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/986a2209658887e85eeb3e00c933db92383bef73

commit 986a2209658887e85eeb3e00c933db92383bef73
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Fri Mar 31 02:06:45 2017

Add readback path for CopyTextureCHROMIUM

There are some liminations or driver bugs which cause GPU-GPU copy
unavailable in CopyTextureCHROMIUM. For such cases, we do a readback
fallback, i.e. draw the source texture to an intermediate texture in
RGBA format, read back pixels of the intermediate texture to a pbo,
then upload pixels to destination texture with TexImage api. With
this approach, the caller of glCopyTextureCHROMIUM doesn't need to care
about the liminations and bugs mentioned above.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2760843002
Cr-Commit-Position: refs/heads/master@{#460994}

[modify] https://crrev.com/986a2209658887e85eeb3e00c933db92383bef73/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/986a2209658887e85eeb3e00c933db92383bef73/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
[modify] https://crrev.com/986a2209658887e85eeb3e00c933db92383bef73/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/986a2209658887e85eeb3e00c933db92383bef73/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Project Member

Comment 59 by bugdroid1@chromium.org, Apr 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03b5cd7ff9b0c8457efe2578d18de91141be30b6

commit 03b5cd7ff9b0c8457efe2578d18de91141be30b6
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Mon Apr 10 15:30:45 2017

Enable CopyTextureCHROMIUM in Blink for Tex{Sub}Image2D with more cases

BUG=612542
TEST=webgl and webgl2 conformance tests
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2738163002
Cr-Commit-Position: refs/heads/master@{#463269}

[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.h
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.h
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/ImageBuffer.h
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/StaticBitmapImage.h
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.cpp
[modify] https://crrev.com/03b5cd7ff9b0c8457efe2578d18de91141be30b6/third_party/WebKit/Source/platform/graphics/gpu/Extensions3DUtil.h

Blocking: 710392

Comment 61 by kbr@chromium.org, Apr 11 2017

Blockedon: 710673
Project Member

Comment 62 by bugdroid1@chromium.org, May 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f56cfdfce785ceb79ceb0264a20d0b117c694713

commit f56cfdfce785ceb79ceb0264a20d0b117c694713
Author: jiajia.qin <jiajia.qin@intel.com>
Date: Wed May 17 08:21:02 2017

Delete useless code in gles2_cmd_copy_texture_chromium

In GetFragmentShaderSource function, when calculate the TextureType,
MAX_COLOR, InnerScaleValue and OuterScaleValue, we will check the
dest_format/source_format is unsigned, signed or else to set the
corresponding values for them. However, according to the spec, dest_format
don't support signed integer and signed normalized fixed-point data. And
source_format only support unsigned normalized fixed-point. In that case, we
don't need those unreachable paths.
Beside that, the old code had problems when converted from unsigned
fixed-point to signed integer.

BUG=612542
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2875903002
Cr-Commit-Position: refs/heads/master@{#472382}

[modify] https://crrev.com/f56cfdfce785ceb79ceb0264a20d0b117c694713/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc

Project Member

Comment 63 by sheriffbot@chromium.org, Jun 7 2017

Labels: Hotlist-Recharge-BouncingOwner
Owner: ----
Status: Untriaged (was: Started)
The assigned owner "qiankun.miao@intel.com" is not able to receive e-mails, please re-triage.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 64 by kbr@chromium.org, Jun 7 2017

Cc: -qiankun....@intel.com qkmiao@chromium.org
Status: Available (was: Untriaged)

Comment 65 by kbr@chromium.org, Jun 17 2017

Blockedon: 733599
Components: -Internals>GPU>WebGL Blink>WebGL

Comment 67 by kbr@chromium.org, Jul 11 2017

Owner: kbr@chromium.org
Status: Assigned (was: Available)
I'll take this over, since the fix for  Issue 733599  has necessitated revisiting these shaders.

Cc: -junov@chromium.org

Sign in to add a comment