The API that required packing raw data into a buffer was un-ergonomic
for developers and difficult to implement for WebGL vendors.
Bug: angleproject:7279
Change-Id: If7c98908c285462c5775e8e2d8811883be139f64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3972376
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Rename the extension's .txt file to match the current name of the
extension.
Update function signatures to take EGLSync rather than EGLSyncKHR. The
two types are conceptually incompatible. This extension requires the
use of eglCreateSync rather than eglCreateSyncKHR because the latter
takes an array of EGLInt, but EGLAttrib is needed to express pointers
(to MTLSharedEvents) in the attribute list.
Revise ContextMtl::flush to use WaitUntilScheduled on older operating
systems not supporting MTLSharedEvent.
Bug: angleproject:7809
Change-Id: I39197616dc3e1e7ec6dc68dd83b4fde05184debf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4000941
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
This is a reland of commit 8900cbf96a
Original change's description:
> Vulkan: Implement EGL_EXT_device_drm[_render_node]
>
> These extensions are needed by Exo for zwp_linux_dmabuf v4 support.
>
> Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the
> information about the filesystem layout, needed by the EGL version.
> As ChromeOS is currently the only user, implement the extension only for
> Linux where we can reasonably assume `/dev/dri/...` file paths.
>
> We do not, however, limit us to the GBM backend - having the extension
> working in e.g. a nested X11 or Wayland environment is quite helpful.
>
> Bug: angleproject:7686
> Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7686
Change-Id: I66dfd7aa51f76cb9668dbfbd0f3e1f32123bff7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003941
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
The serial in the ShaderAndSerial is unused. This CL removed
ShaderAndSerial and replaced with ShaderModule directly.
Bug: b/257116399
Change-Id: I50d42af7818a12888309a80423531d75135e0bfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3998747
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Framebuffer invalidation sets attachment load actions
to MTLLoadActionDontCare. Restore them to MTLLoadActionLoad
after content changes, which may be caused by texSubImage uploads.
Fixes:
* SimpleStateChangeTestES3.InvalidateThenSubUploadThenBlend
* conformance2/renderbuffers/invalidate-framebuffer.html
Bug: angleproject:7397
Change-Id: I8a1b223c92b1fd082f4961161efafaf6b60f8698
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4001808
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
This reverts commit 8900cbf96a.
Reason for revert: anglebug.com/7811
Original change's description:
> Vulkan: Implement EGL_EXT_device_drm[_render_node]
>
> These extensions are needed by Exo for zwp_linux_dmabuf v4 support.
>
> Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the
> information about the filesystem layout, needed by the EGL version.
> As ChromeOS is currently the only user, implement the extension only for
> Linux where we can reasonably assume `/dev/dri/...` file paths.
>
> We do not, however, limit us to the GBM backend - having the extension
> working in e.g. a nested X11 or Wayland environment is quite helpful.
>
> Bug: angleproject:7686
> Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7686
Change-Id: I703351e93c4befbd3415b9ba04730066ee9c6afd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003857
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Migrates the ANGLE trybot location filter regular expressions to
use the newer lucicfg format. The old version was automatically
translated to the new version under the hood so this is
functionally a no-op change, but this brings the non-generated
code in line with now new filters should be added.
Bug: chromium:1380568
Change-Id: I5f0c8ece5015d2fc3bdb456fbe2499a335663d79
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4000546
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
These extensions are needed by Exo for zwp_linux_dmabuf v4 support.
Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the
information about the filesystem layout, needed by the EGL version.
As ChromeOS is currently the only user, implement the extension only for
Linux where we can reasonably assume `/dev/dri/...` file paths.
We do not, however, limit us to the GBM backend - having the extension
working in e.g. a nested X11 or Wayland environment is quite helpful.
Bug: angleproject:7686
Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Translates ANGLE_shader_pixel_local_storage shaders directly to
EXT_shader_pixel_local_storage.
Polyfills load/store operations using internal fullscreen draws.
Since the ANGLE extension needs the ability to preserve all active PLS
planes to textures, we can only support this extension when the backend
context also has access to ES 3.1 shader images.
Bug: angleproject:7279
Bug: angleproject:7771
Change-Id: Id348bde412efcc081ff29ee05ec59ad652f77569
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966075
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Workaround was added for old Intel bots, no longer applicable.
Bug: angleproject:3153
Change-Id: Ib248927fbb1be33d8bd89a0c8185761f7f1ed6fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993361
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
For platforms with a higher blob cache limit, say 32MB, compressing the
bigger pipeline cache data is better delegated to a background thread.
This change repurposes this default disabled workaround as a feature for
such platforms.
This change also enables enableCompressingPipelineCacheInThreadPool for
mesa venus driver.
Bug: b/246683126
Test: apps runs normally and cts passing
Change-Id: Ied1d9b3ee351f71abedeed04d21c700c1ad7cd18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3997592
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
To check the success of writing a new trace we have to look in the
output directory, otherwise even skipped traces will report success.
Bug: angleproject:7800
Change-Id: Icd2d79c3ebe55cd02f55635b1ccf48d19f46acea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996704
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
`retrace_restricted_traces.py get_min_reqs` finds the minimum
required GLES version and extensions and record them to a trace's
json file. TracePerfTest has also been modified to use the new
"RequiredExtensions" json field to determine if it should run a
test or not. This allows several lines to be removed from
TracePerfTest's constructor.
get_min_reqs uses a divide-and-conquer strategy to find the extensions.
This approach should be faster for traces where the number of required
extensions is less than 20.
This adds a new command to retrace_restricted_traces.py called
get_min_reqs. This runs an existing trace multiple times to find what
the minimum required GLES version is, then records that version to the
trace's json file.
Bug: angleproject:7639
Change-Id: I42530e438054efec1ad79ababebe06d221d5c695
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3884175
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Sean Risser <srisser@google.com>
Trace() lacked the code path to handle LOG_EVENT for Apple platform,
leading to the "unreachable" code path. Fix the problem by logging
the message as info-level with the OS interface, as done for Android.
Bug: angleproject:7802
Change-Id: I45811102c07c9f65c5a828f71c37bd8d0cd672e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996521
Auto-Submit: 小田喜陽彦 <akihiko.odaki@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
In order to guarantee no data is lost while using the
EXT_shader_pixel_local_storage extension, we need to restrict
applications to a small subset of commands while pixel local storage is
active. This CL implements the allow list for GL entrypoints using
wildcard matching inside the code generator, and adds custom validation
for the more specific restrictions that go into effect when PLS is
active.
Bug: angleproject:7279
Change-Id: I5dd48bd93c10e8775f32be32a4fcf17855eb2f0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932552
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
This argument is checked when running validation, so we
have to define it.
Bug: angleproject:7800
Change-Id: Ia24a8c8a82a8bdcefcf707bd9c9183ead4ee095d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990622
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
If we don't special case this, the taken code path may end up writing
"(nil)" if we have a null pointer, and compilation of the test will
fail.
Bug: angleproject:7793
Change-Id: Ic9fe9ccca0304069adbbb996666bc643e7d29278
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990758
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
With that running the a batch of tests from an external
script can bail out early when a trace fails.
Bug: angleproject:7800
Change-Id: I5041e863a8cdc212b7057b88e3f0fd68a5115470
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990621
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
It is simpler to just disable it for Qualcomm.
Bug: b/255837430
Change-Id: I884a9635ed2c6049fa4f79e10613f87f3f40f199
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989644
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Chia-I Wu <olv@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
The original change had a performance impact on Qualcomm open source
driver on some traces
trex_200 22ms -> 39ms
car_chase 80ms -> 190ms
because it is expensive to make fb fetch coherent on Qualcomm
hardware. This fixes the regression by making sure we specify the
rasterization order only when there are indeed fb fetches.
But we believe other workloads can still be hit by the issue even
after this fix. We will disable rasterization order for Qualcomm
driver in the next commit.
Bug: b/255837430
Change-Id: If240dcbfd73112a72dc1e537821636ca16290eaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989166
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Chia-I Wu <olv@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Dalton <chris@rive.app>
How we capture eglCreateImage and eglCreateImageKHR
have changed recently. Fix the code that recreate
eglCreateImageKHR calls for external texture type
in Mid Execution Capture.
Bug: angleproject:7758
Change-Id: I2bd35ec3349f1d4f1aef1bf7f76ac50d4abca53d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989645
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
This fixes a probable typo for the 8-bit unsigned integer value type.
Test: build ANGLE with Metal renderer enabled on iOS.
Bug: None
Change-Id: I2a332d996633fd81d01eece75817efb5683a5b31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989426
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
EGL_NO_DISPLAY + EGL_EXTENSIONS returns NULL before angle support
introduced in Android 10. See aosp/760681 for the reference.
Bug: b/255844932
Test: build and run angle trace on Android Pie
Change-Id: I23a8236cbd220ce34ebbcc602d6ced351fc76619
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3988422
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
To run a trace test with zink, use --use-gl=zink.
Bug: angleproject:7689
Change-Id: I70073756f903db1c224fe6175d55be4cad637aca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3899382
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>