Граф коммитов

108 Коммитов

Автор SHA1 Сообщение Дата
Brandon Schade 7dda50fc00 Add frontend for ANDROID_extension_pack_es31a
- Add entry to registry_xml file
- Add handling in the DirectiveHandler

Bug: angleproject:3608
Change-Id: I1cc32a4a97fd9974f65786a9a972b4b541abf658
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3388405
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
2022-01-18 22:26:47 +00:00
Lingfeng Yang 926b43e751 Reland: Frontend: separate lock in swap prep
Swapchain-based backends like Vulkan might block a lot in
vkAcquireNextImageKHR, which is bad for overall fast progress if we also
hold the global EGL lock there.

This CL starts to split the global EGL lock. We release the EGL lock
when performing vkAcquireNextImageKHR, and only maintain a lock for
surfaces.

This is done via a new custom entry point, EGL_PrepareSwapBuffers, so
that we can control how the global lock is used throughout the entire
call.

Bug: angleproject:6851
Change-Id: I095cd8b3bdbb13c842cab0a46148e2122582cdfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373426
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
2022-01-11 22:23:19 +00:00
Cody Northrop ae1a56b679 Vulkan: Turn on GL_EXT_shader_framebuffer_fetch for ARM
On ARM, coherent is the default behavior of framebuffer fetch, so
we can expose the GL extension.

Tests: Dead By Daylight app and trace
Bug: b/201764768
Bug: angleproject:6870
Bug: angleproject:6872
Change-Id: I0f98c57e20619d73d1507c4655e7f9bb8c10a53a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3371244
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2022-01-07 19:00:54 +00:00
Maksim Sisov c7446ac423 Add support for GL_MESA_framebuffer_flip_y 1/*
LaCrOS, which is same as ChromeOS, relies on this
extension and uses that with WebGL content.

However, when LaCrOS uses ANGLE, the extension is
not exposed and the WebGL content is y-inverted as
direct scanout is always used.

There are two bugs - 1) ANGLE should expose the
extension so that direct scanout is possible
(this CL fixes the issue. 2) LaCrOS shouldn't rely
on the extension if it's not available (a bug to
be fixed in Chromium).

This particular CL consists of autogen files with
framebufferParameteriMESA &&
getFramebufferParameterivMESA in Context
marked as UNIMPLEMENTED. And also unimplemented
validation.

Bug: chromium:1231934
Change-Id: Id617846b0412f579df5b4ace6cb33c1ec6d403df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343492
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
2021-12-16 15:34:05 +00:00
John Cunningham 42bd4fc29a Metal: add ANGLE_metal_create_context_ownership_identity.
This Metal-specific EGL extension allows a given context
and the GPU resources it allocates to be associated with
a particular task ID on the system, for system-level
bookkeeping purposes.

Bug: angleproject:6795
Change-Id: I19ee0993564169b01c4a450e63dcfacd339b98b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335172
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
2021-12-14 03:36:09 +00:00
Yuly Novikov f64f9546ae Reland "Decouple gl_BaseVertex/gl_BaseInstance uniforms"
This reverts commit 10e5f34d14.

Reason for revert: exonerated from flaky crash suspect

Original change's description:
> Revert "Decouple gl_BaseVertex/gl_BaseInstance uniforms"
>
> This reverts commit 36bf1ebe5e.
>
> Reason for revert: suspect causing flaky crashes
>
> Bug: angleproject:6763
>
> Original change's description:
> > Decouple gl_BaseVertex/gl_BaseInstance uniforms
> >
> > These are builtin uniforms removed in
> > https://github.com/KhronosGroup/WebGL/pull/3278
> >
> > Decouple them from the original ANGLE_base_vertex_base_instance
> > extension.
> >
> > Make a new ANGLE_base_vertex_base_instance_shader_builtin
> > extension for these builtin uniforms.
> >
> > Bug: angleproject:3402
> > Change-Id: I77b93917976ce435db9c578c0ade37bff18a42b0
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3290304
> > Commit-Queue: Shrek Shao <shrekshao@google.com>
> > Reviewed-by: Geoff Lang <geofflang@chromium.org>
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
>
> Bug: angleproject:3402
> Change-Id: I75830baa14cf4e7c53750fd14ff76501145b4823
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315610
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Shrek Shao <shrekshao@google.com>

Bug: angleproject:6763
Bug: angleproject:3402
Change-Id: Ie436dc5d55364e464897d407a53b793941cd5d0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3321703
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2021-12-07 21:17:07 +00:00
Shrek Shao 10e5f34d14 Revert "Decouple gl_BaseVertex/gl_BaseInstance uniforms"
This reverts commit 36bf1ebe5e.

Reason for revert: suspect causing flaky crashes

Bug: angleproject:6763

Original change's description:
> Decouple gl_BaseVertex/gl_BaseInstance uniforms
>
> These are builtin uniforms removed in
> https://github.com/KhronosGroup/WebGL/pull/3278
>
> Decouple them from the original ANGLE_base_vertex_base_instance
> extension.
>
> Make a new ANGLE_base_vertex_base_instance_shader_builtin
> extension for these builtin uniforms.
>
> Bug: angleproject:3402
> Change-Id: I77b93917976ce435db9c578c0ade37bff18a42b0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3290304
> Commit-Queue: Shrek Shao <shrekshao@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>

Bug: angleproject:3402
Change-Id: I75830baa14cf4e7c53750fd14ff76501145b4823
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315610
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
2021-12-04 00:59:38 +00:00
Shrek Shao 36bf1ebe5e Decouple gl_BaseVertex/gl_BaseInstance uniforms
These are builtin uniforms removed in
https://github.com/KhronosGroup/WebGL/pull/3278

Decouple them from the original ANGLE_base_vertex_base_instance
extension.

Make a new ANGLE_base_vertex_base_instance_shader_builtin
extension for these builtin uniforms.

Bug: angleproject:3402
Change-Id: I77b93917976ce435db9c578c0ade37bff18a42b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3290304
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2021-12-02 00:01:49 +00:00
Tim Van Patten ef65edf2f2 Add extension: ANGLE_rgbx_internal_format
Add the extension ANGLE_rgbx_internal_format, which exposes the ANGLE
internal format GL_RGBX8_ANGLE. The format GL_RGBX8_ANGLE enables
emulating RGB8 formats with RGBA8 within ANGLE.

This also renames the format GL_RGBX8_ANGLEX to GL_RGBX8_ANGLE, since
it's being exposed.

Bug: angleproject:6690
Test: Texture2DTestES3.TextureRGBXImplicitAlpha1
Change-Id: I5548a3578a14e2f2a4006bbf59983b01f694b7f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296625
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-11-30 01:41:05 +00:00
Peng Huang a5e391d744 Add GL_ANGLE_vulkan_image extension
glAcquireTextures & glReleaseTextures are added for sharing
texture ownership with an external API.

Bug: chromium:1264439
Change-Id: If46d8d230b4f611768b5ff1187674509e42f01e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3293921
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
2021-11-29 21:09:46 +00:00
Peng Huang e00ad44329 Add EGL_ANGLE_vulkan_image extension
This extension is for exporting VkImage from EGLImage.
The VkImage must be used with the same VkDevice used by ANGLE
Vulkan backend.

Bug: chromium:1264439
Change-Id: I222d900465cf2716d94fc64f06e240390ec518ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285025
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
2021-11-25 17:48:33 +00:00
Amirali Abdolrashidi ae3f67ab4a Implement GL_EXT_multi_draw_indirect
* Auto-generated the code to lay the foundation for
the following functions:
  * multiDrawArraysIndirect()
  * multiDrawElementsIndirect()

Bug: angleproject:6439
Change-Id: I7ab5111692376229515e0d6d9e6148909ce9a8a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276042
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-12 23:01:15 +00:00
Jeff Vigil d3e6771671 EGL: EGL_KHR_lock_surface3
Add new extension KHR__lock_surface3
Add new interfaces for locking and unlocking a surface.

Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test

Bug: angleproject:6062
Change-Id: Ic40708db4db552107025635540a0c62f956d741e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-09 17:29:34 +00:00
Jamie Madill 7ef9ecf0a6 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>
2021-10-21 14:55:14 +00:00
Jamie Madill b918b1c656 Auto-generate GLES extensions.
Uses the data from registry.xml combined with gl.xml to produce the
necessary header and source file with the strings map. Also updates
the list of supported extensions. Several extensions were missing
from the supported extensions map.

ARB_sync and NV_robustness_video_memory_purge require some specific
tweaks to get the generator to accept them as gles extensions.

Also includes a generate markdown file that lists supported exts.

Bug: angleproject:6379
Change-Id: I95bd589aa31a62b4a008de24408c7823a49023ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3157418
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2021-09-16 14:14:45 +00:00
Brandon Schade a33d902bc3 Add Entry points for GL_EXT_EGL_image_storage
Code generation for GL_EXT_EGL_image_storage

Bug: angleproject:6346
Change-Id: Ib918619205bfe7bd8fba0748ff6db593c858151f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133763
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-09-08 22:16:51 +00:00
Alexey Knyazev 8c05fd4fe5 Add ASTC & PVRTC to GLenumToString
Bug: angleproject:4093
Change-Id: Iab19fddd2e0680a39741d2ef0b9003af5a808d49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110552
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
2021-08-22 22:24:22 +00:00
Jamie Madill d2d1f41fdc Add EGL extension to create window with a swap interval set.
On Vulkan this allows creating a window once without needing to
recreate the swapChain after we specify the swap interval.

Also adds a simple regression test and EGL enum assertion
printing formatting.

Bug: angleproject:5133
Change-Id: I72af124cb0e8f7cddfa810988a9862c0f36a0e46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097806
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-08-20 20:31:34 +00:00
Jeff Vigil 6136620b7a Reland "EGL: GLES: Implement GL_EXT_protected_textures"
This is a reland of 6210a9b34a
This removes changes in gl backend.

Original change's description:
> EGL: GLES: Implement GL_EXT_protected_textures
>
> Implement EGL_EXT_protected_content Images
> Add protected member to Images and Textures
> Add error when creating objects if not supported or
> does't match native buffer
> When creating siblings pass protected state
> Add extension caps
> Add Validation
> Add GetTexParameter and SetTextparameter
> Add protected to Texture and state
> Expand tests for images and textures
>
> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
>
> Bug: angleproject:3965
> Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest

Bug: angleproject:3965
Change-Id: Id36d697c53afc0f0dadf92bda4565f9157f4fc2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076825
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-08-10 22:42:28 +00:00
Jamie Madill c408926fc8 Revert "EGL: GLES: Implement GL_EXT_protected_textures"
This reverts commit 6210a9b34a.

Reason for revert: Suspected for breaking ANGLE->Chrome roller.

Bug: angleproject:6204

Original change's description:
> EGL: GLES: Implement GL_EXT_protected_textures
>
> Implement EGL_EXT_protected_content Images
> Add protected member to Images and Textures
> Add error when creating objects if not supported or
> does't match native buffer
> When creating siblings pass protected state
> Add extension caps
> Add Validation
> Add GetTexParameter and SetTextparameter
> Add protected to Texture and state
> Expand tests for images and textures
>
> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
>
> Bug: angleproject:3965
> Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

Bug: angleproject:3965
Change-Id: Ia3ef260a17097b474189ccad5b235a9db99ee00b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043889
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-07-22 13:55:05 +00:00
Jeff Vigil 6210a9b34a EGL: GLES: Implement GL_EXT_protected_textures
Implement EGL_EXT_protected_content Images
Add protected member to Images and Textures
Add error when creating objects if not supported or
does't match native buffer
When creating siblings pass protected state
Add extension caps
Add Validation
Add GetTexParameter and SetTextparameter
Add protected to Texture and state
Expand tests for images and textures

Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest

Bug: angleproject:3965
Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-20 18:35:02 +00:00
Jamie Madill 8c1cbc5a85 Implement EGL_KHR_mutable_render_buffer in the front-end.
Note that we do not currently expose any mutable configs.

Bug: b/192352791
Change-Id: Ib97f7889fedd91d09ef32dc7e7494ea4476cd7bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035583
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-19 18:33:13 +00:00
Lubosz Sarnecki dcfde515b2 gl.xml: Add GL_FRAMEBUFFER_SRGB_EXT to EnableCap group.
Add GL_EXT_sRGB_write_control in registry_xml.py.
This makes FrameCapture write a GL_FRAMEBUFFER_SRGB_EXT
enum instead of it's hex value in glEnable/Disable calls.

Bug: angleproject:5857
Change-Id: Ifa01118c2958275c7623c6bfe29f015fa8875fce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988356
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2021-06-29 16:38:38 +00:00
John Plate 695625461e CL: Refactor info structs and fix conformance bug
- Remove variable name prefix from Info structs to be more consistent
  with other ANGLE structs.
- Fix CL object validation check with magics, since the Mesa solution
  doesn't work without RTTI.
- Add support for some extensions required by OpenCL 1.1 and for some
  optional extensions.
- Fix more conformance bugs.

Bug: angleproject:6015
Change-Id: I41b1c45d95059a9994f5dc78bf9b74476cc6f2d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2956349
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-06-17 17:13:07 +00:00
Brandon Schade 69f2fb0066 Vulkan: Expose OES_geometry_shader extension
Modify the symbol table generation script to accept a list
of supported extensions. This allows for the EXT and
OES versions of the geometry shader extension to be exposed.

Test: angle_deqp_khr_gles31_tests --deqp-case=*geometry_shader*
Bug: angleproject:3571
Change-Id: Ia7127a03dbd3fce78957f0505d3ce0c9bab6cb15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2765011
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-06-08 23:16:33 +00:00
Jeff Vigil d52ed4bdec EGL: setup extension EGL_EXT_protected_content
Add extension to registry
Update hashes

Bug: angleproject:3965
Change-Id: Ie2808b8a599ae4adbf6f2f1d24db046799f594df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800412
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-05-11 21:09:22 +00:00
Alexey Knyazev bca7c40885 Update entry points for GL_EXT_texture_sRGB_RG8
Bug: angleproject:4932
Change-Id: Ie210a9dd342581adb71af4782383be2bb3ffd6a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2880667
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-05-10 04:00:28 +00:00
John Plate dfe208f188 Add loader for CL pass-through back end
Bug: angleproject:5904
Change-Id: If4960f3150f6bbc85a30f0f6ac5c9e668e6ff756
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2864022
Commit-Queue: John Plate <jplate@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-05-06 13:06:09 +00:00
Mohan Maiya 61167d5291 Add EXT_primitive_bounding_box entry points
Addition of the entry points for
GL_EXT_primitive_bounding_box extension.

Bug: angleproject:5896
Change-Id: I0dce407d2826ce3f730125d7c03f1233420f6780
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2849615
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
2021-04-26 15:12:33 +00:00
Mohan Maiya 2d741b430d Add KHR_blend_equation_advanced entry points
Addition of the entry points for GL_KHR_blend_equation_advanced
extension.

Bug: angleproject:3586
Change-Id: I7a651c19a4b3d0a7cfe4af7813f1530d27704bc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830140
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-04-20 16:08:58 +00:00
Mohan Maiya bdf5f08496 Add EXT_texture_border_clamp entry points
Addition of the entry points for EXT_texture_border_clamp extension.

Bug: angleproject:3586
Change-Id: I366c2748213d7fdde815543129320278937000e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830146
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-04-20 14:28:18 +00:00
Chris Forbes 84a62266c6 Expand CL plumbing support to cover all versions
The OpenCL CTS assumes that libOpenCL has symbols for all versions as it
usually expects to link against the Khronos loader. Since we're not
using that, we have to expose all the symbols it wants, whether we
intend to implement all versions or not. All the 2.x stuff will likely
remain stubs forever as it is made optional again in 3.0.

In the generator scripts, work around a small issue where one function
takes an array-typed parameter, which confused just_the_name and
produced invalid code.

Bug: angleproject:5819
Change-Id: I6c3591dc9229c5276f14ff66ee3ee6362e8bf622
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2807531
Commit-Queue: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: John Plate <jplate@google.com>
2021-04-07 17:34:26 +00:00
Jamie Madill 9b0911a072 Add GL_ANGLE_get_serialized_context_string.
This will provide a front-door entry point where we can get
a serialized string representing the context state. Previously
we would have to call ANGLE internal directly.

This will enable a refactor of the replays to work more like
standalone plugin libraries.

Bug: angleproject:5811
Change-Id: I5a97d7aa3cd70c49199264c2eb7ca953943ac3c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2803391
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-04-03 01:56:41 +00:00
Jamie Madill 6623a70f3d Stubs for OpenCL entry points.
Bug: angleproject:5653
Change-Id: I7ec9692a47be2556fef5bdd7630b422cc2d369b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2708343
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-02-24 15:38:53 +00:00
Jamie Madill 7b7e5cadca Clean up entry point generation script.
The main refactor from this change is to replace statements like this:

  decls, defs, export_defs, _, _, _, _ = get_entry_points(
    apis.EGL, eglxml.all_commands, egl_version_commands, False,
    egl_param_types, cmd_packed_egl_enums, EGL_PACKED_TYPES,
    egl_ep_to_object, TEMPLATE_EGL_ENTRY_POINT_EXPORT)

With statements like this:

  eps = EGLEntryPoints(eglxml, egl_version_commands)

This will make the script easier to maintain and extend.

Bug: angleproject:5653
Change-Id: Ibd0930d45b8629702b7782f43a2d7ebfa4dac9b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2705156
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-02-23 16:57:46 +00:00
Jamie Madill 7e990ef4bb Clean ups to generate_entry_points.
Switches to Python 3 support. Made a change to run_code_generation to
support this. Affects several generators. Also updates the generator
to make a few other small cleanups.

Bug: angleproject:5653
Change-Id: I045173c9ca85947c4eac22285701032c09f4c8d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2699187
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-02-18 00:47:44 +00:00
Mohan Maiya 68f35f242a Vulkan: Add GL_EXT_clip_control entry points
Addition of the entry points for GL_EXT_clip_control extension.

Bug: angleproject:5471
Change-Id: If17ba0120bdb226cc5728bfea83e9085260eba19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615862
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
2021-01-08 17:55:59 +00:00
Jonah Ryan-Davis 88fec1e88f Code generation for NV_framebuffer_blit
Generate the entry points for NV_framebuffer_blit.

Bug: angleproject:5474
Bug: chromium:1157057
Change-Id: Iadffa24ce7368d8ab6c4bf9d5b6c016276e762f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2602242
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2020-12-23 23:39:50 +00:00
Mohan Maiya f32fbb51e8 Add EXT_shader_framebuffer_fetch_non_coherent entry points
Addition of the entry points for
EXT_shader_framebuffer_fetch_non_coherent extension.

Bug: angleproject:5454
Change-Id: I2b8ba5141eed61a0c3ba58aeb2eec12a2071e7f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2590991
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-12-15 19:45:15 +00:00
Mohan Maiya 8670d6183a Add support for GL_EXT_debug_label
Add support for labeling of GL objects for debug purposes.

Tests: DebugTest.ObjectLabelsEXT*
Bug: angleproject:5337
Change-Id: I792a27c69395ed62da70c3f619bef71776fba432
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568711
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
2020-12-03 00:49:07 +00:00
Shahbaz Youssefi 8797714c4a Vulkan: Support OES_shader_io_blocks
Enables OES/EXT_shader_io_blocks extensions in Vulkan backends.

With shader I/O blocks, the varyings can now be an array of struct (the
block itself) of struct (nested in the block).

This change is missing a number of features.  In particular, if the
shader I/O block has a location decoration in the middle of the block,
that is not handled yet.

Based on changes from m.maiya@samsung.com and jmadill@chromium.org.

Bug: angleproject:3580
Tests: dEQP-GLES31.functional.shaders.linkage.es31.io_block.*
 dEQP-GLES31.functional.separate_shader.validation.es31.io_blocks.*
 dEQP-GLES31.functional.program_interface_query.program_input.*
 dEQP-GLES31.functional.program_interface_query.program_output.*
Change-Id: I593840475d2365ff6c9ce7b2290f5ee462a30dfb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567645
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-12-02 19:32:07 +00:00
Jamie Madill 6edaf0986f Entry Points: Clean up versions lists.
This reduces code duplication in a few generator scripts. The version
lists are now located in registry_xml.

Bug: angleproject:2621
Change-Id: Ia1470f2863753d78d8def1132a20e81d3f8ec4a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2566591
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-12-01 16:53:09 +00:00
Mohan Maiya 738092aead Add auto generated code for GL_EXT_tessellation_shader
To support tessellation, code and auto generated code are added.
Entry points function, ShaderTypes, built in variables and constants,
builtin function barrier and patch keyword are added.

Bug: angleproject:3572
Change-Id: Ia5fe473e884466cb88cea7138e13377a1d7b4fa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2538393
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-11-18 17:27:55 +00:00
Mohan Maiya cc4ae6da79 Vulkan: Add EXT_separate_shader_objects entry points
Addition of the entry points for EXT_separate_shader_objects extension.

Bug: angleproject:3570
Change-Id: I95a1342bb3322b49997125a17367590183134c84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2539120
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-11-17 16:55:56 +00:00
Geoff Lang 5b419533e5 GL: Implement EXT_YUV_target
Add test coverage of YUV format sampling as RGB or directly as YUV and
rendering as YUV using layout(yuv).

Initializing YUV AHardwareBuffers requires Android API 29 so ANGLE must
be compiled with:
android32_ndk_api_level = 29
android64_ndk_api_level = 29

The following tests can still run with Android API 26 because they don't
need to initialize the buffer:
ImageTestES3.ClearYUVAHB
ImageTestES3.YUVValidation

Bug: angleproject:4852
Bug: b/172649538
Change-Id: I4fe9afb2a68fb827dc5a5732b213b5eb60d585ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2517562
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-11-16 20:38:46 +00:00
Mohan Maiya 9217d49db0 Vulkan: Add EXT_external_buffer entry points
Addition of the entry points for EXT_external_buffer extension.

Bug: angleproject:5073
Change-Id: I5dc9f74dfd68c1e83e17ca15166df4cd4c20fca2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2525104
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-11-09 16:21:53 +00:00
Geoff Lang 089ef0fa65 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>
2020-10-21 17:23:46 +00:00
Jeff Vigil 8eaf72a8f0 EGL: Entrypoint and autogen for EGL_KHR_reusable_sync
Add entry point eglSignalSync
Update autogen files

Test: angle_deqp_egl_tests
--deqp-case=dEQP-EGL.functional.reusable_sync.*

Bug: angleproject:5168
Change-Id: I47afa4010c533096b4c56e9b3ab6eddc1944b83e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472998
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jeff Vigil <j.vigil@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-15 21:45:47 +00:00
Brandon Schade b22e437aff Add GL_EXT_copy_image extension entry points
Bug: angleproject:3593
Change-Id: I6d3a55a3112f5f9b20ef33c859a60b2952bfbc2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444209
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-14 21:37:05 +00:00
Mohan Maiya a2d9abef04 Vulkan: Add OES_sample_shading extension entry points
Addition of just the entry points for OES_sample_shading extension.

Bug: angleproject:3587
Change-Id: I7ef5ceb846d130c2d1e0b4ea7dcbe92452b5d7d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444212
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-02 17:08:28 +00:00