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

15742 Коммитов

Автор SHA1 Сообщение Дата
angle-autoroll 47e008c242 Roll SwiftShader from af907708adb3 to 0ca03fb2907c (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/af907708adb3..0ca03fb2907c

2021-05-17 capn@google.com Update Android build files with license info

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

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I7d006bf382efebae6853979f6ee4daffd3d67aae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901755
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-18 13:06:33 +00:00
John Plate 7107a0f30a CL: Load OpenCL without search path modification
Make it possible to load libGLESv2 and OpenCL_ANGLE without adding
ANGLE's binary directory to the search path.

Bug: angleproject:5904
Change-Id: Ie810466b39e1101e4da5b9fd199d26683b129281
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897250
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-18 12:21:43 +00:00
John Plate c2fd338822 CL: Add front end object references to back end objects
Add front end object references to back end objects, which requires
a significant amount of refactoring, because the back end objects
have to be constructed during the construction of the front end
objects, so that the references can be passed to the back end objects,
which then can be passed to the front end member initialization.
That would have been easier with inheritance than with PImpl.

Bug: angleproject:5904
Change-Id: Ib58e6a698e76987bdd63cd8088f923424d6c622b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897249
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-18 11:46:43 +00:00
John Plate a7ae63e479 CL: Move object cast from entry points to stubs and front end
Move the OpenCl object cast from the generated entry points to the
stubs and front end, to make it possible to properly use static_cast.
This removes the limitation that the front end objects have to be
standard layout (and makes it possible to use virtual functions),
which is consistent with other front end objects.

Move the back end initialization from the stubs to the entry point
functions, which fixes a bug where the back ends were not initialized
during validation.

Move more code from the stubs to the front end, to keep the stubs
light.

Remove unused function `default_return_value` from
`generate_entry_points.py`.

Bug: angleproject:5904
Change-Id: Id999ad6c537888017bf3252c6f6e088b7d4c7984
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897245
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-18 11:08:43 +00:00
angle-autoroll b16ee28026 Roll Chromium from 9b886afc6e79 to 2b00cebcd5b5 (497 revisions)
9b886afc6e..2b00cebcd5

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-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/+doc/master/autoroll/README.md

Changed dependencies
* build: c81ea93291..d23e13a4cf
* testing: 31a90015dd..d7dc6149dd
* third_party/android_deps: 2000d0a880..c65e9394fd
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..c1e1d559b4
* third_party/depot_tools: cd152033d0..fe7d709f05
* third_party/zlib: 5ce08a7f2e..5b8d433953
* tools/clang: f6e0cbe7b7..209b045b46
Clang version changed llvmorg-13-init-9302-g897d7bce:llvmorg-13-init-10392-gd3676d4b
Details: f6e0cbe7b7..209b045b46/scripts/update.py

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I14a9983956f53069b990589281c3fc2c312caf84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2902751
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-18 10:52:03 +00:00
Alexey Knyazev 835bcb1e27 Vulkan: Support GL_EXT_texture_sRGB_RG8
For completeness, added mappings of R8_SRGB and R8G8_SRGB
to OpenGL and Metal.

Bug: angleproject:4932
Change-Id: Ic8e44e3a94c114e985f6965fcd43fbcb8071432d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880661
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-05-18 05:04:33 +00:00
angle-autoroll ac42dbf987 Roll vulkan-deps from 055e71b2a367 to 3d799e0e9b08 (25 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/055e71b2a367..3d799e0e9b08

Changed dependencies:
* glslang: 9431c53c84..202c8abae0
* spirv-tools: 1020e394cb..f0d110e305
* vulkan-loader: 039cea5353..a132dee142
* vulkan-tools: 4ee5f2a8be..f89f72e105
* vulkan-validation-layers: 0aca21bce7..1d86b3235b

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 cnorthrop@google.com,timvp@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/+doc/master/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com,timvp@google.com
Change-Id: I548c56653d348997e000ef8bc5e644948db95889
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901247
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-18 03:37:03 +00:00
Shahbaz Youssefi cf3af29acb Vulkan: Optimize respecifying an image
When recreating a texture image to change a usage flag or the base/max
levels, this change directly places the levels of the previous image as
updates to the new image.  This is instead of copying the image to a
temp one and staging that.

Bug: angleproject:4835
Change-Id: Ibc210b9ff0e8d11cba10b1cd9ab262c8f706cea5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2898417
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2021-05-18 03:06:13 +00:00
Shahbaz Youssefi 8bd3d7d55f Vulkan: Fix a bug releasing DynamicBuffer-owned buffer
There was one instance of BufferVk releasing a buffer it had allocated
from a DynamicBuffer.  This shouldn't have happened as the DynamicBuffer
owns the buffers.

Bug: angleproject:5720
Change-Id: I435512f4bb099130126bf3efb48a238fcd9f3ddb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896168
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-05-18 03:02:13 +00:00
Cody Northrop 848d8ddc34 Tests: Add Pokemon Go trace
Test: angle_perftest --gtest_filter="*pokemon_go*"
Tbr: jmadill@chromium.org,timvp@google.com
Bug: b/188091629
Bug: angleproject:5968
Change-Id: I3f48957a3063fbe5a443c235b6cabf87319b17c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895329
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-05-18 02:53:13 +00:00
Cody Northrop 4b07188098 Capture/Replay: Add const to string pointer
Traces that have shader compiles in the middle of the run are reusing
the string pointers on each go through. On some (multiple) platforms,
the string pointer is no good on the second run through. This may
only happen for large strings.

Adding a const qualifier on the pointer itself, not just the string,
avoids the issue. This has the effect of changing strings from this:

  const char *glShaderSource_string_0[] = {
  const char *glShaderSource_string_1[] = {

to this:

  const char* const glShaderSource_string_0[] = {
  const char* const glShaderSource_string_1[] = {

Test: Pokemon Go MEC
Bug: b/188091629
Bug: angleproject:5968
Change-Id: Id6a05c955adb3e1c43d2723450be6b5278d99fba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895328
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-05-18 02:43:33 +00:00
Cody Northrop 83d22b6605 Capture/Replay: Skip glGetActiveUniform
Apps are querying GL_ACTIVE_UNIFORMS and then walking through them all
numerically, calling glGetActiveUniform on each one. Before this CL,
our trace would also walk through them all, exactly as the app.

But, the active uniform count can vary on different platforms
depending on how aggressive the underlying compiler is. We have at
least one that does cross stage optimizations eliminating more active
uniforms than others.

Rather than check each call against the actual number of active
uniforms, we can just drop the calls to glGetActiveUniform. We don't
actually use any of the results from the call. For example, this is
what we generate before this CL:

  glGetActiveUniform(gShaderProgramMap[144], 31, 1024,
                     reinterpret_cast<GLsizei *>(gReadBuffer),
                     reinterpret_cast<GLint *>(gReadBuffer),
                     reinterpret_cast<GLenum *>(gReadBuffer),
                     glGetActiveUniform_name_30);

This has the downside of moving away from reflecting what the app
actually sent down. The alternatives are too intrusive though, and
we want to stay as close to speed of light as we can.

Test: Pokemon Go MEC
Bug: b/188091629
Bug: angleproject:5968
Change-Id: I1263f2256c6a964dac54d9997a1c1c2dceac711b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895327
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-05-18 02:06:13 +00:00
Cody Northrop 8ea11eb7f2 Capture/Replay: Reset programs on loop
Apps that create new programs during the run need to have them
deleted on loop. This CL handles that. It does not handle programs
that have been deleted and need to be recreated, or that have been
modified otherwise. An assert has been included to catch that for
future needs.

With this CL, entries like this will show up in ResetReplay:

  ...
  glDeleteProgram(gShaderProgramMap[120]);
  glDeleteProgram(gShaderProgramMap[121]);
  ...

Test: Pokemon Go MEC
Bug: b/188091629
Bug: angleproject:5968
Change-Id: I78c425e8fe95792fc626484641d067613dfae971
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895326
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-05-18 01:26:23 +00:00
Cody Northrop a1a418e24f Skip Texture2DTest.TextureSize on Linux+GL+TSAN
Bug: angleproject:5982
Change-Id: I228c5549d7c83d5fb3eb12a097dd4bcc20f56955
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900929
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-05-17 22:38:53 +00:00
Jamie Madill 49ad51fb9c ANGLETest: Skip test setup/teardown on major error.
If something goes wrong in ANGLETestSetup, we can skip the test-
specific setup and teardown code to prevent further errors and
crashes. This is necessary for the new test expectation skips.

Bug: angleproject:5951
Change-Id: Ica7b9fed18cec20e7d0e340c39dbbb44f1f8958e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896173
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-05-17 21:40:52 +00:00
Jonah Ryan-Davis f9ca452c12 Fix out_of_range error in System_utils_posix
This now handles the case where dladdr doesn't return any information
about the filename. This was causing issues on Fuschia.

Bug: chromium:1198567
Change-Id: I892106282fc930d4d26e3eecd720a11e05b8dcd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896171
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-05-17 20:36:12 +00:00
Shahbaz Youssefi 9c262ad0f1 Vulkan: Cleanup texture image respecify
Prior to this change, respecifying a texture image due to usage, base or
max level changes incurred a copy of every level and layer to a
temporary buffer which was then staged as an update to the new image.
This code was somewhat messy (for example with respect to depth/stencil
images), error prone (e.g. previously had bugs with compressed textures)
and disallowed further optimizations such as in anglebug.com/4835.

This change does the following:

- ImageHelper::SubresourceUpdate now takes ref-counted images, instead
  of image pointers.  This allows the same image to be staged for
  multiple updates.
- Respecifying an image is still done through a copy, but to an
  identical (temp) image instead of buffer, and each level of the image
  is staged as an update.
  * Further optimization is to stage the old image itself directly as
    updates to the new image

Bug: angleproject:4835
Change-Id: I4a3ef2d616c9ab459ff65f918b0fb6d9a2161b73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897537
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2021-05-17 20:15:32 +00:00
Shahbaz Youssefi 9e8fea5bff Vulkan: Fix desc set cache bug with xfb offset
Prior to this change, the transform feedback buffer offset was not
stored in the descriptor set key, so if the offset changed, stale
descriptor sets could be used.

Bug: angleproject:5963
Change-Id: I3dec4ab9fa82092a65e9a75bdd19c5f2cf49521c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894513
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-05-17 16:08:48 +00:00
Jamie Madill 3ff08c44ca Gold Tests: Implement flaky retries and sharding.
This CL implements two features: first off we can now split the tests
into several shards which we can run independently on different
machines.

Second it implements a simple retry mechanism that will retry a failed
test a number of times and count any first passing test as a pass.

Bug: angleproject:5875
Bug: angleproject:5966
Change-Id: Ieef4ea0e4eebdb286a32de3b1e3fef4f2eda0600
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897546
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-05-17 14:51:04 +00:00
angle-autoroll 8328743a2e Roll SwiftShader from c4d054c6ad41 to af907708adb3 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/c4d054c6ad41..af907708adb3

2021-05-14 capn@google.com Unpoison Reactor Call() arguments when MSan instrumentation is disabled
2021-05-14 capn@google.com Update Vulkan headers to version 1.2.178

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

Bug: None
Tbr: timvp@google.com
Change-Id: I4efbca5bd495ad3e56de915032e84a1790a4662e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900022
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-17 11:53:34 +00:00
angle-autoroll 48640e2e50 Roll Chromium from 3b747dab7bb3 to 9b886afc6e79 (485 revisions)
3b747dab7b..9b886afc6e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC timvp@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/+doc/master/autoroll/README.md

Changed dependencies
* build: 00d8280637..c81ea93291
* buildtools: b0912f9572..20b1d0fc13
* testing: 32fdfcc5af..31a90015dd
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a532699d20
* third_party/depot_tools: 5ab2f3314c..cd152033d0
* third_party/zlib: 2b99b37874..5ce08a7f2e
* tools/luci-go: git_revision:808e8d99fad90d180286ce6d176de6373a5e1398..git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2
* tools/luci-go: git_revision:808e8d99fad90d180286ce6d176de6373a5e1398..git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2
* tools/luci-go: git_revision:808e8d99fad90d180286ce6d176de6373a5e1398..git_revision:bbac8f199026d706b08e53ca46d1a9560ae580d2
* tools/skia_goldctl/linux: 6gOkUwwapS1GyCkAQb7-gPiKnvzdUOyDzkT4NzmnYJEC..BLHYEUi0wOYe5D_InWXtD8US7l_PMOrKHLuKt16L46QC
* tools/skia_goldctl/mac: 43qoaMWgldhQiaXzcCNggSSWDmZQTNrK0cGEt5yysgsC..qofjOtuSqFXnMKjZ9c7c-oVh9HeWjGW4h4F3y-vrfEkC
* tools/skia_goldctl/win: oodEEBUIHfKw18_-31PAsu3SFiLqvtsFDgbn6ohK5R4C..P9wyIW02W7EqtyT9cZJj6g0HOcjRHAhN5KECwmhgRjUC
No update to Clang.

Bug: None
Tbr: timvp@google.com
Change-Id: Iedbaff423759a2752c3c341a3abb6b08424515e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2899842
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-17 08:28:54 +00:00
Gert Wollny 1af7caa4f9 Capture/Replay: Add suffix to label for test file search
When tests are run with a wildcard filter on the backend, e.g.
"TEST/ES2_Vulkan*" the same tests from different backends may
end up in the same trace file directory, e.g. TEST_ES2_Vulkan
and TEST_ES2_Vulkan_SwiftShader. So far, when searching for the
ES2_Vulkan trace files the check for trace files would them also
pick up all the _SwiftShader files, and the skript would assume
that the file count is wrong and skip the replay.

By adding "_capture" the start of the commonly used suffix, this
is avoided and replays are no longer skipped because mis-counting
capture files.

Bug: angleproject:5972
Change-Id: I7af54aaf51ee7070333ffe81974d866bd89dbd6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897236
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-17 07:38:13 +00:00
Gert Wollny 022401f9dd Capture/Replay: Print context diff also with frame gaps
The capture/replay context differences may not be in each frame,
so if the test signals that comparisons fail, don't bail if the
context JSON files are not found for one frame, but continue the
search until all possibly captured frames have been checked

Bug: angleproject:5953
Change-Id: I8af34cc0fe4de5615fc43ef6c45915055546f507
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2891772
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-17 07:07:43 +00:00
Gert Wollny 31cd0e986d Capture/Replay: track robustResourceInit
Bug: angleproject:5938
Change-Id: I7c9ab9bebd1ec2dc572a071844a860f99d0befe6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882580
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-05-17 04:47:23 +00:00
Charlie Lao 3d082a102d Vulkan: Add webgl conformance/texture-size test
This converts
webgl_conformance_vulkan_passthrough_tests/texture-size.html to an
end2end test for ease of debugging.

Bug: chromium:1197905
Change-Id: If77dc30e81450b277c6a02d66c076b088d069498
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821944
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-05-15 01:48:38 +00:00
Ian Elliott ce7bc0c80d Vulkan: Fix AGI hierarchy
The GLES hierarchy of debug-util markers given to AGI was wrong for
several games.  The problem is that glDrawBuffer* was treated as a
draw call, instead of as the state-setting call that it is.

Bug: b/184888395
Change-Id: I6911bd3aae42b5f29b3f40466a615c614651ca8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2898472
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2021-05-15 01:03:08 +00:00
Charlie Lao 65946f88b0 Skip Texture2DArrayIntegerTestES3.NonZeroBaseLevel on OSX+OpenGL
This test is failing just because another test is been added. The theory
is that there is a OpenGL driver bug here.

Bug: angleproject:5959
Change-Id: I8405a512de28b10528c14be79f76815877a5771f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2893499
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-05-15 00:54:28 +00:00
Shahbaz Youssefi 7618138407 Vulkan: Disable BufferVk suballocation
There are still unresolved bugs.

Bug: angleproject:5719
Bug: chromium:1209197
Change-Id: I6a971c421d0ae266404d1ecbf8741a9747a4e809
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897545
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-05-15 00:01:18 +00:00
angle-autoroll bf4aa6c468 Roll VK-GL-CTS from 1c4a387382ea to 535dfe49fc49 (1 revision)
1c4a387382..535dfe49fc

2021-05-14 piotr.byszewski@mobica.com Portability: handle vertex input stride

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 timvp@google.com,angle-bots+autoroll-info@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/+doc/master/autoroll/README.md

Bug: None
Tbr: timvp@google.com,angle-bots+autoroll-info@google.com
Change-Id: Iaaaee35aa8c61e25c80ceb2c373e2333defab426
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896770
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-14 23:01:53 +00:00
Geoff Lang 5a0925def4 GL: Recreate textures on eglReleaseTexImage.
Texture data should be reset on eglReleaseTexImage but ANGLE sometimes
skipped this because it generated GL errors on Mac. Instead, delete
and recreate the native texture to make sure ANGLE doesn't hold any
references.

Bug: chromium:1181068
Change-Id: I1252b0900361852f66f73b8c9d20a29c53897ee4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897544
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2021-05-14 22:52:52 +00:00
Mohan Maiya 35f5911882 Bug fix in glTexParameter and glGetTexParameter validation
It is invalid to pass in GL_TEXTURE_BUFFER to either
glTexParameter or glGetTexParameter. Return GL_INVALID_ENUM
for such usecases.

Bug: angleproject:3573
Bug: angleproject:3577
Test: dEQP.KHR_GLES31/core_texture_border_clamp_texparameteri_errors
Change-Id: Ia0573c24d38c6be9d1b79a83a05e2ffbc62c8918
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892023
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-05-14 22:38:23 +00:00
Charlie Lao 07ae297067 Fix IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface on OSX+OpenGL
For BGRX, the alpha value is undefined. It wont write back to client
memory, so don't compare alpha to expected result.

Bug: angleproject:5958
Change-Id: I289f14f7c6a6ee63e74351d6abdd44fff8bf106b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2891926
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
2021-05-14 21:49:02 +00:00
Jamie Madill dd686e48f0 Test Runner: Add test expectations parser.
Moves the test expectations from dEQP into the test runner.
Also updates angle_end2end_tests to take an expectations file.
Includes some very simple angle_end2end_tests expectations.
Note that the expectations in the file are less expressive than the
skips we use in the cpp.

Bug: angleproject:5951
Change-Id: Ib92235575bc3ea5f3a977ce416b0e78fe806e39b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892274
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2021-05-14 20:45:51 +00:00
Jonah Ryan-Davis c8c414b084 Reland Change to module directory when loading swiftshader ICD.
This is a reland of commit 3b10dda6a4.

Extra changes:
Be explicit about calling GetModuleHandleA
Do not use the general GetModuleHandle, which may use wide strings

GetModuleDirectory should return the full path, not relative.
ANGLE wasn't able to locate the vulkan ICD file because it was
searching down an invalid relative path. This can be fixed by
ensuring the module directory is always the full path.
on some platforms.

Original change's description:
> When loading vulkan, we can be running from any directory. We need
> to change to the module directory to ensure the swiftshader ICD is
> loaded properly. For example, in some Chrome releases, libGLESv2.dll
> and libvk_swiftshader.dll are in a subdirectory relative to chrome.exe
>
> Bug: chromium:1198567
> Change-Id: I9e68927e512b239728fb2903d1a04702508a4948
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2873452
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

Bug: chromium:1198567
Bug: angleproject:5949
Change-Id: Ib34067002c788f00b5ae2fa11d1e465f57bd7be8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2893503
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-05-14 20:23:09 +00:00
Sergey Ulanov cbbaf76b75 [Vulkan] Add DisplayVkNull
Currently all DisplayVk implementations depend on VK_KHR_swapchain and
VK_KHR_surface extensions. When running Chromium on Fuchsia these
extensions are never used (content is shown on the screen using
ImagePipe API without dependency on swapchain). ANGLE still depended
on these extensions for DisplayVkFuchsia.
This CL adds DisplayVkNull, which allows to run ANGLE without dependency
on swapchain. It's usable only offscreen and cannot present content on
a surface.

Bug: chromium:1203879
Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-05-14 20:05:19 +00:00
angle-autoroll f871545d29 Roll VK-GL-CTS from 6498f4042d9f to 1c4a387382ea (19 revisions)
6498f4042d..1c4a387382

2021-05-14 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master
2021-05-13 juha.heiskanen@siru.fi Add test for PBO bounds
2021-05-13 pdaniell@nvidia.com Fix Windows MSVC build regression from GitHub!261
2021-05-13 piotr.byszewski@mobica.com Portability: use triangle strips in amber tests
2021-05-13 piotr.byszewski@mobica.com Portability: handle mutableComparisonSamplers
2021-05-13 srisser@google.com Require geometry shaders for adjacency topologies
2021-05-13 jari.komppa@siru.fi Static code analysis fixes
2021-05-13 toni.salmivalli@siru.fi New SSBO corner case test
2021-05-13 siglesias@igalia.com Add more spir-v tests with empty structs
2021-05-13 alexander.galazin@arm.com Fix GL compatbility mustpass file names
2021-05-13 ari.suonpaa@siru.fi Add dynamic indexing test using gl_VertexID
2021-05-13 tapani.palli@intel.com Fix to GL 4.5 geometry shading provoking vertex tests
2021-05-13 alexander.galazin@arm.com Support GL 4.5 in the Linkage Tests
2021-05-13 alexander.galazin@arm.com Support GL 4.5 in the Arrays of Arrays Tests
2021-05-13 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests
2021-05-13 ilkka.saarelainen@siru.fi Update Amber
2021-05-13 lars-ivar.simonsen@arm.com Fix use of binary semaphore in signaled state
2021-05-13 slawomir.cygan@intel.com Fix condition for checking support of XFB streams other than 0
2021-05-13 siglesias@igalia.com Make sure minImportedHostPointerAlignment in a power of 2

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 timvp@google.com,angle-bots+autoroll-info@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/+doc/master/autoroll/README.md

Bug: None
Tbr: timvp@google.com,angle-bots+autoroll-info@google.com
Change-Id: I12e13ac730ce2ac1989feeb382a70e99d5a2f447
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895922
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-05-14 19:58:19 +00:00
Cody Northrop ec362f9b57 Tests: Update capture_replay_expectations
Bug: angleproject:5974
Change-Id: If8f210f569bdd1bf4e81c74cac894049b8c9cb7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896905
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-05-14 19:37:26 +00:00
Charlie Lao 09dad082c3 Vulkan: Add feature flag to flush at framebuffer boundary
Testing shows most app traces seeing performance improved on ARM GPU
when we flush at FBO boundary instead of one submit per frame. This
likely due to more frequent submission means less chance of GPU
starvation. This also helps ANGLE to detect GPU finish at finer grain
since the queue serial is per submission. Finer grain detection of
object completion means memory gets recycled quicker and mapBufferRange
able to hit fast code path more often. With this CL, manhattan 3.1
offscreen score also score improves 7%. This may also helps onscreen
performance if frame time is on the edge of 16ms by submit FBO rendering
earlier instead of been blocked by vkAcquireNextImage.

Bug: b/187993625
Bug: angleproject:5295
Change-Id: I2946a7159231d36019ace89805a69ac8e906ce94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2888709
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
2021-05-14 18:50:56 +00:00
Lubosz Sarnecki 6f35e36686 TracePerfTests: Don't call framebuffer functions on GLES1.
Skip unbinding the framebuffer on GLES1, where the function does not
exist. This caused a crash when recording screenshots on native GLES1
implementations on Android.

Bug: angleproject:5961
Change-Id: I7a35474154a4a8d56b36df02629944de7660dcd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2891567
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-14 14:44:46 +00:00
John Plate 83689e32ee CL: Add symbol version map to libOpenCL
Bug: angleproject:5904
Change-Id: I4a5859ea172c9d17cfd84ef219ddd9a71fb3b927
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894428
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-14 10:00:06 +00:00
angle-autoroll c8c70ef8e2 Roll Chromium from b0687cb1f1ec to 3b747dab7bb3 (328 revisions)
b0687cb1f1..3b747dab7b

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC timvp@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/+doc/master/autoroll/README.md

Changed dependencies
* build: 5d8fd334d9..00d8280637
* buildtools: 9b15350d89..b0912f9572
* testing: fe582fda76..32fdfcc5af
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..affd272f9e
* third_party/depot_tools: f5c054ce53..5ab2f3314c
* third_party/zlib: e3c17da190..2b99b37874
* tools/clang: 06d525cc6f..f6e0cbe7b7
* tools/luci-go: git_revision:d7393d163ecb11c44626b3b221f86efdd2861565..git_revision:808e8d99fad90d180286ce6d176de6373a5e1398
* tools/luci-go: git_revision:d7393d163ecb11c44626b3b221f86efdd2861565..git_revision:808e8d99fad90d180286ce6d176de6373a5e1398
* tools/luci-go: git_revision:d7393d163ecb11c44626b3b221f86efdd2861565..git_revision:808e8d99fad90d180286ce6d176de6373a5e1398
* tools/mb: c4921c7a5b..971099ba3c
* tools/skia_goldctl/linux: JUdOUf3QO1PSVW0LijuPE20E8IiVUgPjyUkhri9CrosC..6gOkUwwapS1GyCkAQb7-gPiKnvzdUOyDzkT4NzmnYJEC
* tools/skia_goldctl/mac: -HuOY2pAKikKFvM5odfgh_GYbDKBGhCeKfGoDG4W46sC..43qoaMWgldhQiaXzcCNggSSWDmZQTNrK0cGEt5yysgsC
* tools/skia_goldctl/win: wL8AoIO8IDH7dKheA0iZneF9sE3DamLh6bBzj6I782oC..oodEEBUIHfKw18_-31PAsu3SFiLqvtsFDgbn6ohK5R4C
Clang version changed llvmorg-13-init-9881-g5dad3d1b:llvmorg-13-init-9302-g897d7bce
Details: 06d525cc6f..f6e0cbe7b7/scripts/update.py

Bug: None
Tbr: timvp@google.com
Change-Id: Ia0b690d5c4609bfe8cfa097ed2d8e629fe5abd3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895908
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-14 09:28:55 +00:00
John Plate 48b835cf28 CL: Implement context for front end and passthrough
Bug: angleproject:5904
Change-Id: I23b764bba87be3a51a1b5b44b13968fc572efde9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2883773
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: John Plate <jplate@google.com>
2021-05-14 09:19:05 +00:00
Shahbaz Youssefi 39ee36406c Translator: Fix struct/uniform separation w.r.t to arrays
When a uniform of struct type was redeclared, the arrayness information
was not transferred.

Bug: chromium:1204861
Change-Id: Ic3f461a4aa349a73bc48568ee14b5418f0556238
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889599
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-05-13 23:19:55 +00:00
Ian Elliott b0c217badb Disable GL_EXT_shader_framebuffer_fetch_non_coherent on Arm/QCOM
Thie is a shorter-term work-around to games not checking extensions
properly.

Bug: b/177320565
Bug: b/186643966
Bug: b/186783762
Change-Id: Ic348396db1d081925cd9747cdd9406f5929313b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894407
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2021-05-13 21:32:35 +00:00
Jamie Madill e601181d50 Allow specifying GPU config on expectation check.
When we load the expectations we can now specify the config at a later
point. This will make it easier to run test suites that use multiple
APIs, like angle_end2end_tests. We can instead specify the config when
we check the expectation.

Bug: angleproject:5951
Change-Id: I9607db093e4a459550a7cd6864b17adfa55e17f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892273
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-05-13 21:27:25 +00:00
Shahbaz Youssefi c5e344b1e6 Translator: Fix local var inits vs struct/uniform separation
The declarations outside the global scope were being skipped in this
transformation, but if the initializer of a declaration referenced a
uniform struct that's being replaced, it should have been visited too.

Bug: chromium:1204861
Change-Id: Ie2a743126c785eb7d6e3542ba80faa4defc3509f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889598
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-05-13 19:59:34 +00:00
Gert Wollny ee2f330203 Capture/Replay: recreate the EGL window if contexts don't match
In addition enable affected tests.

Bug: angleproject:5955
Change-Id: I4fb72e38a633daa4565d3c0ae7cddb6ace7226f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2891775
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-13 19:36:14 +00:00
angle-autoroll 2303f19cb0 Roll Chromium from 3fb708290557 to b0687cb1f1ec (639 revisions)
3fb7082905..b0687cb1f1

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC timvp@google.com,jmadill@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/+doc/master/autoroll/README.md

Changed dependencies
* build: 129bd6c0c0..5d8fd334d9
* buildtools: e72cd4587a..9b15350d89
* testing: 43828a290e..fe582fda76
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..52e67e75f6
* third_party/depot_tools: 6e5b0a5c45..f5c054ce53
* third_party/zlib: c3edbeed8a..e3c17da190
* tools/clang: 53a9334ffe..06d525cc6f
* tools/luci-go: git_revision:37e5f238829f911f85b62d66670d2fbd88354ef1..git_revision:d7393d163ecb11c44626b3b221f86efdd2861565
* tools/luci-go: git_revision:37e5f238829f911f85b62d66670d2fbd88354ef1..git_revision:d7393d163ecb11c44626b3b221f86efdd2861565
* tools/luci-go: git_revision:37e5f238829f911f85b62d66670d2fbd88354ef1..git_revision:d7393d163ecb11c44626b3b221f86efdd2861565
* tools/mb: ac77520e0e..c4921c7a5b
* tools/skia_goldctl/linux: EWfIod1MP71b48GlHnS5Rv9JpBzeTRQ6viIPDfFUSFEC..JUdOUf3QO1PSVW0LijuPE20E8IiVUgPjyUkhri9CrosC
* tools/skia_goldctl/mac: qwctaMZfXlU0u7OsbxWgOY_sBjsUYhlqwjJRbAXX3oYC..-HuOY2pAKikKFvM5odfgh_GYbDKBGhCeKfGoDG4W46sC
* tools/skia_goldctl/win: O2WsBEJgyjTsib6LvzoNqqXwfSylJFfTRxEKYr-IsocC..wL8AoIO8IDH7dKheA0iZneF9sE3DamLh6bBzj6I782oC
Clang version changed llvmorg-13-init-9302-g897d7bce:llvmorg-13-init-9881-g5dad3d1b
Details: 53a9334ffe..06d525cc6f/scripts/update.py

Bug: None
Tbr: timvp@google.com,jmadill@google.com
Change-Id: Iabcdb225075048bb3481d8cf516da157c330e2b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2893193
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-13 18:19:51 +00:00
Geoff Lang bccb0d56aa Add messages for framebuffer completeness errors.
This also creates a common code path for all framebuffer
completeness errors (FramebufferStatus::Incomplete) which
helps for adding a debug breakpoint.

Bug: angleproject:5949
Change-Id: Ib102dbf86e020777e56c6dc6b78dda8ebdba2127
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2888110
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-05-13 17:40:51 +00:00
Shahbaz Youssefi e354ff1a51 Vulkan: Allow DynamicBuffer suballocation in BufferVk
When allocations are made from DynamicBuffer, they suballocate from a
possibly larger BufferHelper.  In BufferVk, the offset of the
suballocation was discarded, which limited the use of DynamicBuffer to a
pool of small buffers.

This change applies any such offset that may arise from suballocations
everywhere, and makes BufferVk use a larger buffer size when the
GL_DYNAMIC_* buffer usage hints are provided.

Bug: angleproject:5719
Change-Id: I3df3317f7acff1b1b06a5e3e2bb707616a7d0512
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2738650
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-05-13 17:15:41 +00:00