|
76f377c5
|
2022-06-17T16:05:16
|
|
Vulkan: Break renderpass when switch from query to non-query
getQueryResult will wait for query result to be available, which means a
potential CPU bubble if the result is not yet available. On tiler GPUs
it will at least wait for renderpass to complete. Usually query enabled
draws are very tiny (usually just draw a point to see if it is occluded
or not), and query disabled draws are expensive. Some apps do issue a
glFlush when switch from query draw to non-query draw, but app like
dead_by_daylight does not issue such flush. In order to reduce the
bubble, this CL ends renderpass and issue a flush when we switch from
query enabled draws to non-query enabled draw so that the result will be
available much earlier, this reduce the CPU bubble. This result in
dead_by_daylight frame time improves from 5.45ms to 3.5ms (35%
improvement).
Bug: b/250706693
Change-Id: Ia3a32a9fb336e6f256809b3cad83f61a45415fb1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931739
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b3b855d2
|
2022-10-09T21:39:16
|
|
Vulkan: Features for two exts
- VK_EXT_graphics_pipeline_library
- VK_EXT_pipeline_protected_access
Bug: angleproject:7369
Bug: angleproject:7714
Change-Id: I42b5b5a2758b32625dc12352d521cfa1dff1aa90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3939919
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5b3781ec
|
2022-10-03T16:09:35
|
|
Remove namespacing from all ANGLE loaders.
This will make it easier to work with pure C files.
Bug: angleproject:7731
Change-Id: I2fe9af486af5f339d973c9149f082eb1f2efa8c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3925426
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
836cc5e2
|
2022-09-09T22:06:22
|
|
Vulkan: add etc to bc compute transcoding.
use compute shader to transcode etc format to bc format.
Bug: b/243398683
Change-Id: Idbd0820a2df8d92fe690055dae2933bc559e9bfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888501
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
a81679bc
|
2022-09-26T23:56:34
|
|
Support EXT_shader_framebuffer_fetch on GLES
All the frontend functionality for EXT_shader_framebuffer_fetch is
already present, but only supported on Vulkan. This change wires it up
for the native GLES backend as well.
Bug: angleproject:7279
Bug: angleproject:7703
Change-Id: Ie1fce79e08a78662c8af65d33f3d8417c96cf58e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920577
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2aa52da7
|
2022-09-23T13:15:44
|
|
Metal: Upload IOSurface data with staging buffers on AMD
Crashes have been seen in the AMD driver when locking IOSurfaces. Avoid
this by always using a staging buffer and doing a GPU-GPU copy for
uploading client side data to IOSurfaces.
Bug: angleproject:7573
Change-Id: I4d981a24554a755a7248199699b486d98cbad83d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915180
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
|
|
d2a58f00
|
2022-09-08T14:19:21
|
|
EGL: Implement eglCopyMetalSharedEventANGLE
Add eglCopyMetalSharedEventANGLE function to the
ANGLE_metal_shared_event_sync extension. This brings the extension on
par with the EGL_ANDROID_native_fence_sync extension.
eglCopyMetalSharedEventANGLE allows for copying the Metal event object
from EGLSync objects implemented by the ANGLE Metal renderer. This
function follows Objective-C convention for "copy" methods and increases
the retain count of the Metal event object. The EGL API user is thus
responsible for ensuring to release the returned object to avoid memory
leaks.
Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.*
Bug: angleproject:7561
Change-Id: I8c35b559014b85cb8c6a0e76ac2ab7891eed5da0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881423
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
2debd07d
|
2022-09-21T11:40:18
|
|
Automatically query status of features for tests
Now tests can skip based on what features exist, compared to what
features are explicitly asked for. For example, a test suite may
override-enable a (normally disabled) feature that depends on a hardware
capability. With this change, it can be skipped if said hardware
capability doesn't exist.
As a bonus, tests now correctly skip if the feature is overriden through
an environment variable. This change also cleans up
VulkanPerformanceCounterTest tests which did the same for a number of
specific features.
Bug: b/243398683
Change-Id: I84f026e3394eab56fd123e02bee72720c7ed94c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909789
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
ba3b4515
|
2022-09-15T01:06:51
|
|
Vulkan: Implement GL_ANGLE_logic_op
Enabled if the logicOp device feature is available. According to
gpuinfo, it's pretty much universal except for ARM.
Bug: angleproject:7654
Change-Id: I4808b519fdd6273b2f8c1bb17f59517eb65bfe8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898317
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
de73f7cd
|
2022-09-14T22:27:28
|
|
Introduce GL_ANGLE_logic_op
This extension exposes the desktop GL glLogicOp function as a GLES
extension. This is supported by Vulkan through the logicOp feature as
well.
The goal is to directly use this extension in GLES1 emulation where the
backend supports it, avoiding a more costly fallback.
Bug: angleproject:3862
Change-Id: I7ed436cdf401437157ca9724168849b4c819b91b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898310
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a8a04ce1
|
2022-08-16T17:59:20
|
|
Vulkan: Add supportsPresentation feature
Some platforms do not support presentation through any Vulkan queue. In
this case we should not transition the color image layout to present.
Bug: angleproject:7217
Change-Id: I71cad0e52bc1fdb531de5a34e917a1862a4cf070
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Suggested-by: Sungyong Choi <sywow.choi@samsung.com>
Suggested-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3853598
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
04f46f39
|
2022-09-12T10:15:16
|
|
Reland "Generate stubs for ANGLE_shader_pixel_local_storage"
This is a reland of commit 8208e8a234d05b413d79e7a93b6a428adea41b33
In Take 2 we omit the GLenum groups PixelLocalLoadOpANGLE and
PixelLocalInternalFormatANGLE. We can add these back once the extension
is published and we can update Khronos's gl.xml, or else once we figure
out how to make this work without updating the Khronos gl.xml.
Original change's description:
> Generate stubs for ANGLE_shader_pixel_local_storage
>
> Bug: angleproject:7279
> Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
> Commit-Queue: Chris Dalton <chris@rive.app>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7279
Change-Id: I02f42c1cfc685ed95164744108e0c185d3a7fefb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900491
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
8c45e3c4
|
2022-09-15T01:07:47
|
|
Revert "Generate stubs for ANGLE_shader_pixel_local_storage"
This reverts commit 8208e8a234d05b413d79e7a93b6a428adea41b33.
Reason for revert: Compile failures
Original change's description:
> Generate stubs for ANGLE_shader_pixel_local_storage
>
> Bug: angleproject:7279
> Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
> Commit-Queue: Chris Dalton <chris@rive.app>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7279
Change-Id: Ic9a232f9d722b42e615de3827ce118616f3acc71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3897425
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Chris Dalton <chris@rive.app>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Chris Dalton <chris@rive.app>
|
|
8208e8a2
|
2022-09-12T10:15:16
|
|
Generate stubs for ANGLE_shader_pixel_local_storage
Bug: angleproject:7279
Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1d04539f
|
2022-09-06T15:20:32
|
|
Fix xfb tests rendering points
Some xfb tests render points and verify a coordinate away from the
points is unchanged as a means to break the render pass. Due to lack of
output to gl_PointSize, these tests are flaky on SwiftShader.
Bug: angleproject:7625
Change-Id: I7347516bb755ace87d57df3467c59055f28f1d69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877783
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
662226a3
|
2022-09-06T14:12:26
|
|
Metal: Preemptively Start Provoking Vertex CmdBuffer on AMD
There seems to be a bug in older AMD drivers and this appears
to work around it
Bug: angleproject:7635
Change-Id: I1b22e4b7d5d1ce0d405e422d08d33eeeb731050a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877666
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
9aeb6311
|
2022-08-29T10:50:01
|
|
Revert "Extra buffer logging/checking on Android Cuttlefish"
This reverts commit 5cb05e0482ed1a2c4048f76c1a7fd444849410d8.
The root cause was found, and this extra logging/checking is no longer
needed.
Bug: b/236098131
Bug: b/245339714
Change-Id: Ibefbeec30be974788789650f2dc86696a6eba11a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3862408
Auto-Submit: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
|
|
d0fad24c
|
2022-08-30T23:24:06
|
|
Add noncoherent PLS tests
Coherent pixel local storage is so widely supported now that we have a
testing gap on the noncoherent version. This change adds backend
features to disable the extensions we use for fragment synchronization
and tests that disable them.
Bug: angleproject:7279
Change-Id: If71a1a1016922cb9e3b68024dd2616483c700395
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866163
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4b33633a
|
2022-08-26T16:16:50
|
|
Capture/Replay: Delete binary data in FinishReplay via callback
Delete callback fixes b/179188489 as delete[] will get called from the
same module where allocation happens. When decompress/delete callbacks
not provided, new[] and delete[] are called from the fixture.
AFAICT, gBinaryData == nullptr every time, even with a single test and
--gtest_repeat=N, so we never delete the uncompressed data. When
running multiple tests locally, I see RES usage grow significantly
on Linux which this CL fixes. I don't think this matters for bot runs as
we run tests one by one there.
Bug: b/179188489
Change-Id: Iee3bccb9d6d72c315c4358b70ec9c3c0ac963258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858185
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
cd0f642e
|
2022-08-29T17:25:33
|
|
Fix loading end2end test expectations on iOS
Need to be packed and found in the application bundle.
Bug: angleproject:5417
Change-Id: Iaf84ced0de6674a807aa747e71dbbf2715bbd6fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3860831
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5bcfad04
|
2022-08-25T10:32:57
|
|
Vulkan: Add a handful of features
This commit bunches a couple of features in one to reduce merge
conflicts.
Bug: angleproject:4836
Bug: angleproject:5845
Bug: angleproject:7162
Bug: angleproject:7319
Bug: angleproject:7604
Change-Id: Icbb33f5b6d61822c5f4a61f08078bb2de4e7d2fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856646
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c394adfc
|
2022-08-11T10:43:14
|
|
ANGLE: reorder program and shader creation
When MEC re-creates the program creation, it first creates the
program, and then the shader stages, and since the Handles are
handed out from the same handle allocator, the numbers are
different if the creation order is different. Since the logic
to capture a shader program is more involved to be changed,
re-arrange the calls in CompileProgramInternal.
Bug: angleproject:7564
Change-Id: I28617cc67e7ca59d8ce181785cc159fe876655b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826257
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
aa2a558e
|
2022-08-23T09:47:02
|
|
Vulkan: Add support for setting timestamp surface attribute
On Android the EGL wrapper handles most of the functionality required
by EGL_ANDROID_get_frame_timestamps. However if for some reason the
swapchain is recreated, the timestamp state would be lost resulting in
stuttering.
Introduce EGL_ANGLE_timestamp_surface_attribute extension that adds
support for toggling the EGL_TIMESTAMPS_ANDROID attribute of a surface.
Cache this state and recreate the swapchain accordingly.
Bug: angleproject:7489
Test: EGLSurfaceTest.TimestampSurfaceAttribute*
Test: dEQP-EGL.functional.get_frame_timestamps*
Change-Id: I3660f7137c006d904164d243a682a4ff520eabd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753396
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
952d6e8f
|
2022-08-21T21:51:03
|
|
Vulkan: Workaround ARM driver bug with dynamic vertex strides
According to ARM, vkCmdBindVertexBuffers2EXT is broken when more than
one attribute binding is involved. In this change, the vertex strides
dynamic state is avoided altogether on ARM.
Bug: fuchsia:107106
Change-Id: Ie41fc07037083214d2dc99e4ed062485384911c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844640
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
caf2b427
|
2022-07-01T18:17:30
|
|
Vulkan: Add feature to use PASS_THROUGH for EGL_NONE color spaces
This is a temporary solution to fix media tests until ANGLE
also has the ability to query the "preferred color space" from
Surfaces.
Bug: b/235995022
Test: Launch Cuttlefish with this change and the feature enabled
with aosp/2167231
Test: cts -m CtsMediaCodecTestCases
-t android.media.codec.cts.EncodeDecodeTest
Test: cts -m CtsMediaCodecTestCases
-t android.media.codec.cts.DecodeEditEncodeTest
Change-Id: I17d1a2c1701cd1707b34f5bf2f222e9ad57c7a61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3770291
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
|
|
4330a827
|
2022-08-19T02:59:26
|
|
Reland "Vulkan: Use VK_EXT_primitive_topology_list_restart"
This reverts commit 29d18b303189bf31b3af3a85c3df6013114eebc8.
Reason for revert: Fixed VVL suppressions not working
Original change's description:
> Revert "Vulkan: Use VK_EXT_primitive_topology_list_restart"
>
> This reverts commit e79c9cd63053b6cb7c33235f3a0a0310255df073.
>
> Reason for revert: Causing timeouts on some headless tests: anglebug.com/7579
>
> Original change's description:
> > Vulkan: Use VK_EXT_primitive_topology_list_restart
> >
> > From ANGLE's point of view, there is nothing to do with this extension
> > other than enable a feature that silences a validation error.
> >
> > Bug: angleproject:3832
> > Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: mohan maiya <m.maiya@samsung.com>
>
> Bug: angleproject:3832
> Change-Id: Ifec7c9eaea1d3a949f15e0b6d868742f53cf8377
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3838391
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:3832
Change-Id: Ia79b1f3b716f0df1991f605704135b4af48fb639
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3841366
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
29d18b30
|
2022-08-18T18:18:04
|
|
Revert "Vulkan: Use VK_EXT_primitive_topology_list_restart"
This reverts commit e79c9cd63053b6cb7c33235f3a0a0310255df073.
Reason for revert: Causing timeouts on some headless tests: anglebug.com/7579
Original change's description:
> Vulkan: Use VK_EXT_primitive_topology_list_restart
>
> From ANGLE's point of view, there is nothing to do with this extension
> other than enable a feature that silences a validation error.
>
> Bug: angleproject:3832
> Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Bug: angleproject:3832
Change-Id: Ifec7c9eaea1d3a949f15e0b6d868742f53cf8377
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3838391
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
955adb77
|
2022-08-12T10:14:48
|
|
Cache compiled shader
By storing the compiled shader in the blob cache, the time to
recompile the same shader is reduced.
Based on work by <hckim.kim@samsung.com>
Bug: angleproject:7036
Change-Id: I884ae40e715c49a9ccd12903012e8327811e3557
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808235
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e79c9cd6
|
2022-03-30T23:06:54
|
|
Vulkan: Use VK_EXT_primitive_topology_list_restart
From ANGLE's point of view, there is nothing to do with this extension
other than enable a feature that silences a validation error.
Bug: angleproject:3832
Change-Id: I094343d09c322e2848a65a5bc775d0f21388fb46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3562380
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
|
|
4a636cdd
|
2022-07-20T22:44:30
|
|
Require all PLS formats to consume exactly 4 bytes of storage
D3D 11.0 UAVs only support R32_FLOAT, R32_UINT, R32_SINT formats.
EXT_shader_pixel_local_storage explicitly states that all PLS variables
consume exactly 4 bytes.
ESSL images can only have both read and write access if their format is
r32f, r32i, r32ui. (We were able to circumvent this via aliasing, but it
was a huge source of bugs.)
There is a large precedent for only supporting 4 bytes of storage in the
capabilities we use for PLS, so this CL removes support for all PLS
storage formats that are not 4 bytes. It also implements an "R32" mode
for PLS, that does manual packing and unpacking of r32* image formats.
If the application wants larger formats, it can always define multiple
PLS planes and piece them together.
Next up we ought to be able to support rg16* types with more
packing/unpacking.
With aliasing gone, and with a bit of tweaking, the PLS tests now pass
on the Pixel 4 GLES bot.
Bug: angleproject:7279
Bug: angleproject:7388
Bug: angleproject:7524
Bug: angleproject:7527
Change-Id: I6b8f62c2428ade6cb5413e33360d734e55dda0eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3782579
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
fa3d7d5c
|
2022-08-05T00:57:40
|
|
Make PLS coherent on Vulkan
Uses the VK_EXT_fragment_shader_interlock extension to make the shader
image implementation of PLS coherent on Vulkan.
This extension is supported on AMD, Apple, NVIDIA, and Intel.
Bug: angleproject:7279
Change-Id: Ic0253eb20932eb6be0b1f433ba454e48b57be2f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813816
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
876da4ae
|
2022-08-09T22:30:24
|
|
Vulkan: Query support for VK_KHR_imageless_framebuffer
In preparation for using it.
Bug: angleproject:7553
Change-Id: I579af8ce2c0dd1d58bf750ee494e06a071b798fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3823620
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
f7d4c614
|
2022-03-30T23:33:27
|
|
Vulkan: Use VK_EXT_primitives_generated_query
This Vulkan extension implements OpenGL's primitives generated query.
The heavy lifting in ANGLE's implementation was done when this query was
emulated with pipeline statistics query. This change simply switches
pipeline statistics query usage to this dedicated query when available.
Bug: angleproject:5430
Change-Id: I5d2c7d64e4627bcbd33d428d6a7c836b1129e5fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813815
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
493b5aff
|
2022-08-09T14:57:24
|
|
Vulkan: Workaround ARM bug with stencil write mask
Bug: angleproject:7556
Change-Id: I0aa17c178071cc15d8ee15f700b0c4932819c72a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3821367
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
8050079c
|
2022-08-08T16:35:10
|
|
Vulkan: Remove basicGLLineRasterization
* Removed basicGLLineRasterization from the ANGLE features.
* Removed "viewport" from the extended driver uniform classes.
Bug: angleproject:2830
Bug: angleproject:7558
Change-Id: I289b1e2b536a6bd0c1ab24844835221e617a296d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3818165
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
861149c7
|
2022-08-03T15:43:29
|
|
Make PLS coherent on desktop OpenGL
Implements ANGLE_shader_pixel_local_storage_coherent using fragment
shader synchronization extensions:
NV_fragment_shader_interlock
INTEL_fragment_shader_ordering
ARB_fragment_shader_interlock
With these extensions combined, we get coherency all 3 big desktop
vendors: NVIDIA, Intel, and AMD.
Bug: angleproject:7279
Change-Id: Ie20b251fb772898e89994b799640f1f2806581eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3773990
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
57ccd974
|
2022-06-30T16:47:52
|
|
Make limit_max_texture_size_to_4096 webgl only
Bug: chromium:1319451
Change-Id: I7dedeb8d738c1070e650650e893d57984a9e7956
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739439
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
6142b839
|
2022-07-26T13:57:53
|
|
Vulkan: EXT_YUV_target: add vk feature
This Vulkan feature will be set to true once we detect support
from underlying Vk driver (method TBD).
Bug: b/223456677
Change-Id: I5003068c3119f43befb92579d4b656e3a9346363
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788564
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
08df7ce4
|
2022-07-28T10:59:30
|
|
Test Runner: Disable --bot-mode on Fuchsia.
This flag is a bit hard to get going because of the differences in
the Fuchsia system APIs. Disable it explicitly for now to avoid
issues when we switch bot configs.
Bug: angleproject:7312
Change-Id: I47cd038b198f265a6b60893faf6f50f02be49fda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3792163
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b968b6c9
|
2022-07-26T14:34:41
|
|
Test Utils: Get executable path from command line.
This simplifies the process fork test and will allow the test to
work on Fuchsia.
Bug: angleproject:3161
Change-Id: I5bb5424c44957f2faef1970b3cbc5e52b8aff630
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788297
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
be708446
|
2022-07-25T15:24:52
|
|
Vulkan: Remove the bindEmptyForUnusedDescriptorSets workaround
Only applied to older Qualcomm-based phones.
Bug: angleproject:2727
Change-Id: I37a611e2ff79d898eff9401467407543f3c690b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785290
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
15cc0013
|
2022-07-14T23:32:05
|
|
Add a GL_ANGLE_shader_pixel_local_storage extension
Plumbs through "GL_ANGLE_shader_pixel_local_storage" and
"GL_ANGLE_shader_pixel_local_storage_coherent" extension strings
advertised by ANGLE and stubs out an initial spec document. This change
doesn't add any new procedures or shader constructs, but it does allow
the PLS tests to start checking for the real extension strings and
requiring the GL_ANGLE_shader_pixel_local_storage extension.
Bug: angleproject:7279
Change-Id: I36877fe4117185a2121f803288123cd69a447cf3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739590
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
d9763c60
|
2022-07-14T14:42:27
|
|
Disable mutable texture upload on Win/Intel devs
After adding the mutable texture upload CL, we are experiencing
some instances of flakiness in the form of lost context/device
errors in the perf tests in Win/Intel cases.
* Added mutableMipmapTextureUpload as an ANGLE feature, which is
used to determine if onMutableTextureUpload() should be called.
* It is disabled on Windows when using an Intel GPU.
* Disabled the related unit tests on Win/Intel cases.
Bug: angleproject:7308
Bug: b/202744914
Change-Id: Ib8c1bddc39cc4354468831a4a599a7c343d05f0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764460
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
5897d6f5
|
2022-07-07T00:00:00
|
|
GL: Add emulateCopyTexImage2D workaround
Using texImage2D + copyTexSubImage2D seems to be
more stable than using copyTexImage2D directly.
Added missing HALF_FLOAT fix to the code path that
requires target texture initialization.
Fixed target texture dimensions when initialization
is not required.
Fixes Apple GPU crashes in:
* CopyTexImageTest.DeleteAfterCopyingToTextures
* conformance/textures/misc/texture-copying-and-deletion.html
* conformance/textures/misc/texture-copying-feedback-loops.html
Bug: angleproject:5038
Bug: angleproject:5360
Bug: chromium:1130703
Change-Id: I5cce087983601e768902f01b3462ec2106e2500a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3749921
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
d88f7906
|
2022-07-01T12:57:09
|
|
Extra buffer logging/checking on Android Cuttlefish
This adds a feature that will be enabled on Android Cuttlefish
systems, to catch a rare crash.
Test: Visual inspection of logcat output
Bug: b/236098131
Change-Id: Ie35d7e017f69b36da9caf3e47c31fcc71846caed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726963
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
916a35dd
|
2022-06-28T14:40:53
|
|
Merge getTempPath and CreateTemporaryFile
Also includes moving these two (and some helpers) to
common/system_utils.h
Bug: angleproject:5095
Change-Id: I7d2fcbd27a67dc13215265ac5b5e8391b15a980b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733519
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9070e279
|
2022-06-30T09:35:59
|
|
Vulkan: Handle platforms that have imprecise float division issues
Even when the dividend and divisor have the same value
some platforms do not return 1.0f. We need to emit sepcial
division code on such platforms.
Bug: angleproject:3586
Tests: KHR-GLES31.core.blend_equation_advanced.blend*HSL*
Change-Id: Ibb81f57c959ae2c8edb6d361bf6241c019dfb988
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738439
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
785353fd
|
2022-05-24T12:40:16
|
|
Support Desktop OpenGL context creation in end2end tests
Validation of Desktop GL versions and profile masks is unimplemented.
Bug: angleproject:7360
Change-Id: Ifae94215b6aada895c2b02318a1d05c9515e9b96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3664916
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
fd9301c1
|
2022-06-17T12:25:10
|
|
Capture/Replay: Capture egl surface related calls
Creation from a pbuffer and generalized destruction are
implemented, as well as binding and releasing a TexImage
and making the context current with explicit draw and
read surfaces given.
Bug: angleproject:4964
Bug: angleproject:6180
Bug: angleproject:6512
Change-Id: Id8be6486125d45341905f3aabdbae4366cd568b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3711741
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e50351cb
|
2022-06-10T22:28:58
|
|
Vulkan: Don't close render pass on framebuffer fetch
For applications that use framebuffer fetch in the same RP as
non-fetch programs, we can save some extra RenderPasses by always
creating our RP objects with input attachments enabled. This works
almost identically except for needing to use the images in a
"GENERAL" layout instead of "COLOR_ATTACHMENT_OPTIMAL". According
to partners it is possible to achieve performance parity even with
GENERAL layout.
To remove any potential negative impacts of using the GENERAL layout,
the context enters this always-framebuffer-fetch mode only and as soon
as a framebuffer fetch program is created. Applications that don't use
framebuffer fetch are thus unaffected.
This eliminates 20 render passes in the Genshin Impact trace (out of
about 58). On a Pixel 6 the resulting benchmark score speeds up by
~25%. For Real Racing 3, the speed up is ~30%.
Based on change by jmadill@chromium.org
Bug: angleproject:7375
Change-Id: Ib6c73e95d06229f8545d502b388ee2a55a582323
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697308
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ca96cba9
|
2022-06-16T11:33:14
|
|
Make ReadEntireFileToString return a std::string.
Note: this makes the method unavailable for export from angle_util,
which is probably why it was designed the way it was in the first
place. However, we import the test utils source file as a static
lib into each test executable and test shared module, so it works.
Bug: angleproject:7404
Change-Id: Ia957268882c2b8529643660d7d4f34d142c0dc43
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3708602
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
97a6e581
|
2022-05-30T16:50:26
|
|
Vulkan: Useful implementation of program binaries
ANGLE already serializes the pipeline state for the sake of
OES_get_program_binary. This serialization had limited usefulness
however, since the Vulkan driver hasn't actually created any pipelines
yet (which is a costly part of program creation).
Simultaneously, ANGLE deferred Vulkan pipeline creation to draw time,
which causes hitching.
In this change, a handful of Vulkan pipelines are precreated at
link time; those at least that are sure to create different blobs in the
pipeline cache (different spec consts or SPIR-V generation). These
pipelines are created in the program executable's cache. The cache is
then merged into the shared renderer cache (for potential blob reuse by
other programs).
With this, two goals are achieved:
- Most pipelines created at draw time hit the pipeline cache, avoiding
costly compilation.
- When the program binary is retrieved, the contents of the program
executable's pipeline cache is also returned. On reload, the cache is
recovered, resulting in faster startup.
Bug: angleproject:5881
Change-Id: I46c5451a7d0b16dffd40e44015e094640886880b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671977
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
153d8db9
|
2022-06-06T13:49:40
|
|
Turn missing {trace_name}.json trace files into test failures.
Before this change, a missing or broken trace json file results in all
trace tests "disappear" from the list with only ERR in logs. After this
change, a missing or broken trace json will result in that specific test
FAIL status and error in logs.
Note that this also allows for inconsistency between
restricted_traces.json and trace json files on the device because we're
no longer requiring for trace json to be loaded unless the test is
actually being run.
Bug: angleproject:7410
Change-Id: I07532dc0bf85a0d2fcaf425ce8d4a589473a898d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690734
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f8f760d
|
2022-06-07T17:52:52
|
|
Disable KHR_no_error for Android/SwiftShader
Speculatively fix crash in Skia on ANGLE that has been happening.
In addition, prevent other crashes in the future.
Bug: b/220069903
Change-Id: I01b9896a6feb8be524849dafbc1df9526fc98754
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3694160
Commit-Queue: Ian Elliott <ianelliott@google.com>
Auto-Submit: Ian Elliott <ianelliott@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5fbb0417
|
2022-05-26T15:05:52
|
|
Vulkan: Handling VK_EXT_load_store_op_none on ARM
There is a bug on at least one ARM device when either
depth or stencil load op is none. Add a temporary work
around to avoid this case for ARM driver until
angleproject:7370 is addressed. Also add a test to
reproduce the deqp test failures with simiplied draw calls.
Bug: angleproject:7370
Bug: angleproject:7351
Change-Id: I74ac49a75f85b1e006ed3b1d77f234f63d314ae0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671696
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4ea62009
|
2022-06-07T15:35:51
|
|
Vulkan: Prefer driver uniforms over spec consts
On hardware that's not seeing any benefit from specialization constants,
this change switches to using driver uniforms to reduce the number of
pipelines created.
Bug: angleproject:7406
Bug: b/173636783
Change-Id: Ic1ea1b389b0b27169427643f811370943195f331
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692270
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
06ff0e3c
|
2022-06-06T15:29:16
|
|
Implement GL_EXT_base_instance
Added new extension GL_EXT_base_instance to registry_xml.py
and auto-generated the entry point function calls for the
following functions introduced by the extension:
* GL_DrawElementsInstancedBaseVertexBaseInstanceEXT
* GL_DrawElementsInstancedBaseInstanceEXT
* GL_DrawArraysInstancedBaseInstanceEXT
Bug: angleproject:6983
Change-Id: I36167faf3ca98e42acf787dbf09ee7052e15e358
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3691952
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Faye Zhang <ffz@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
d670b5a3
|
2022-06-07T11:43:02
|
|
GL: Disable texture border clamp on imagination.
IMG GPUs generate INVALID_ENUM when setting the texture border color.
Bug: angleproject:7405
Change-Id: I04a28d36943c143ad5e18bf80e618230b116a632
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692265
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4b911686
|
2022-06-06T22:25:37
|
|
Converts from sprintf() to snprintf().
sprintf() is deprecated in Xcode 14, so update to safer equivalents in
order to keep the compiler happy on iOS and macOS.
Bug: chromium:1331345
Change-Id: Id5348088bf69cbd360d9251e6323596cb710666d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3690747
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ebdbae9b
|
2022-04-28T15:35:41
|
|
crash_handler_posix: Fix symbol path resolution.
Use POSIX realpath function to resolve absolute paths of modules.
Fix incorrect path resolution for libVkLayer_khronos_validation.so,
which is given a relative path from the executable directory instead of
cwd.
Leave the treatment of overlapping paths in place, which is only
required if a backtrace is triggered during the runtime of
ScopedVkLoaderEnvironment.
Remove symlink resolution, as it is done by using realpath.
Print warning if symbol path cannot be resolved.
This fixes the following error:
/usr/bin/addr2line: '/home/user/angle/angle/angledata/../
libVkLayer_khronos_validation.so': No such file
Bug: angleproject:7311
Change-Id: I46f4af93a4a27d8d09c3786933dbbb8390aa34eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3644584
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cdad9363
|
2022-04-28T14:38:24
|
|
crash_handler_posix: Use execvp.
To avoid using an absolute path for the addr2line executable, use execvp
instead of execv to make the shell search for the executable in the
PATH.
Bug: angleproject:7310
Change-Id: I777e5f369011d910afffe86f8fb2372dc333a665
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3644582
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
53ec886e
|
2022-05-30T16:49:11
|
|
Vulkan: Externally synchronize the pipeline cache
In preparation for a future change that requires this as it may perform
pipeline cache merges during creation of pipelines.
Bug: angleproject:5881
Change-Id: Ic7921b781aa773ae23b60a0bb6fa2111b1fc401e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679479
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eb282de0
|
2022-05-20T18:36:46
|
|
Vulkan: Add feature to use VK_FILTER_LINEAR for YUVConversionInfo
VK_FILTER_NEAREST is default for chromaFilter in ConversionInfo.
Add feature to allow VK_FILTER_LINEAR to be used instead. This
feature controls the quality when sampling YUV images.
Bug: angleproject:7382
Change-Id: I3f67d7620d94b5b33c42754adfef84b97c798637
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3684351
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
94320a83
|
2022-05-27T17:41:29
|
|
Metal: Validate total bits used in color attachments
Metal has 2 limits for color attachments. 1 the number of
attachments supported. 2 the total number of bits it can
write per pixel. So for example Apple4 through Apple8 GPUs
can have 8 attachments but only 512bits of output. That
means you can attach 8 RGBA8 textures (256bits), but you
can't attach 8 RGBA32UI textures (1024bits).
If there are too many bits then return
FRAMEBUFFER_UNSUPPORTED from checkFramebufferStatus
and INVALID_FRAMEBUFFER_OPERATION from draws
Bug: angleproject:7280
Change-Id: I935aebad4d57664f59a60be20a927d6b69afb4ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3674322
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
8a0351a5
|
2022-05-26T14:29:21
|
|
Metal:Dynamically choose max draw buffers.
The code was hard coded to 4 which is lower than OpenGL's 8.
This implementation keeps a hard coded array of size 8 in
rx::mtl::RenderPassDesc and rx::mtl::RenderPipelineOutputDesc
but only uses up to the display's limit.
Bug: angleproject:7280
Bug: angleproject:5730
Change-Id: Idd7e64dc47697882b44540804159566158e1e924
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3671695
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
28b4c378
|
2022-05-27T15:45:59
|
|
Vulkan: Pipeline creation feedback in perf counters
Bug: angleproject:5881
Change-Id: I42917cab3c97abb50a14035972a96728dcb990b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3672851
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b0d75fb5
|
2022-05-31T16:55:23
|
|
Vulkan: Use 64-bit counters
Some upcoming counters don't fit in 32 bits.
Bug: angleproject:5881
Change-Id: I2de8a603cabdb5f7417c29d5f37a50899485d6d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679488
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
2f0b6429
|
2022-05-23T21:20:13
|
|
Revert "util/X11Window: Set PMinSize and PMaxSize hints."
This reverts commit a78eca2cab5f7826c1719e47fca229086ec06947.
Reason for revert: We suspect this CL is causing rendering issues on Linux swiftshader bots: https://bugs.chromium.org/p/angleproject/issues/detail?id=7336. Some trace test only has part of the screen rendered: https://angle-gold.skia.org/detail?test=raid_shadow_legends&digest=a4eb4b3f306f31798c5e86dcf34d0f35. Revert it to check if it helps the resolving the render issues on bots.
Original change's description:
> util/X11Window: Set PMinSize and PMaxSize hints.
>
> Before this patch replay windows were down-sized to match the default
> screen size in case their extent was greater than the screen size.
>
> Setting a PMinSize on XSizeHints resolves the issue on modern window
> managers. Tested with GNOME Shell 41.3 with both native X11 and Wayland
> (over XWayland) backends.
> Setting PMaxSize was also requried to pass the
> BlitFramebufferANGLETest tests.
>
> This fixes retracing with correct extents and resolves a VVL performance
> warning.
>
> Bug: angleproject:6808
> Bug: angleproject:7083
> Change-Id: I00ee149ec02efe08c5801e4231913049d31e262b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3507514
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Bug: angleproject:6808
Bug: angleproject:7083
Bug: angleproject:7336
Change-Id: Ibe15e549d1f1965f0c3832190f02144bb63da16a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3661210
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f6c14933
|
2022-01-19T17:19:48
|
|
dEQP: Support Wayland
Improve ANGLE native display factory by supporting creation of a Wayland
native display.
Bug: angleproject:7065
Change-Id: I0882d8666b1d07ced0804b99d1998ca45f4ad73b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3525753
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7c83a363
|
2022-05-16T22:22:44
|
|
Vulkan: Dynamic state for rasterizer discard enable
Interaction with primitives generated query are tested by those tests
added in
https://chromium-review.googlesource.com/c/angle/angle/+/2976181
Bug: angleproject:5906
Change-Id: I0ab9f54995504be770a93bf13337a5ffe20bf7eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651582
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3da24b5c
|
2022-05-16T11:58:59
|
|
Move trace loader code to a common location.
With that Capture/Replay will be able to make use of the same
code.
CL authored by gert.wollny@collabora.com.
Bug: angleproject:4964
Change-Id: Ie1ba663169a34929f5a169ab74c7042e9fd5deb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645441
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2fdd7bfd
|
2022-05-17T13:31:58
|
|
Vulkan: Support binding 2D slice of a 3D texture to an image unit
Support binding a 3d texture as a 2d texture by specifying that it is
non-layered during glBindImageTexture and expose support for
EGL_KHR_gl_texture_3D_image when VK_EXT_image_2d_view_of_3d vulkan
extension is supported.
Tests: ComputeShaderTest.BindImageTexture3D
dEQP-GLES31.functional.image_load_store.3d.*single_layer
Bug: angleproject:7320
Change-Id: Ie2f0dfcdf302a4aa58990f74329ca36e62cd3902
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3648586
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4e5da2d2
|
2022-05-11T13:58:07
|
|
Vulkan: Dynamic state for cull mode
Bug: angleproject:5906
Change-Id: I3d7b888e7999d4892ff71d636ea16a2edcf7a27f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3642800
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
389ae6b9
|
2022-05-09T08:44:50
|
|
Add extension for read-only DS feedback loops.
This will facilitate testing. Also moves some feedback loop tests
from FramebufferTest to a specialized test class.
Bug: angleproject:4778
Bug: angleproject:4969
Change-Id: I61235f2663a58644bf506254a869f550f1706de3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3634726
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
029a4c94
|
2022-05-10T13:02:03
|
|
util: Add calls for createImage* and destroyImage* to GLWindow
This adds the interface to the GLWindowBase, an implementation to
EGLWindow, and placeholder functions to WGLWindow.
Bug: angleproject:4964
Change-Id: Ia13f5237500cece9564910c95c6c5eea67ca022d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3637559
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
|
|
31321cb7
|
2022-05-09T16:17:25
|
|
Vulkan: Remove suppressions and workarounds for old AMD/Windows
The old AMD/Windows bots are decomissioned. This change removes
suppressions and workarounds that were added for that bot.
Bug: angleproject:2463
Bug: angleproject:2809
Bug: angleproject:2847
Bug: angleproject:3243
Bug: angleproject:4720
Bug: angleproject:6123
Bug: angleproject:6652
Bug: angleproject:7144
Bug: angleproject:7227
Bug: chromium:1224996
Change-Id: I333ed6d76dfa2916b713ccb49127deceb5b1b551
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3634728
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e316203a
|
2022-05-07T21:31:52
|
|
Vulkan: add forceContinuousRefreshOnSharedPresent feature
Android EGL wrapper filters EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID,
making it impossible for angle to provide an implementation for
EGL_ANDROID_front_buffer_auto_refresh. Thus angle currently is only
able to choose demand refresh for swapcahin present mode. This change
adds a feature to force angle to create the swapchain with continuous
refresh mode without affecting angle internal tracking for shared
present.
This feature will be enabled on integrations without the auto_refresh
hint passthrough to angle, as well as before the platform allows angle
to implement EGL_ANDROID_front_buffer_auto_refresh on its own.
Bug: b/229267970
Test: angle_end2end_tests --gtest_filter="EGLSingleBufferTest*"
Test: smooth draw with gpu accelerated low latency stylus in ChromeOS
Change-Id: I29d72830d4e3d9fd5cdd44b8e1ce51fd7d9789fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3633358
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
38a53d65
|
2022-05-06T18:06:05
|
|
Revert "Remove limit_max_texture_size_to_4096 workaround"
This reverts commit bcc03bd62200ffb0301fbcaa7e7984a06232c83d.
Reason for revert: ANGLE autoroller fails on some Pixel 4 web conformance tests.
Original change's description:
> Remove limit_max_texture_size_to_4096 workaround
>
> Chromium will apply workaround to gpu command buffer clients only. So
> removing it from angle which is no longer needed.
>
> See crbug.com/1319451 and in particular crrev.com/c/3626252
>
> Bug: chromium:1319451
> Change-Id: I723e525600aa7b93e784c98348e060a503c09657
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3618501
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Lingfeng Yang <lfy@google.com>
> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: chromium:1319451
Change-Id: I0db424e97ebb0f9141076b409667aa49faeb2ec4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630919
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a78eca2c
|
2022-03-08T14:47:14
|
|
util/X11Window: Set PMinSize and PMaxSize hints.
Before this patch replay windows were down-sized to match the default
screen size in case their extent was greater than the screen size.
Setting a PMinSize on XSizeHints resolves the issue on modern window
managers. Tested with GNOME Shell 41.3 with both native X11 and Wayland
(over XWayland) backends.
Setting PMaxSize was also requried to pass the
BlitFramebufferANGLETest tests.
This fixes retracing with correct extents and resolves a VVL performance
warning.
Bug: angleproject:6808
Bug: angleproject:7083
Change-Id: I00ee149ec02efe08c5801e4231913049d31e262b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3507514
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
bcc03bd6
|
2022-05-01T14:47:11
|
|
Remove limit_max_texture_size_to_4096 workaround
Chromium will apply workaround to gpu command buffer clients only. So
removing it from angle which is no longer needed.
See crbug.com/1319451 and in particular crrev.com/c/3626252
Bug: chromium:1319451
Change-Id: I723e525600aa7b93e784c98348e060a503c09657
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3618501
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ce60b52
|
2022-05-05T08:23:07
|
|
Fixes for C++20 support.
* The compiler grew smart enough to warn about value changes due to
casting to float inside floatToNormalized(). Make it smart enough to
realize this isn't a problem by using constexpr if.
* Types on both sides of a comparison operator should be the same.
* Structs with user-declared constructors are no longer aggregates.
Provide a constructor and call it.
* std::result_of<F(x)> is gone, use std::invoke_result<F, x> instead.
Bug: chromium:1284275
Change-Id: I6487bb18c65837a6d7d2661f65e097dc6a7605b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630478
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
|
|
9ad43bdd
|
2021-12-09T16:52:35
|
|
Re-land: "Vulkan: Support Wayland"
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes:
- link failure in systems with no libwayland installed.
- XCB display availability check.
Bug: angleproject:6902
Change-Id: I5daecf3591493308ac71a7dd3bc0802f492e6fed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621059
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4bbc55f4
|
2022-05-03T08:19:55
|
|
Revert "Re-land: "Vulkan: Support Wayland""
This reverts commit e0dd196a0e0aace17dfaa204163d798f504ea94e.
Reason for revert: blocks ANGLE roll into Chromium
Original change's description:
> Re-land: "Vulkan: Support Wayland"
>
> Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
> from native window and check egl config is just empty. An EGL wayland
> test is added for testing rendering and buffers swapping.
>
> Re-land fixes link failure in systems with no libwayland installed.
>
> Bug: angleproject:6902
> Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:6902, angleproject:7260
Change-Id: I7e92bf811b191eee6679d577006cddc0e1286fad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621057
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5113ae8e
|
2022-04-29T22:42:59
|
|
Vulkan: Explicitly enable per-sample shading if `sample` used
The Vulkan spec is not explicit about the `Sample` decoration implicitly
enabling per-sample shading. While this is being corrected in the spec,
the ARM Vulkan driver does not have this implicit behavior.
A workaround is added such that the usage of the `sample` qualifier is
reported, and used to explicitly enable per-sample shading through the
API.
Bug: angleproject:6876
Change-Id: Idb8345aacdcfa45cb37fefcd30aa5405168d21e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615738
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f7615d0a
|
2022-05-02T18:59:22
|
|
OpenGL: Add allow_astc_formats workaround
Enable ASTC on Mesa only for supported hardware
Bug: angleproject:7259
Change-Id: I872ebdead1206ee911c5e0f0f10b6985022dbe47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621055
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
e0dd196a
|
2021-12-09T16:52:35
|
|
Re-land: "Vulkan: Support Wayland"
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes link failure in systems with no libwayland installed.
Bug: angleproject:6902
Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
454efd1d
|
2022-04-26T23:57:46
|
|
Add forceDepthAttachmentInitOnClear frontend workaround
AMD on D3D11 skips depth buffer updates in some cases.
Bug: angleproject:7246
Bug: angleproject:7200
Change-Id: I27bbea30fbf4173470063a670b9c43a805286c39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608092
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
3b65b803
|
2022-04-27T11:04:22
|
|
Vulkan: Work around Qualcomm imprecision with dithering
On qualcomm, sometimes the output is ceil()ed instead of round()ed.
With ditering emulation affecting values, some dEQP tests fail due to
the excessive change in value when dithering bumps the value slightly
over to the next quantum.
In this change, a workaround is added to round() the value before
outputting it.
Bug: angleproject:6953
Change-Id: Iae7df5ca20055b4db3185c6153f3c0bf4ba07f68
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611064
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7d31a47f
|
2022-04-23T00:19:15
|
|
Vulkan: Optimize away eglSwapBuffers for single buffer surfaces
For single buffer surfaces, eglSwapBuffers serves two purposes:
- Switch to/from single buffer mode
- Implicitly issue a glFlush
Simultaneously, for single buffer surfaces, glFlush serves three
purposes:
- Submit the commands
- Call queue present (if necessary)
- Throttle the CPU
In this mode, ContextVk::flush() already redirects to the surface,
calling WindowSurfaceVk::swapImpl() which calls back to
ContextVk::flushImpl() (to submit the commands), calls queue present and
throttles the CPU.
If the application calls eglSwapBuffers(), the exact same thing happens
(i.e. WindowSurfaceVk::swapImpl() is called to the same effect).
Calling swapImpl() leads to an addition of the corresponding submit
serial to the "swap history". The CPU throttling code always throttles
the CPU to the serial of two swaps ago.
Unnecessary calls to eglSwapBuffers() (when there is no command to be
flushed) in single buffer mode would thus lead to the CPU throttled to
the end of the last submission, effectively turning into a glFinish().
In this change, eglSwapBuffers() in single buffer mode, when not
switching to/from this mode, is redirected to glFlush() as it's
functionally equivalent. Simultaneously, ContextVk now tracks whether
it has any pending commands for submission at all, and skips glFlush()
altogether if there are none. Together, this results in the unnecessary
eglSwapBuffers() to become no-op.
Bug: b/229908040
Change-Id: I0e3b4a8b7eb4f6b0e0ed22260644825fc67dd330
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603841
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1a144edf
|
2022-04-13T17:15:29
|
|
Metal:ReadPixels AMD Copy Texture to Buffer optimization
On AMD GPUs it's faster to copy a texture to a buffer
for read back than to read via a texture.
For reading from a normal texture 24-27ms -> 6-9ms
For reading from a IOSurface texture 17-20ms -> 7-10ms
Bug: angleproject:7117
Change-Id: I7c7f276a3121e87f5c52a1a4287d13203a6b1b37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584423
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
ea76cb0f
|
2022-04-21T15:52:39
|
|
Vulkan: Add entry points for GL_QCOM_shading_rate
Bug: angleproject:7172
Change-Id: I837d2697d95c44f47a2fab7411cfd87a4ec65e90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599873
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
3b38b379
|
2022-04-20T10:44:24
|
|
Vulkan: Add feature avoid HOST_VISIBLE and DEVICE_LOCAL combination
Discrete GPUs device local memory usually is not CPU accessible. This
adds a feature flag to control that.
Fixed bug in BufferVk that when mapRangeImpl is called from angle
internal, unmapImpl was using front end mapping parameters that is
incorrect. We have to cache the mapping parameters in the backend to
hangle the mapRangeImpl/unmapImpl calls from internal.
Fixed the test bug in ComputeShaderTest.BufferImageBufferMapWrite that
we are calling glMapBufferRange with GL_MAP_READ_BIT but are actually
writing to the map pointer. This should result in undefined behavior per
spec.
Fixed the test bug in GLSLTest.* that VerifyBuffer calls
glMapBufferRange, but was giving incorrect length which result in data
only been partially copied. This bug was hidden due to previously all
buffers are CPU accessible and there is no copy needed.
Fixed the test bug in ReadPixelsPBOTest.* and ReadPixelsPBONVTest.* that
calls glMapBufferRangeEXT, but was giving incorrect length which result
in data only been partially copied. This bug was hidden due to
previously all buffers are CPU accessible and there is no copy needed.
Added new skipped syncval messages. Because this CL triggers a
copyToBuffer call for some of the buffers and that changes the syncval
message signature for the same reasons (i.e, feedback loop or synval
does not know the exact range of buffer been used for vertex buffers
etc).
Bug: angleproject:7047
Change-Id: I28c96ae0f23db8e5b51af8259e5b97e12e8b91f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3597711
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
768c7d47
|
2022-04-21T16:55:05
|
|
Revert "Re-land: "Vulkan: Support Wayland""
This reverts commit f6cdd02fb4bceb4072430e3dbcb1e945809471e0.
Reason for revert: Still warns about extra dependency on wayland.
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/990820/overview
Original change's description:
> Re-land: "Vulkan: Support Wayland"
>
> Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
> from native window and check egl config is just empty. An EGL wayland
> test is added for testing rendering and buffers swapping.
>
> Re-land fixes link failure in systems with no libwayland installed.
>
> Bug: angleproject:6902
> Change-Id: I706af14620d6298275009f5caf93b0e60339219b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765
> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:6902
Change-Id: I11b1fe473fceb2fddb85bd562b769d18426ce07b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600378
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f6cdd02f
|
2021-12-09T16:52:35
|
|
Re-land: "Vulkan: Support Wayland"
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes link failure in systems with no libwayland installed.
Bug: angleproject:6902
Change-Id: I706af14620d6298275009f5caf93b0e60339219b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fcec6904
|
2022-04-13T14:18:06
|
|
Generate feature variable names from display names
The json file now only contains the feature display name. The variable
name is automaticaly derived.
For consistence with Chromium and other Chromium-based projects, the
display name is now always snake_case, and that's what's specified in
the json files. This also makes camelCase variable name generation
trivial (as opposed to the other way around).
Feature overrides now accept both snake_case and camelCase names to
ensure compatibility with existing scripts. This is done by removing _
and comparing override names with feature names in lower case.
Bug: angleproject:6435
Change-Id: I0b6ed2bbf5c312bc4f4be7b3c7d55dbaca2a9886
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584630
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fcd6e260
|
2022-04-13T15:39:21
|
|
GN: Fix util target when X11 not enabled
Include ozone util sources when both X11 and Wayland are not enabled.
Bug: angleproject:6902
Change-Id: I88664bf2da7ce9094ed3168b765d4043aa5e16e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3583984
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
87187835
|
2022-04-07T13:51:10
|
|
Metal: For readPixels copy IOSurface to non-IOSurface texture
For intel GPU/Drivers, it's faster to copy an IOSurface texture
to a non-IOSurface texture and read from the copy than it is
to read directly from the IOSurface texture.
Bug: angleproject:7117
Change-Id: I786009444480f75be6feb05f09f87fb45a3186b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573078
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
c5271e8e
|
2022-04-04T23:28:35
|
|
Vulkan: Emulate GL_KHR_blend_equation_advanced
Based on a change by Brandon Schade <b.schade@samsung.com>
In the translator, when advanced blend is enabled, an input attachment
is added. Based on the listed advanced blend equations, emulation code
is added that performs those equations' functions. The blend equation
itself is passed through a driver uniform.
Note that the advanced blend extension only allows a single output to
use advanced blend, and that should be at location 0.
In the Vulkan backend, when advanced blend is used, the driver uniform
to select the equation is updated and normal blending is disabled.
Bug: angleproject:3586
Change-Id: Icc42e8be238d34fca149087eb9cfe616a7643a6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3575738
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
01c0bc21
|
2022-04-13T17:56:13
|
|
Revert "Vulkan: Support Wayland"
This reverts commit 510351f2006e32ffc6da722f1fc9ea5666e9c0da.
Reason for revert: Breaking ANGLE roll:
https://bugs.chromium.org/p/angleproject/issues/detail?id=7202
Original change's description:
> Vulkan: Support Wayland
>
> Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
> from native window and check egl config is just empty.
>
> Then add an EGL wayland test for testing rendering and buffers swapping.
>
> Bug: angleproject:6902
> Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898
> Reviewed-by: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:6902
Change-Id: Idd0cb78c84baeb1b2ab6910173160206901799f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584921
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
8074061d
|
2022-04-09T01:03:53
|
|
Remove feature override platform methods
Instead, the tests now use the enable() functions to override the
feature at platform level.
This fixes the forceFallbackFormat feature mistakenly not having been
tested.
Bug: angleproject:6435
Change-Id: I605e4133407282bd52232887b595af0d2c13575d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3577369
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|