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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>