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

12337 Коммитов

Автор SHA1 Сообщение Дата
Tim Van Patten a4b506f79e No-Op draws when no active VS and/or FS is present
According to the OpenGL ES 3.1 spec:

7.3. PROGRAM OBJECTS
If there is no active program for the vertex or fragment shader
stages, the results of vertex and fragment shader execution will
respectively be undefined. However, this is not an error.

To handle this, if no VS or FS is present in the active Program/PPO,
we will no-op the draw command.

Bug: angleproject:3570
Test: KHR-GLES31.core.sepshaderobjs.StateInteraction
Change-Id: If19e9fbb1bc09fa0d490832079bb9f514eab6035
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2136386
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2020-05-05 21:10:46 +00:00
Cody Northrop 06ce17e039 Capture/Replay: Reset buffers on replay loop
This CL adds infrastructure for tracking whether resources need to be
reset when looping back to the beginning of the frame sequence.

A new function is generated on the last frame: ResetContext*Replay().
It will contain calls to gen, delete, and restore contents of
resources. This CL only supports Buffer resets.

Bug: b/152512564
Bug: angleproject:3662
Bug: angleproject:4599
Change-Id: I46672dd70dcb997967e3cc0897308144f2582e21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168121
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-05-05 21:07:06 +00:00
Nico Weber c02cdff744 Revert "Add -Wno-pointer-to-int-cast"
This reverts commit 226bba3c75.

Reason for revert: Should no longer be needed after
https://chromium-review.googlesource.com/c/angle/angle/+/2168617

Original change's description:
> Add -Wno-pointer-to-int-cast
> 
> This is the last remaining instance of the warning across Chromium. It's
> fixed upstream but I can't seem to figure out how to successfully roll
> deqp. So suppressing it here for now.
> 
> This can be removed once the deqp in Angle has
> https://github.com/KhronosGroup/VK-GL-CTS/pull/199.
> 
> Change-Id: Ie954bb2a3d86ea0de644e2a78051531b396e88a8
> Bug: chromium:1054220
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2165365
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>

TBR=geofflang@chromium.org,courtneygo@google.com,aeubanks@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:1054220, angleproject:4588
Change-Id: Ib26534cbb48df6d51af137babb95f3aeb6825043
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182891
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Nico Weber <thakis@chromium.org>
2020-05-05 20:49:23 +00:00
Ian Elliott eba008adbe Add end2end test for changing MAX_LEVEL with compressed texture
This is a follow-on to
https://chromium-review.googlesource.com/c/angle/angle/+/2180881.

This adds a comment explaining part of that solution, and an end2end
test that creates a compressed texture and then renders after
decreasing MAX_LEVEL and then again after increasing MAX_LEVEL.

Bug: b/155499736
Change-Id: I04bb0dc9ead2807f7121e4c6b95ffd3594d5dcc0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182174
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2020-05-05 20:37:53 +00:00
Cody Northrop a5829b2a78 deps: Roll VK-GL-CTS
* Moved xexml files to a library
* Added new waiver system to GN
* Added new KHR GLES 3.x tests to GN for nearest sampling edge cases
* Updated expectations for new tests
* Manual roll of glslang to bring in new dependencies.

Test: deqp
Bug: angleproject:4588
Change-Id: I7b9bcc28e9c9ba6abe4fa4873f732677ed3d276d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168617
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-05-05 19:43:42 +00:00
Tobin Ehlis 1e2109b957 Vulkan: Merge Command Buffer Helpers
Merge the outside and inside renderPass command buffer helpers to
share the single CommandBufferHelper (CBH) class.

This commom class is still used for separate outside and inside
renderPass command buffer objects in the context. That's a bit
wasteful since some functions and members are only relevant to
one type of command buffer.

However, this is a foundational change that will provide the
immediate benefit of being able to use the CBH as the interface
for passing commands to a worker thread. It also provides the
long term benefit of starting the refactor to merge the outside
and inside renderPass command buffers into a single command buffer
object that can be used by the main thread to record all commands
whether inside or outside of a renderpass.

Bug: b/154030403
Change-Id: I83c63385fe9858bc05853c550d4fb2e13226d582
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2180850
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-05-05 18:07:39 +00:00
Courtney Goeltzenleuchter e8e12881ca Roll Vulkan headers, update ANGLE to match
All the *_RANGE_SIZE enums were removed from vulkan_core.h
Fix up ANGLE references.

Bug: b/155750030
Change-Id: Idc4ee20d4a87f8cb3f46e105819af7257a7fea4b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182577
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-05-05 17:20:59 +00:00
Jamie Madill d657e1d744 Vulkan: Defer framebuffer clears.
This works by storing the deferred clears in the ImageHelper's staging
buffers. We apply the deferred clears onto the RenderPass right before
we begin to draw. Storing the clears in the ImageHelper solves problems
where we clear GL Textures in a Framebuffer and then unbind the
Textures and sample from them. Or do other commands like CopyTexImage.

Note that because the staging buffer clears only handle full-image
clears we need to immediately apply some scissored clears where before
we would use the RP. This should be a pretty rare occurrence and it is
possible to optimize that in the future.

Reduces the RenderPass count in the Manhattan "frame 10" trace from max
22 to max 20. May improve perf slightly on Android or may have effects
too small to measure. Should not regress performance.

Bug: angleproject:4517
Change-Id: I02150d531022afb903f1058f070937ec6337bd88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2142711
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-05-05 14:17:55 +00:00
angle-autoroll 3b0c01f4f7 Roll third_party/SwiftShader b798cfa374eb..c4bbd378e95b (1 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b798cfa374eb..c4bbd378e95b

git log b798cfa374eb..c4bbd378e95b --date=short --first-parent --format='%ad %ae %s'
2020-05-04 capn@google.com Remove typeinfo from GLES exported symbols

Created with:
  gclient setdep -r third_party/SwiftShader@c4bbd378e9

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 courtneygo@google.com on the revert to ensure that a human
is aware of the problem.

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/+/master/autoroll/README.md

Bug: None
Tbr: courtneygo@google.com
Change-Id: Ia2d5e9e7bf5ee8d8b98e1f80708d0fea63a7a6ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182354
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-05 09:57:13 +00:00
angle-autoroll 830ff18785 Roll third_party/vulkan-validation-layers/src 2f609275c00c..102687e26ec8 (15 commits)
2f609275c0..102687e26e

git log 2f609275c00c..102687e26ec8 --date=short --first-parent --format='%ad %ae %s'
2020-05-04 mark@lunarg.com build: Install SPIRV-Headers for validation layers build
2020-05-04 s.fricke@samsung.com tests: Add VK_EXT_sample_locations VUIDs
2020-05-04 s.fricke@samsung.com layers: Add VK_EXT_sample_locations VUIDs
2020-05-04 s.fricke@samsung.com tests: Add VUID 02243 and 02245
2020-05-04 s.fricke@samsung.com layers: Add VUID 02243 and 02245
2020-05-04 s.fricke@samsung.com layers: Label RenderPass2 VUIDs
2020-05-04 spang@google.com Don't validate initial layout on external resource acquire
2020-05-04 s.fricke@samsung.com tests: Add extra support for VUID 01549
2020-05-04 s.fricke@samsung.com layers: Add support for VUID 01549
2020-05-04 s.fricke@samsung.com tests: Add extra test for multi-plane format Compatibility
2020-05-04 tony@lunarg.com tests: Set 1.1 target api for gpu tests
2020-05-04 s.fricke@samsung.com tests: Add Query VUIDs
2020-05-04 s.fricke@samsung.com layers: Add Query VUIDs
2020-05-04 s.fricke@samsung.com tests: Add VUID 00431 and 00432
2020-05-04 s.fricke@samsung.com layers: Add VUID 00431

Created with:
  gclient setdep -r third_party/vulkan-validation-layers/src@102687e26ec8

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

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/+/master/autoroll/README.md

Bug: None
Tbr: courtneygo@google.com
Change-Id: Idb7f8f11bc02964202e33a50dfd2b062239a88cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182355
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-05 08:05:40 +00:00
Ian Elliott 2ad30d7a98 Vulkan: honor compressed texture block width/height
When a texture's base or max mipmap level is changed, ANGLE creates a
new VkTexture (and potentially copies lots of data old->staging
buffer->new).  However, ANGLE wasn't looking at the texture's format,
and for a compressed format ANGLE wasn't looking at/using the texture
format's compressed block width and height.

Bug: b/155499736
Change-Id: I11a12028aee998fa23d503c2c0db39fbb49ae6ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2180881
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-05-05 04:03:27 +00:00
Charlie Lao 41f7bcce04 Vulkan: Add missing cache flush
DynamicBuffer are not cache coherent, thus requires flush. Also adds a
few assertion to ensure implementation matches expectation.

Bug: b/155432713
Change-Id: Iaf28786168a3bb5d746b43e030f882c4b6d005ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174269
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
2020-05-04 22:45:56 +00:00
Jamie Madill ca50ad4222 Vulkan: Update VMA integration.
This will allow ANGLE to share the same source location as
Chromium.

Bug: chromium:1074162
Change-Id: I3ea9820cc1fe9cd0bfec81d734168213e5c1bb0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176067
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-05-04 22:29:56 +00:00
Alexis Hetu 73bf99b716 Fix clearing the program's validation-related cache too early
When attempting to link a new program, the program must be marked
as unlinked, but the validation-related caching should not be
cleared yet, since we can still use the previously linked program
if linking fails at this point.

Added an angle end2end test which fails without this fix and
passes with this fix.

Fixes the following WebGL 1.0.4 test with SwANGLE:
conformance/programs/program-test.html

Bug: angleproject:3557
Change-Id: Ib6722ba88803979e8f292c9b7b81f85cc0304662
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2173538
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2020-05-04 21:23:32 +00:00
Michael Spang 4271443d7e Fix VulkanExternalImageTest on SwiftShader
Check isSwiftShader() for whether to load swiftshader instead of the
default ICD.

The spec says we should query GL_DEVICE_UUID_EXT & co for this, but we
haven't implemented those queries yet.

Bug: angleproject:4092
Change-Id: Ifd74d6b6706f7b1fcbe5d82a33ecf70e631e26b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088660
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Michael Spang <spang@chromium.org>
2020-05-04 20:28:12 +00:00
Jonah Ryan-Davis 17bc7bcd68 Fix issue with missing step info in generate_stats.py
When the script has trouble parsing info for a step, it's supposed to
remove that step from the list of steps to not cause further problems
with the script (and log an error). Instead, it was being removed while
iterating the same list which caused malformed tables.

Bug: angleproject:4610
Change-Id: Iff8bfd77eae227907e78660183c79221d4d305a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2180342
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2020-05-04 19:34:01 +00:00
Michael Spang 605af42e1d Vulkan: Move ICD overrides to a common place
We also need the bundled ICDs and selection logic for certain tests that
create a vulkan instance. If we don't, the tests will use default vulkan
even if ANGLE is using swiftshader-vulkan. Tests of driver specific
handle types (e..g opaque fd) will fail in this case.

Bug: angleproject:4092
Change-Id: Iff089c9341b8b533ee8634923d0177c5dbcd5cc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088659
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-05-04 19:13:12 +00:00
Michael Spang 3c2d329cab Fix wrong date in ANGLE_external_objects_fuchsia revision history
The current timeline implies the existence of time travel.

Bug: None
Change-Id: Ic558f430912b874afc881f4841a49236f26b78dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2178945
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-05-04 17:07:48 +00:00
Cody Northrop f623bd2e51 Tests: Add program pipeline object tests
This CL adds two program pipeline object (PPO) tests based on code
inspection during review.  They are both disabled awaiting fixes.

* The first (DetachAndModifyShader) tests a bug that shaders aren't
detached immediately on call.

* The second (DifferentTextureTypes) tests PPOs with mismatched
texture types. They should not link if the programs use a texture in
non-matching ways.

Test: ProgramPipelineTest31.DetachAndModifyShader*
Test: ProgramPipelineTest31.DifferentTextureTypes*
Bug: b/151462886
Bug: b/151449648
Bug: angleproject:3570
Change-Id: Ief0937397d31c972bf5e3a8d56b02d2dbd5a604b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2146997
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-05-04 16:45:36 +00:00
Jamie Madill 2126a1071e EGLWindow: Clean up some init attribute code.
EGL_CONTEXT_OPENGL_DEBUG is only exposed as of EGL 1.5.
We can also now properly test for no_error extension strings.
Do not require backwards compatible context extensions.

Fixes parts of using EGLWindow to load native EGL drivers.

Bug: angleproject:4596
Change-Id: I4de8f492f265d29f6603ed1b35b123e362699c54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176271
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2020-05-04 15:48:47 +00:00
Courtney Goeltzenleuchter a48f3c3864 Implement setBinaryRetrievableHint
Remove the UNIMPLEMENTED() macro. Doing nothing is an acceptable
implementation at this time.

Test: Angry Birds 2
Bug: b/154930384
Change-Id: Ie46c084feb2015aa5fecdbbf2295d46e5087e3dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172711
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-05-04 15:44:06 +00:00
Jamie Madill 2071b5c3e8 Expose EGL 1.5.
This is helpful for figuring out if we can support the DEBUG
property when initializing an EGL context. It also will be
necessary down the line for Android.

Bug: angleproject:4596
Bug: b/154921118
Bug: angleproject:4606
Change-Id: I01c2cbaa21495e3620b7858f2a309c9a884033ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176277
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-05-04 14:22:26 +00:00
angle-autoroll 313b527b9e Roll third_party/SwiftShader 694e21400ee5..b798cfa374eb (9 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/694e21400ee5..b798cfa374eb

git log 694e21400ee5..b798cfa374eb --date=short --first-parent --format='%ad %ae %s'
2020-05-02 capn@google.com Enable the shaderStorageImageArrayDynamicIndexing feature
2020-05-02 capn@google.com Enable the shaderStorageBufferArrayDynamicIndexing feature
2020-05-02 capn@google.com Enable the shaderSampledImageArrayDynamicIndexing feature
2020-05-02 capn@google.com Enable the shaderUniformBufferArrayDynamicIndexing feature
2020-05-02 capn@google.com Implement dynamic descriptor array indexing
2020-05-02 capn@google.com Skip image sampling if no SIMD lanes are active
2020-05-01 capn@google.com Move the OFFSET() macro to Reactor
2020-05-01 amaiorano@google.com Regres: use Subzero backend by default
2020-04-30 bclayton@google.com Update Marl to 3c643dd4c

Created with:
  gclient setdep -r third_party/SwiftShader@b798cfa374

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 cnorthrop@google.com on the revert to ensure that a human
is aware of the problem.

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/+/master/autoroll/README.md

Bug: angleproject:4071
Tbr: cnorthrop@google.com
Change-Id: I0b3b71fae13c055a352a87fac5a2f65ddb903f6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2178983
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-04 08:01:14 +00:00
angle-autoroll 6f2ab62371 Roll third_party/vulkan-tools/src c0f34c020d9d..17019fa23604 (2 commits)
c0f34c020d..17019fa236

git log c0f34c020d9d..17019fa23604 --date=short --first-parent --format='%ad %ae %s'
2020-05-01 petr_kraus@email.cz cube: Do not set VK_LAYER_PATH in VS
2020-05-01 petr_kraus@email.cz vulkaninfo: Do not set VK_LAYER_PATH in VS

Created with:
  gclient setdep -r third_party/vulkan-tools/src@17019fa23604

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

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/+/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: Iee688a67ddc7e95144e52268b4010201e7985427
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2178982
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-04 07:56:14 +00:00
angle-autoroll 75d56e8730 Roll third_party/vulkan-validation-layers/src b179a50e9c9c..2f609275c00c (8 commits)
b179a50e9c..2f609275c0

git log b179a50e9c9c..2f609275c00c --date=short --first-parent --format='%ad %ae %s'
2020-05-01 mark@lunarg.com tests: Add test for Qfamilyindices in EXCLUSIVE sharing mode
2020-05-01 mark@lunarg.com safe_structs: Ignore pQueueFamilyIndices if NOT CONCURRENTMODE
2020-05-01 tony@lunarg.com gpu: Blacklist Nexus Player in OOBGraphicsShaders
2020-05-01 s.fricke@samsung.com tests: Add GetDeviceQueue VUIDs
2020-05-01 s.fricke@samsung.com layers: Add GetDeviceQueue VUIDs
2020-05-01 tony@lunarg.com tests: Make api checks consistent
2020-05-01 mark@lunarg.com tests: Add BP tests for non-success return code warnings
2020-05-01 mark@lunarg.com practices: Fix messages for non-success return codes

Created with:
  gclient setdep -r third_party/vulkan-validation-layers/src@2f609275c00c

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

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/+/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: If0ca4a4afce3608b22c3cf6005ae992cee1e0afc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2178984
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-04 07:53:24 +00:00
Tobin Ehlis 040e4f6fcf Vulkan: Minor command buffer refactor
Fix a couple minor nits with command buffer handling in ANGLE:
1. Make initialize() common CommandBufferHelper function
2. Reduce some common code when starting renderpass

Bug: b/154030403
Change-Id: Ie9cfcd7c053c8605b16bc2dee7f8d69418922492
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175106
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-05-01 22:20:13 +00:00
Ian Elliott 10ee839c8a Vulkan: Improve viewport and scissor for pre-rotation
Handle all 4 rotations and non-full-screen viewports & scissors.

Test: Running NBA 2K20 while flipping phone left and right (90 & 270) + watching it in Visual Studio and with Android logcat INFO messages
Bug: b/150329969
Bug: angleproject:4431
Change-Id: Icd555dbc2419aac1413452c1b306d6227784dc27
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174961
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-05-01 20:03:16 +00:00
Jamie Madill 1c3e322cdb Work around strange git cl format issue.
For some reason this line of code confused git cl format
in that it would generate different results depending on when
it was called:

"PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC
   ANGLE_EGL_StreamConsumerGLTextureExternalAttribsNV;"

I wasn't able to root cause the bug. Instead I worked around
it by changing the signatures for this file.

Bug: angleproject:4596
Change-Id: I4f18e03d27d378480b19831de51c4e85d815ca66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176157
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
2020-05-01 19:42:36 +00:00
Geoff Lang c9e0edc278 Handle 3D texture entire-mip initialization for FBO attachments
FramebufferAttachmentObject::initializeContents clears the entire mip
level for layered textures (not including cube map). This was done by
special casing 2D array and 2D multisample array textures but did not
work for 3D.

Generalize the logic to work for all layered texture types.

Handle clearing the entire 3D texture mip in Vulkan.

TEST=conformance2/misc/uninitialized-test-2.html

BUG=angleproject:4602

Change-Id: I35bb9fc3304f0553e8de68d205b0843845bf7549
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174264
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2020-05-01 16:57:38 +00:00
Cody Northrop 5b16123dfb Capture/Replay: Refactor default uniform handling for arrays
Instead of walking through uniform locations, walk through
the uniforms themselves and emit arrayed uniforms, which consume
multiple locations.

Test: MEC capture of Manhattan on Windows
Bug: angleproject:3662
Change-Id: Ifd25528721982847d4f0938f469a914a1cb908c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175994
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-05-01 16:53:58 +00:00
Tobin Ehlis 428e4415b5 Vulkan: Migrate trace events and occlusion queries
Moved GPU trace event and occlusion query commands that were on the
primary command buffer to the SecondaryCommandBuffer (SCB). Putting
these commands on outside render pass SCB and flushing those commands
to primary on-demand as needed to maintain ordering of commands.

For resetQueryPool command used by occlusion query, allow the SCB
to queue up that command for inside RenderPass SCB. This avoids
ending a renderPass prematurely and allows all outstanding reset
commands to be executed before the beginRenderPass command since
the resets must occur outside of a renderPass.

This is groundwork to simplify the hand-off of SCBs from the main
thread to a worker thread. Long-term we'd like a single SCB that
can handle both inside and outside renderPass commands at the same
time to pass to the worker thread for processing into a primary CB.

Bug: b/154030403
Bug: angleproject:4603
Change-Id: Ic1023ae27a9b14435743549ea9933edf1c4b318b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2168114
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2020-05-01 16:32:18 +00:00
Yuly Novikov 2aa99c12ca doc: fix link to pre-commit try waterfall
Following up on
https://chromium-review.googlesource.com/c/angle/angle/+/2157888

Bug: angleproject:1944
Change-Id: Idf732e5e23277ff724c543e16f424b8d5f5385e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175996
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2020-05-01 16:30:48 +00:00
Jamie Madill 942796f6b2 Capture/Replay: Use BindAttribLocation to force MEC compat.
In some cases we'd end up with attributes that are optimized
out by the GL driver. BindAttribLocation forces the programs
to use the same attribute indexing numbers so that the command
stream works mostly the same even if some attributes aren't
active in the shader.

Bug: angleproject:4598
Change-Id: I2d02dd38d29a1489706ae70bcc0b262b1c076942
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174266
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-05-01 15:58:28 +00:00
Jamie Madill e09f7a1442 Validation: Fix some function types.
These were slightly mismatching the header types. They seemed
to link fine despite producing some warnings in a tool.

Bug: angleproject:4598
Change-Id: I19cfe4d87eca409c82a7c8cf25fff6f8a4c83ca9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175057
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-05-01 14:04:07 +00:00
Jamie Madill 57d95828ea Revert "Add type for attribute locations."
This reverts commit 9349c14344
and commit d43b057435.

It's no longer needed after we bind attribute locations before link.

Original CL message:

This will allow the capture/replay tool to easily intercept and label
attribute locations for remapping.

There's some inconsistency in implementation in the GL desktop front-
end. This is a quick fix and the full implementation is left for when
we implement the full desktop GL API set.

Bug: angleproject:4598
Change-Id: Ic510159d4d1982eff41560503cabf983a1be0381
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174076
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-05-01 12:47:26 +00:00
angle-autoroll ba0a8f731d Roll third_party/glslang/src 39281fb710c3..2c53baedbb64 (2 commits)
39281fb710..2c53baedbb


Created with:
  gclient setdep -r third_party/glslang/src@2c53baedbb64

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

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/+/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I6c44cacda14efcd853867ff894fff4a07b8c3779
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175795
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-01 08:54:30 +00:00
angle-autoroll 43ce3a20bb Roll third_party/spirv-tools/src 49ca250b44c6..2e1d208ed9de (3 commits)
49ca250b44..2e1d208ed9


Created with:
  gclient setdep -r third_party/spirv-tools/src@2e1d208ed9de

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

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/+/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I661a73a9dfeca195f798100a7b301819e1c203a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175653
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-01 08:06:37 +00:00
angle-autoroll 0932511866 Roll third_party/vulkan-validation-layers/src 70eeffc7ca3d..b179a50e9c9c (8 commits)
70eeffc7ca..b179a50e9c

git log 70eeffc7ca3d..b179a50e9c9c --date=short --first-parent --format='%ad %ae %s'
2020-04-30 greg@lunarg.com Add shader usage to debug printf doc
2020-04-30 tony@lunarg.com tests: Use IsPlatform to detect Mock ICD
2020-04-30 tony@lunarg.com tests: Move skip decision from blacklist to test
2020-04-30 tony@lunarg.com tests: Add physical device properties retrieval
2020-04-30 souravp@nvidia.com tests:AccelarationStructure tests
2020-04-30 souravp@nvidia.com layers: ray tracing validation
2020-04-30 s.fricke@samsung.com tests: Add Support for RP Attachment VUIDs
2020-04-30 s.fricke@samsung.com layers: Add Support for RP Attachment VUIDs

Created with:
  gclient setdep -r third_party/vulkan-validation-layers/src@b179a50e9c9c

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

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/+/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: Id504180e232459123cce37762ec67eda2490dc9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175796
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-01 08:05:47 +00:00
angle-autoroll 9d01eba344 Roll third_party/SwiftShader 98d2cab108ce..694e21400ee5 (5 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/98d2cab108ce..694e21400ee5

git log 98d2cab108ce..694e21400ee5 --date=short --first-parent --format='%ad %ae %s'
2020-04-30 bclayton@google.com Vulkan/Debug: Don't step for column updates
2020-04-30 bclayton@google.com Vulkan/Debug: Fix build with clang-10.
2020-04-30 bclayton@google.com Device: Use std::unique_ptr instead of raw pointers
2020-04-30 amaiorano@google.com CMake: add graphviz generation scripts
2020-04-30 jrprice@google.com Fix null dereference in OFFSET macro

Created with:
  gclient setdep -r third_party/SwiftShader@694e21400e

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 cnorthrop@google.com on the revert to ensure that a human
is aware of the problem.

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/+/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I4a01136aeb38ff65ce60e444cf1be1b328f85c01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175654
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-01 08:05:17 +00:00
Charlie Lao df31624eaf Vulkan: Reduce the onBufferRead/onBufferWrite API verbosity a bit
This adds helper functions to handle common use case for onBufferRead
and onBufferWrite to reduce the API verbosity a little bit. Also fix the
transform feedback bug that we are passing in wrong access/stage flags
when it is emulated by vertex shader.

Bug: b/155122200
Change-Id: Id2549ca00cad184a90c6230dc3665aaff44dda08
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174265
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-05-01 03:30:41 +00:00
Tobin Ehlis 67da0051bb Vulkan: Fix dbg util label bug
Courtney noted this bug from a review. Should begin label on pushGroup
instead of insert label.

Bug: b/154030403
Change-Id: I5f4da5762e1ef03fe27b414740e34d2064af86b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171951
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-05-01 01:51:16 +00:00
Jamie Madill a89750ecb5 Tweaks to presubmit script.
- run the same checks on 'git cl upload' as 'git cl pre'
- show the problematic line on non-ascii presubmit check

Bug: angleproject:4601
Change-Id: I321e22fd49f7a83aa062ebae01d13476e57044e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174075
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-05-01 01:19:26 +00:00
Jiajia Qin 85ae836fd9 GL: Implement EGL_EXT_image_dma_buf_import
Add support for the EGL_EXT_image_dma_buf_import on EGL implementations
that support it natively. This extensin is used on ozone to import
native compositing buffers.

This patch also adds new tokens in EGL_EXT_image_dma_buf_import_modifiers
which are used in eglCreateImageKHR.

BUG=angleproject:4529

Change-Id: I49bff831b591fb19fcdcec1145c7a61f5d8020c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2128190
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2020-05-01 00:40:00 +00:00
Qin Jiajia a56537a3d8 Enable GL_BGRA_EXT for es backend
It's required on Chrome OS.
Based on spec EXT_texture_format_BGRA8888, this format is renderable.

Bug: angleproject:4594
Change-Id: Ibde0f0de18f4b8079a23f4b13123c6b5c8794a89
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2172638
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
2020-05-01 00:14:30 +00:00
Jamie Madill d43b057435 Capture/Replay: Fix tool after parameter change.
'index' became 'indexPacked' for attribute locations. It
also changed the type.

Bug: angleproject:4598
Change-Id: I6393e09dd1d5c1a7c5d0e2ca8a67e4f7bbb05411
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174263
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-04-30 20:29:07 +00:00
Tim Van Patten f7d447367a Detect non-ascii characters during presubmit
Clang format and non-ascii characters don't get along well, which are
typically introduced when copy/pasting spec language. This CL will
detect non-ascii characters during presubmit.

Bug: angleproject:4601
Test: git cl presubmit --upload
Change-Id: I80080fc04590ad47c9756f8f969d5c7f44d41793
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2173684
Reviewed-by: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2020-04-30 17:06:38 +00:00
Jamie Madill 9349c14344 Add type for attribute locations.
This will allow the capture/replay tool to easily intercept and label
attribute locations for remapping.

There's some inconsistency in implementation in the GL desktop front-
end. This is a quick fix and the full implementation is left for when
we implement the full desktop GL API set.

Bug: angleproject:4598
Change-Id: Ibf11bcb8669d27265ea376494a2e3124825cf3be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171933
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-04-30 17:01:18 +00:00
Cody Northrop 9cac3c5823 Capture/Replay: Disable default uniform updates for arrays
We aren't properly handling them, were already firing UNIMPLEMENTED,
but can't continue with the loop.  Will follow up with real support.

Test: MEC capture of Manhattan on Windows
Bug: angleproject:3662
Change-Id: I7b77350b39971fda702eac8b19c6f29f36f78146
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171759
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2020-04-30 16:25:28 +00:00
angle-autoroll e07cb6e9a6 Roll third_party/SwiftShader 941293d512fe..98d2cab108ce (2 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/941293d512fe..98d2cab108ce

git log 941293d512fe..98d2cab108ce --date=short --first-parent --format='%ad %ae %s'
2020-04-30 capn@google.com Fix JIT on separate thread
2020-04-29 capn@google.com Avoid implicitly destructing thread-locals

Created with:
  gclient setdep -r third_party/SwiftShader@98d2cab108

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 cnorthrop@google.com on the revert to ensure that a human
is aware of the problem.

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/+/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I9f34d4153d60788ae26d8c3a346969bf69ffa83a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174147
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-30 08:11:37 +00:00
angle-autoroll 5044933915 Roll third_party/glslang/src f03cb290ac10..39281fb710c3 (1 commits)
f03cb290ac..39281fb710


Created with:
  gclient setdep -r third_party/glslang/src@39281fb710c3

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

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/+/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: Id6a5efedddadc2e087cfb56793b46c9d54544808
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174148
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-04-30 08:09:17 +00:00