New issue
Advanced search Search tips

Issue 806557 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

Implement new WebGL stencil validation rules

Project Member Reported by kbr@chromium.org, Jan 28 2018

Issue description

Per discussion in the WebGL working group, the validation rules for the stencil separate mask and reference values need to be updated.

https://www.khronos.org/registry/webgl/specs/latest/1.0/#6.11

Roughly speaking: they need to take into account the number of bits in the current framebuffer's stencil buffer.

The WRITEMASKs and VALUE_MASKs need to be and'ed with the number of bits currently in the stencil buffer.

The REFs need to be clamped to the maximum representable value for the current stencil buffer (0 if no stencil bits, 255 if 8 stencil bits).

Currently these values are compared with no regard to the number of bits in the stencil buffer and that's causing compatibility problems with ANGLE's attempts to obey the OpenGL ES 2.0 spec.

See discussion here:

https://github.com/KhronosGroup/WebGL/pull/2583

Resolving this is urgent -- it's preventing partners from building their WebGL implementations on top of ANGLE.

 

Comment 1 by kbr@chromium.org, Jan 28 2018

Cc: zmo@chromium.org geoffl...@chromium.org jdarpinian@chromium.org kainino@chromium.org jmad...@chromium.org
Work in progress:

ANGLE side:
https://chromium-review.googlesource.com/890605

Chromium side:
https://chromium-review.googlesource.com/890606

Testing against this patch:
https://github.com/KhronosGroup/WebGL/pull/2592

The test doesn't pass yet. Setting the stencil reference value to -1 is causing the GPU process to crash in a Release build with DCHECKs turned on. I don't know how to get the stack trace for this crashed process so debugging is hard.

If someone could help push this forward it would be appreciated.

Comment 2 by kbr@chromium.org, Jan 31 2018

Cc: sunn...@chromium.org
Owner: kbr@chromium.org
Status: Assigned (was: Available)
Thanks to sunnyps@ for a huge hint about using Windbg! VS isn't installed yet on my workstation so that was the only available debugging tool. There was a mismatch between Windbg (it was in 64-bit mode) so attaching to my 32-bit build wasn't giving legal stack traces when catching the problem. With the following commands:

.effmach x86
k

we got the following stack trace.

It's not really surprising, in that it's related to framebuffer validation, but it is strange that the assertion seems to be:

        ASSERT(attachment.isAttached());

Here's the stack trace in my build.

0:000> .effmach
Effective machine: x64 (AMD64)
0:000> .effmach x86
Effective machine: x86 compatible (x86)
0:000:x86> k
 # ChildEBP RetAddr  
00 0053d5fc 55f23b6b libGLESv2!gl::Framebuffer::formsRenderingFeedbackLoopWith+0x1e9 [C:\src\chrome\src\third_party\angle\src\libANGLE\Framebuffer.cpp @ 1839] 
01 0053dfac 55f1ba3b libGLESv2!gl::ValidateDrawBase+0x6d4 [C:\src\chrome\src\third_party\angle\src\libANGLE\validationES.cpp @ 2613] 
02 0053e260 55f0fad3 libGLESv2!gl::ValidateDrawArraysCommon+0x6c [C:\src\chrome\src\third_party\angle\src\libANGLE\validationES.cpp @ 2661] 
03 0053e27c 55e9eda2 libGLESv2!gl::ValidateDrawArrays+0x16 [C:\src\chrome\src\third_party\angle\src\libANGLE\validationES2.cpp @ 5839] 
*** WARNING: Unable to verify checksum for gles2.dll
04 0053e2a4 5f429f3e libGLESv2!gl::DrawArrays+0x36 [C:\src\chrome\src\third_party\angle\src\libGLESv2\entry_points_gles_1_0_autogen.cpp @ 665] 
05 0053e2b8 5f43909a gles2!gpu::gles2::GLES2DecoderPassthroughImpl::DoDrawArrays+0x1a [C:\src\chrome\src\gpu\command_buffer\service\gles2_cmd_decoder_passthrough_doers.cc @ 1025] 
06 0053e2cc 5f41d170 gles2!gpu::gles2::GLES2DecoderPassthroughImpl::HandleDrawArrays+0x14 [C:\src\chrome\src\gpu\command_buffer\service\gles2_cmd_decoder_passthrough_handlers.cc @ 121] 
07 0053e2f8 5f41ccbd gles2!gpu::gles2::GLES2DecoderPassthroughImpl::DoCommandsImpl<0>+0xc0 [C:\src\chrome\src\gpu\command_buffer\service\gles2_cmd_decoder_passthrough.cc @ 531] 
*** WARNING: Unable to verify checksum for gpu.dll
08 0053e310 61377422 gles2!gpu::gles2::GLES2DecoderPassthroughImpl::DoCommands+0x21 [C:\src\chrome\src\gpu\command_buffer\service\gles2_cmd_decoder_passthrough.cc @ 472] 
*** WARNING: Unable to verify checksum for gpu_ipc_service.dll
09 0053e450 58565e32 gpu!gpu::CommandBufferService::Flush+0x168 [C:\src\chrome\src\gpu\command_buffer\service\command_buffer_service.cc @ 93] 
0a 0053e574 58565c03 gpu_ipc_service!gpu::CommandBufferStub::OnAsyncFlush+0x13e [C:\src\chrome\src\gpu\ipc\service\command_buffer_stub.cc @ 634] 
0b (Inline) -------- gpu_ipc_service!base::DispatchToMethodImpl+0x17 [C:\src\chrome\src\base\tuple.h @ 52] 
0c (Inline) -------- gpu_ipc_service!base::DispatchToMethod+0x17 [C:\src\chrome\src\base\tuple.h @ 60] 
0d (Inline) -------- gpu_ipc_service!IPC::DispatchToMethod+0x17 [C:\src\chrome\src\ipc\ipc_message_templates.h @ 51] 
0e 0053e5d8 58564389 gpu_ipc_service!IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta,std::tuple<int,unsigned int,bool>,void>::Dispatch<gpu::CommandBufferStub,gpu::CommandBufferStub,void,void (gpu::CommandBufferStub::*)(int, unsigned int, bool) __attribute__((thiscall))>+0x71 [C:\src\chrome\src\ipc\ipc_message_templates.h @ 145] 
0f 0053e6c0 5857113d gpu_ipc_service!gpu::CommandBufferStub::OnMessageReceived+0x25f [C:\src\chrome\src\gpu\ipc\service\command_buffer_stub.cc @ 296] 
10 0053e6d4 5856f6a7 gpu_ipc_service!gpu::GpuChannel::HandleMessageHelper+0x2f [C:\src\chrome\src\gpu\ipc\service\gpu_channel.cc @ 526] 
11 0053e7c4 5857281c gpu_ipc_service!gpu::GpuChannel::HandleMessage+0x11f [C:\src\chrome\src\gpu\ipc\service\gpu_channel.cc @ 494] 
12 (Inline) -------- gpu_ipc_service!base::internal::FunctorTraits<void (gpu::GpuChannel::*)(const IPC::Message &) __attribute__((thiscall)),void>::Invoke+0x12 [C:\src\chrome\src\base\bind_internal.h @ 211] 
13 (Inline) -------- gpu_ipc_service!base::internal::InvokeHelper<1,void>::MakeItSo+0x2d [C:\src\chrome\src\base\bind_internal.h @ 314] 
14 (Inline) -------- gpu_ipc_service!base::internal::Invoker<base::internal::BindState<void (gpu::GpuChannel::*)(const IPC::Message &) __attribute__((thiscall)),base::WeakPtr<gpu::GpuChannel>,IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta> >,void ()>::RunImpl+0x30 [C:\src\chrome\src\base\bind_internal.h @ 368] 
15 0053e7e0 6137eedc gpu_ipc_service!base::internal::Invoker<base::internal::BindState<void (gpu::GpuChannel::*)(const IPC::Message &) __attribute__((thiscall)),base::WeakPtr<gpu::GpuChannel>,IPC::MessageT<GpuCommandBufferMsg_AsyncFlush_Meta> >,void ()>::RunOnce+0x3a [C:\src\chrome\src\base\bind_internal.h @ 340] 
16 0053e7f8 6137e805 gpu!base::OnceCallback<void ()>::Run+0x2c [C:\src\chrome\src\base\callback.h @ 65] 
17 0053e944 6a06bda7 gpu!gpu::Scheduler::RunNextTask+0x353 [C:\src\chrome\src\gpu\command_buffer\service\scheduler.cc @ 527] 
18 (Inline) -------- base!base::OnceCallback<void ()>::Run+0x46 [C:\src\chrome\src\base\callback.h @ 65] 
19 0053ea68 6a0abf99 base!base::debug::TaskAnnotator::RunTask+0xe7 [C:\src\chrome\src\base\debug\task_annotator.cc @ 53] 
1a 0053eb3c 6a0b0de7 base!base::internal::IncomingTaskQueue::RunTask+0x69 [C:\src\chrome\src\base\message_loop\incoming_task_queue.cc @ 124] 
1b 0053ec64 6a0b1500 base!base::MessageLoop::RunTask+0x207 [C:\src\chrome\src\base\message_loop\message_loop.cc @ 399] 
1c 0053ed40 6a0b1778 base!base::MessageLoop::DeferOrRunPendingTask+0xa0 [C:\src\chrome\src\base\message_loop\message_loop.cc @ 411] 
1d 0053eea8 6a0b3f41 base!base::MessageLoop::DoWork+0x208 [C:\src\chrome\src\base\message_loop\message_loop.cc @ 455] 
1e 0053eec4 6a0b0649 base!base::MessagePumpDefault::Run+0xb1 [C:\src\chrome\src\base\message_loop\message_pump_default.cc @ 38] 
1f 0053ef9c 6a0fc06c base!base::MessageLoop::Run+0xa9 [C:\src\chrome\src\base\message_loop\message_loop.cc @ 352] 
*** WARNING: Unable to verify checksum for content.dll
20 0053f070 618ce05a base!base::RunLoop::Run+0xcc [C:\src\chrome\src\base\run_loop.cc @ 133] 
21 0053f28c 62d44d24 content!content::GpuMain+0x3cc [C:\src\chrome\src\content\gpu\gpu_main.cc @ 345] 
22 0053f35c 62d453dd content!content::RunNamedProcessTypeMain+0x94 [C:\src\chrome\src\content\app\content_main_runner.cc @ 422] 
*** WARNING: Unable to verify checksum for embedder.dll
23 0053f458 59e0c444 content!content::ContentMainRunnerImpl::Run+0x123 [C:\src\chrome\src\content\app\content_main_runner.cc @ 713] 
24 0053f570 62d44c15 embedder!service_manager::Main+0x2bb [C:\src\chrome\src\services\service_manager\embedder\main.cc @ 456] 
*** WARNING: Unable to verify checksum for chrome.dll
25 0053f5b4 646f92d2 content!content::ContentMain+0x35 [C:\src\chrome\src\content\app\content_main.cc @ 19] 
26 0053f640 00bcf35d chrome!ChromeMain+0x14e [C:\src\chrome\src\chrome\app\chrome_main.cc @ 132] 
27 0053f6cc 00bccad0 chrome_exe!MainDllLoader::Launch+0x237 [C:\src\chrome\src\chrome\app\main_dll_loader_win.cc @ 199] 
28 0053f844 00c8dec8 chrome_exe!wWinMain+0x580 [C:\src\chrome\src\chrome\app\chrome_exe_main_win.cc @ 231] 
29 (Inline) -------- chrome_exe!invoke_main+0x1a [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118] 
2a 0053f890 73da62c4 chrome_exe!__scrt_common_main_seh+0xf6 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 283] 
2b 0053f8a4 77310f79 KERNEL32!BaseThreadInitThunk+0x24
2c 0053f8ec 77310f44 ntdll_772b0000!__RtlUserThreadStart+0x2f
2d 0053f8fc 00000000 ntdll_772b0000!_RtlUserThreadStart+0x1b

Taking this back to try to get it over the finish line.

Comment 3 by kbr@chromium.org, Feb 21 2018

Owner: kainino@chromium.org
Kai said offline that he'd pick this up and figure out why this assertion failure was being hit, specifically whether it predates the small changes to the stencil validation, and finish it. Thanks Kai.

Status: Started (was: Assigned)
The assertion I'm seeing is this one:
ASSERT(dsState.stencilBackWritemask == dsState.stencilWritemask);
(not the isAttached one).
This info actually popped up in a dialog box when I ran my debug build
(though without a stack trace).
(This is a debug build, which I'm sure is why the dialog is enabled.)
I made a PR https://github.com/jdashg/WebGL/pull/4
into Jeff's PR https://github.com/KhronosGroup/WebGL/pull/2583
and have an ANGLE patch up here:
https://github.com/KhronosGroup/WebGL/pull/2583 .
I didn't have to make any changes to Ken's Chromium patch
https://chromium-review.googlesource.com/890606 .
Owner: kbr@chromium.org
Status: Assigned (was: Started)
-> kbr
to land https://chromium-review.googlesource.com/c/chromium/src/+/890606
which I think should still land cleanly.

It should probably be landed after a WebGL roll that includes
https://github.com/KhronosGroup/WebGL/pull/2583
Project Member

Comment 10 by bugdroid1@chromium.org, Mar 27 2018

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

commit 5c849d31db87f160aed138c694ea614bf6d5f1d9
Author: angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Tue Mar 27 03:28:55 2018

Roll src/third_party/angle/ 822a84b19..84fdc62c6 (8 commits)

https://chromium.googlesource.com/angle/angle.git/+log/822a84b1959f..84fdc62c6160

$ git log 822a84b19..84fdc62c6 --date=short --no-merges --format='%ad %ae %s'
2018-03-19 jiawei.shao Fix a compile error when ANGLE_D3D9EX == ANGLE_DISABLED
2017-10-03 geofflang Implement robust resource initialization for OpenGL.
2018-03-20 oetuaho Clean up checkCanBeLValue
2018-01-27 kbr Update stencil validation rules for WebGL
2018-03-19 oetuaho Rely on hash to check for some mangled name matches
2018-03-23 oetuaho Clarify aliasing rules in CHROMIUM_bind_uniform_location
2018-03-26 geofflang Check result of D3D11 map operation in Blit11::copyAndConvert.
2018-03-22 oetuaho Move ReplaceVariable to tree_util directory

Created with:
  roll-dep src/third_party/angle
BUG=chromium:693090, chromium:806557 , chromium:823856 , chromium:825503 


The AutoRoll server is located here: https://angle-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
TBR=lucferron@chromium.org

Change-Id: Ib864a0492b29de58564d5522977c11d6623dad4a
Reviewed-on: https://chromium-review.googlesource.com/981675
Reviewed-by: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#545968}
[modify] https://crrev.com/5c849d31db87f160aed138c694ea614bf6d5f1d9/DEPS

Comment 11 by kbr@chromium.org, Mar 27 2018

Owner: kainino@chromium.org
Status: Started (was: Assigned)
Kai, thanks for pushing the ANGLE changes through. Could you do me a favor and take over https://chromium-review.googlesource.com/890606 too and roll WebGL conformance? Have too many small issues to track right now. Thanks.

Project Member

Comment 12 by bugdroid1@chromium.org, Apr 9 2018

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

commit eb70ffc00e568cd5c6b7ebd52142697fa58d0573
Author: Kai Ninomiya <kainino@chromium.org>
Date: Mon Apr 09 20:41:33 2018

Roll WebGL da5abe6..aef0b3a

https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/da5abe6..aef0b3a

Bug:  806557 ,  829541 , 830046
Change-Id: I2c1b6f58e8005094f3174b7c9a228a67ee2d379b
Cq-Include-Trybots: master.tryserver.chromium.win:win_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_angle_rel_ng;master.tryserver.chromium.angle:win_angle_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/996896
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549265}
[modify] https://crrev.com/eb70ffc00e568cd5c6b7ebd52142697fa58d0573/DEPS
[modify] https://crrev.com/eb70ffc00e568cd5c6b7ebd52142697fa58d0573/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/eb70ffc00e568cd5c6b7ebd52142697fa58d0573/content/test/gpu/gpu_tests/webgl_conformance_revision.txt

Project Member

Comment 13 by bugdroid1@chromium.org, Apr 14 2018

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

commit 8e16133137af8deb02ac9b1798f2b6afb3a33095
Author: Kai Ninomiya <kainino@chromium.org>
Date: Sat Apr 14 02:36:50 2018

Add GLVersionInfo.is_d3d to detect ANGLE-on-D3D

Reviewed existing usages of is_angle to make sure they didn't need to be changed to is_d3d.

Tests:
  Service/FeatureInfoTest.InitializeWithANGLED3D9Ex
  Service/FeatureInfoTest.InitializeWithANGLED3D11
  Service/FeatureInfoTest.InitializeWithANGLEOpenGL

Bug:  806557 
Change-Id: Iaf582eaa02cdda7c3e78b0359578cf89680164ba
Reviewed-on: https://chromium-review.googlesource.com/1011357
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550864}
[modify] https://crrev.com/8e16133137af8deb02ac9b1798f2b6afb3a33095/gpu/command_buffer/service/feature_info_unittest.cc
[modify] https://crrev.com/8e16133137af8deb02ac9b1798f2b6afb3a33095/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/8e16133137af8deb02ac9b1798f2b6afb3a33095/ui/gl/gl_version_info.cc
[modify] https://crrev.com/8e16133137af8deb02ac9b1798f2b6afb3a33095/ui/gl/gl_version_info.h

Project Member

Comment 14 by bugdroid1@chromium.org, Apr 16 2018

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

commit f1c92daa94a68255e7ae854d6129dbce4e43d2e5
Author: Kai Ninomiya <kainino@chromium.org>
Date: Mon Apr 16 20:54:33 2018

Update WebGL's stencil validation rules

WebGL (Blink) now delegates the validation of the stencil state to lower
levels.

This updates the command buffer to implement the new validation rules.

ANGLE already implements the new validation rules, so the passthrough
command buffer already passes.

Patch started by kbr here:
https://chromium-review.googlesource.com/c/chromium/src/+/890606

Test: conformance/misc/webgl-specific-stencil-settings.html
Bug:  806557 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I1d2bc0fd346c5d3fa1d736638e39d97297915a91
Reviewed-on: https://chromium-review.googlesource.com/992862
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551108}
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/common/gles2_cmd_utils.cc
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/common/gles2_cmd_utils.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/context_state.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h

Status: Fixed (was: Started)
Project Member

Comment 16 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8e16133137af8deb02ac9b1798f2b6afb3a33095

commit 8e16133137af8deb02ac9b1798f2b6afb3a33095
Author: Kai Ninomiya <kainino@chromium.org>
Date: Sat Apr 14 02:36:50 2018

Add GLVersionInfo.is_d3d to detect ANGLE-on-D3D

Reviewed existing usages of is_angle to make sure they didn't need to be changed to is_d3d.

Tests:
  Service/FeatureInfoTest.InitializeWithANGLED3D9Ex
  Service/FeatureInfoTest.InitializeWithANGLED3D11
  Service/FeatureInfoTest.InitializeWithANGLEOpenGL

Bug:  806557 
Change-Id: Iaf582eaa02cdda7c3e78b0359578cf89680164ba
Reviewed-on: https://chromium-review.googlesource.com/1011357
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550864}
[modify] https://crrev.com/8e16133137af8deb02ac9b1798f2b6afb3a33095/gpu/command_buffer/service/feature_info_unittest.cc
[modify] https://crrev.com/8e16133137af8deb02ac9b1798f2b6afb3a33095/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/8e16133137af8deb02ac9b1798f2b6afb3a33095/ui/gl/gl_version_info.cc
[modify] https://crrev.com/8e16133137af8deb02ac9b1798f2b6afb3a33095/ui/gl/gl_version_info.h

Project Member

Comment 17 by bugdroid1@chromium.org, Apr 17 2018

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

commit f1c92daa94a68255e7ae854d6129dbce4e43d2e5
Author: Kai Ninomiya <kainino@chromium.org>
Date: Mon Apr 16 20:54:33 2018

Update WebGL's stencil validation rules

WebGL (Blink) now delegates the validation of the stencil state to lower
levels.

This updates the command buffer to implement the new validation rules.

ANGLE already implements the new validation rules, so the passthrough
command buffer already passes.

Patch started by kbr here:
https://chromium-review.googlesource.com/c/chromium/src/+/890606

Test: conformance/misc/webgl-specific-stencil-settings.html
Bug:  806557 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I1d2bc0fd346c5d3fa1d736638e39d97297915a91
Reviewed-on: https://chromium-review.googlesource.com/992862
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551108}
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/common/gles2_cmd_utils.cc
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/common/gles2_cmd_utils.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/context_state.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
[modify] https://crrev.com/f1c92daa94a68255e7ae854d6129dbce4e43d2e5/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 30

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/9a79c8893bfc2905e14d51e8256660aba853ff7b

commit 9a79c8893bfc2905e14d51e8256660aba853ff7b
Author: Shahbaz Youssefi <syoussefi@chromium.org>
Date: Tue Oct 30 21:18:51 2018

Run DifferentStencilMasks tests

This test was added and referenced, but was actually never added to the
list of files to be compiled.  The most recent validation work has been
regarding WebGL.

This test verifies the behavior when different stencil masks are set for
front and back faces, which is unsupported in D3D and disallowed in
WebGL.  In the interest of running the test on all back ends, and that
the validation was modified last to improve WebGL support, the test runs
in WebGL compatibility mode.

Bug:  chromium:806557 
Change-Id: I7615b9fc18d4203ed342e23881bea6bdd9b3864c
Reviewed-on: https://chromium-review.googlesource.com/c/1306256
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>

[modify] https://crrev.com/9a79c8893bfc2905e14d51e8256660aba853ff7b/src/tests/angle_end2end_tests.gni
[modify] https://crrev.com/9a79c8893bfc2905e14d51e8256660aba853ff7b/src/tests/gl_tests/DifferentStencilMasksTest.cpp

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 31

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

commit b795666f9151ed7cca128c6a31fdfb11f6a7a3f2
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Wed Oct 31 03:18:20 2018

Roll src/third_party/angle af9dd6080188..193a284d34d2 (6 commits)

https://chromium.googlesource.com/angle/angle.git/+log/af9dd6080188..193a284d34d2


git log af9dd6080188..193a284d34d2 --date=short --no-merges --format='%ad %ae %s'
2018-10-30 jmadill@chromium.org Vulkan: Split vk::CommandGraphResource.
2018-10-30 jmadill@chromium.org Make perf tests faster in correctness-only mode.
2018-10-30 syoussefi@chromium.org Run DifferentStencilMasks tests
2018-10-30 jmadill@chromium.org Try to reduce variance in angle_perftests.
2018-10-30 jmadill@chromium.org Vulkan: Enable more perf tests.
2018-10-30 jmadill@chromium.org Vulkan: Add warnings for cache struct packing.


Created with:
  gclient setdep -r src/third_party/angle@193a284d34d2

The AutoRoll server is located here: https://autoroll.skia.org/r/angle-chromium-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG= chromium:806557 
TBR=ynovikov@chromium.org

Change-Id: Ib1b19719f3892ec093455e3a6bbc042457b118fd
Reviewed-on: https://chromium-review.googlesource.com/c/1309324
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#604132}
[modify] https://crrev.com/b795666f9151ed7cca128c6a31fdfb11f6a7a3f2/DEPS

Sign in to add a comment