|
68ba532b
|
2024-10-09T14:38:01
|
|
Add validation for ObjectLabel
The validation of ObjectLabel is empty.
Move the validation in ValidateObjectLabelKHR to a new
ValidateObjectLabelBase (except the extension check), and make
ValidateObjectLabel and ValidateObjectLabelKHR both call
ValidateObjectLabelBase after the version/extension check.
An end2end test is added
Bug: angleproject:360903471
Change-Id: Iabfd3c16c5423b2ab2fe5e417fe75eed00237c92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5919129
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
166b72c9
|
2024-09-30T19:07:26
|
|
GL_ANGLE_blob_cache implementation.
Bug: chromium:370538323
Change-Id: Ic51a951e78b48b315e36f518bcc39ff2d54660a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900761
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a1dea207
|
2024-06-13T11:40:39
|
|
Implement KHR_blend_equation_advanced_coherent
* Updated the validation for glBlendBarrier() and ~KHR().
* GL state now includes mBlendAdvancedCoherent.
* Updated glEnable() to accept GL_BLEND_ADVANCED_COHERENT_KHR.
* It can be queried via glGetIntegerv(), etc.
* EXTENDED_DIRTY_BIT_BLEND_ADVANCED_COHERENT added.
* Added a corresponding bit to ExternalContextState.
* If coherence is supported, there should be no need to use blend
barriers, as, based on the spec, the advanced blend ops should
then follow order like the basic blend ops.
* Relevant tests: *GLES31.functional.blend_equation_advanced.coherent*
* On Linux/NVIDIA: From "Not supported" to "Passed"
Bug: angleproject:42262258
Change-Id: I7e0e43bdc71524eec111c2d3b024fe73c9795e55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5634381
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6554cd32
|
2024-06-07T16:26:10
|
|
Add validation for FramebufferTexture
FramebufferTexture() was added as part of the geometry shader
extension. However, it has become core in GLES 3.2.
* Added validation for glFramebufferTexture().
* Added unit tests to check for validation errors for the OES and
3.2 core versions.
Bug: angleproject:42262233
Change-Id: I2696d37bb54a26f0fe455107dca472cc05063fa6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5605108
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ebb56cee
|
2024-05-31T15:10:37
|
|
Implement OES_tessellation_shader
Based on the specs, there are no functional differences between
OES and EXT.
* Added validation for glPatchParameteriOES() and the core
glPatchParameteri().
* Added the extension support for GLSL.
* EXT_shader_io_blocks is implicitly enabled for the EXT geometry
and tessellation shader extensions.
* OES_shader_io_blocks is implicitly enabled for the OES versions
of said extensions.
* Added a test to make sure using this extension works instead of EXT.
* Turned the repeated test code into a function:
* testTessellationTextureBufferAccess
* Skipped the tests that fail on various platforms.
* It seems that these tests were being skipped before enabling
this extension ("Not supported").
Bug: b/344030760
Bug: angleproject:345306326
Bug: angleproject:345304850
Bug: angleproject:345312771
Change-Id: I905da0132bf6525cb453dcaa613e4deb3155c4dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5595611
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@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>
|
|
18a68f6d
|
2023-12-07T16:23:10
|
|
Fix vertex attribute limit check
Bug: angleproject:8448
Change-Id: Ie5d2b71f0be86b31ec74a1d55501b60a25245668
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5101508
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
3944ffce
|
2023-11-13T18:32:13
|
|
Add missing validation code
The validation code for below GLES 3.2 entry points
is added:
GL_TexParameterIiv
GL_TexParameterIuiv
GL_GetTexParameterIiv
GL_GetTexParameterIuiv
GL_SamplerParameterIiv
GL_SamplerParameterIuiv
GL_GetSamplerParameterIiv
GL_GetSamplerParameterIuiv
Also add extension check in validation functions
of entry points that are exposed through these two extensions:
GL_OES_texture_border_clamp
GL_EXT_texture_border_clamp
The validation functions of GL_OES_texture_border_clamp
extension are moved to validationESEXT.cpp for readability.
Bug: b/286572199
Bug: b/224537784
Change-Id: I77ed22e8dc961a30a5d86b0597c25555d15c517b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5028139
Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
74cf6a3a
|
2023-07-12T14:44:17
|
|
Ensure lockless entry point validations only access private data
Bug: angleproject:8224
Change-Id: I19e867923b088879f9f37d0a3b4ff8b681470be0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678352
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c9a42949
|
2023-07-12T15:07:17
|
|
Make validation make straight calls to ErrorSet
... and avoid going through the context (just to get a const cast).
This change is also in preparation for an follow up where some entry
points directly use ErrorSet and don't access context at all.
Bug: angleproject:8224
Change-Id: Idef0a88d9407870e7a84b4fe6967fbff175c269b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678350
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef20f191
|
2023-03-29T14:05:04
|
|
Make the PLS allow list more permissive
Allow ClipControlEXT, FlushMappedBufferRange, Gen*, PolygonOffset*,
ProvokingVertexANGLE, and KHR_debug commands.
Allow caps DEPTH_CLAMP_EXT, CLIP_DISTANCE[0..7]_EXT.
Ban indexed caps besides BLEND, SCISSOR_TEST, SCISSOR_TEST_EXCLUSIVE_NV.
Clarify that the index restrictions on indexed caps only apply to BLEND.
Bug: chromium:1421437
Change-Id: Ibdb0acaebfa992ad37c928481d5ecb10496f22e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4382502
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
07074968
|
2023-03-17T19:13:39
|
|
Validate gl[Push,Pop]DebugGroup
Bug: angleproject:8089
Test: DebugTestES32.DebugGroup*
Change-Id: I3a20822a072cea8f4a8a58445917a4ebb86db9da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4350852
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
40e4bc63
|
2022-11-09T12:40:48
|
|
Make DrawRangeElements validation consistent with DrawElements
According to the WebGL specification, when an empty buffer is bound to
GL_ELEMENT_ARRAY_BUFFER binding point, one of the possibilities is to
return an error when trying to draw with an index count other than
zero. This is the behavior of DrawElements variants but not
DrawRangeElements.
This change brings variants of DrawRangeElements behavior in line with
that of DrawElements.
Bug: angleproject:7822
Change-Id: I6844efd1038d95c652b72e52209dfdd74f006f9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4015418
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
9f693aa3
|
2022-10-22T14:45:59
|
|
Implement an allow list for PLS
In order to guarantee no data is lost while using the
EXT_shader_pixel_local_storage extension, we need to restrict
applications to a small subset of commands while pixel local storage is
active. This CL implements the allow list for GL entrypoints using
wildcard matching inside the code generator, and adds custom validation
for the more specific restrictions that go into effect when PLS is
active.
Bug: angleproject:7279
Change-Id: I5dd48bd93c10e8775f32be32a4fcf17855eb2f0e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932552
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
02eb5f49
|
2022-08-19T12:41:11
|
|
validation: Annotate kEnumNotSupported errors with values.
Use validationErrorF to annotate all unsupported enum errors with the
corresponding value of the enum in hex.
This makes the errors more meaningful and reduces the amount of
debugging required to find out the invalid enum used.
Add kEnumInvalid error string in cases an InvalidEnum is provided and
can't be resolved to the given GL enum.
Before:
glEnable: GL error: HIGH: Enum is not currently supported.
After:
glEnable: GL error: HIGH: Enum 0x809D is currently not supported.
Bug: angleproject:7595
Bug: angleproject:7596
Change-Id: Iff060a1c3a2f482f4df5b5b7ea036b93025df7d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849475
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e38dab0a
|
2022-01-10T10:58:40
|
|
Add missing implementation for glGetnUniformuiv()
GL_KHR_robustness became core in GLES 3.2 and added
glGetnUniformuiv() function in gles_3_2 entry points but this
function was missing implementation in Context.cpp. Also fixes
ES32 validation for glGetnUniform*v
Bug: angleproject:6593
Tests: KHR-NoContext.es32.robustness.getnuniform
Change-Id: Ic26190e59d448d93ae9e2e0d2a7faff14c3776f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373436
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
2aa5286d
|
2021-10-12T17:05:48
|
|
Add Entry Point name to validation errors
Add gl/gles entry point names to validation error messages
some special cases:
1. Debug::insertPerfWarning() is invoked from multiple places,
such as TextureVK, ContextVK,
adding an extra entryPoint function parameter
in these files will need
extra investigations.
I am passing the entryPoint name GLInvalid as a
temp workaround.
2.ErrorSet::hangleError() is invoked from multiple
Context*.cpp files,
adding an extra entryPoint function parameter
in these files will need
extra investigations.
I am passing the entryPoint name GLInvalid as a
temp workaround.
3. Debug::insertMessage(), Debug::popGroup(), Debug::pushGroup()
can be invoked from more than one GL entry points,
e.g. Debug::pushGroup() can be invoked from
either GL_APIENTRY GL_PushDebugGroup() or
GL_APIENTRY GL_PushDebugGroupKHR()
through context->pushDebugGroup() call.
Right now the same entry point name glPushDebugGroup will
be printed out in the error message for both cases.
However, we should be able to tell the actual entry point
by checking which version: KHR version or core version the
application uses, and this helps avoid the confusion.
For now we will let the same entry point name
getting printed for both cases.
Bug: angleproject:6523
Change-Id: I64a5463d9168d8444d376d1f428c3b3d894f2ea9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3215063
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
b15de455
|
2021-01-27T13:58:42
|
|
Remove extension check in validation of ES3.2 entry points
Bug: angleproject:3582
Change-Id: I563c6d77b825afd44809db0d08dc4842a5f93b6a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653914
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fbaae6ce
|
2020-07-24T11:47:12
|
|
GL: Add support for GL_OES/EXT_texture_buffer
This extension is core in 3.2
Based on a CL by Jonah Ryan-Davis.
Bug: angleproject:3573
Bug: angleproject:4933
Change-Id: Ib5ce038414075a5cdce36e9404e25d7af33fb39c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519401
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1e494cae
|
2020-10-07T19:26:01
|
|
Vulkan: Add support for EXT_copy_image
Add support for GL_EXT_copy_image which allows
image data transfer between image objects.
This is implemented by using the vkCmdCopyImage
API call.
Bug: angleproject:3593
Test: dEQP-GLES31.functional.copy_image.*
Change-Id: I30a34a8711b5d2e5834064d7453e03d6ec0df478
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2393955
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4f7f4387
|
2020-07-24T11:44:02
|
|
Add entry points for OES/EXT_texture_buffer
This extension is core in 3.2
Bug: angleproject:3573
Change-Id: If08736759da2fdc680cfa396d354dbfa97d1a60f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2317040
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
605ab763
|
2020-02-24T19:43:32
|
|
D3D11: Implement OES_draw_buffers_indexed
Existing CONSTANT_COLOR/CONSTANT_ALPHA limitation was generalized to independent blend states with draw call invalidation and a new end2end test. dEQP tests that are incompatible with this limitation result in INVALID_OPERATION and are marked as FAIL.
D3D11 renderer always normalizes and deduplicates requested blend states based on their enabled features and bound framebuffer.
Bug: angleproject:4394
Change-Id: I284796e18be71de1b5bfb087d36f6a45be4c3f70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2070575
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a18f4145
|
2020-02-19T22:42:12
|
|
Trace/Replay: Add uniform location type.
This is a large refactor that replaces instances of "GLint location"
for uniform locations with "UniformLocation location". This boxed type
is similar to the ResourceID types that we use to capture resource IDs
more easily. Eventually this will give us a more portable replay.
Bug: angleproject:4411
Change-Id: I848e861c3956d95b6b953f57f8b6a2c4a676766f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2066117
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bd4e756a
|
2020-02-17T09:49:45
|
|
Const-ify the validation layer.
Enforces that the validation layers should be working pretty much read-
only with the exeption of updating caches. Requires a few tricks:
- updates EP code generation to add 'const' to pointer parameters
- enables a kludge const_cast to enable the robust query extension
- makes some members of Framebuffer mutable to work around syncState
- makes 'is' queries and other methods in Context/State const
Will allow us to more safely expose the no_error extension.
Bug: angleproject:1280
Change-Id: Id9756757854c9e68fc096ecec8d93759fbe6b3a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2060689
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4b4ea4be
|
2020-02-03T09:48:09
|
|
Remove getIndexRange call from ValidateDrawRangeElementsBaseVertex
This is essentially the same commit as fed0dda, but with the BaseVertex variant.
Bug: angleproject:4373
Change-Id: I2d6fe46a0e8ce5faa8c92d4db6909f8cabd9692f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2032972
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a825eb70
|
2019-11-21T11:37:17
|
|
Implement BaseVertex draw calls for Vulkan, OpenGL, NULL contexts.
This adds support for the following functions:
- glDrawElementsBaseVertex
- glDrawRangeElementsBaseVertex
- glDrawElementsInstancedBaseVertex
Bug: angleproject:3582
Bug: angleproject:3402
Bug: angleproject:4166
Change-Id: I83770f62e3a918c0965fd4ca8c7d9e598b8b4154
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1929083
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
aa292a59
|
2019-10-10T08:22:04
|
|
Generate GLES 3.2 entry points
This is a combination of:
- Changing the "scripts/generate_entry_points.py" script to tell it to
also auto-generate GLES 3.2. Also changing "scripts/gen_proc_table.py".
- Generating new and modified files needed to add GLES 3.2 to the
ANGLE front-end. This is done by running the following command:
"python scripts/run_code_generation.py".
- Creating the following files:
- src/libANGLE/validationES32.h
- src/libANGLE/validationES32.cpp
- src/libANGLE/capture_gles_3_2_params.cpp
- Hand-editing the following files:
- src/libGLESv1_CM/libGLESv1_CM.cpp
- include/GLES2/gl2ext_angle.h
- src/libGLESv2.gni
- src/libANGLE/Context.h
- src/libANGLE/Context.cpp
- src/libANGLE/Context_gl.cpp
- src/libANGLE/ErrorStrings.h
- src/libANGLE/State.h
- src/libANGLE/validationES1.cpp
- src/libANGLE/validationGL3.cpp
- src/libANGLE/validationGL31.cpp
- src/libANGLE/validationGL32.cpp
- src/libANGLE/validationGL33.cpp
- src/libANGLE/validationGL4.cpp
- src/libANGLE/validationGL43.cpp
- src/libANGLE/validationGL45.cpp
Bug: angleproject:3649
Change-Id: I5b67f72e3e3b55e74039ec3e28aa8d399ec08cf2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1850231
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|