New issue
Advanced search Search tips

Issue 699278 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug-Regression



Sign in to add a comment

gpu: DCHECK failure in FeatureInfo::InitializeFloatAndHalfFloatFeatures

Project Member Reported by marshall@chromium.org, Mar 7 2017

Issue description

Chrome Version: master revision 939b32ee (#454471) (M58 branch point)
OS: Ubuntu 14.04.3 64-bit running in a VMware 12.0.1 build-3160714 host

What steps will reproduce the problem?
(1) Run a Chromium build with DCHECK enabled.

What is the expected result?
The GPU process should start successfully.

What happens instead?
The GPU process crashes on startup after hitting DCHECK_EQ(glGetError(), static_cast<GLuint>(GL_NO_ERROR)); in FeatureInfo::InitializeFloatAndHalfFloatFeatures.

Please use labels and text to provide additional information.
Stack trace:

[0307/142925.654563:FATAL:feature_info.cc(1523)] Check failed: ::gl::g_current_gl_context_tls->Get()->Api->glGetErrorFn() == static_cast<GLuint>(0x0) (1281 vs. 0)
#0 0x0000004b9941 __interceptor_backtrace
#1 0x7fab078b350c base::debug::StackTrace::StackTrace()
#2 0x7fab0791ece7 logging::LogMessage::~LogMessage()
#3 0x7fab097f6d78 gpu::gles2::FeatureInfo::InitializeFloatAndHalfFloatFeatures()
#4 0x7fab097dca43 gpu::gles2::FeatureInfo::InitializeFeatures()
#5 0x7fab097d4074 gpu::gles2::FeatureInfo::Initialize()
#6 0x7fab097ab435 gpu::gles2::ContextGroup::Initialize()
#7 0x7fab098b8b11 gpu::gles2::GLES2DecoderImpl::Initialize()
#8 0x7fab0afa6be8 gpu::GpuCommandBufferStub::Initialize()
#9 0x7fab0afa2768 gpu::GpuCommandBufferStub::Create()
#10 0x7fab0af941a9 gpu::GpuChannel::CreateCommandBuffer()
#11 0x7fab0af83a02 gpu::GpuChannel::OnCreateCommandBuffer()
#12 0x7fab0af82f82 _ZN3IPC8MessageTI38GpuChannelMsg_CreateCommandBuffer_MetaNSt3__15tupleIJ28GPUCreateCommandBufferConfigiN4base14FileDescriptorEEEENS3_IJbN3gpu12CapabilitiesEEEEE8DispatchINS8_10GpuChannelESD_vMSD_FvRKS4_iS6_PbPS9_EEEbPKNS_7MessageEPT_PT0_PT1_T2_
#13 0x7fab0af824d5 gpu::GpuChannel::OnControlMessageReceived()
#14 0x7fab0af9292f gpu::GpuChannel::HandleMessageHelper()
#15 0x7fab0af920fe gpu::GpuChannel::HandleMessage()
#16 0x7fab0af99d5e _ZN4base8internal13FunctorTraitsIMN3gpu10GpuChannelEFvRK13scoped_refptrINS2_22GpuChannelMessageQueueEEEvE6InvokeIRKNS_7WeakPtrIS3_EEJS8_EEEvSA_OT_DpOT0_
#17 0x7fab078b4d19 base::debug::TaskAnnotator::RunTask()
#18 0x7fab0794a69b base::MessageLoop::RunTask()
#19 0x7fab0794b656 base::MessageLoop::DeferOrRunPendingTask()
#20 0x7fab0794ccbb base::MessageLoop::DoWork()
#21 0x7fab079570b7 base::(anonymous namespace)::WorkSourceDispatch()
#22 0x7faafafc5e04 g_main_context_dispatch
#23 0x7faafafc6048 <unknown>
#24 0x7faafafc60ec g_main_context_iteration
#25 0x7fab07956616 base::MessagePumpGlib::Run()
#26 0x7fab07949ca1 base::MessageLoop::RunHandler()
#27 0x7fab079e8921 base::RunLoop::Run()
#28 0x7fab12e36fca content::GpuMain()
#29 0x7fab0739bd77 content::RunNamedProcessTypeMain()
#30 0x7fab0739db5b content::ContentMainRunnerImpl::Run()
#31 0x7fab07398d9b content::ContentMain()

about:gpu from Chrome 56.0.2924.87 attached.
 
about_gpu.pdf
108 KB Download
Owner: ccameron@chromium.org
Status: Assigned (was: Untriaged)

Comment 2 by danakj@chromium.org, Apr 25 2017

Cc: sunn...@chromium.org vmi...@chromium.org

Comment 3 by danakj@chromium.org, Apr 25 2017

This is affecting people who disable hardware accel to work around it since swiftshader starts the gpu process now.
Could you patch in https://codereview.chromium.org/2862693002 and tell me what error you get? AFAICT the calls that I'm making are legit (and the same as before), but maybe I'm missing something.

I should have separated out the refactoring parts of https://codereview.chromium.org/2713553005/ from the functionality changes... now I can't tell which caused which.


Labels: Needs-Feedback
@comment#4: Here's the output from running with your patch at master revision a106f0ab (#464641):

[0504/085832.843374:FATAL:feature_info.cc(1523)] Check failed: ::gl::g_current_gl_context_tls->Get()->Api->glGetErrorFn() == static_cast<GLuint>(0x0) (1281 vs. 0) with internal format 33325 and format 6403.
#0 0x000000474a01 __interceptor_backtrace
#1 0x7f99c91dfd0c base::debug::StackTrace::StackTrace()
#2 0x7f99c9250546 logging::LogMessage::~LogMessage()
#3 0x7f99cac2abce gpu::gles2::FeatureInfo::InitializeFloatAndHalfFloatFeatures()
#4 0x7f99cac10543 gpu::gles2::FeatureInfo::InitializeFeatures()
#5 0x7f99cac07b64 gpu::gles2::FeatureInfo::Initialize()
#6 0x7f99cabe1c0c gpu::gles2::ContextGroup::Initialize()
#7 0x7f99caceb32d gpu::gles2::GLES2DecoderImpl::Initialize()
#8 0x7f99cc8d9908 gpu::GpuCommandBufferStub::Initialize()
#9 0x7f99cc8d6650 gpu::GpuCommandBufferStub::Create()
#10 0x7f99cc8ca372 gpu::GpuChannel::CreateCommandBuffer()
#11 0x7f99cc8bb882 gpu::GpuChannel::OnCreateCommandBuffer()
#12 0x7f99cc8bae45 _ZN3IPC8MessageTI38GpuChannelMsg_CreateCommandBuffer_MetaNSt3__15tupleIJ28GPUCreateCommandBufferConfigiN4base14FileDescriptorEEEENS3_IJbN3gpu12CapabilitiesEEEEE8DispatchINS8_10GpuChannelESD_vMSD_FvRKS4_iS6_PbPS9_EEEbPKNS_7MessageEPT_PT0_PT1_T2_
#13 0x7f99cc8ba3cf gpu::GpuChannel::OnControlMessageReceived()
#14 0x7f99cc8c96f7 gpu::GpuChannel::HandleMessageHelper()
#15 0x7f99cc8cf475 _ZN4base8internal7InvokerINS0_9BindStateIMN3gpu10GpuChannelEFvRKN3IPC7MessageEEJNS_7WeakPtrIS4_EES6_EEEFvvEE3RunEPNS0_13BindStateBaseE
#16 0x7f99c332739f _ZNO4base8CallbackIFvvELNS_8internal8CopyModeE0ELNS2_10RepeatModeE0EE3RunEv
#17 0x7f99c91e1615 base::debug::TaskAnnotator::RunTask()
#18 0x7f99c927b54b base::MessageLoop::RunTask()
#19 0x7f99c927c4b6 base::MessageLoop::DeferOrRunPendingTask()
#20 0x7f99c927da9b base::MessageLoop::DoWork()
#21 0x7f99c9287ae7 base::(anonymous namespace)::WorkSourceDispatch()
#22 0x7f99ba858e04 g_main_context_dispatch
#23 0x7f99ba859048 <unknown>
#24 0x7f99ba8590ec g_main_context_iteration
#25 0x7f99c92870a6 base::MessagePumpGlib::Run()
#26 0x7f99c927ab75 base::MessageLoop::RunHandler()
#27 0x7f99c9314688 base::RunLoop::Run()
#28 0x7f99da4db956 content::GpuMain()
#29 0x7f99c8cc9d19 content::RunNamedProcessTypeMain()
#30 0x7f99c8ccc879 content::ContentMainRunnerImpl::Run()
#31 0x7f99cf290ca4 service_manager::MainRun()
#32 0x7f99cf291151 service_manager::Main()
#33 0x7f99c8cc81e7 content::ContentMain()
Cc: zmo@chromium.org
Sorry, one more request -- can you attach the output from about:gpu on this machine (print it as a PDF, if that's easy)?

Okay, that's the very first format GL_R16F/GL_RED, in the ES2 branch. So it seems that GL_R16F may not be supported on this machine. From inspection, I think that this error could happen if the GL version is < 3 and the extension ARB_texture_rg.txt is not present.
@comment#7: about:gpu output should already be attached to the original report. Let me know if you specifically need updated about:gpu output from the most recent build.
Thanks (/facepalm).

Yes, that looks to be the problem: GL_VERSION 2.1 Mesa 10.5.9, no ARB_texture_rg.

Comment 10 by zmo@chromium.org, May 4 2017

I am surprised we didn't blacklist all GPU features as this is apparently software renderer (with vendor ID 0x15ad for VMWare)
@zmo: You may remember  issue #332596  :)

Comment 12 by zmo@chromium.org, May 4 2017

Oh yeah, I know I am Dory, and thanks for refreshing my memory. :)
In theory this could happen to anything that is using Desktop GL 2, so I'll put a patch together for it.
Project Member

Comment 14 by bugdroid1@chromium.org, May 4 2017

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

commit 2c0a34fb259f6d8381a4c6ddce21bc8850c6a806
Author: ccameron <ccameron@chromium.org>
Date: Thu May 04 23:21:12 2017

Don't expose EXT_color_buffer_half_float to GL 2.x

The required texture formats (GL_R16F, etc) are not in the core until
3.0.

We could, in principle, query the particular extensions required for
these formats (GL_ARB_texture_rg, etc), but this query is simpler and
equally effective in practice.

BUG= 699278 
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/2863773002
Cr-Commit-Position: refs/heads/master@{#469512}

[modify] https://crrev.com/2c0a34fb259f6d8381a4c6ddce21bc8850c6a806/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/2c0a34fb259f6d8381a4c6ddce21bc8850c6a806/gpu/command_buffer/service/test_helper.cc

@comment#14: Thanks! I've verified that the fix works for me.
Status: Fixed (was: Assigned)
Thanks! Sorry this took so long to clear up.

Sign in to add a comment