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 706173005: Enable asynchronous glReadPixels on Windows. (Closed)

Created:
6 years, 1 month ago by miu
Modified:
6 years, 1 month ago
Reviewers:
Jamie Madill, piman
CC:
chromium-reviews, piman+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Enable asynchronous glReadPixels on Windows. Chromium is using the GL ES 2.0 spec with ANGLE, which doesn't allow for async readback on its own. However, ANGLE also provides two extensions which, together, provide all the needed extra implementation: GL_NV_pixel_buffer_object and GL_EXT_map_buffer_range. This change enables the appropriate feature flags when the two extensions are present. It also changes the auto-generated bindings for the glMapBufferRange function so that glMapBufferRangeEXT is used instead of glMapBufferRange when ANGLE is initialized below the version 3 spec. In addition, this change adds propagation of service-side glMapBuffer() errors back to the glMapBufferCHROMIUM call client-side. In the process of writing tests for this, a minor shared memory allocation bug was revealed and also fixed. BUG=431420 Committed: https://crrev.com/b70d7859b370731bb54ba32b6e92e8bb573390e5 Cr-Commit-Position: refs/heads/master@{#304340}

Patch Set 1 : #

Total comments: 1

Patch Set 2 : Add mechanism to propagate service-side glMapBuffer errors + tests. #

Total comments: 1

Patch Set 3 : Fix compile/link issues not exposed by MSVC, plus REBASE. #

Patch Set 4 : Tweaks needed to resolve GLLoseContextTest.ShareGroup test failure. #

Patch Set 5 : Revert to PS1, then added GL_OUT_OF_MEMORY, kept MappedMemoryManager bug fix." #

Total comments: 2

Patch Set 6 : Fixed DCHECK in set_chunk_size_multiple. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+30 lines, -12 lines) Patch
M gpu/command_buffer/client/fenced_allocator.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/fenced_allocator.cc View 1 2 3 1 chunk +4 lines, -5 lines 0 comments Download
M gpu/command_buffer/client/mapped_memory.h View 1 2 3 4 5 2 chunks +1 line, -1 line 0 comments Download
M gpu/command_buffer/client/mapped_memory.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M gpu/command_buffer/service/feature_info.cc View 1 2 3 4 1 chunk +4 lines, -2 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 1 2 3 4 2 chunks +9 lines, -1 line 0 comments Download
M ui/gl/generate_bindings.py View 1 chunk +8 lines, -2 lines 0 comments Download

Messages

Total messages: 17 (6 generated)
miu
jmadill: PTAL. This is the solution I discussed w/ you and Shannon on the e-mail ...
6 years, 1 month ago (2014-11-11 22:24:52 UTC) #4
Jamie Madill
Not a command buffer expert, but LGTM given it passes tests & manual testing.
6 years, 1 month ago (2014-11-11 22:33:27 UTC) #5
piman
https://codereview.chromium.org/706173005/diff/40001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/706173005/diff/40001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode7553 gpu/command_buffer/service/gles2_cmd_decoder.cc:7553: if (data) In which case should data be NULL? ...
6 years, 1 month ago (2014-11-11 22:54:31 UTC) #6
miu
piman: PTAL. Responses inline: On 2014/11/11 22:54:31, piman (Very slow to review) wrote: > gpu/command_buffer/service/gles2_cmd_decoder.cc:7553: ...
6 years, 1 month ago (2014-11-13 01:31:46 UTC) #9
piman
On 2014/11/13 01:31:46, miu wrote: > piman: PTAL. Responses inline: > > On 2014/11/11 22:54:31, ...
6 years, 1 month ago (2014-11-14 19:50:14 UTC) #10
miu
On 2014/11/14 19:50:14, piman (Very slow to review) wrote: > This seems overkill. It's not ...
6 years, 1 month ago (2014-11-14 23:08:14 UTC) #11
piman
lgtm https://codereview.chromium.org/706173005/diff/80002/gpu/command_buffer/client/mapped_memory.h File gpu/command_buffer/client/mapped_memory.h (right): https://codereview.chromium.org/706173005/diff/80002/gpu/command_buffer/client/mapped_memory.h#newcode138 gpu/command_buffer/client/mapped_memory.h:138: DCHECK_GE(multiple, FencedAllocator::kAllocAlignment); Maybe DCHECK(multiple % FencedAllocator::kAllocAlignment == 0)?
6 years, 1 month ago (2014-11-15 00:43:43 UTC) #12
miu
https://codereview.chromium.org/706173005/diff/80002/gpu/command_buffer/client/mapped_memory.h File gpu/command_buffer/client/mapped_memory.h (right): https://codereview.chromium.org/706173005/diff/80002/gpu/command_buffer/client/mapped_memory.h#newcode138 gpu/command_buffer/client/mapped_memory.h:138: DCHECK_GE(multiple, FencedAllocator::kAllocAlignment); On 2014/11/15 00:43:43, piman (Very slow to ...
6 years, 1 month ago (2014-11-15 01:04:26 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/706173005/170001
6 years, 1 month ago (2014-11-15 01:06:22 UTC) #15
commit-bot: I haz the power
Committed patchset #6 (id:170001)
6 years, 1 month ago (2014-11-15 03:53:59 UTC) #16
commit-bot: I haz the power
6 years, 1 month ago (2014-11-15 03:55:30 UTC) #17
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/b70d7859b370731bb54ba32b6e92e8bb573390e5
Cr-Commit-Position: refs/heads/master@{#304340}

Powered by Google App Engine
This is Rietveld 408576698