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

Issue 687346 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 655171
issue 687439

Blocking:
issue 696749
issue 687357
issue 688765
issue 696742
issue 703798



Sign in to add a comment

HDR: cc: Add ResourceFormat for half-float RGBA

Project Member Reported by ccameron@chromium.org, Jan 31 2017

Issue description

Add a format ResourceFormat::RGBA_16F, and allow allocating GL textures for this.

When rendering HDR content, our backbuffer will be RGBA_16F -- we'll need to ensure that RenderPass textures (allocated at [1]) be RGBA_16F as well.
 
Blocking: 687357
Project Member

Comment 2 by bugdroid1@chromium.org, Feb 4 2017

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

commit 197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40
Author: ccameron <ccameron@chromium.org>
Date: Sat Feb 04 02:07:34 2017

Add the ResourceFormat RGBA_F16, and appropriate GL and Skia values.

Add the GPU capability color_buffer_float, to expose if it is possible
to create a RGBA_F16 render target.

Enable exposing GPU capabilities color_buffer_float and
texture_half_float_linear to non-WebGL GLES2 contexts (e.g, the
compositor context).

When allocating a RenderPass texture, use RGBA_F16 if the output surface
is high-bit-depth (which will include HDR surfaces). Add the method
OutputSurface::IsHighBitDepth to indicate this property.

Note that this cannot be tested by the cc pixel tests (the correct way
to test this) because they use a version of Mesa that does not support
floating-point textures. Tests so far have been manual, as we work on
upgrading Mesa. This will be tested by having the pixel tests which
currently run in software and GL mode also run in "GL with high bit
depth output surface" mode.

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

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

[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/output/direct_renderer.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/output/direct_renderer.h
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/output/gl_renderer.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/output/gl_renderer.h
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/output/software_renderer.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/output/software_renderer.h
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/raster/raster_buffer_provider.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/resources/platform_color.h
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/resources/platform_color_unittest.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/resources/resource_format.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/resources/resource_format.h
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/resources/resource_format_utils.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/resources/resource_provider.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/cc/resources/resource_provider_unittest.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/gpu/command_buffer/common/capabilities.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/gpu/command_buffer/service/test_helper.cc
[modify] https://crrev.com/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40/gpu/ipc/common/gpu_command_buffer_traits_multi.h

Comment 3 by kbr@chromium.org, Feb 5 2017

Blocking: 688765

Comment 4 by kbr@chromium.org, Feb 5 2017

The CL above caused assertion failures in the webgl_conformance_d3d11_passthrough_tests on all of the Windows bots on the chromium.gpu.fyi waterfall:

https://build.chromium.org/p/chromium.gpu.fyi/console

Only one example:

https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20%28NVIDIA%29/builds/29232

The presubmit check in src/gpu/PRESUBMIT.py should have added the following trybots to 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

but due to Issue 688765 they were not added.

Chris, apologies but I'm reverting your patch; there are too many bots broken by it. If you could manually add those trybots to your CL the next time (until Issue 688765 is fixed) that will prevent future breakage. Thanks.

Comment 5 by kbr@chromium.org, Feb 5 2017

Sorry, forgot to include the stack trace:

[892:2108:0203/214649.482:FATAL:feature_info.cc(874)] Check failed: glGetError() == GL_NO_ERROR. 
Backtrace:
	base::debug::StackTrace::StackTrace [0x68A33C57+55]
	base::debug::StackTrace::StackTrace [0x68A36D0A+10]
	gpu::gles2::FeatureInfo::InitializeFeatures [0x6A1CDAA2+6276]
	gpu::gles2::FeatureInfo::Initialize [0x6A1CC15C+32]
	gpu::gles2::ContextGroup::Initialize [0x6A1D043C+336]
	gpu::gles2::GLES2DecoderPassthroughImpl::Initialize [0x6A1F8618+65]
	gpu::GpuCommandBufferStub::Initialize [0x68FE9162+2379]
	gpu::GpuCommandBufferStub::Create [0x68FE843A+67]
	gpu::GpuChannel::CreateCommandBuffer [0x68FE184E+610]

Project Member

Comment 6 by bugdroid1@chromium.org, Feb 5 2017

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

commit 75c6426dbd63f244b76f512671faafdfc278fdd3
Author: kbr <kbr@chromium.org>
Date: Sun Feb 05 00:34:11 2017

Revert of Add compositor support for half-float RGBA buffers and textures (patchset #4 id:60001 of https://codereview.chromium.org/2674493003/ )

Reason for revert:
Broke all Windows bots on chromium.gpu.fyi waterfall; see https://bugs.chromium.org/p/chromium/issues/detail?id=687346#c4 .

Original issue's description:
> Add the ResourceFormat RGBA_F16, and appropriate GL and Skia values.
>
> Add the GPU capability color_buffer_float, to expose if it is possible
> to create a RGBA_F16 render target.
>
> Enable exposing GPU capabilities color_buffer_float and
> texture_half_float_linear to non-WebGL GLES2 contexts (e.g, the
> compositor context).
>
> When allocating a RenderPass texture, use RGBA_F16 if the output surface
> is high-bit-depth (which will include HDR surfaces). Add the method
> OutputSurface::IsHighBitDepth to indicate this property.
>
> Note that this cannot be tested by the cc pixel tests (the correct way
> to test this) because they use a version of Mesa that does not support
> floating-point textures. Tests so far have been manual, as we work on
> upgrading Mesa. This will be tested by having the pixel tests which
> currently run in software and GL mode also run in "GL with high bit
> depth output surface" mode.
>
> BUG= 687346 
> CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
>
> Review-Url: https://codereview.chromium.org/2674493003
> Cr-Commit-Position: refs/heads/master@{#448143}
> Committed: https://chromium.googlesource.com/chromium/src/+/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40

TBR=enne@chromium.org,jbauman@chromium.org,tsepez@chromium.org,ccameron@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 687346 

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

[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/output/direct_renderer.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/output/direct_renderer.h
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/output/gl_renderer.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/output/gl_renderer.h
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/output/software_renderer.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/output/software_renderer.h
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/raster/raster_buffer_provider.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/resources/platform_color.h
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/resources/platform_color_unittest.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/resources/resource_format.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/resources/resource_format.h
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/resources/resource_format_utils.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/resources/resource_provider.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/cc/resources/resource_provider_unittest.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/gpu/command_buffer/common/capabilities.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/gpu/command_buffer/service/test_helper.cc
[modify] https://crrev.com/75c6426dbd63f244b76f512671faafdfc278fdd3/gpu/ipc/common/gpu_command_buffer_traits_multi.h

Project Member

Comment 7 by bugdroid1@chromium.org, Feb 6 2017

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

commit 22094236e8ef012d05e313c6e77c07a71addb37e
Author: ccameron <ccameron@chromium.org>
Date: Mon Feb 06 20:29:19 2017

Add the ResourceFormat RGBA_F16, and appropriate GL and Skia values.

Add the GPU capability color_buffer_float, to expose if it is possible
to create a RGBA_F16 render target.

When allocating a RenderPass texture, use RGBA_F16 if the output surface
is high-bit-depth (which will include HDR surfaces). Add the method
OutputSurface::IsHighBitDepth to indicate this property.

Note that this cannot be tested by the cc pixel tests (the correct way
to test this) because they use a version of Mesa that does not support
floating-point textures. Tests so far have been manual, as we work on
upgrading Mesa. This will be tested by having the pixel tests which
currently run in software and GL mode also run in "GL with high bit
depth output surface" mode.

BUG= 687346 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_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/2674493003
Cr-Original-Commit-Position: refs/heads/master@{#448143}
Committed: https://chromium.googlesource.com/chromium/src/+/197ec6b2ea2af1d95c0acdf9a0ebf0cd479fdf40
Review-Url: https://codereview.chromium.org/2674493003
Cr-Commit-Position: refs/heads/master@{#448375}

[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/output/direct_renderer.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/output/direct_renderer.h
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/output/gl_renderer.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/output/gl_renderer.h
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/output/software_renderer.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/output/software_renderer.h
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/raster/raster_buffer_provider.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/resources/platform_color.h
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/resources/platform_color_unittest.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/resources/resource_format.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/resources/resource_format.h
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/resources/resource_format_utils.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/resources/resource_provider.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/cc/resources/resource_provider_unittest.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/gpu/command_buffer/common/capabilities.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/22094236e8ef012d05e313c6e77c07a71addb37e/gpu/ipc/common/gpu_command_buffer_traits_multi.h

Blockedon: 687439
Blockedon: 655171
Blocking: 696742
Blocking: 696749
Status: Fixed (was: Assigned)
This is fixed.

We'll need to add GpuMemoryBuffer support for half-float eventually ( issue 655171 ), but not for near-term HDR support.
Blocking: 703798

Sign in to add a comment