Граф коммитов

18341 Коммитов

Автор SHA1 Сообщение Дата
Shahbaz Youssefi cd3c74af1c SPIR-V Gen: Fix aliasing out parameters
In ANGLE, when an unindexed lvalue was passed as an out parameter to a
function, SPIR-V was generated such that the lvalue is passed in
directly.  A Skia test revealed a difference in SPIR-V and GLSL
semantics where aliasing out parameters are expected to work on local
copies until the end of the function.

Bug: b/226904235
Change-Id: I476af01eb7d065272825967111cd208faf88c275
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3561278
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-31 13:51:19 +00:00
angle-autoroll b3acad0cbe Roll vulkan-deps from f9e3d5a50ca2 to e37ba68c0fde (5 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/f9e3d5a50ca2..e37ba68c0fde

Changed dependencies:
* vulkan-loader: 336508b06b..a59027c96d
* vulkan-tools: 3758a53671..431f3b53ae
* vulkan-validation-layers: 15e2373828..80de10c77b

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC syoussefi@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Bug: None
Tbr: syoussefi@google.com
Change-Id: I8928045976aef0d13bef1109adaadb1eca2297ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562311
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-31 12:06:16 +00:00
Mohan Maiya 3bdbfbf868 Vulkan: Adjust border color
Some border color tests used to fail due to either unclamped color
values or not accounting for depth, stencil or luma formats. We now
adjust the border color value according to the sampler's format.

Test: dEQP-GLES31.functional.texture.border_clamp.*
Bug: angleproject:3577
Bug: angleproject:6213
Change-Id: Ib38ce2374622bfafde69fe3fa2d7227d60043954
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551895
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-31 02:04:16 +00:00
John Cunningham f5d20de8c8 WebGL ReadPixels validation is incorrect.
Remove GL_UNSIGNED_INT_24_8 from the supported types in
ValidReadPixelsTypeEnum.

Run the format/type validation before the check for missing
attachment.

Bug: angleproject:7119
Change-Id: Ie788084d0f41fef6847791de8c53be830eba7564
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546723
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
2022-03-31 00:35:36 +00:00
Shahbaz Youssefi 36a051d83e Vulkan: Move mid-RP color clear to loadOp if content undefined
Instead of using vkCmdClearAttachments, if the color attachment has not
been written to, modify the loadOp of the currently open renderpass to
CLEAR.

This is an adaptation of
commit cfe5a1735a

The difference with that commit is that, with the prior changes that
added tracking of color attachment access in the render pass, this
change is greatly simplified by being able to immediately know if clear
can be moved to the beginning of the render pass.

Bug: angleproject:5048
Change-Id: I72b3613ad08ff869b71aced7e1f4e9be916d7b49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3557815
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-30 20:55:15 +00:00
Shahbaz Youssefi 162207306d Vulkan: Enable framebuffer fetch on SwiftShader
To roll into Chromium, this needs a rebaseline.  Two oopr-canvas2D tests
show a minor diff with this extension enabled.

Bug: angleproject:6947
Change-Id: I19c285ec544fef3622cce805322093ccffbcb728
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3561280
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-03-30 20:13:26 +00:00
Gregg Tavares e79ed0dc8c Metal: Fix for not submitting command buffers in order
First I added a check that CommandBuffers are committed in order
as the design requires that they are. This showed several tests
asserting including the angle end2end test,
OcclusionQueriesNoSurfaceTestES3.SwitchingContextsWithQuery/ES3_Metal
and also several others. The check is cheap and helps catch bugs so
it seems prudent to have it.

Unfortunately, AFAICT, there is no trival fix. The issue is
ContextMtl::flushCommandBuffer commits the outstanding commandbuffers
but then, if there is/was a query in progress, more work needs
to be done. That work calls ContextMtl::getBlitCommandEncoder which
calls ContextMtl::ensureCommandBufferReady which calls
ProvokingVertexHelper::ensureCommandBufferReady which ends up making
a new command buffer. That command buffer should be committed
before switching to a new context but the code that would commit it
has already executed. It's not at all clear to me how to refactor
the code to do this correctly. The simplest solution is to call
ContextMlt::flushCommandBuffer twice which I know is gross but at
least it fixes the bug and optimizing and/or refactoring can be done
separately.

Bug: angleproject:7131
Change-Id: Idb11efb35f6ad2fd890a5db15d3791c07586bf34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3553939
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
2022-03-30 18:30:15 +00:00
Lubosz Sarnecki aef440e6b9 Tests: Add Super Mario Run trace.
Test: angle_perftests --gtest_filter="*super_mario_run*"
Bug: angleproject:7098
Change-Id: I48ede98096bcb82270007d59f219f48ff673c7f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3560602
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2022-03-30 15:35:25 +00:00
mark a. foltz 5040c4d82b [Cast Convergence] Remove is_cast_desktop_build from ANGLE.
Bug: angleproject:7136
Change-Id: If760b1e92467fcdf9d9eecf187e5418fe18e48d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554916
Reviewed-by: Ryan Keane <rwkeane@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-03-30 13:25:06 +00:00
angle-autoroll 77d0aa5410 Roll vulkan-deps from e38e969e37fe to f9e3d5a50ca2 (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/e38e969e37fe..f9e3d5a50ca2

Changed dependencies:
* vulkan-loader: 5edd2f06d4..336508b06b
* vulkan-validation-layers: b0171bb028..15e2373828

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC syoussefi@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Bug: None
Tbr: syoussefi@google.com
Change-Id: Ia0c25fd5ec338e6e49c8754b5457f23ba3207ec6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3559291
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-30 11:26:47 +00:00
Lubosz Sarnecki f8ddca00cb FrameCapture: Use getCompressedTextImage.
Replace retrieveCachedTextureLevel with getCompressedTexImage.
Remove compressed texture shadow copy code.

Treat GLCopyImageSubData calls as texture updates by handling them in
trackTextureUpdate.

Bug: angleproject:5592
Bug: angleproject:5604
Bug: angleproject:6104
Bug: angleproject:6177
Bug: b/181797364
Change-Id: Ic6b2a41ce536e3e4b66497048954efdafa556d1e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516377
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2022-03-30 08:44:25 +00:00
Arthur Eubanks 9a0b306dcc Remove set but otherwise unused variables
Recent Clang versions have enhanced -Wunused-but-set-variable which now
warns about these.

Bug: chromium:1309955
Change-Id: If6a475e9f373b077fa3d9ef6f2274c8d115b5d24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3553570
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Arthur Eubanks <aeubanks@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-30 01:39:35 +00:00
Shahbaz Youssefi 2d54b68efb Vulkan: Use storeOp=None more opportunistically
Previously, storeOp=None was used when the attachment was in "read-only
mode" and storeOp=Store.  With this change, storeOp=None is used more
opportunistically when it's deemed that the attachment was not written
to, regardless of if it was put in "read-only mode" (a construct added
to support read-only depth/stencil feedback loops).

Bug: angleproject:5048
Change-Id: I10832d4e2b97793ea1347a47175cbf8ce9af57d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556368
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-30 01:32:31 +00:00
Shahbaz Youssefi 657738e04f Vulkan: Remove suppression of fixed VVL errors
This partially reverts commit
91667dcafa.

Bug: chromium:1310536
Change-Id: Ifeca55466f74b080274eb7762edce17bcace0aab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3557816
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2022-03-29 21:36:15 +00:00
angle-autoroll 53a897e16c Roll vulkan-deps from 8da5cdbde887 to e38e969e37fe (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/8da5cdbde887..e38e969e37fe

Changed dependencies:
* vulkan-headers: b6554a7ff3..0c5928795a
* vulkan-validation-layers: 4bf3f07497..b0171bb028

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC syoussefi@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Bug: None
Tbr: syoussefi@google.com
Change-Id: I985f6d7f794f74e62af534dc1d33529f9d9ba374
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3558473
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-29 20:19:35 +00:00
Lubosz Sarnecki 39c50daf36 Tests: Add Shadowgun Legends trace.
Test: angle_perftests --gtest_filter="*shadowgun_legends*"
Bug: angleproject:7042
Change-Id: I65c7671584edda823998145b6c6558353c5fdbd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497471
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2022-03-29 18:31:55 +00:00
Geoff Lang be53aea817 Reland: Emulate RGB10 (no alpha) on desktop OpenGL.
The OpenGL ES extension GL_EXT_texture_type_2_10_10_10_REV
requires RGB and RGBA formats to be supported but Desktop OpenGL
does not support RGB. Emulate it with the existing
emulatedAlphaChannel path in TextureGL.

Bug: chromium:1300575
Change-Id: I5efea52d3da628cf82b43fece23894e6f47df650
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3533141
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2022-03-29 14:50:53 +00:00
Steven Noonan a03ba73276 Vulkan: add tests for clearing/drawing after invalidate
Two tests, to ensure that:

- Clear gets treated as a LoadOp instead of as an out-of-renderpass
  clear, even if draws don't touch color buffers.

- Invalidated image gets contents marked as defined after
  invalidate+clear, so draws to it get a renderpass with LoadOp=Load

Bug: angleproject:7127
Change-Id: I78a8bd2100ba941a74755402649ae8edc7978026
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552090
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Steven Noonan <steven@valvesoftware.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-29 14:04:02 +00:00
angle-autoroll a161b08b4a Roll vulkan-deps from 737665b8eab1 to 8da5cdbde887 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/737665b8eab1..8da5cdbde887

Changed dependencies:
* vulkan-loader: b383c5131e..5edd2f06d4

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC syoussefi@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Bug: None
Tbr: syoussefi@google.com
Change-Id: Ie480fcf9224746fbe919dc2fa38765010b3a1024
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556817
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-29 10:37:34 +00:00
Shahbaz Youssefi 53e432febd Vulkan: Track LOAD/STORE_OP_NONE in perf counters
Bug: angleproject:5048
Change-Id: I52ed67e7a5c173dd1a7202fd6d4a1c484e79ea75
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556367
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-29 03:11:33 +00:00
Zequan Wu 6a76aa3ffc Fix -Wunused-but-set-variable
Bug: chromium:1309955
Change-Id: Ib5f7c73dd9a9f4ec27e43b0cb818864b2aaf48d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554363
Auto-Submit: Zequan Wu <zequanwu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-03-29 02:48:43 +00:00
Steven Noonan 1205a7e1cb Vulkan: always respect deferred clears in render pass
I had a situation which was like this:

- glBindFramebuffer(fbo)
- glClear(color + depth)
- series of depth-only draws:
    - glDrawBuffers() - disable all color buffers
    - glColorMask() - all false
    - glDrawElements/glDrawArrays
- glBindFramebuffer(0)

Even though the glClear happened before glDrawBuffers/glColorMask, it
only got executed on the first glDraw* call. And since the draw buffers
got disabled before it decided to act on the Clear, it thought it
couldn't touch the color buffer in the render pass.

So it ended up doing:

    vkCmdClearColorImage() on the color buffer
    vkCmdBeginRenderPass() with LoadOp C=Load, D=Clear before the draw

instead of:

    vkCmdBeginRenderPass() with LoadOp C=Clear, D=Clear

Bug: angleproject:7127
Change-Id: Ibc3b55b0c7815defcf6d711fa876eff43ba29d40
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551298
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-29 02:28:32 +00:00
angle-autoroll be0d78e5da Roll SwiftShader from ea9806003d9e to bc5bec05c369 (15 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/ea9806003d9e..bc5bec05c369

2022-03-28 capn@google.com Update SPIR-V Tools to bd325d298
2022-03-26 swiftshader.regress@gmail.com Regres: Update test lists @ 40b410f4
2022-03-25 srisser@google.com Update simple limits for Vulkan's 2022 profile
2022-03-25 sugoi@google.com Add new core Vulkan 1.3 structures
2022-03-25 sugoi@google.com Use template functions for core Vulkan 1.3 properties
2022-03-25 sugoi@google.com Fix SPV_EXT_shader_stencil_export
2022-03-25 sugoi@google.com VK_KHR_shader_terminate_invocation implementation
2022-03-25 sugoi@google.com VK_KHR_shader_terminate_invocation promoted structures
2022-03-25 sugoi@google.com VK_EXT_shader_demote_to_helper_invocation support
2022-03-25 sugoi@google.com VK_EXT_shader_demote_to_helper_invocation promoted structures
2022-03-24 swiftshader.regress@gmail.com Regres: Update test lists @ 040e2534
2022-03-23 capn@google.com Force-inline all SPIR-V function calls
2022-03-23 capn@google.com Use SwiftShader's copy of SPIRV-Tools for GN builds
2022-03-23 capn@google.com Update SPIR-V Tools to 9668d2e4e
2022-03-23 swiftshader.regress@gmail.com Regres: Update test lists @ ea980600

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-angle-autoroll
Please CC syoussefi@google.com,ynovikov@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Bug: None
Tbr: syoussefi@google.com,ynovikov@google.com
Change-Id: I693fd52587c98ef7d90e4cb4ac266163508da87a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556341
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-29 00:13:12 +00:00
Cody Northrop ce964d6689 Vulkan: Add tessellation to GetPipelineStage helper
The tessellation stages were missing from a helper, which was silently
returning an invalid value.

Add a test and an assert, which fires before the fix.

Test: GFXBench Car Chase
Test: GLSLTest_ES31.TessellationTextureBufferAccess
Bug: angleproject:7135
Bug: b/218314686
Change-Id: I2bc8d374300fc1470e52affabab7491698c99cee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554575
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2022-03-28 21:56:52 +00:00
Steven Noonan a02fa8a015 Vulkan: mark image contents defined on clear-invalidate-clear
The backend was ignoring "repeated clears" with an Invalidate between
them, which marked the image contents as undefined. When a clear happens
after invalidate, verify that the clear parameters were the same, and
simply mark the image contents defined if they aren't already.

For example, in this scenario:

    - glBindFramebuffer(fbo)
    - glInvalidateFramebuffer(color + depth)
    - glClear(color + depth)
    - depth only render
    - glInvalidateFramebuffer(depth)
    - glBindFramebuffer(0)

The color clear got skipped entirely because it was cleared with that
color in a previous frame and no other color draws happened since. This
caused sampling from the FBO's texture to return garbage data.

Bug: angleproject:7127
Change-Id: I4ffe65c67375931ab63f07f27fa59ed0a4b90cd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551297
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-28 21:19:52 +00:00
angle-autoroll 91667dcafa Roll vulkan-deps from 9fd63df2bc48 to 737665b8eab1 (13 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/9fd63df2bc48..737665b8eab1

Changed dependencies:
* glslang: f1d286fcc2..abbe466451
* spirv-tools: 48c8363f0a..bd325d2984
* vulkan-loader: ea503f36e6..b383c5131e
* vulkan-validation-layers: 26f222cf8b..4bf3f07497

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC syoussefi@google.com,ynovikov@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Bug: chromium:1310536
Change-Id: Id57e6986082a6a7167b7217c3681d284d718086b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556087
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2022-03-28 20:43:22 +00:00
Ian Elliott 638557ac1f Add back another Pixel-6-specific FAIL expectation
Passes on pre-release Android T drivers, but fails on the Android S
drivers.

Bug: b/224537784
Change-Id: Idc631d13b1666f0f0b4bf1c5bbfa9e9343af4d75
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3554360
Auto-Submit: Ian Elliott <ianelliott@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2022-03-28 17:17:42 +00:00
angle-autoroll d883495dc6 Roll VK-GL-CTS from 823d49cf5f5e to fbc38865227d (6 revisions)
823d49cf5f..fbc3886522

2022-03-28 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main
2022-03-28 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.8 into vk-gl-cts/main
2022-03-28 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.1 into vk-gl-cts/main
2022-03-26 pdaniell@nvidia.com Create custom device when testing VK_NV_shading_rate_image
2022-03-26 ari.suonpaa@siru.fi Enable EGL AHB tests
2022-03-25 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.1 into vk-gl-cts/main

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-bots+autoroll-info@google.com,syoussefi@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Bug: None
Tbr: angle-bots+autoroll-info@google.com,syoussefi@google.com
Change-Id: I1d2027947eab4bbc8a9f978f1748fcc9b86fbfd6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3555390
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-28 15:22:52 +00:00
Hans Wennborg 7e8e49a0b7 Remove a set but otherwise unused var in DynamicImage2DHLSL.cpp
Recent Clang versions have enhanced -Wunused-but-set-variable which now
warns about this.

Bug: chromium:1309955
Change-Id: Ic62427ab3129838d03878c308c6260993ae9fa57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550204
Auto-Submit: Hans Wennborg <hans@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-03-28 14:44:52 +00:00
Shahbaz Youssefi 7a85d114b5 Use [[nodiscard]] on RAII classes
Scoped* classes provide an RAII way of adding cleanup/restore state/etc
in a robust way.  Unfortunatley, it's very easy to mistakenly leave the
variable name, leading to the destructor being called immediately
instead of at the end of the scope:

    {
        ScopedX(parameters);   // instead of ScopedX x(parameters);
        // Code here is run after destructor
    }

The [[nodiscard]] attribute, if specified on the ScopedX class would
lead to a warning (turned to error with -Werror).  This change does
that for classes named *Scoped* in ANGLE.

Bug: chromium:1103817
Change-Id: I65c9922c9b4eba1f9c033e093fe8fe534648ab62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552092
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-03-27 19:48:21 +00:00
Gert Wollny bd173f0e87 Capture/Replay: limit per shader image uniforms when capturing
The Caps::maxImageUnits are limited, but that's only the value that is
checked when compiling shaders, we have also limit the values that are
returned when using the GL interface.

In addition print out the error log when compiling a shader fails in the
Pipeline tests.

Bug: angleproject:7094
Change-Id: I19f69afe2cece4841a395543c1e35785bc6bd698
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516078
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
2022-03-27 18:03:01 +00:00
Cody Northrop e3c4491963 Debug: Add angle_enable_trace_events
Include the following GN arg to print all GLES and EGL commands:

    angle_enable_trace_events = true

Bug: angleproject:7126
Change-Id: I78eb061c10ed519d6a0b0357eea11567d1cfb518
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551656
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2022-03-26 23:28:50 +00:00
Cody Northrop 32af258def Fix handling of incomplete CubeMapArray textures
GFXBench Car Chase binds a cube map array as a default texture,
then immediately samples from it without setting it up.  This
ends up treating the cube map array as incomplete.

On the Vulkan backend, this is resulting in multiple validation
errors, followed by a crash in the driver.  There are a number of
errors, but a telling one is this:

  vkCreateImage(): pCreateInfo->flags contains
  VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, but pCreateInfo->arrayLayers (=1)
  is not greater than or equal to 6. The Vulkan spec states: If
  imageType is VK_IMAGE_TYPE_2D and flags contains
  VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height
  must be equal and arrayLayers must be greater than or equal to 6

This corresponds to language in the GLES 3.2 spec:

  8.18. IMMUTABLE-FORMAT TEXTURE IMAGES
  TexStorage3D Errors
  An INVALID_OPERATION error is generated if any of the following
  conditions hold:
  * target is TEXTURE_CUBE_MAP_ARRAY and depth is not a multiple of 6

Since ANGLE treats incomplete textures as immutable, we need to update
the dimensions of the backing image for CUBE_MAP_ARRAY.

Also add a new test that exposes the problem.

Test: IncompleteTextureTestES31.IncompleteTextureCubeMapArray
Bug: b/218314686
Change-Id: Ibef41e15a7cfccb05e6039bfb8504d237bc42cd4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3546290
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2022-03-26 23:07:50 +00:00
Shahbaz Youssefi 041c4c6d28 Vulkan: Track color attachment usage like D/S in render pass
That is in preparation for optimizing mid-render-pass clears, which
requires an answer to the following query: "has this color image been
read from / written to so far in the render pass?"

With this change, a future CL will also be able to optimize color
attachment invalidates, which currently break the render pass
unconditionally, the same way depth/stencil is optimized.

Bug: angleproject:5048
Change-Id: I3d3ee40d8444e6861c06340d5d52b17f5ee895b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3542989
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-26 02:04:36 +00:00
Ian Elliott b2c6e08e50 Reland Remove unnecessary suppressions for Pixel6 dEQP
This is a reland of 0455f356ed

Original change's description:
> Remove unnecessary suppressions for Pixel6 dEQP tests
>
> Bug: b/224537784
> Change-Id: If7befe0279a06cddb79c67fdd34a62b4cb51c6e0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551658
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Commit-Queue: Ian Elliott <ianelliott@google.com>

The previous CL was based on the pre-release Android T Pixel 6
drivers.  The Chromium bots are running released Android S Pixel 6
drivers.  This CL updates the expectations with the observed status,
and still removes some expectations that are now unnecessary.

Bug: b/224537784
Change-Id: I4f4041e015824fd1d8211d6d7d0adedbccaa3ddb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552544
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2022-03-25 23:18:47 +00:00
Shahbaz Youssefi 3f331faeb1 Vulkan: Dirty bits for depth/stencil access and feedback loop
In preparation for doing the same for color, the depth/stencil render
pass access and feedback loop modes are now updated with ContextVk dirty
bits.

This change also fixes clear after read-only depth/stencil feedback
loop.  The render pass wasn't broken in that case.

Bug: angleproject:5048
Change-Id: I40f9b49593f9e6f35f42408e41c9d6267edb375e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3542988
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-25 22:57:57 +00:00
Cody Northrop 04680183f6 Capture/Replay: Fixes for Car Chase
This CL contains two fixes:
* Add GL_PATCHES to list of PrimitiveMode names
* Use FramebufferTextureLayer for 3D and Cube textures

Bug: angleproject:3662
Bug: angleproject:7125
Bug: b/218314686
Change-Id: Ia97d8221cb78ef6e895156b5a474483d570d6ab5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551096
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2022-03-25 22:07:36 +00:00
Stephen White 361874bba2 D3D: generalize more stuff (mImages, mReadonlyImages).
Bug: angleproject:7121
Change-Id: I39e7df1e9aed84c225c8877a3d16ca3c44f70990
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550543
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-03-25 21:16:06 +00:00
Stephen White cfee4070b6 D3D: generalize Image2D, ReadonlyImage2D and AtomicCounter.
Mapify them so they can handle all shader types.

Bug: angleproject:7121
Change-Id: Ia80d46200bf30509e1484f1e198e1edfe6344207
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550542
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-03-25 20:56:16 +00:00
Stephen White c399c69349 D3D: more generalization: cached Image2DBindLayouts.
Bug: angleproject:7121
Change-Id: I5cead9f7e70cfb9ebea807b886ba849948a2ec47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550541
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-03-25 20:48:46 +00:00
Hans Wennborg 0c23c72b01 Suppress -Wunused-but-set-variable in Bison-generated code
Recent Clang versions have enhanced the warning, causing it to fire in
preprocessor_tab_autogen.cpp and glslang_tab_autogen.cpp. Since those
are generated by Bison, we can't fix the code and instead should
suppress the warning there.

Bug: chromium:1309955
Change-Id: I31aa83571162310bef47a7ce84841446713a2d04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550200
Commit-Queue: Hans Wennborg <hans@chromium.org>
Auto-Submit: Hans Wennborg <hans@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-03-25 18:58:26 +00:00
Stephen White f2e7a2359c D3D: generalize the Image2DBindLayoutCache to be per-shader.
Bug: angleproject:7121
Change-Id: I3b5243583ac11a0fc96c4b9271118a8fd7ee4f66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550540
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-03-25 16:38:46 +00:00
Stephen White 4e939ac6c9 D3D: generalize mImage2DUniforms.
Mapify this variable so it can accommodate other shader types.

Bug: angleproject:7121
Change-Id: If6893a5fceaf50db87c42176c58319ce17d23d54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550539
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-03-25 16:32:36 +00:00
Stephen White 3e0fba6095 D3D: generalize DynamicHLSL calls to take a shaderType.
This allows all shader types to use these Image2D calls.

Bug: angleproject:7121
Change-Id: I95f9e8a2fd206bcc3ff2ef7e06875d093d73dcd6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550538
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2022-03-25 16:23:56 +00:00
Roman Lavrov 5d17caef2e Migrate capture_replay sample to trace_fixture
Bug: angleproject:5911
Change-Id: I6987e42f39a796e5888242a0d0f0dc05c99c703d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3537535
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
2022-03-25 16:01:16 +00:00
Ian Elliott 1d71f55f3b Remove unnecessary SKIPs for Pixel4* dEQP tests
Bug: b/224537784
Change-Id: I81c6f18d72ea893341ad2aa8ca819893e7d53d26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551659
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2022-03-25 16:00:06 +00:00
angle-autoroll 0e6ba7d20e Roll vulkan-deps from 3ef0c7c00c08 to 9fd63df2bc48 (6 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/3ef0c7c00c08..9fd63df2bc48

Changed dependencies:
* glslang: 397086a5b0..f1d286fcc2
* vulkan-loader: 0d76dd23b7..ea503f36e6
* vulkan-validation-layers: 755d34faa1..26f222cf8b

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC ynovikov@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

Bug: None
Tbr: ynovikov@google.com
Change-Id: I1c0b7c9f66c66c74923d85c0934f9969bccfd4b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552736
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-25 10:41:41 +00:00
Ian Elliott 45543295b7 Revert "Remove unnecessary suppressions for Pixel6 dEQP tests"
This reverts commit 0455f356ed.

Reason for revert: Multiple tests that pass on my Pixel 6 fail on the bot Pixel 6's

Original change's description:
> Remove unnecessary suppressions for Pixel6 dEQP tests
>
> Bug: b/224537784
> Change-Id: If7befe0279a06cddb79c67fdd34a62b4cb51c6e0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3551658
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> Commit-Queue: Ian Elliott <ianelliott@google.com>

Bug: b/224537784
Change-Id: Id3430a7632651b9b7b5e980f41678aebbdfc426c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3552124
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
Auto-Submit: Ian Elliott <ianelliott@google.com>
2022-03-25 04:38:46 +00:00
Shahbaz Youssefi c8f86c2174 A handful of clear-related tests
Credit Tim Van Patten <timvp@google.com>

Bug: angleproject:5048
Bug: angleproject:5194
Change-Id: I00eccf1049118c3fba3c2c560c781cf09cf23362
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3543732
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-25 03:49:56 +00:00
Yuxin Hu cdd97fb81b Reland "Vulkan: Fix invalid access with display texture share group."
This is a reland of 1099b5ef22.

Original change's description:
> Vulkan: Fix invalid access with display texture share group.

> Create bufferpool that owns by RendererVk.
> If we are using EGL_ANGLE_display_texture_share_group
> extension, use the bufferpool owned RendererVk,
> otherwise, use the bufferpool owned by EGL::ShareGroup.
> The bufferpool lifetime will remain consistent with
> texture lifetime.

> Bug: chromium:1299211
> Change-Id: Ie4e87cea1dfd20dabab24e2afed6ddd92e469888
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3531155
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>

Bug: chromium:1299211
Change-Id: I4b8f5bcb30297f2c5f24e02404fd96011f9d843b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3550038
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-03-25 02:26:55 +00:00