|
da572160
|
2024-07-23T16:36:10
|
|
Reland: GL: Forward client-side arrays to the driver when possible
The OpenGL driver can handle client-side arrays when the context is
OpenGL ES or a desktop GL compatibility profile. When in these
situations, use the driver default VAO for all frontend context VAOs
and forward client-side data directly to the driver.
Fix synchronizing the default VAO state for external contexts. There
is no valid VertexArrayStateGL for external VAOs so make sure it's
nulled and the VAO dirty bits are set so the correct VAO state is
reapplied.
Disable syncing to the default VAO for external contexts. The only
VAO that they can share with ANGLE's internal state is the default
VAO so avoid having to save and restore its state.
Bug: angleproject:355034686
Change-Id: I015bbbc854938fe4bc1e92d0ca8fe04628d0db16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5743284
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a0a832de
|
2024-07-26T12:33:37
|
|
Revert "GL: Forward client-side arrays to the driver when possible"
This reverts commit a6c2b4346516f228054b5bdd754bbc6f3ba1cba7.
Reason for revert: Fails some Chrome tests on Android after rolling: https://chromium-review.googlesource.com/c/chromium/src/+/5742024
Original change's description:
> GL: Forward client-side arrays to the driver when possible
>
> The OpenGL dirver can handle client-side arrays when the context is
> OpenGL ES or a desktop GL compatability profile. When in these
> sitatuions, use the driver default VAO for all frontend context VAOs
> and forward client-side data directly to the driver.
>
> Bug: angleproject:355034868
> Change-Id: I21a4459c4f7db780b51441d76e63d17bf737c101
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736058
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:355034868
Change-Id: I76f95d66ca277bcbb67300179e49287b433c1ede
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5742647
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
a6c2b434
|
2024-07-23T16:36:10
|
|
GL: Forward client-side arrays to the driver when possible
The OpenGL dirver can handle client-side arrays when the context is
OpenGL ES or a desktop GL compatability profile. When in these
sitatuions, use the driver default VAO for all frontend context VAOs
and forward client-side data directly to the driver.
Bug: angleproject:355034868
Change-Id: I21a4459c4f7db780b51441d76e63d17bf737c101
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736058
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
84c77437
|
2024-07-15T16:41:17
|
|
GL: Disable GL_KHR_blend_equation_advanced on various devices
Intel desktop OpenGL drivers fail tests for advanced blend. Skia also
disables usage of this extension on Intel drivers.
Disable on older Qualcomm and ARM devices following Skia's blocklists.
Bug: angleproject:42267098
Change-Id: I7642017d06e11ad0651fba6f1ec5cc3f589700ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5709950
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
fcf3a1c0
|
2024-07-02T16:33:28
|
|
GL: Allow shader compilation with cached translated source
Write the translated shader source when serializing shaders. This does
not increase the size of the shader cache because Vulkan only uses the
compiledBinary field.
Spawn a ShaderTranslateTask for loading shaders so the GL backend can
compile the shader on the native driver.
Bug: angleproject:350779978
Change-Id: I14413a7ca2a0d99653a1082f2c8b4a94cf58626a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5672740
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b6456334
|
2024-04-02T15:03:17
|
|
Reland: GL: Support KHR_blend_equation_advanced
Combine blend equation setting when they are equal. It is invalid to
set advanced blend equations for color/alpha separately.
Emit blend equation layout qualifiers.
This is an unchanged reland of
https://chromium-review.googlesource.com/c/angle/angle/+/5415033
and depends on a GL dispatch table fix in
https://chromium-review.googlesource.com/c/angle/angle/+/5670963
Bug: angleproject:42267098
Change-Id: Id669cf98ec2b7d46eab174717964f8d6daf88b29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5659200
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0ccc018e
|
2024-06-20T10:20:08
|
|
Reland GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm
Track if the output location and index came from a layout qualifier
or from a call to glBindFragDataLocation[Indexed] and only call
glBindFragDataLocationIndexed in the latter case. Re-binding a
location that was already specified in the shader is not allowed.
Qualcomm can fail when trying to bind locations using the API when
the output variable is an array or uses a non-zero index. Only
call glBindFragDataLocationIndexed when the user specifically uses
it to avoid failed links when all outputs should be implcitly
assigned.
Assign the ProgramOutput::pod::index field when doing output assignment
to mirror how the location is assigned.
Bug: angleproject:42267082
Change-Id: I72cdb73dd4c5edea4ad1229ca75c0c7926344d1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5645123
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
48969c95
|
2024-05-31T16:34:07
|
|
GL: Implement QCOM_tiled_rendering
Bug: angleproject:343900918
Change-Id: I01612e11795d7aa8ee20f6e9bd5ef62fe40e2910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588630
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3be15cb0
|
2024-06-21T13:52:20
|
|
GL: Limit uniform block size to 64KB
This change works around an inefficiency in ANGLE when the uniform block
has a large size. That will be fixed in a follow up, but in the
meantime this clamping makes ANGLE more uniform on different vendors
(most of which expose this limit as 64KB already). This also aligns
with the strategy adopted by the Vulkan backend.
Bug: angleproject:346561003
Change-Id: Id23a1f1bbbc1c7224c432d5bee1c4989ff2c92b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5645627
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e3087128
|
2024-06-19T17:44:52
|
|
Tighten FixedVector access asserts
FixedVector has a size(), the out-of-bounds check is made tighter to
make sure elements beyond size() (but still within the static array) are
not accessed.
Bug: angleproject:42267038
Change-Id: I46decb4262207bd7f1446e257e7196768345a4fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5639342
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
800ca8d3
|
2024-06-19T21:04:11
|
|
Revert "GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm"
This reverts commit e768aed37e77dfcba0fe8ec7027348ade2069c85.
Reason for revert: Breaks WebGL tests.
Original change's description:
> GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm
>
> Track if the output location and index came from a layout qualifier
> or from a call to glBindFragDataLocation[Indexed] and only call
> glBindFragDataLocationIndexed in the latter case. Re-binding a
> location that was already specified in the shader is not allowed.
>
> Qualcomm fails to bind any location that is not specified with a
> layout qualifier. Skip tests that do this behaviour and log warnings
> that the driver is unable to handle this case.
>
> Assign the ProgramOutput::pod::index field when doing output assignment
> to mirror how the location is assigned.
>
> Bug: angleproject:42267082
> Change-Id: Icdf83bb93f63a6375b5a6062690e53905c9ffe71
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415796
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:42267082
Change-Id: Ifb866878aa6489b809ba6db4152ea5942274dc45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5641895
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
92148c2c
|
2024-06-17T11:13:46
|
|
GL: Implement GL_EXT_clear_texture.
This extension is useful because it allows clearing textures without
changing the framebuffer. Chrome uses this on Android when it's
available.
Bug: angleproject:347047859
Change-Id: I765d9991c4549b3655446d9f51847d1095792dbd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5631810
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1160fda7
|
2024-06-17T15:27:28
|
|
GL: Re-enable sRGB and BGRA8 extensions
GL_EXT_sRGB_write_control and GL_EXT_texture_format_BGRA8888 were
disabled on all of Android as a workaround for Nexus5X driver bugs.
Scope the disablement to Qualcomm only.
Bug: angleproject:347724909
Change-Id: I99d55ee12a98c1b46613be4aa92e92a0e576a82b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637249
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e768aed3
|
2024-05-28T15:45:50
|
|
GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm
Track if the output location and index came from a layout qualifier
or from a call to glBindFragDataLocation[Indexed] and only call
glBindFragDataLocationIndexed in the latter case. Re-binding a
location that was already specified in the shader is not allowed.
Qualcomm fails to bind any location that is not specified with a
layout qualifier. Skip tests that do this behaviour and log warnings
that the driver is unable to handle this case.
Assign the ProgramOutput::pod::index field when doing output assignment
to mirror how the location is assigned.
Bug: angleproject:42267082
Change-Id: Icdf83bb93f63a6375b5a6062690e53905c9ffe71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415796
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d193d51b
|
2024-06-17T22:46:08
|
|
Replace issue ids post migration to new issue tracker
This change replaces anglebug.com/NNNN links.
Bug: None
Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
60e8ea7e
|
2024-06-14T10:27:03
|
|
GL: Don't sync redundant texture state.
TextureGL::syncState would always update the state if a dirty bit was
set even if that state was already applied. This exposed some driver
bugs such as IMG crashes when setting the border color on too many
textures.
Bug: angleproject:347186590
Change-Id: I81c2403043b389a2ad3cfe5a3461e3b6cdbc9a5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5634131
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
25374c90
|
2024-05-31T16:08:58
|
|
Implement OES_gpu_shader5
Based on the specs, there is no difference between the OES version
and the EXT version.
* Added support for use in shaders
* Added test to make sure the OES extension works.
* Turned the repeated test code into a function:
* testArrayOfArrayOfSamplerDynamicIndex()
Bug: b/344031022
Change-Id: Ifda4fa5495983d254f598940a95d0797e8a9ce67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5595609
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
1db5581d
|
2024-05-21T13:07:44
|
|
Implement KHR_robustness
* Added implementation for the validation layers for the
added functions, and updated some of the existing ones.
* The core functions require GLES 3.2.
* The KHR functions have been limited to GLES 2.0+.
* KHR_robustness requires GLES 2.0 and removes support
for GLES 1.1 for logistical reasons.
* Some functions require GLES 3.0 with this extension, which become
core in GLES 3.2.
* glGetnUniformuivKHR()
* Enabled robustnessKHR on several platforms.
* Added unit tests similar to ContextLostTest.BasicUsage for the new
cases.
* Added ContextLostTestES32 for the core usage in GLES 3.2.
Bug: angleproject:42262244
Change-Id: Id1425c39d9a1a66ae1a90048b673cb1ae391c0ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5555985
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
392eca60
|
2024-04-10T15:36:07
|
|
Revert "GL: Support KHR_blend_equation_advanced"
This reverts commit c632fae01ced6712d31c4665288eb306a980fb10.
Reason for revert: Crashes on a few different devices.
Bug: chromium:40277080, chromium:333443447
Original change's description:
> GL: Support KHR_blend_equation_advanced
>
> Combine blend equation setting when they are equal. It is invalid to
> set advanced blend equations for color/alpha separately.
>
> Emit blend equation layout qualifiers.
>
> Bug: angleproject:8660
> Change-Id: I1d8a88594c80027b564eed70d3b540e0b065968d
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415033
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Bug: angleproject:8660
Change-Id: I27ac64c7343831e42f5412d6c17facd0de8cd9e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5443404
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c632fae0
|
2024-04-02T15:03:17
|
|
GL: Support KHR_blend_equation_advanced
Combine blend equation setting when they are equal. It is invalid to
set advanced blend equations for color/alpha separately.
Emit blend equation layout qualifiers.
Bug: angleproject:8660
Change-Id: I1d8a88594c80027b564eed70d3b540e0b065968d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415033
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
64cfbb68
|
2024-04-02T13:22:09
|
|
GL: Fix MultisampledRenderToTexture tests and expectations
Some MSRTT tests were failing on the GL backend due to exact GL_EQUAL
depth tests, others were marked as skipped on all of Android due to old
device issues.
Update the Android expectations for these tests.
Bug: angleproject:8642
Change-Id: I2aad2637773967102a6172fd0a8ae2cb58a420ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5413775
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
|
|
c3fdc811
|
2024-03-14T14:20:43
|
|
Raise the WebGL texture size limit on Android >= 14
The previous limit of 4096 is overly restrictive for newer devices
that can have screen sizes close to or greater than 4096.
Bug: angleproject:8611
Change-Id: If453b7e0c6e2af218b65a631821b441330a50b69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5370399
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
74af31ad
|
2024-02-28T00:00:00
|
|
GL: Add ClearsWithGapsNeedFlush workaround
Enabled on older Adreno drivers to avoid
clear/draw race conditions in certain cases.
Fixed: angleproject:8374
Change-Id: Ifc30f66ece562027ae4dd7672fcb121f91ec4696
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5335662
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c758dc03
|
2024-02-22T00:00:00
|
|
GL: Adjust disableRenderSnorm condition
The extension support for OpenGL ES
contexts has been fixed in Mesa 23.3.0.
Bug: angleproject:8315
Change-Id: I86f767fe24a2fa0c5f999969a29f52225ff1c4d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5321520
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b7bacdb7
|
2024-02-15T11:14:21
|
|
GL: Generate mipmaps through draw calls on Pixel7/Pixel8.
Some patterns that use a texture as a framebuffer attachment and then
generate mipmaps on that texture multiple times cause context loss or
driver hangs.
Extend the sRGB mipmap generation to also generate mipmaps on non-SRGB
textures using draw calls and linear samplers to do the downsampling.
Bug: chromium:40279678
Change-Id: I19c6bf9c702ddf2c400ef03ff076fbd4cf15d285
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5297413
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
edcfab40
|
2023-11-23T00:00:00
|
|
Metal: Implement textureCubeGrad transformation for AGX
Wrapped all affected built-in function calls
with helpers that transform derivative values.
Fixed all *.texturegrad.* dEQP failures on Apple silicon.
Fixed: angleproject:7021
Fixed: angleproject:8433
Change-Id: I16b023840ad267ab72d31fde3cb0fa7048e5310c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5071254
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a982e241
|
2023-11-01T10:11:09
|
|
renderergl_utils: check strings from glGetString for nullptr
Return empty string instead. It is not valid to construct
std::string or perform sscanf on a nullptr.
Bug: chromium:1498447, chromium:1408916
Change-Id: Iae1f2fdb1c2dfc80597aa0a6008c50d7cda33527
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4411066
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
90278ecf
|
2023-11-09T00:00:00
|
|
GL: Support polygon mode extensions on OpenGL ES
Expose NV_polygon_mode and ANGLE_polygon_mode
when the native OpenGL ES driver supports the
required functionality.
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I6a273640b5ef38e79e5d11f313cb90a9c79d0485
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5023849
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e7ce481f
|
2023-11-01T22:44:22
|
|
Consolidate parallel compilation in front-end
This cleans up the multiple compilation task implementations in the
backends and consolidates them in the front-end. The front-end is then
able to do the compilation in an unlocked tail call instead if
desired (in a future change).
This change is in preparation for having the program link tasks directly
wait on the shader compilation tasks. As a result, the "shader resolve"
should not be needed to access the shader compilation results; it should
be enough to wait for the compilation job. This change therefore moves
post-processing of results to the compilation job itself as they did not
need to actually be done after compilation is done (merely after
translation is done). As a side effect, shader substition and other
debug features should now work for the GL backend as they are now done
before back-end compilation.
Bug: angleproject:8297
Change-Id: Ib9274b1149fadca7545956a864d6635b6cba5c3a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994655
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3b555e8d
|
2023-10-26T00:00:00
|
|
GL: Add emulateClipOrigin workaround
Older Adreno drivers apply GL_CLIP_ORIGIN_EXT
to the framebuffer instead of the clip space,
thus causing various side-effects.
Used a uniform to emulate the correct behavior.
Drive-by:
* Fixed a typo in ClipControlTest.OriginFrontFacing
Fixed: angleproject:8392
Change-Id: I2f7145977ab0e11dc88e8dbfec2cd32c4c31f830
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4987326
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
6258acae
|
2023-10-19T00:00:00
|
|
GL: Add resyncDepthRangeOnClipControl workaround
Some drivers do not apply GL_CLIP_ORIGIN_EXT and
GL_CLIP_DEPTH_MODE_EXT state changes until other
transformation states are updated.
As a workaround, force-resync the depth range on
clip control updates.
Fixed: angleproject:8381
Change-Id: I26f95108e9419be30ea0b562e02ab4bae78f65bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4966525
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
25bfe035
|
2023-09-07T00:00:00
|
|
GL: Adjust disableTextureMirrorClampToEdge condition
The extension support has
been fixed in Mesa 23.1.7.
Fixed: angleproject:8319
Change-Id: Ie83dee83773823dad90826267040e40b6f296c53
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4901182
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
97a48912
|
2023-09-26T10:31:58
|
|
Turn is-link-thread-safe feature into a positive condition
Chrome's --disable-gpu-driver-bug-workarounds currently sets every
feature to false, which breaks the GL backend.
Bug: angleproject:8297
Change-Id: I284d0699e356d7c1a362eb992cdc0d052f9ea7c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4887598
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
68bfa1ed
|
2023-08-22T22:02:15
|
|
Support for link to be entirely parallelized
The link job is split as such:
- Front-end link
- Back-end link
- Independent back-end link subtasks (typically native driver compile
jobs)
- Post-link finalization
Each step depends on the previous. These steps are executed as such:
1. Program::link calls into ProgramImpl::link
- ProgramImpl::link runs whatever needs the Context, such as releasing
resources
- ProgramImpl::link returns a LinkTask
2. Program::link implements a closure that calls the front-end link and
passes the results to the backend's LinkTask.
3. The LinkTask potentially returns a set of LinkSubTasks to be
scheduled by the worker pool
4. Once the link is resolved, the post-link finalization is run
In the above, steps 1 and 4 are done under the share group lock. Steps
2 and 3 can be done in threads or without holding the share group lock
if the backend supports it. Step 2 is not yet made independent of the
Context on some backends, and a frontend feature is used to make that
step either run on the main thread or as a worker thread.
Bug: angleproject:8297
Change-Id: I12f1e6bbaf365543dfcac969e166e0b5aa622104
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4808191
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8a7ad933
|
2023-09-13T15:11:46
|
|
Revert "Make egl surface uncurrent when being destroyed"
This reverts commit 497440cdcb7d2ee59bca612dd07fc13cf09a6a57.
Reason for revert: this caused chromium webview tests failures: https://chromium-review.googlesource.com/c/chromium/src/+/4860891.
Original change's description:
> Make egl surface uncurrent when being destroyed
>
> This is to workaround errors when app does below behaviors:
>
> 1) while there is a context still bound to the current
> rendering thread and the surface, call eglDestroySurface()
> 2) create a new surface eglCreateWindowSurface()
> 3) call eglMakeCurrent() with the surface created in step 2)
> 4) does work on the new surface
>
> The old surface won't be destroyed in step 1) because
> it was still bound by the context of the current rendering
> thread. When creating new surface on step 2), some hardware
> will return error code EGL_BAD_ALLOC, because the old egl
> surface is still associated with the native window.
>
> To workaround, when destroying surface, if the surface
> is still bound by the context of the current rendering
> thread, release the context and surface by passing
> EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent().
>
> The workaround is controlled by a frontend feature
> uncurrentEglSurfaceUponSurfaceDestroy. This feature
> is only enabled on vulkan and gl backends.
>
> Bug: b/292285899
> Change-Id: I872d2e116ba6860f58d1176f011a5ef7c5a5af4e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4851255
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bug: b/292285899
Change-Id: I760054d856294e6691e79e165fd73ce9e560621f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4862958
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
497440cd
|
2023-09-07T15:39:19
|
|
Make egl surface uncurrent when being destroyed
This is to workaround errors when app does below behaviors:
1) while there is a context still bound to the current
rendering thread and the surface, call eglDestroySurface()
2) create a new surface eglCreateWindowSurface()
3) call eglMakeCurrent() with the surface created in step 2)
4) does work on the new surface
The old surface won't be destroyed in step 1) because
it was still bound by the context of the current rendering
thread. When creating new surface on step 2), some hardware
will return error code EGL_BAD_ALLOC, because the old egl
surface is still associated with the native window.
To workaround, when destroying surface, if the surface
is still bound by the context of the current rendering
thread, release the context and surface by passing
EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent().
The workaround is controlled by a frontend feature
uncurrentEglSurfaceUponSurfaceDestroy. This feature
is only enabled on vulkan and gl backends.
Bug: b/292285899
Change-Id: I872d2e116ba6860f58d1176f011a5ef7c5a5af4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4851255
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
f57b0c3a
|
2023-09-08T14:26:18
|
|
Merge GetAndroidSdkLevel and GetAndroidSDKVersion
Now we funnel all the Android property queries through the one utility
funciton in android_utils.
Bug: chromium:1479277
Change-Id: I7313064208895f095319ed129b6f7d2edf31b427
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4852681
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
74b7ec03
|
2023-09-08T14:26:18
|
|
GL: Don't use system info for Android SDK queries.
It can be queried directly from the system property without fully
gathering system info. System info often uses Vulkan which is known
to be unstable on some older devices.
Bug: chromium:1479277
Change-Id: Ic6ee1d0182b047b0a3210dd1067f6b7250e3da02
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4851775
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
179bd776
|
2023-09-01T00:00:00
|
|
GL: Adjust disableRenderSnorm condition
Current Mesa drivers do not pass the
tests when using OpenGL ES contexts.
Bug: angleproject:8315
Change-Id: I00e931d0b97917fd7fe02890290f2938d7c872e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4834483
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0688a940
|
2023-08-21T00:00:00
|
|
GL: Disable EXT_texture_mirror_clamp_to_edge on Mesa
Although the extension string is exposed,
the new enum is currently rejected when
using an OpenGL ES context.
Bug: angleproject:8319
Change-Id: I17c4105344fe7ca3038a79e0e09528db1d96376b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4807744
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
9f258f8a
|
2023-08-21T00:00:00
|
|
GL: Add disableRenderSnorm workaround
Disable the extension on Mesa versions that
clamp negative snorm values to zero on read.
Fixed: angleproject:8315
Change-Id: I5459db40cb08c546fba15f5e6d70578029a8218a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4804324
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d8f088e0
|
2023-08-14T11:07:24
|
|
GL: Remove parallel compile/link without driver support
This feature was practically disabled everywhere due to various bugs,
and is complicating the code. In effect, the code was always spawning a
thread for the compilation and link jobs, immediately fail it (due to a
workaround), then do the job when compile/link is resolved (much closer
to draw time). This leads to bad user experience, but also is racy
because the shaders may get recompiled in the meantime and there is
little the GL backend could do to stop that (efficiently).
After this change, parallel compile/link
is either done by the driver (if supported), or it isn't done.
This is a partial revert of a100d8f471f79b9f88d387164992cc5bd9c6ee9f.
Bug: angleproject:3031
Bug: chromium:922936
Bug: chromium:1184692
Bug: chromium:1202928
Change-Id: I6348bee3249ccb3828bb98ac2a69dc7d305f821c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4774785
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
be7ab480
|
2023-08-10T12:04:45
|
|
gles: disable MSRTT on Windows/NVIDIA
The angle_end2end_tests for MSRTT fail on Windows/NVIDIA/GLES, at least
on driver version 536.99. Let's add Windows NVIDIA to the list of known
bad configurations for disableMultisampledRenderToTexture.
Bug: angleproject:8304
Change-Id: Ic102881bb6d483d5ff2bd0e86a07bf5fe3683fcb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4771740
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
59f158c1
|
2023-08-10T00:00:00
|
|
GL: Add explicitFragmentLocations workaround
Some drivers produce incorrect results when
a fragment output has an implicit location
and gl_SampleMask[] is written to.
Fixed: angleproject:8308
Change-Id: I615952ef61b1cb611984ec7defb189d89ab3281c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4777702
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
085f25bb
|
2023-07-20T15:24:56
|
|
GL: Protect against drivers returning 0 max clip distances.
Some Android devices in the wild were hitting the assert that
maxClipDistances must be greater than 0 if ANGLE_clip_cull_distance
is exposed.
Protect against this by disabling various clip/cull extensions if
they don't meet the requirements for number of distances.
Bug: angleproject:7904
Change-Id: Ic6a5e959437fa7aad5302a12cf8c92d1d18024b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4706684
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2e190280
|
2023-07-20T14:12:03
|
|
GL: Extend disable of EXT_clip_control to Mali-G51.
The G51 appears to be the only other device with this issue.
Bug: chromium:1434317
Change-Id: Iffbc95a7f612c1862e9d129649a6211f488df6c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4706564
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
|
|
4e6124da
|
2023-06-23T14:46:28
|
|
GL: Ensure all instanced attributes have a buffer with data
Apple OpenGL drivers sometimes crash when given an instanced draw with
a buffer that has never been given data.
It's not efficient to check if the attribute is both zero-sized and
instanced so just ensure that every time a zero-sized buffer is bound
to an attribute, it gets initialized with some data.
Bug: chromium:1456243
Change-Id: I66b7c7017843153db2df3bc50010cba765d03c5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4642048
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f5ad056b
|
2023-07-10T22:13:34
|
|
GL: Fix ScalarizeVecAndMatConstructorArgs and move to gl/
This transformation was buggy and was disabled. Originally, it was
intended to be used everywhere. It is now needed for a GL driver
workaround.
This change reimplements this transformation and uses it as a GL
workaround.
Bug: chromium:1420130
Change-Id: I42d63fa5844bcf683ac41e61925aa637e033ca2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4676634
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7bcd88cc
|
2023-07-06T15:44:44
|
|
gl: Do not propagate copyTexSubImage2D error to client
https://chromium-review.googlesource.com/c/angle/angle/+/4662393 ensured
that BlitGL::copyTexSubImage allowed the caller to fallback when the
underlying copyTexSubImage2D call failed, but the GL error was also
propagated to the client due to the Context::handleError call in
CheckError - that error still causes webgl conformance failures even
though the pixel expectations are now satisfied.
This CL makes BlitGL::copyTexSubImage use getError directly so that the
error is not propagated to the client.
Bug: chromium:1458040
Change-Id: I3e4c06871c55d449facbe471c78e84f68b529f60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4671325
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org>
|
|
113f847b
|
2023-06-26T12:07:52
|
|
centralize basic OS/platform detection functions
We had multiple different places that defined these, and with varying
naming schemes. Centralize them to be defined in platform_helpers.h.
Also renaming the IsApple(uint32_t) functions to IsAppleGPU(uint32_t) to
avoid ambiguous meaning: "IsApple" should mean "is Apple-vended OS"
while "IsAppleGPU" should mean "is Apple GPU vendor ID".
Bug: angleproject:8229
Change-Id: If4e3fc5ac1b5b8ad416663950a1b2ee912ccad99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4647291
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Steven Noonan <steven@uplinklabs.net>
Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
88c6dfcc
|
2023-06-02T16:09:24
|
|
Mali: Make the placeholder FBO complete for timer queries
Change the bindFramebufferForTimerQueries workaround to ensure
the framebuffer is complete.
Bug: chromium:1356053,b/269068358
Change-Id: Ief3198fdc4800468670a3f4323a1ffd3ca083c6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4582606
Auto-Submit: Kramer Ge <fangzhoug@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
21f16cb1
|
2023-06-09T17:30:38
|
|
Disable clang-format on ANGLE features autogen outputs
Updates the script to produce reasonably formatted code without
clang-format.
Autogen files moved to autogen/ sub-directories because clang-format
does not support per-file settings ;(
This allows to run this codegen very quickly
(~50ms on my machine)
Bug: angleproject:8193
Change-Id: Ie84282090d574ebb4debe3edcfd82f983f27a5ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4604578
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dd25d33d
|
2023-05-24T11:22:15
|
|
Don't use system info collection in the GL backend on Android
The only way to gather system info on Android is with Vulkan or an
existing OpenGL context (which we have), so skip the call to
angle::GetSystemInfo on Android and use the OpenGL strings that
are already gathered.
It also tends to crash when creating Vulkan instances on some devices.
Make sure the ARM vendor ID is detected from the renderer strings.
Bug: chromium:1447111
Change-Id: Ic5c4109b422ca240bf5e8fc5cef6a2dae6d7d29d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4562933
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
|
|
ea0b1b7b
|
2023-05-19T15:26:50
|
|
Selectively advertise base vertex and instance fns
On newer Mali GPUs (Valhall), the glDraw*BaseVertex* implementations
seem to be buggy and cause noticable artifacts. Chrome uses the
presence of baseVertexBaseInstanceANGLE and baseInstanceEXT
extensions to determine whether it can draw with a base vertex or to
fallback to manually offsetting the vbo.
This CL disables these extensions on Mali Valhall so that Chrome
takes the fallback path instead to fix the visual artifacts.
Bug: b/280931795
Change-Id: Ic27e37465283ca3338747b53aa7888c7eba4b7b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4549682
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b1395bcb
|
2023-05-09T12:34:55
|
|
GL: Disable EXT_clip_control on Mali-G72 and G76.
Querying the clip control state from the driver when sychronizing
external contexts generates driver errors.
Simply disable this extension in this configuration for now.
Chrome is currently not using it for rasterization.
This issue was noticed on specific Huawei devices in the wild. It
hasn't been observed on other OEMs.
Bug: chromium:1434317
Change-Id: I88d9bff1933274f61020b75e68aee9c94b0b684a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518062
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Colin Blundell <blundell@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>
|
|
b494691d
|
2023-04-20T00:00:00
|
|
GL: Enable NV_shader_noperspective_interpolation on ES
Although the extension requires ESSL 3.00,
some drivers support it only in ESSL 3.10.
Fixed: angleproject:4542
Change-Id: I2c50b521056f485a5986942ea882780b327844a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455507
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
20b6624a
|
2023-04-17T13:55:09
|
|
Metal: Support compiling on iOS without EAGL
Makes EAGL and CGL compilation exclusive to each other. Catalyst would
compile with both on ARM64, but only use EAGL.
Remove use of GLSL generation in MSL. Generating GLSL for MSL
compute and geometry shaders do not make sense.
Remove compilation of RewriteRowMajorMatrices for Metal.
It was removed from Metal in:
b23bf47c9e999532a684beab9ac901552420b0b8
Reland "Metal: rewrite default uniforms and uniform blocks"
Remove use of ANGLE_ENABLE_APPLE_WORKAROUNDS and gn variable
angle_enable_apple_translator_workarounds. The workarounds are just
unconditional business-as-usual implementation of ANGLE when ANGLE is
compile for PLATFORM_APPLE.
Fixed: angleproject:8129
Change-Id: I3af249708803fba816e2a7c92c35dddb84ce6946
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428875
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Dan Glastonbury <djg@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
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>
|
|
7b33f4b9
|
2023-04-17T22:03:10
|
|
GL: Extend Qualcomm driver workarounds beyond Android
ChromeOS boards using Qualcomm 7c Gen1, 7c Gen2 and 7c+ Gen3 are
subject to these workarounds as well.
Bug: angleproject:8094
Change-Id: Id9f9155e203fe2d3563dcfb1798cd9f289565d01
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4438291
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kramer Ge <fangzhoug@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>
|
|
fbb16d64
|
2023-03-24T02:23:19
|
|
Mali: Disable disjointTimerQueries on ChromeOS with MaliT8xxOrOlder
ChromeOS boards using MT8183 are encountering GL_OUT_OF_MEMORY errors
when using disjointTimerQueries, which leads to meets visual effects
freezing after a couple of seconds.
Extend the workaround treatment to ChromeOS.
Bug: chromium:1356053,b/269068358
Change-Id: I212f2b4a2fed1ddd8e8344bde4f4ca9069ea3393
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4369684
Commit-Queue: Kramer Ge <fangzhoug@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kramer Ge <fangzhoug@chromium.org>
|
|
afc1e5dc
|
2023-03-27T00:00:00
|
|
GL: Support OES_sample_variables
Bug: angleproject:8097
Change-Id: I983d6e83fe9ca942c91cbdf7274b46306e38f11f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4368476
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
888ca8d9
|
2023-03-21T18:56:56
|
|
Bind FBO before timer query on Mali GL driver.
glBeginQuery(GL_TIME_ELAPSED/GL_TIMESTAMP) on Mali implementation
assumes a complete FrameBuffer. Without it glGetQueryObject will return
a meaningless value, causing some applications to misbehave.
This workaround caches and binds a default FBO in this case.
Bug: chromium:1356053,b/269068358
Change-Id: I756ded948c2c5aada744f9dd428ad77c37a009c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4359032
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kramer Ge <fangzhoug@chromium.org>
|
|
ad52f12e
|
2023-03-21T00:00:00
|
|
Implement EXT_conservative_depth
Added translator frontend and GLSL backend
support for gl_FragDepth redeclaration and
layout qualifiers.
Added mappings to DepthGreater, DepthLess,
and DepthUnchanged SPIR-V execution modes.
Bug: angleproject:8046
Change-Id: I23f19ff54380741107970a44055ea269eef179f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4355028
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
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>
|
|
b26b01a2
|
2023-03-09T00:00:00
|
|
Implement EXT_render_snorm
Bug: angleproject:8048
Change-Id: Id01beaea9565f8ab374c732fef70ec0ac0d8743e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4334303
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
1174582a
|
2023-03-06T00:00:00
|
|
GL: Implement EXT_clip_control
The extension is trivially exposed
if the current context supports it.
* Added packed clip control enums
* Removed unused state query code
* Aligned symbol names with the specs
Bug: angleproject:8066
Change-Id: I9d106f39800658ecc75f4525ee93cb534dc49f9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4306770
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8abf7153
|
2023-03-01T00:00:00
|
|
GL: Complete EXT_blend_func_extended
* Increased test threshold to 2 to
avoid failures on some GPUs
* Skipped desktop name bindings when
running on OpenGL ES
* Adjusted extension exposure conditions
to avoid failures on older platforms
* Adjusted webgl_FragData array size
Bug: angleproject:1085
Bug: angleproject:2833
Change-Id: Ic72ba42b024de276d3586446e03013e6063d15ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4307122
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d9fa5524
|
2023-03-01T12:11:06
|
|
Temporarily disable multisampled render to texture on Android
Using MSRTT causes rendering issues on Android. So disable it
temporarily until it is fixed.
Bug: chromium:1417485
Change-Id: I0def01f257a303b315ba333917d820cea44cd8a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4300729
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3fed0866
|
2023-02-22T00:00:00
|
|
Implement EXT_texture_mirror_clamp_to_edge
Support GL_MIRROR_CLAMP_TO_EDGE_EXT address
mode when native support is available.
Adjusted validation, sorted switch cases by
target enums order.
Added new TextureMirrorClampToEdge* end2end
tests.
Drive-by: fixed texture address computation
for integer formats with GL_MIRRORED_REPEAT
on D3D11.
Fixed: angleproject:7968
Change-Id: Iaf29c8b4b32a7630c2a871f832d171f4bc4e2672
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4289137
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
a2efea13
|
2023-03-01T00:00:00
|
|
Add ANGLE_stencil_texturing
This extension allows texturing of the stencil
component of a packed depth stencil texture on
OpenGL ES 3.0 contexts.
Trivially exposed on backends that support
OpenGL ES 3.1, which requires this feature.
Adjusted the tests to check for the new
extension string instead of the context
version.
Bug: angleproject:8051
Change-Id: I4d833acbc72e7374bde91d4c861598a0fdaf9b90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4295312
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
ad582b26
|
2023-02-07T00:00:00
|
|
GL: Expose EXT_texture_border_clamp
* Adjusted validation
* Exposed both EXT and OES extension names
* Fixed border color when lumaWorkaround is enabled
Bug: angleproject:7969
Change-Id: Ia5622d4ecbc0b6338ee3651ab58bf1ca5276bbc4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4231843
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b96d1955
|
2023-01-20T16:06:34
|
|
Implement GL_ARM_shader_framebuffer_fetch
GL_ARM_shader_framebuffer_fetch allows fragment shaders to read
gl_LastFragColorARM. The extension is similar to
GL_EXT_shader_framebuffer_fetch, but is more limited in its
capabilities.
GL_ARM_shader_framebuffer_fetch was removed from HasFramebufferFetch()
because it acts differently from GL_EXT_shader_framebuffer_fetch in
significant enough ways that it should not be included in that
single-use function.
Tests: FramebufferFetchES31.*_ARM
Bug: b/242419750
Bug: angleproject:7882
Change-Id: Id3a25c8ee50ca3e2a4c30a2261f507b0b53511ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4083108
Commit-Queue: Sean Risser <srisser@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@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>
|
|
067ace47
|
2022-12-21T00:00:00
|
|
Add ANGLE_clip_cull_distance extension
Added an extension spec.
Trivially exposed it on GL, Vulkan, and D3D11.
Adjusted tests and validation to allow no cull
distance support for this extension string.
Removed extra built-in variable definitions.
Bug: angleproject:7904
Change-Id: Ic60772dfe28132c316eaa29aadc1afd66e3b0fa7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4114290
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
28e7adca
|
2022-12-09T00:00:00
|
|
GL: Implement clip distance state emulation
Pass the current set of enabled clip distances
to vertex shaders via an internal uniform and
dynamically set disabled elements to zero.
Bug: angleproject:7880
Change-Id: I709d31dc7ca0606decf49adf674460a941837683
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4094314
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0103213e
|
2022-12-05T00:00:00
|
|
GL: Support clip and cull distance redeclarations
* Fixed gl_PerVertex qualifier string.
* Updated ValidateClipCullDistanceTraverser to output
redeclared array sizes and maximum constant indices.
* Made DeclarePerVertexBlocks available for non-Vulkan
outputs.
* Updated DeclarePerVertexBlocks to remove gl_ClipDistance
and gl_CullDistance redeclarations.
* Enabled DeclarePerVertexBlocks for ESSL output when
gl_ClipDistance or gl_CullDistance are redeclared.
* Updated ESSL output to use 3.10 shading language version,
when the context has GL_EXT_clip_cull_distance enabled.
* Updated ESSL output to enable GL_EXT_shader_io_blocks
when gl_ClipDistance or gl_CullDistance are redeclared.
* Updated extension exposure conditions.
* Fixed typos in ParseContext.
Bug: angleproject:7763
Change-Id: Ib87368a1953ad546a407d634d8b00f71cf92c40c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4083705
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8ee1b89f
|
2022-11-04T13:10:37
|
|
Refactor pixel local storage options
The various different PLS options were getting scattered and unruly. We
are also in need of more backend-specific PLS options that would be
difficult to add as-is. This CL refactors them into a single
"ShPixelLocalStorageOptions" struct that gets initialized all in one
place, and shared between the compiler and the backends.
Bug: angleproject:7279
Change-Id: Ic58dccb8d1ba350a0b6cc5848ce15bd687e30fad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4006715
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
7fefd230
|
2022-10-20T00:00:00
|
|
GL: Adjust APPLE_clip_distance exposure
Partial revert of
I458cad29c10b9d9193c5233e24bac53361ba104e
APPLE_clip_distance cannot be implemented on top of
EXT_clip_cull_distance because the former is defined both
for ES 2.0 and ES 3.0 while the latter is defined only for ES 3.0.
Although some ES 3.0+ drivers allow gl_ClipDistance built-in in
ESSL 1.00 shaders, this behavior is not specified so ANGLE should
not allow it.
Added independent ESSL 3.00 gl_ClipDistance and gl_MaxClipDistances
definitions.
Adjusted translator unit tests.
Bug: angleproject:4452
Change-Id: Ib582ce0ac7ccb65f0200ef1d17eaab0c83b228cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963745
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5e95a4d9
|
2022-10-07T00:52:38
|
|
Add an EXT_shader_pixel_local_storage impl of PLS
Translates ANGLE_shader_pixel_local_storage shaders directly to
EXT_shader_pixel_local_storage.
Polyfills load/store operations using internal fullscreen draws.
Since the ANGLE extension needs the ability to preserve all active PLS
planes to textures, we can only support this extension when the backend
context also has access to ES 3.1 shader images.
Bug: angleproject:7279
Bug: angleproject:7771
Change-Id: Id348bde412efcc081ff29ee05ec59ad652f77569
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966075
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
01e6be3c
|
2022-10-19T20:42:30
|
|
Actually use EXT_shader_framebuffer_fetch_non_coherent for PLS
Bug: angleproject:7279
Change-Id: I37099a917303ab41d86dbe1203183ac55229942f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966074
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fec93f40
|
2022-10-14T00:00:00
|
|
GL: Support clip and cull distance extensions
Use EXT_clip_cull_distance on OpenGL ES to expose
APPLE_clip_distance; use ARB_cull_distance on OpenGL
to expose EXT_clip_cull_distance.
Added disableClipCullDistance OpenGL workaround.
Bug: angleproject:4452
Change-Id: I458cad29c10b9d9193c5233e24bac53361ba104e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3956075
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a7dc51f2
|
2022-10-01T08:49:11
|
|
Add a framebuffer fetch implementation of PLS
The framebuffer fetch implementation works by attaching PLS backing
textures to the framebuffer, and then rewriting PLS uniforms as "inout"
fragment variables. The compiler's existing machinery takes it from
there and makes it work on GL and Vulkan, and soon Metal.
EXT_shader_framebuffer_fetch is now the preferred backend for pixel
local storage, but we also use EXT_shader_framebuffer_fetch_non_coherent
if shader images can't be coherent. This is especially interesting for
Vulkan, since noncoherent framebuffer fetch is possible without any
extensions.
Bug: angleproject:7279
Bug: angleproject:7683
Bug: angleproject:7684
Bug: angleproject:7724
Change-Id: I33f3b2c6df9a5709969d9165c448ea71b096c9e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900142
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
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>
|
|
8b2aff28
|
2022-09-12T10:27:28
|
|
Implement the ANGLE_shader_pixel_local_storage API
Implements the OpenGL ES API for ANGLE_shader_pixel_local_storage and
adds thorough validation and testing as outlined in the spec. This
feature is still implemented entirely in the frontend, but the extension
now works end-to-end with a passing test suite, and can be used
externally. Over time we can start gradually moving the implementation
into backends as appropriate.
Bug: angleproject:7279
Bug: angleproject:7647
Change-Id: I1c861a0fca96423be02e17bbe1fb7f57b99ea63f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3886462
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
97926f80
|
2022-09-15T00:10:49
|
|
GL: Implement GL_ANGLE_logic_op
Enabled only on Desktop GL where logic op is available.
Bug: angleproject:7654
Change-Id: I3c17ffb5b21abf31aec247319a625526f1bec37d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898316
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
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>
|
|
6f80f0f0
|
2022-08-06T02:29:19
|
|
Translator: Clean up the compile flag passing interface
Historically, compile flags were sent to the translator as a bitmask.
Recently, we were getting close to running out of bits. Additionally,
direct-to-metal work had started to introduce constants to be passed to
the translator, which were misplaced in ShBuiltInResources and Caps.
Recent work on Pixel Local Storage adds even more constants, aggravating
the situation.
In this change, the interface to passing compile flags is reworked. A
struct is passed (instead of a bitmask) that has one bit for each flag.
This can be indefinitely extended. Additionally, the constants needed
by metal and PLS are also placed in this struct. In turn, the backends
can set these options directly, and don't have to hack them into Caps to
further get hacked into ShBuiltInResources.
Bug: angleproject:7559
Change-Id: If93f1e1b8818ad3a0ac708ab04ab93b4b397d114
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812562
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: 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>
|
|
c517463a
|
2022-07-28T00:00:00
|
|
Add NoUnclampedBlendColor limitation
Although ES 3.0 and ES 2.0 with floating-point color
buffer extensions must support unclamped constant
blend color, some drivers clamp it anyway.
To let applications know the effective behavior, ANGLE
state management has been expanded to simulate what
the OpenGL ES driver is doing.
So far, this bug has been confirmed only on Adreno GPUs.
Unconditionally enabled this limitation on D3D9 as it
cannot support unclamped blend color by design.
Bug: angleproject:7536
Change-Id: I7e28a5553e79669d8482d48c6e79bdd811971ade
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3791350
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.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>
|
|
94bbb40a
|
2022-07-04T00:00:00
|
|
GL: Enable pack skip emulation on all Apple drivers
* conformance2/reading/read-pixels-pack-parameters.html
is failing in WebKit on M1 without this workaround
Bug: angleproject:4849
Change-Id: I710386d29c120e59338cd56fc9843cd6232ff96c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3743445
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
a4e00c64
|
2022-06-30T00:00:00
|
|
Expose EXT_compressed_ETC1_RGB8_sub_texture on Metal and GL
Updated the test to ensure that this extension
is exposed on Apple GPUs when using Metal.
Updated emulatedEtc1 limitation to hide this extension
when the main ETC1 extension is hidden.
Real WebGL apps cannot enable this extension because
it is not exposed in WebIDL.
Removed bogus entry from IsETC1Format and use the helper
consistently in all validation functions.
Simplified GetNativeCompressedFormat.
Bug: angleproject:7471
Change-Id: I61321fadad7d962358d0fefecd08aaddaedd2ec2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3737762
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
714f680f
|
2022-06-08T16:19:20
|
|
Implement GL_EXT_base_instance
* Added the validation functions for
DrawElementsInstancedBaseVertexBaseInstance(),
DrawElementsInstancedBaseInstance(), and
DrawArraysInstancedBaseInstance() according to the specs.
* Added generic implementation for
glDrawElementsInstancedBaseInstance() that can
be called by back-ends.
* Added flags for back-ends so they can enable the extension.
* Added tests for DrawElementsInstancedBaseVertexBaseInstance(),
glDrawElementsInstancedBaseInstance(), and
DrawArraysInstancedBaseInstance().
* Disabled ES3_D3D11__DynamicDraw tests due to
angleproject:7441 bug.
Bug: angleproject:6983
Bug: angleproject:7441
Change-Id: Ia664b01c87bc64c05e29adec23a8f80792eaa037
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697206
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>
|
|
808192a7
|
2022-05-09T16:39:45
|
|
Code Cleanup
In Context::initCaps(), we first read the
compressedTextureFormats from the contextImpl::getNativeCaps(),
then we are clearing the retrieved compressedTextureFormats array
in Context::updateCaps() immediately. We shouldn't need to fill
the same array twice. Removing the first array value assignments
in all backend.
Bug: angleproject:3408
Change-Id: Iea85d367d2c5792de4780995d8d03bcf14af484e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3635275
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|