|
2ef85c24
|
2025-07-09T17:13:52
|
|
Vulkan: Add support for GL_EXT_fragment_shading_rate
Add support for GL_EXT_fragment_shading_rate.
Bug: angleproject:420310117
Change-Id: I7b368afc45baf8551c222b2569991269117d385b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6726817
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Panfeng Hou <panfeng.hou@arm.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b7582680
|
2025-02-24T18:04:32
|
|
Reland: GL: Allow untranslated shaders to pass through on GLES
Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
uses the NULL translator and passes the original shader to the driver.
The parser is still used for shader reflection.
Always enable the null compiler backend. It has almost no binary size
cost and is now potentially used when the null ANGLE backend is not
enabled.
Bug: angleproject:398857482
Change-Id: Id528189ccbbacb1c444eacb151baadfda9fcc04b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6488609
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f48fcb46
|
2025-06-19T07:11:48
|
|
Revert "Metal: Wraparound int arithmetic for add, sub"
This reverts commit 2f6f0514563d81e439e04ba09eee9e8a1d6ca8d1.
Reason for revert: Leads to MSL compiler errors:
> error: non-const reference cannot bind to vector element
Bug: angleproject:382215759
Original change's description:
> Metal: Wraparound int arithmetic for add, sub
>
> Implement wraparound int arithmetic for
> int, ivec +, -, +=, -=, ++, --.
>
> All of the added tests pass also without the changes.
>
> Bug: angleproject:382215759
> Change-Id: I7605582ab2931e63010c34fba474797f7edd19f9
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6578729
> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Bug: angleproject:382215759
Bug: chromium:425746892
Change-Id: I831d96c6ee7b8bcdeaa08fbf32d430def87a3c30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6656001
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
94ee620d
|
2025-05-22T10:07:05
|
|
Metal: Allow optimization of simple loops
Reimplement the feature to avoid undefined behavior of infinite loops.
Add EnsureLoopForwardProgress rewrite pass that inserts a volatile
variable access to all loops that it cannot analyze as being finite.
Detect loops of form `for (; i <op> x; ++i)` as being finite.
The <op> can be any of <,<=,>,>=,==, != operator.
The i can be int or uint.
The ++i can be -- or ++, -=1, +=1.
This assumes that backends using the feature emit signed int arithmetic
with defined wraparound semantics.
Uses volatile write instead of asm("") due to asm not forcing the
behavior in some compiler versions. The volatile variable access is
defined in C++ as forward progress, and by inheritance this works in
MSL.
Later commits may remove injectAsmStatementIntoLoopBodies if
ensureLoopForwardProgress is appropriate for all use-cases.
Bug: angleproject:418918522
Change-Id: Ic9c29f57044b792195386483208632354d24c854
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6575051
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
392dc591
|
2025-05-15T00:00:00
|
|
Remove GL_CHROMIUM_sync_query
Fixed: angleproject:420627279
Change-Id: I26dac7c55a7cf6b04121658144e1387be65d2569
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6593552
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2f6f0514
|
2025-05-22T15:59:19
|
|
Metal: Wraparound int arithmetic for add, sub
Implement wraparound int arithmetic for
int, ivec +, -, +=, -=, ++, --.
All of the added tests pass also without the changes.
Bug: angleproject:382215759
Change-Id: I7605582ab2931e63010c34fba474797f7edd19f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6578729
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
5dd05578
|
2025-04-14T07:34:57
|
|
Revert "GL: Allow untranslated shaders to pass through on GLES"
This reverts commit 4e77552b86a89b449ada6d6c18f84285f5812b1d.
Reason for revert: breaks ChromeOS and fuzzers
Bug: angleproject:398857482
Original change's description:
> GL: Allow untranslated shaders to pass through on GLES
>
> Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
> uses the NULL translator and passes the original shader to the driver.
> The parser is still used for shader reflection.
>
> Bug: angleproject:398857482
> Change-Id: I7c5fcc318c7e11931f78c08dcbf4764bf77d397d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297527
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:398857482, angleproject:410423936
Bug: chromium:410114655, chromium:410100607, chromium:410121218
Bug: chromium:410052365, chromium:410290507, chromium:410178288
No-Presubmit: true
Change-Id: I45b01960637a1cda05d21a7df6d07465f6a8f5e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6448984
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
4e77552b
|
2025-02-24T18:04:32
|
|
GL: Allow untranslated shaders to pass through on GLES
Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which
uses the NULL translator and passes the original shader to the driver.
The parser is still used for shader reflection.
Bug: angleproject:398857482
Change-Id: I7c5fcc318c7e11931f78c08dcbf4764bf77d397d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297527
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c0d806b4
|
2025-02-10T23:01:33
|
|
CL: OpenCL support for ANGLE Capture/Replay
Implementation of OpenCL Capture/Replay tool in ANGLE.
Brief notes about the change:
- Most meaningful changes for the capture process are
made in src/libANGLE/capture/
- Most meaningful changes for replay are made in
util/capture/ and src/tests/perf_tests/
- Many autogenerated files are changed/added to allow
the capture of OpenCL objects & calls
- The following applications were captured/replayed:
benchmark_model, GeekBench Compute, GeekBench ML,
AI-Benchmark, various OCL CTS tests
- End2end test added to capture_tests.
CapturedTestCL.MultiFrameCL/ES3_Vulkan
Bug: angleproject:383841335
Change-Id: I55fdaa6cd6c7ba740aaa2351e4d29050059d6d1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102105
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
6bb1bc9b
|
2024-12-10T16:56:33
|
|
Add an extension to report total memory usage of all GL objects
Currently the extension will only count GL buffers, textures and
render buffers' memory.
Fixed: angleproject:383256300
Change-Id: I33ce6fafae8aa5b60071e66366d35dc098e1313b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6084013
Auto-Submit: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
01dee1cb
|
2024-10-14T15:04:28
|
|
Add implementation for GL_EXT_texture_storage_compression
Bug: angleproject:352364583
Change-Id: I3dab4c68d5d0206d681e165e991217bd3de8eeb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6011055
Auto-Submit: Neil Zhang <Neil.Zhang@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0d5c0bd1
|
2024-04-25T10:26:08
|
|
ANGLE end2end test to check const expressions are handled correctly
Bug: b/337046547
Change-Id: I1bd368f8c95a9676aba13fe91313d0eaba32db03
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5490170
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
166b72c9
|
2024-09-30T19:07:26
|
|
GL_ANGLE_blob_cache implementation.
Bug: chromium:370538323
Change-Id: Ic51a951e78b48b315e36f518bcc39ff2d54660a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900761
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b16d105f
|
2024-10-03T10:25:32
|
|
Remove Desktop GL front-end support
For Desktop GL applications, please use Zink!
Bug: angleproject:370937467
Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e90de4b2
|
2024-09-05T00:00:00
|
|
Add shadow sampler LOD tests
Added tests for GLSL 3.00 shadow
samplers in fragment shaders
with TEXTURE_2D target.
Bug: angleproject:365066518
Change-Id: I5b93d030cd14a388541acaff9f7a707ad599dba3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5845491
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2d8e15f8
|
2024-05-31T14:25:12
|
|
Add stubs for GL_QCOM_tiled_rendering
Bug: angleproject:343900918
Change-Id: I77d742949565ebfecb5f4446db3510af4f94033c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588629
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9c391154
|
2024-06-06T18:24:18
|
|
Vulkan: Do not apply advanced blend emulation when blend is disabled
The emulateAdvancedBlendEquations code path does not check if
GL_BLEND is disabled. This CL adds the check so that the blend is
not applied when we disable the GL_BLEND.
This CL also adds an updateAdvancedBlendEquations() when
DIRTY_BIT_BLEND_ENABLED bit is set. This ensures
DIRTY_BIT_DRIVER_UNIFORMS bit is set when GL_BLEND state changes,
meaning we will regenerate the uniforms if GL_BLEND state changes:
GL_BLEND is enabled:
pass the advanced blend equations to the uniforms;
GL_BLEND is disabled:
do not pass the advanced blend equations to the unforms
Bug: b/345581214
Change-Id: I5708a4051647bc29b5b38a027e836f5bf717d1d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5605109
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
0cbc0fe4
|
2024-05-30T00:00:00
|
|
Add IncompatibleTexture end2end tests
Bug: angleproject:343922404
Change-Id: Ic96cc1e2493454844ef65ec799e1aba221d9f084
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5589245
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a70ef7fc
|
2024-04-25T14:19:50
|
|
Add EGL_ANGLE_no_error for disabling EGL validation.
Chrome makes many small EGL calls that can have proportionally
expensive validation.
Bug: angleproject:8434
Change-Id: I4f4d0e6eff64839f76a0f7bf48e5c94b8df9d809
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5491459
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0afcac60
|
2024-02-22T11:21:15
|
|
Handle count = 0 in DrawElementsIndirect
Bug: angleproject:8554
Change-Id: I9618061edf71c3d9a03ea14dfe65b54c58ee98de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5319131
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
073b6510
|
2024-01-11T07:40:32
|
|
Add missing GLES1 glGetBooleanv() enums
In OpenGL ES 1, capabilities that can be queried using glIsEnabled() can
also be queried using glGetBooleanv().
As such, some valid glGetBooleanv() calls were returning "Invalid pname"
error.
Added support for the missing enums in glGetBooleanv().
Bug: angleproject:8481
Tests: GLES1 - QueryTest*
Change-Id: Ic3a50eda4eae5855cd9491dbf217b5f69c1669b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5188456
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fb6b960c
|
2023-11-27T14:24:28
|
|
Remove GL_CHROMIUM_texture_filtering_hint
This was using an unregistered Vulkan extension to set the precision of
SwiftShader's internal filtering for the sake of Chrome. That's baked
in at build instead.
Bug: angleproject:8349
Bug: chromium:726075
Change-Id: I12849d2d29d99626f22a92ee9d74366f78658476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5063344
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
36439d9c
|
2023-10-12T00:00:00
|
|
Metal: Fix PBO uploads of PVRTC1 textures
Do not override row pitch values for PVRTC1
textures during internal backend operations.
Instead, set bytesPerRow to 0 before calling
replaceRegion just to pass Metal Validation.
Enforce CPU path for PBO uploads until
GPU block linearization is implemented.
Bug: angleproject:8376
Change-Id: I80b9ec69364d55cd9f51005f4d1a180e05e71c2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4949350
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
46ff02f8
|
2023-05-18T13:52:29
|
|
Capture/Replay: Initial setup for angle_capture_tests
Implements the first part (FrameCapture) of the proposal
go/frame-capture-and-interpreter-testing
Adds a basic test (CapturedTest) with a few frames. This test gets
captured by capture_tests.py into a temporary directory and the
resulting files are diff'ed with the files under expected/
A diff fails the test. When capture changes, the workflow would be to
run the command indicated by the error message in the test which will
overwrite the files with new ones so that they can be added to the CL.
Example test failure on capture change:
https://chromium-swarm.appspot.com/task?id=62b5f4034527c610
when testing https://crrev.com/c/4598046/3
Tests in CI: https://screenshot.googleplex.com/77o8vZVuj8AbFRj
Also adds a "angle_capture_tests_trace" lib with the trace just to test
that this capture also builds, the lib is not currently loaded by
anything.
Bug: b/286067106
Change-Id: I7d5f6eed088d84f9e3eb8a72b24b1d92515fff38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545408
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
73f9cf00
|
2023-03-31T00:00:00
|
|
GL: Implement polygon mode extensions
* Implemented polygon mode extensions
on the OpenGL backend
* Supported capture and serialization
of the new commands and state
* Added PolygonModeTest end2end tests
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I3bc08546a02f110dd739950129bee25ccc507bf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492683
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6deca89e
|
2023-03-22T22:33:40
|
|
Add Spirv Instruction to explicitly cast mediump float to 16 bit
If the GLSL shader code expects the comparison between
two mediump float values returning true, but the SpirV
compiler treats one of them as 32-bit, and treats the
other one as 16-bit, the comparison would return false
instead. The SpirV compiler may not automatically cast
the mediump float values to 16 bits, because it may
utilize the RelaxedPrecision decoration to keep a mediump
float as 32-bit, so that the compiler can avoid the
type cast from 32-bit highp to 16-bit mediump.
This change adds an additional OpQuantizeToF16 SpirV
instruction to explicitly cast mediump float scalar
or mediump float vector to 16 bit, if they are assigned
with a highp float value. This ensures that if the
GLSL shader code ever compares two meiump float values,
the SpirV shader compiler is not accidentally comparing
a 16 bit with a 32 bit float value.
This fixe the deqp test failure on Pixel 6 and Pixel 7:
dEQP-GLES2.functional.shaders.algorithm.rgb_to_hsl_vertex.
Bug: b/274859104
Bug: b/274408172
Change-Id: Ifd996cea14c0f77f45ae90f38c8e53cf5035139f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400404
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
443ac5b4
|
2023-04-17T00:00:00
|
|
GL: Enable OES_shader_multisample_interpolation
Drive-by:
* Fixed validity of the related state queries
* Added SampleMultisampleInterpolationTest
* Removed unused OES_sample_variables code
Bug: angleproject:8097
Bug: angleproject:8131
Change-Id: I816d2096759a96d8691acd0a8c5ecdedf880201b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4440826
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f33c16e3
|
2023-03-27T00:00:00
|
|
Add SampleVariablesTest
* Increased required OpenGL context version to 4.2
to disable the extension on older platforms that
do not pass the tests.
Bug: angleproject:8097
Change-Id: I9158d895f0b0ec80db2516cc126e89ff5da753e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401931
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e809e7bd
|
2023-03-13T00:00:00
|
|
Reland "Implement EXT_depth_clamp"
This is a reland of commit f8c1418319ac2aef4b3101e322005b1d0f73120f
Host GPU bugs are observable in iOS Simulator
Original change's description:
> Implement EXT_depth_clamp
>
> * Added depthClamp to the RasterizerState
> * Added DepthWriteTest end2end tests covering
> both clipped and clamped depth writes
>
> Capture
> * Updated serialized rasterizer state
> * Updated CaptureMidExecutionSetup
>
> OpenGL
> * Requires GL 3.2 or ARB_depth_clamp
> on desktop contexts
> * Maps to EXT_depth_clamp on ES
>
> D3D11
> * Maps to the opposite of
> D3D11_RASTERIZER_DESC.DepthClipEnable
> * The new tests uncover several edge cases where
> a workaround is needed to implement unextended
> OpenGL semantics on top of D3D
>
> Metal
> * Maps to the setDepthClipMode command
>
> Bug: angleproject:8047
> Bug: angleproject:8077
> Change-Id: I1b3448e5b84443e4be18af9bc22d2f8495ac8267
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4347753
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:8047
Bug: angleproject:8077
Change-Id: I8c5f8304276c97c51b2c3382cd2764592ee0c3fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4349938
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
4a77b0f5
|
2023-03-18T00:16:24
|
|
Revert "Implement EXT_depth_clamp"
This reverts commit f8c1418319ac2aef4b3101e322005b1d0f73120f.
Reason for revert: This change breaks angle_end2end_tests on Metal backend: https://ci.chromium.org/ui/p/chromium/builders/ci/ios-angle-intel/26035/overview
Original change's description:
> Implement EXT_depth_clamp
>
> * Added depthClamp to the RasterizerState
> * Added DepthWriteTest end2end tests covering
> both clipped and clamped depth writes
>
> Capture
> * Updated serialized rasterizer state
> * Updated CaptureMidExecutionSetup
>
> OpenGL
> * Requires GL 3.2 or ARB_depth_clamp
> on desktop contexts
> * Maps to EXT_depth_clamp on ES
>
> D3D11
> * Maps to the opposite of
> D3D11_RASTERIZER_DESC.DepthClipEnable
> * The new tests uncover several edge cases where
> a workaround is needed to implement unextended
> OpenGL semantics on top of D3D
>
> Metal
> * Maps to the setDepthClipMode command
>
> Bug: angleproject:8047
> Bug: angleproject:8077
> Change-Id: I1b3448e5b84443e4be18af9bc22d2f8495ac8267
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4347753
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:8047
Bug: angleproject:8077
Change-Id: I829add68c006c72b7b4acf03aee3efa8a9a16fac
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4350876
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
f8c14183
|
2023-03-13T00:00:00
|
|
Implement EXT_depth_clamp
* Added depthClamp to the RasterizerState
* Added DepthWriteTest end2end tests covering
both clipped and clamped depth writes
Capture
* Updated serialized rasterizer state
* Updated CaptureMidExecutionSetup
OpenGL
* Requires GL 3.2 or ARB_depth_clamp
on desktop contexts
* Maps to EXT_depth_clamp on ES
D3D11
* Maps to the opposite of
D3D11_RASTERIZER_DESC.DepthClipEnable
* The new tests uncover several edge cases where
a workaround is needed to implement unextended
OpenGL semantics on top of D3D
Metal
* Maps to the setDepthClipMode command
Bug: angleproject:8047
Bug: angleproject:8077
Change-Id: I1b3448e5b84443e4be18af9bc22d2f8495ac8267
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4347753
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
bf5e9dbc
|
2023-03-09T00:00:00
|
|
GL: Reset clip origin before scissored clears
Clip origin must not affect scissor box but
some drivers flip it for clear operations.
Added capture/replay support for ClipControl.
Bug: angleproject:8066
Change-Id: I9292cb4945b49c56c80da4c5813e89df3453b6b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4328267
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
1d9b8d80
|
2023-01-24T16:50:32
|
|
Reland "Add support for glShaderBinary"
This is a reland of commit 228973e73135924ddf6116e0b63eff5a1ccbf232
with the following fixes -
1. Apply patch from Yuly to fix chromium build errors
2. Fix ShaderBinaryTest instantiation call
3. Add ShaderBinaryTest to expectations file for IOS
Original change's description:
> Add support for glShaderBinary
>
> This patch adds the following -
> 1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token.
> 2. Compiler support to generate shader binaries.
> 3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for
> Vulkan translator.
> 4. Support to load GL_SHADER_BINARY_ANGLE binaries.
> 5. end2end tests for glShaderBinary.
>
> Tests: ShaderBinaryTest*
> Bug: angleproject:7833
> Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:7833
Change-Id: I21135c52e2bae955342a99aff5631ba0e687eff1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4195852
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef0fe638
|
2023-01-16T00:00:00
|
|
Implement EXT_polygon_offset_clamp
* Added polygonOffsetClamp to the RasterizerState
* Adjusted State::setPolygonOffsetParams
* Added PolygonOffsetClampTest end2end tests
* Added StateChangeTestES3.PolygonOffsetClamp test
* Suppressed the affected dEQP test as it has a bug
Capture
* Updated serialized rasterizer state
* Updated CaptureMidExecutionSetup
OpenGL
* Rely on the EXT extension defined both
for desktop and ES contexts
* On desktops, might as well use the ARB extension
or GL 4.6 once ANGLE supports them
D3D11
* Requires FL10_0 or higher
* Maps to D3D11_RASTERIZER_DESC.DepthBiasClamp
* Drive-by cleanup of extensions init code
Vulkan
* Requires depthBiasClamp physical device feature
* Maps to the depthBiasClamp parameter
of the vkCmdSetDepthBias command
Metal
* Maps to the clamp parameter
of the setDepthBias command
Bug: angleproject:7957
Change-Id: If6b28df4084f0a81db29f75fb434e75d394c8730
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4169945
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
0c9cbf39
|
2023-01-26T12:07:51
|
|
Revert "Add support for glShaderBinary"
This reverts commit 228973e73135924ddf6116e0b63eff5a1ccbf232.
Reason for revert: breaks compile on ANGLE into Chromium roll
https://cr-buildbucket.appspot.com/build/8790942326644064097
https://cr-buildbucket.appspot.com/build/8790942759045412865
https://cr-buildbucket.appspot.com/build/8790942417069789217
Leaks detected on ASAN
https://cr-buildbucket.appspot.com/build/8790946657703508337
Original change's description:
> Add support for glShaderBinary
>
> This patch adds the following -
> 1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token.
> 2. Compiler support to generate shader binaries.
> 3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for
> Vulkan translator.
> 4. Support to load GL_SHADER_BINARY_ANGLE binaries.
> 5. end2end tests for glShaderBinary.
>
> Tests: ShaderBinaryTest*
> Bug: angleproject:7833
> Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:7833
Change-Id: Ice19576acbc1351810ff0cd769ac17ad6c0abdf3
No-Try: true
No-Presubmit: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4197375
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
228973e7
|
2023-01-24T16:50:32
|
|
Add support for glShaderBinary
This patch adds the following -
1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token.
2. Compiler support to generate shader binaries.
3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for
Vulkan translator.
4. Support to load GL_SHADER_BINARY_ANGLE binaries.
5. end2end tests for glShaderBinary.
Tests: ShaderBinaryTest*
Bug: angleproject:7833
Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e6057341
|
2023-01-11T00:35:34
|
|
Add test coverage for CL 3906392
Test: angle_end2end_tests --gtest_filter="*ColorMaterialTest*"
Bug: angleproject:6201
Change-Id: Ic92a185f60180d6e88a5a414626e3d9b4585e2b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4152532
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
be9e8e7b
|
2022-12-14T14:13:39
|
|
Add EGL_ANGLE_wait_until_work_scheduled extension
We're changing eglReleaseTexImage so it calls
flushCommandBuffer(mtl::NoWait) instead of
flushCommandBuffer(mtl::WaitUntilScheduled)
and then adding an extension to allow us to
WaitUntilScheduled.
This is because Chrome calls eglReleaseTexImage for
every canvas and having it WaitUntilScheduled per call
is very slow. So instead we'll call eglWaitUntilWorkScheduledANGLE
once which will effectively wait just once.
Bug: angleproject:7890
Change-Id: I87bc9f9a1a7f4a0f99d93736cc3083799e76afeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4109311
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
|
|
2de99d47
|
2022-11-17T12:19:35
|
|
Reset instance/device extensions in RendererVk::onDestroy()
RendererVk::initialize() adds a nullptr to the end of
RendererVk::mEnabledInstanceExtensions (presumably to ensure the
VK implementation crashes if it tries to read past?). If
RendererVk::onDestroy() fails to clear this nullptr, it can lead
to a crash when sorting the extension lists when the renderer
is re-initialized the second time.
Bug: b/249457381
Test: cvd start --gpu_mode=guest_swiftshader
Test: EGLDisplayTest.InitalizeTerminateInitalize/ES3_Vulkan_NoFixture
Change-Id: Ib24af11024cad6b28284f3a75cc862c48abec258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035646
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
40e4bc63
|
2022-11-09T12:40:48
|
|
Make DrawRangeElements validation consistent with DrawElements
According to the WebGL specification, when an empty buffer is bound to
GL_ELEMENT_ARRAY_BUFFER binding point, one of the possibilities is to
return an error when trying to draw with an index count other than
zero. This is the behavior of DrawElements variants but not
DrawRangeElements.
This change brings variants of DrawRangeElements behavior in line with
that of DrawElements.
Bug: angleproject:7822
Change-Id: I6844efd1038d95c652b72e52209dfdd74f006f9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4015418
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
ef8350a6
|
2022-10-21T06:30:51
|
|
GLES1Renderer: Handle GL_BGRA the same way we handle GL_RGBA
Fixes minetest
Bug: angleproject:7774
Change-Id: Iacbe8cb9aa434ec624bfaf056092b77bda468b3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3970417
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
|
|
4be8294c
|
2022-10-06T09:50:28
|
|
Tests: Enable EGL_ANGLE_iosurface_client_buffer tests on iOS
This enables EGL_ANGLE_iosurface_client_buffer extension tests on iOS
platform. A few OpenGLES related tests had to be suppressed though. I'm
getting the following:
[==========] 96 tests from 1 test suite ran. (960 ms total)
[ PASSED ] 66 tests.
[ SKIPPED ] 30 tests, listed below:
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRX8888IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToRG88IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToRG88IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR8IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR8IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES2_Metal
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToR16IOSurface/ES3_Metal
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRA1010102IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToBGRA1010102IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRA1010102IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRA1010102IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToRGBA16FIOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToRGBA16FIOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToRGBA16FIOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToRGBA16FIOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToYUV420IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToYUV420IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToYUV420IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToYUV420IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToP010IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.RenderToP010IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToP010IOSurface/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromToP010IOSurface/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.MakeCurrent/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.MakeCurrent/ES3_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRX8888IOSurfaceWithTexBaseMaxLevelSetToZero/ES2_OpenGL
[ SKIPPED ] IOSurfaceClientBufferTest.ReadFromBGRX8888IOSurfaceWithTexBaseMaxLevelSetToZero/ES2_Metal
Test: iPhone 13 and ./iossim -d 'iPhone 13' -c \
'--gtest_filter=\*IOSurfaceClientBufferTest\*' angle_end2end_tests.app
Bug: angleproject:5491
Change-Id: Id7c489ae41b11442a2dd06174b2c279894e83401
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3957539
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
943d71e1
|
2022-08-11T10:17:06
|
|
gl_test: add a test to capture/replay MEC with EGL images
Bug: angleproject:7564
Change-Id: I1cb84c5bccd20b5614ddd400797f112138f8c200
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826162
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ff7aa214
|
2022-09-29T19:56:28
|
|
GL_PALETTE* sampling
Implement GL_PALETTE* formats by decoding them into
a R8G8B8A8_UNORM image at load time.
Test: angle_end2end_tests --gtest_filter="PalettedTextureTest.*"
Bug: angleproject:7599
Bug: angleproject:7688
Bug: angleproject:7710
Change-Id: I94d51e2c480fcdd39f1a0ad241b311d3b4de1579
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863251
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
|
|
a89f678f
|
2022-06-16T13:59:16
|
|
EGL: Implement ANGLE_metal_shared_event_sync on metal
Implement creation of fence sync object taking an external
MTLSharedEvent and optional value to use when signaling completion of
prior commands.
Extended end2end test suite with metal shared event test cases.
Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.*
Bug: angleproject:7561
Change-Id: I0e72b5417275a20a24e535670ceb995ecc87abcb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3865060
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@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>
|
|
a894cb94
|
2022-05-10T21:15:59
|
|
Bootstrap pixel local storage
This CL creates a very simple prototype that implements pixel local
storage in a thin layer on top of ES 3.1 shader images, and adds a
single test.
Assuming all goes well on the various devices and backends, the next
steps will be:
* Write many more tests.
* Compiler support, switch to API-specific shader images.
* Move the thin layer into ANGLE.
* Thorough validation and error handling.
* Add an implementation that uses render target attachments
(e.g., EXT_shader_framebuffer_fetch).
* Incremental, backend-specific optimizations as needed.
Bug: angleproject:7279
Change-Id: I7f9f0a1fe2d61f570b4105a7380687038ae45f5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645786
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5c9f676d
|
2022-04-28T18:43:38
|
|
Basis Universal Texture Experiment
Adding a test to read KTX image data.
Adding the inlined image data adapted from
KTX file with ETC1_RGB compressed format.
Bug: angleproject:7250
Change-Id: I96d704f27875fc01bcd31ac8657627f4e3a71755
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3616109
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
02b96848
|
2022-04-21T16:32:31
|
|
Vulkan: Add support for GL_QCOM_shading_rate
Layer GL_QCOM_shading_rate over VK_KHR_fragment_shading_rate
Test: ShadingRateQcomTest*
Bug: angleproject:7172
Change-Id: I3f040dbfad3906facd4349937fed2ce9a464b824
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599874
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
9637185c
|
2022-03-10T15:38:13
|
|
Add ForceGPUSwitch to EGL_ANGLE_power_preference
eglHandleGPUSwitch() does not work with WebKit sandbox profile.
The root cause is that we do not know the
primary display, and as such we do not know which GPU drives this.
Add eglForceGPUSwitchANGLE(display, gpuIDHigh, gpuIDLow).
This lets the caller figure out the GPU in another process. Then
the caller can just set the GPU in the sandboxed process.
Add tests that are disabled by default until the runner and the
infrastructure supports running the tests with automatic switching
enabled.
Bug: angleproject:7092
Change-Id: I316ee431156596effbdb89659a5e24291719a204
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516274
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
a956162c
|
2022-03-01T13:05:29
|
|
Vulkan: Expose performance counters via extension.
This CL rewrites the Vulkan perf counters test to work in the
angle_end2end_test suite using the newly exposed AMD extension.
Note that we implement only a subset of the extension. Instead
of generating monitors and starting/stopping them we simply
read back all performance counter data at once using the special
montior value "0".
The CL also enables these tests on SwiftShader.
Bug: angleproject:4918
Change-Id: I5d8f6eecb1ccff448657cbdb65b51a225dfb90c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3497538
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4349904b
|
2022-02-04T14:22:53
|
|
Add keying on backend to ANGLE Display caching.
Webkit needs to use one ANGLE display with OpenGL and another with
Metal. Our display caching is interfering with this, so it should
be updated to also key on the selected backend.
Bug: angleproject:6978
Change-Id: I9ec47a28e16646f5fc75956e3bd78236990cc392
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3440780
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
45237a04
|
2022-01-11T00:14:01
|
|
Metal: Fix undefined behavior of depth write
Writing to an unbound depth attachment is undefined behavior in Metal.
Fix this by emitting a function constant to guard depth buffer use
in fragment shaders.
Bug: angleproject:6865
Change-Id: Id7c10d0aeb349aacfe09c397bc292a71199ab50a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3380304
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
d6dd0cb5
|
2021-09-21T15:26:13
|
|
EGL: EGL_KHR_lock_surface3 backend
Add vulkan implementation
Add test: EGLLockSurface3Test
Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test
Bug: angleproject:6062
Change-Id: Id5bfe37895b550392d11e9e9cc1262c1f0288c42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174323
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9d49d843
|
2021-12-15T00:36:54
|
|
Add WebGLCompressedTextureAvailabilityTest
Acts as a regression test for https://crrev.com/c/3338624
Has been verified to catch the earlier error in the include guards.
Bug: angleproject:6809
Bug: chromium:1279908
Change-Id: I248aca46db26eea304044835ea35fc2400ed459d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3338748
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
f422f21a
|
2021-11-09T18:42:15
|
|
Reland "Metal: Reintroduce GPU power preference selection code."
This reverts commit 67a8cf07a740c5ce3aafd2ad7fddd370451b3525.
Reason for revert: Landed Chromium-side dependency:
https://chromium-review.googlesource.com/c/chromium/src/+/3271170
Original change's description:
> Revert "Metal: Reintroduce GPU power preference selection code."
>
> This reverts commit 017161701b7dbf70a13f3c180a39e1fa45c27d9f.
>
> Reason for revert: Blocking roller, please re-land with the fix.
>
> Original change's description:
> > Metal: Reintroduce GPU power preference selection code.
> >
> > This CL re-introduces the GPU power preference code to
> > the metal backend. It also reworks EGLDisplay caching
> > in the frontend to cache based on the native display
> > as well as the power preference attribute.
> > A new extension, EGL_ANGLE_display_power_preference is
> > added based on EGL_ANGLE_power_preference. This extension
> > is a client extension that allows selection of GPU on
> > display creation, similar to how GPUs are selected on
> > context creation in EGL_ANGLE_power_preference.
> > This CL adds EGLDisplayPowerPreferenceTest and enables it on
> > the metal backend.
> >
> > Bug: angleproject:6143
> > Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Reviewed-by: Gregg Tavares <gman@chromium.org>
> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
>
> TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:6143
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
# Not skipping CQ checks because this is a reland.
Bug: angleproject:6143
Change-Id: Id9b0a5cbb76e4dea9e2f2da2b1c47a0587dfdaf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270970
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
67a8cf07
|
2021-11-09T15:10:50
|
|
Revert "Metal: Reintroduce GPU power preference selection code."
This reverts commit 017161701b7dbf70a13f3c180a39e1fa45c27d9f.
Reason for revert: Blocking roller, please re-land with the fix.
Original change's description:
> Metal: Reintroduce GPU power preference selection code.
>
> This CL re-introduces the GPU power preference code to
> the metal backend. It also reworks EGLDisplay caching
> in the frontend to cache based on the native display
> as well as the power preference attribute.
> A new extension, EGL_ANGLE_display_power_preference is
> added based on EGL_ANGLE_power_preference. This extension
> is a client extension that allows selection of GPU on
> display creation, similar to how GPUs are selected on
> context creation in EGL_ANGLE_power_preference.
> This CL adds EGLDisplayPowerPreferenceTest and enables it on
> the metal backend.
>
> Bug: angleproject:6143
> Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Gregg Tavares <gman@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:6143
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
01716170
|
2021-10-14T13:24:41
|
|
Metal: Reintroduce GPU power preference selection code.
This CL re-introduces the GPU power preference code to
the metal backend. It also reworks EGLDisplay caching
in the frontend to cache based on the native display
as well as the power preference attribute.
A new extension, EGL_ANGLE_display_power_preference is
added based on EGL_ANGLE_power_preference. This extension
is a client extension that allows selection of GPU on
display creation, similar to how GPUs are selected on
context creation in EGL_ANGLE_power_preference.
This CL adds EGLDisplayPowerPreferenceTest and enables it on
the metal backend.
Bug: angleproject:6143
Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
7ef9ecf0
|
2021-10-15T14:38:03
|
|
Add GL_ANGLE_robust_fragment_shader_output.
This extension codifies expected behaviour on Android, where some
applications don't declare shader outputs that are active with the
Framebuffer.
Bug: angleproject:6566
Change-Id: I3538a0aca25b6567e4b11e40d4611f1b240579c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226724
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
23b16743
|
2021-09-14T10:29:14
|
|
Fix compilation when disabling D3D back-ends.
Common code areas weren't compiling when disabling combinations
of the D3D9 and D3D11 back-ends. With manual testing this fixes
various combinations of angle_enable_d3d9/d3d11/gl.
Bug: angleproject:5925
Change-Id: Ie14f2b4c6169cf96c662e7ae6999751007d9adb0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3162836
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
47279c72
|
2021-08-15T23:20:32
|
|
Adjust compressed texture validation; add test
- Format check happens before target check to accommodate
for unknown / disabled format enums.
- PVRTC1 and ETC1 enums are not allowed for 2D Array
and 3D targets.
- PVRTC1 sRGB formats require enabling two extensions.
- New noCompressedTexture3D limitation for older Metal
versions.
The test checks that only the appropriate entry points
are affected after enabling compressed texture extensions.
Bug: angleproject:5731, angleproject:6280
Change-Id: I4943cd3a82f60f9348215caa8639e0bc3e8b45db
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094018
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
460618ad
|
2021-08-20T18:34:10
|
|
Refactor EGLMultiThreadSteps.h -> MultiThreadSteps.h
The class ThreadSynchronization is very useful when synchronizing
multiple threads in ANGLE tests, so it's being moved from
egl_tests/EGLMultiThreadSteps.h to test_utils/MultiThreadSteps.h.
Bug: angleproject:5971
Change-Id: I5df469aa68b79cf72d95e0276f42ab33a091314e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3111887
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
d2b659f9
|
2021-03-25T15:40:58
|
|
EGL: implement EGL_EXT_protected_content Context
Add Validation check to Contexts and Surfaces
Add Vulkan protected memory features and properties
Add protected member to Surfaces and Contexts
Implement hasProtectedContent in Vulkan
Add QueueFamily helper, extent DeviceQueueMap
Protected Swapchains always on for Android
Add EGLProtectedContentTest
Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
Bug: angleproject:3965
Change-Id: I9352b1e594f71bb4e89cee7137a468940d186b1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800413
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
232e5236
|
2021-07-08T15:08:35
|
|
Remove the explicit context extension.
This extension currently has no known users and doubles the
number of entry points that ANGLE exports which is a significant
binary size cost.
This saves about 130kb of binary size on Android.
Bug: chromium:1084580
Change-Id: Ib0fc4930b38a33bd61434f7d0030ba9fb9b93ba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015518
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f2aa9d5d
|
2021-04-11T14:55:19
|
|
Reland: Metal: Support importing external metal textures
This relands I4d4a88cfbb77d8b7508b787c7fec44073d3b11b0.
Fixes:
- uninstantiated ImageTestMetal error
- failed ImageTest.ANGLEExtensionAvailability on ARM mac.
Bug: angleproject:5763
Bug: angleproject:5814
Change-Id: I906fe52baefd6be3c6e00f594795bd527df01616
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2820178
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
|
|
256100b2
|
2021-04-02T01:45:14
|
|
Revert "Metal: Support importing external metal textures"
This reverts commit 2ec3e0a1e6890da56de9dfd3da5c9f31a3f7fbb7.
Reason for revert: Test suite ImageTestMetal never instantiated https://anglebug.com/5814
Original change's description:
> Metal: Support importing external metal textures
>
> via KHR_image_base and ANGLE_metal_texture_client_buffer
>
> Bug: angleproject:5763
> Change-Id: I4d4a88cfbb77d8b7508b787c7fec44073d3b11b0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757811
> Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5763, angleproject:5814
Change-Id: Ia862aa37a6c914f6e21f9b3121c7c36d449475ea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2801155
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
2ec3e0a1
|
2021-03-13T22:17:49
|
|
Metal: Support importing external metal textures
via KHR_image_base and ANGLE_metal_texture_client_buffer
Bug: angleproject:5763
Change-Id: I4d4a88cfbb77d8b7508b787c7fec44073d3b11b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757811
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
90cf278c
|
2021-03-19T16:17:43
|
|
Add multi-thread/context test for compute shaders
The "Ragnarok M: Eternal Love" game uncovered a bug where 2 contexts
shared a VkCommandBuffer. The one context was used by one thread for
rendering, and the other context/thread dispatched compute shaders.
When the rendering thread destroyed a VkCommandBuffer, future compute
dispatches crashed because the new VkCommandBuffer didn't have a
compute pipeline bound.
Bug: b/181711029
Change-Id: I8bc85150c1c6202e02feb84a7ccc0ad7b9c39258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770681
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
92b5fccd
|
2021-03-02T08:43:18
|
|
Handle nullptr in GetQueryObjectParameter()
There are applications that disable validation using
EGL_CONTEXT_OPENGL_NO_ERROR_KHR extension. In such usecases
the GetQueryObjectParameter() method needs to account for the
possibility that the query object has not yet been created.
Bug: angleproject:5704
Tests: angle_end2end_tests --gtest_filter=QueryObjectTest*
Change-Id: Ib9e1cb32a6d64f2772124178223cf07cbb84691b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2729298
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
22fc9523
|
2021-02-03T15:32:48
|
|
EGL: implement EGL_EXT_buffer_age
Add extension flag.
Add Validation check to surface query.
Enable extension for vulkan.
Modify AcquireNextImage to ++frame count and tag images
with frame number.
Buffer age is the difference between current frame count
and the tagged frame number on the buffer.
getBuffeAge may need to trigger AcquireNextImage to be current.
Pass through egl extension and query.
Add EGLBufferAgeTest
Test: angle_end2end_test --gtest_filter=EGLBufferAgeTest
Test: angle_deqp_egl_tests
--deqp-case=dEQP-EGL.functional.buffer_age.*
Bug: angleproject:3529
Change-Id: I0cb94be1c3e85d6f33e82a6a1ccdc9731b6a7f23
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2684724
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
436b43a6
|
2021-02-16T14:28:06
|
|
Add comprehensive memory barrier tests
Optimizing glMemoryBarrier can get very tricky. This change adds tests
for every glMemoryBarrier bit in different scenarios for a total of
about 1500 tests. With the current implementation, there are no syncval
errors running these tests.
Bug: angleproject:5070
Change-Id: I5358bfeed84f586a67c90ba5ab0fe624db6820b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2698288
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
907a3cee
|
2021-02-17T08:07:45
|
|
Vulkan: Add support for EXT_shader_framebuffer_fetch_non_coherent
EXT_shader_framebuffer_fetch_non_coherent is implemented using subpass
input attachments. The extension will be enabled in a follow up change
that adds required changes to the Vulkan translator.
Bug: angleproject:5454
Test: FramebufferFetchNonCoherentES31.*Vulkan
Change-Id: Ic73c66a476c4a21db5269431166a198841f1dc0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2598059
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
807d1ad7
|
2021-02-10T23:30:56
|
|
Metal: fix incorrect default viewport size with contentsScale>1
The correct metal layer's drawable size should be calculated after
mMetalLayer.get().contentsScale is set during initialization to allow
initial viewport to be computed properly on front-end side.
Bug: angleproject:2634
Change-Id: If278f40c0b6800bbe12fb5ea94986f728381bc00
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2687300
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ccd0b7e1
|
2020-11-30T08:37:04
|
|
Add support for OES_framebuffer_object extension
Expose OES_framebuffer_object extension for GLES1 contexts.
Bug: angleproject:5401
Test: FramebufferObjectTest*
Change-Id: I63b504f580cdab4655b4bfbd3438bcd807b422ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561795
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f197ebac
|
2020-11-16T15:16:56
|
|
Vulkan: Add EXT_external_buffer support
Addition of buffer support for external memory
Also adds new end2end tests for these usecases
* SubData update
* map/unmap buffer
* dispatch compute with external buffer
Bug: angleproject:5073
Test: ExternalBufferTestES31.*Vulkan
Change-Id: Ib3cccaca77b76830effe49d3731782552e7424ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2525105
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9e3eec54
|
2020-10-25T15:44:09
|
|
Revert "Vulkan: Make DescriptorPoolHelper a Resource"
This reverts commit 5dcd29a6e532e4bd617af8767d488120b57f3b2c.
Reason for revert: Breaking the ANGLE -> Chromium roller:
https://chromium-review.googlesource.com/c/chromium/src/+/2496281
Original change's description:
> Vulkan: Make DescriptorPoolHelper a Resource
>
> Descriptor pools need to live as long as the descriptor sets that are
> allocated from them. Using Serials while building a command to judge a
> pool's lifetime is prone to errors, since a command's Serial value
> isn't known until the command is submitted, leading to deleting pools
> too early relative to when the descriptor set is actually used.
>
> This CL updates DescriptorPoolHelper to inherit from Resource, so the
> descriptor pools can be retain()'ed. This allows the Resource's counter
> to indicate that a pool is in use until the command's Serial is known
> and can be recorded to indicate when the command completes. This
> prevents descriptor pools from being destroyed before the command
> completes (while the descriptor sets are still in use), or even before
> the command has been submitted. Destroying a descriptor pool resets all
> of the descriptors that were allocated from it, which can trigger a
> variety of VVL errors depending on when it's erroneously performed.
>
> This CL also adds the necessary retain() calls for the descriptor pools.
> In particular, the pools need to be retained each time a cached
> descriptor set that was allocated from it is re-used. This is relatively
> simple with the current design, since we always clear the descriptor set
> caches whenever a new pool is allocated, so the descriptor pool binding
> is always accurate.
>
> Bug: angleproject:5030
> Test: MultithreadingTest::MultiContextDrawSmallDescriptorPools()
> Change-Id: I5fdeeb46159448dfd679d7169e423048348be5ab
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437609
> Commit-Queue: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
TBR=courtneygo@google.com,timvp@google.com,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:5030
Change-Id: I0fd6d9a0e1b0989b22368ef98652281288699deb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2497222
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5dcd29a6
|
2020-09-29T14:15:51
|
|
Vulkan: Make DescriptorPoolHelper a Resource
Descriptor pools need to live as long as the descriptor sets that are
allocated from them. Using Serials while building a command to judge a
pool's lifetime is prone to errors, since a command's Serial value
isn't known until the command is submitted, leading to deleting pools
too early relative to when the descriptor set is actually used.
This CL updates DescriptorPoolHelper to inherit from Resource, so the
descriptor pools can be retain()'ed. This allows the Resource's counter
to indicate that a pool is in use until the command's Serial is known
and can be recorded to indicate when the command completes. This
prevents descriptor pools from being destroyed before the command
completes (while the descriptor sets are still in use), or even before
the command has been submitted. Destroying a descriptor pool resets all
of the descriptors that were allocated from it, which can trigger a
variety of VVL errors depending on when it's erroneously performed.
This CL also adds the necessary retain() calls for the descriptor pools.
In particular, the pools need to be retained each time a cached
descriptor set that was allocated from it is re-used. This is relatively
simple with the current design, since we always clear the descriptor set
caches whenever a new pool is allocated, so the descriptor pool binding
is always accurate.
Bug: angleproject:5030
Test: MultithreadingTest::MultiContextDrawSmallDescriptorPools()
Change-Id: I5fdeeb46159448dfd679d7169e423048348be5ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437609
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
089ef0fa
|
2020-10-14T11:31:56
|
|
Expose glGetTexLevelParameter{if}v before ES 3.1.
Add a new extension, ANGLE_get_tex_level_parameter which allows
users to query texture size and format information before ES 3.1.
This is very useful for re-using existing textures instead of
re-allocating.
Bug: chromium:1132514
Change-Id: I71f6bad8bdacb91875cc81b4884d4c3099235f3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2469959
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e815afbf
|
2020-09-07T22:09:22
|
|
First pass at increasing inclusivity
Link to the inclusivity rules
https://source.android.com/setup/contribute/respectful-code
Bug: b/162834212
Bug: chromium:1097198
Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
|
|
ed01473e
|
2020-09-12T13:01:05
|
|
Vulkan: Fix blendEnable-02023 VU
Enable BlendIntegerTest
Add DrawBuffersTest.BlendWithGaps test
Add BlendPackedTest
Bug: angleproject:4548
Bug: angleproject:4571
Bug: angleproject:4583
Change-Id: I139183099b26f0fe1ac9e43f96d18b8ccb134a2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2407772
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6eeb3d8b
|
2020-08-07T16:09:53
|
|
Support DXT textures with non-block sized mip levels.
The block size requirement for each mip level meant that all
DXT textures had to be POT sized. Relax these restrictions for
non-zero mip levels to allow NPOT DXT textures.
Increase the size of the D3D11 staging textures to the nearest
block size to make sure allocation succeeds.
Bug: angleproject:4841
Change-Id: I42fa295a0965241d77f81e57b17454091fda9376
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2380237
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3a3d419d
|
2020-08-04T09:06:01
|
|
Reference count context to fix ASAN issues
Running with ASAN there are several use after free issues because a
eglDestroyContext destroys the context right away even though it's in
use in other thread(s). Adding reference count to context so that it's
not destroyed until all users are done using it.
Bug: b/162609728
Change-Id: I00b24b53d760e38ff61dd9ce652a49b1f32f0cd2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2336447
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
89c88559
|
2020-06-20T11:13:57
|
|
Add end2end test for readonly feedbackloop
Bug: angleproject:4778
Test: ./angle_end2end_tests --gtest_filter=ReadOnlyFeedbackLoopTest*
Change-Id: I1c2500395d261c1686e5d325aad173462311c8c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252543
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
6f568b08
|
2020-06-16T11:55:39
|
|
Split/refactor the pre-rotation BlitFramebuffer tests
Making several, smaller, more-focused tests will aid in debugging
problems.
Bug: b/158337857
Change-Id: I3d1efd93a5ad7cd20352174a07f3547175eb2bb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2248201
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
4e6f6545
|
2020-04-16T16:31:24
|
|
GLX: Support X11 pixmaps
Add support for creating EGL pixmaps from X11 pixmaps using GLX.
Pixmaps are needed for various external APIs such as VAAPI.
Add support for EGL_NOK_texture_from_pixmap to allow binding
pixmaps to textures.
BUG=angleproject:4560
Change-Id: I4a6d3ad7e87151ff5317bbdaaf093ac1b46daf5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2153805
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4f343f3e
|
2020-05-13T14:11:51
|
|
Reland "Add support for GL_CHROMIUM_texture_filtering"
This is a reland of 38780ae3921d2570316119a881adfb9520e7e296 modulo the
changes to disable VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT, as
this was causing problems. With this landed, the extension will not work
on SwiftShader until we find a way to allow this extension through the
validation layers.
Bug: b/146423360
Bug: b/154620295
Change-Id: Ie09fc507c01a47be3bb227bc78771660170ba5d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2199639
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
99db3471
|
2020-05-13T18:50:51
|
|
Unset the ActiveTextureCache entry if the program does not reference it
When changing uniforms of a program, State::onActiveTextureChange is
called to update the ActiveTextureCache. If the sampler uniform type
changes to TextureType::InvalidEnum, the entry in ActiveTextureCache was
not cleared. This causes stale entries in ActiveTextureCache because the
cache no longer matches what textures are bound and the cache does not
add references to the textures in it.
BUG=chromium:1078375
BUG=chromium:1072406
BUG=chromium:1078866
Change-Id: If9719dcd4fc865b2301db450eb8115e7cfe46c4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2199654
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3b82fdcf
|
2020-05-12T23:44:07
|
|
Revert "Add support for GL_CHROMIUM_texture_filtering"
This reverts commit 38780ae3921d2570316119a881adfb9520e7e296.
Reason for revert:
Breaks SWANGLE-VK:
05-12 23:42:28.612 22836 22861 D libEGL : dlopen_ext from APK (libEGL_angle.so) success at 0x79f4485a10
05-12 23:42:28.617 22836 22861 D libEGL : dlopen_ext from APK (libGLESv1_CM_angle.so) success at 0x79f4485eb0
05-12 23:42:28.619 22836 22861 D libEGL : dlopen_ext from APK (libGLESv2_angle.so) success at 0x79f4485c60
05-12 23:42:28.624 14223 14223 D StatusBar: disable<e i a s b h r c s > disable2<q i n >
05-12 23:42:28.633 14014 14057 V DisplayPowerController: Brightness [0.19986142] reason changing to: 'automatic', previous reason: 'automatic [ dim ]'.
05-12 23:42:28.635 22836 22861 D vulkan : searching for layers in '/data/app/~~0AfWfBsFEO78tqKlnanevg==/org.khronos.gl_cts-NOs3SGclHqlbcqe-08gHrw==/lib/arm64'
05-12 23:42:28.635 22836 22861 D vulkan : searching for layers in '/data/app/~~0AfWfBsFEO78tqKlnanevg==/org.khronos.gl_cts-NOs3SGclHqlbcqe-08gHrw==/base.apk!/lib/arm64-v8a'
05-12 23:42:28.632 22836 22836 W .khronos.gl_cts: type=1400 audit(0.0:218): avc: denied { ptrace } for scontext=u:r:zygote:s0 tcontext=u:r:untrusted_app_25:s0:c512,c768 tclass=process permissive=0 b/77925912 app=org.khronos.gl_cts
05-12 23:42:28.636 14014 14034 I EventSequenceValidator: Transition from ACTIVITY_LAUNCHED to ACTIVITY_FINISHED
05-12 23:42:28.637 22836 22861 F SwiftShader: external/swiftshader/src/Vulkan/libVulkan.cpp:425 vkCreateInstance TRACE_ASSERT: pCreateInfo->pNext sType = 1000247000
--------- beginning of crash
05-12 23:42:28.637 22836 22861 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 22861 (.khronos.gl_cts), pid 22836 (.khronos.gl_cts)
Original change's description:
> Add support for GL_CHROMIUM_texture_filtering
>
> Chromium enables a custom extension, GL_CHROMIUM_texture_filtering, when
> using SwiftShaderGL, to enable high precision filtering. This change
> makes it so ANGLE also handles this same extension when using the
> SwiftShaderVK backend, by enabling the new
> VK_GOOGLE_sampler_filtering_precision custom extension.
>
> Bug: b/146423360
> Bug: b/154620295
> Change-Id: I69cafc1ccf5970a3d220ac7e13ec3c8fdd4a9643
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185822
> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,amaiorano@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: b/146423360, b/154620295
Change-Id: I803d7a7baac81cf178b59c4bf2789346ec1d3f87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197168
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
38780ae3
|
2020-05-06T16:05:02
|
|
Add support for GL_CHROMIUM_texture_filtering
Chromium enables a custom extension, GL_CHROMIUM_texture_filtering, when
using SwiftShaderGL, to enable high precision filtering. This change
makes it so ANGLE also handles this same extension when using the
SwiftShaderVK backend, by enabling the new
VK_GOOGLE_sampler_filtering_precision custom extension.
Bug: b/146423360
Bug: b/154620295
Change-Id: I69cafc1ccf5970a3d220ac7e13ec3c8fdd4a9643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2185822
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a2ec926c
|
2020-01-02T19:07:38
|
|
Specify LUID in D3D11
Add an extension to provide the ability to specify the LUID of the
GPU adapter to use when using D3D11.
Corresponding chromium CL:
https://chromium-review.googlesource.com/c/chromium/src/+/2096778
Bug: chromium:792657
Change-Id: Iefebea221a4b7a20f150b445ae1adf375444726d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096663
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
dadd1986
|
2020-04-21T01:50:00
|
|
Implement GL_APPLE_clip_distance
- Built-in variable gl_ClipDistance has been added to compiler.
- Desktop GL: gl_ClipDistance is supported since GL 3.0. Enable/Disable
each gl_ClipDistances[i] works out of the box via glEnable().
- Vulkan/Metal: Use uniform variable to control writing to each
gl_ClipDistance. One bit flag controls one element in the gl_ClipDistance
array. The writing to the disabled element in vertex shader will be
ignored, and turned into zero assignment instead.
- Direct3D/Mobile GL: Not implemented yet.
- Added ClipDistanceTest to gl_tests and compiler unittests.
- GL_APPLE_clip_distance is a subset of GL_EXT_clip_cull_distance, so
GL_EXT_clip_cull_distance could be implemented in future if needed.
Bug: angleproject:4452
Change-Id: I571ac8b56826989808a680226a04bec4cf59988e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2084324
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d26fb99e
|
2020-04-10T16:04:26
|
|
Add DrawBaseVertexVariants Tests
This tests different DrawElements*BaseVertex draw calls
from different extensions including OES_draw_elements_base_vertex,
EXT_draw_elements_base_vertex, and ANGLE_base_vertex_base_instance,
with various combinations of base vertex, base index values.
Bug: angleproject:4536
Change-Id: I3cd256522684c6040199d7704aac8575237dbd96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2146292
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
c12c1f57
|
2020-04-03T01:33:54
|
|
D3D11: Skip setting BlendState for integer attachments
Some D3D11 drivers may produce unexpected results when blending is
apllied to integer attachments.
Minor cleanup: early exit for nullptr attachments.
New BlendIntegerTest in angle_end2end.
Bug: angleproject:4548, angleproject:4547, angleproject:4525, angleproject:4394
Change-Id: I236ac6db1f8dcaca54e9bc1b0803e1775fd75632
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134448
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
96c26c68
|
2020-04-03T07:52:52
|
|
Add support for NV_shader_noperspective_interpolation
Added support for GL_NV_shader_noperspective_interpolation on
the Vulkan and Desktop OpenGL backends
Bug: angleproject:4388
Test: angle_end2end_tests --gtest_filter=ShaderInterpTest.NoPerspective/*
Change-Id: I12473830c0ea8b4fffeae9c4a8ec92d979c8e18c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2107234
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ca2b6e1f
|
2020-03-19T16:30:21
|
|
Vulkan: Implement EXT_shader_non_constant_global_initializers
Enables the translator to handle non-constant global initializers in
all essl versions iff the shader enables the extension to do so.
Bug: angleproject:4468
Test: angle_end2end_tests --gtest_filter=ShaderNonConstGlobalInitializerTest.*
Change-Id: I8f138c12fc83d2f38ff8f45ca9133222b01e4087
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2102959
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
07467b4a
|
2020-03-20T10:40:56
|
|
Remove GL_CHROMIUM_path_rendering
Bug: chromium:1063193
Bug: angleproject:4270
Change-Id: I35b24b7d8d892181955e49dd2495655bc57cb0df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2112275
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
62b72552
|
2020-03-20T07:51:26
|
|
Add support for EXT_EGL_image_external_wrap_modes
Allows for more wrap modes to TEXTURE_EXTERNAL_OES textures
Test: angle_end2end_tests --gtest_filter=ExternalWrapTest.*
Bug: angleproject:4443
Change-Id: I37bde091b166d7471c13c14fd6b0174136b52ecf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103433
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5df2c9ea
|
2020-03-15T17:28:43
|
|
Refactor ANGLE common test utils.
This reduces code duplication by including a common set of sources in a
single place. New test sets will be a bit easier to add. It also
encapsulates the dependencies a bit better when we pull the test utils
out of the test targets.
Unblocks a follow-up CL that moves the trace perf test sources into
their own file so we can re-enable optimizations in the main perf test
target.
New warnings popped up in a few of the files because of the new source
set enabling more warnings. This CL also fixes all of those.
Bug: angleproject:3630
Change-Id: Ic30cb30fb4288c4dbbbd29f9bdf04be51e8a6b30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103083
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a8c947c7
|
2020-02-06T08:53:16
|
|
Enabled GL_KHR_no_error
Enabled GL_KHR_no_error added end2end tests for it
Note that GL_KHR_no_error can only be enabled by setting the EGL
attribute currently. Context flags are not currently supported.
Bug: angleproject:1280
Test: angle_end2end_tests --gtest_filter=ContextNoErrorTest.*
Change-Id: Ib5c73b8e284e3e4e5f800750ad6fcbef77be4285
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068899
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6c56c579
|
2020-01-21T11:08:36
|
|
Add Android boot animation and rounding error test
This introduces an end2end test that makes the same GLES1
calls as Android's default boot animation. The test uses
images of much smaller sizes, but we do the same thing
with the images as the original code (it uses one image as a
mask and moves the other along behind it).
The original default boot animation code can be found here:
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/cmds/bootanimation/BootAnimation.cpp#422
This change also implements glTexParameterx since the default boot
animation requires it. This function is part of OES_FIXED_POINT.
This also includes a test to check for int to floating point cast errors
when using GL_TEXTURE_CROP_RECT_OES.
Tests: angle_end2end_tests --gtest_filter=*DefaultBootAnimation*
angle_end2end_tests
--gtest_filter=*TextureParameterTest.IntConversionsAndIntBounds*
Bug: angleproject:3644
Change-Id: Ib7e99c9dc1c001c71543d03ea4dd76082192f6a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2053506
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|