|
669acb00
|
2021-06-08T13:36:38
|
|
Add YUV format utils and validation code
1. Add YuvFormatInfo struct and a few YUV format helpers
2. Update ES3 validation code to account for YUV formats
Bug: angleproject:5773
Change-Id: I82ababe8bf2a065e7d5c4f868e4a512ba8c9d7d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947766
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cf853b30
|
2021-06-03T13:54:44
|
|
Add missing buffer validation to BeginTransformFeedback.
A change to Vulkan exposed this missing validation. In the Vulkan
back-end we do some caching on BeginXFB, which would perform an
invalid memory access. Adding the missing validation correctly
traps the error before we reach the back-end.
Bug: chromium:1171685
Bug: angleproject:4622
Change-Id: I5c92575a07149e431c4f260a4555ff196822c64e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937022
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c8ee13c7
|
2021-04-02T12:19:33
|
|
Vulkan: Fix a validation bug in glBeginTransformFeedback
Add logic to check the program or the pipeline before erroring out when
validating glBeginTransformFeedeback.
Bug: angleproject:5557
Test: ProgramPipelineXFBTest31.VaryingIOBlockSeparableProgramWithXFB*
Change-Id: I0df8a8d87b3632745bc91dc2673f2fac31c6cdb1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743440
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
351e6e8c
|
2021-01-26T17:08:59
|
|
Add 'UniformBlockIndex' struct
Add the new structure 'UniformBlockIndex'. This is in preparation for
capturing glUniformBlockBinding() calls, which requires the (new)
corresponding ParamType::TUniformBlockIndex.
Bug: angleproject:5564
Change-Id: I88613dd96d058659dd253e8088fab49670c32316
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2651287
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
fb35201a
|
2020-12-22T13:14:41
|
|
GL: Expose NV_framebuffer_blit for ES2 contexts when available
ANGLE_framebuffer_blit is already exposed but has restrictions on
scaling/flipping and mismatched color buffer formats. When
NV_framebuffer_blit, EXT_framebuffer_blit, or an ES3 context is
available we can expose a less restrictive BlitFramebuffer.
Bug: angleproject:5474
Bug: chromium:1157057
Change-Id: I916ee39c8d6120216f91461080eb3ee9ca777e29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2601165
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ed87c16a
|
2020-11-15T11:30:47
|
|
Vulkan: Add GL_EXT_separate_shader_objects support
All the functionality needed for this extension has already been
implemented as part of core GLES31. Hook into that along with
changes to validation layer to allow non-GLES31 contexts to call
into these APIs as long as the extension is exposed.
Bug: angleproject:3570
Test: ProgramPipelineTest.GenerateProgramPipelineObjectEXT*
Change-Id: I92a61a47517c5cb9573874b2add6a744c9edb755
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2539121
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>
|
|
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>
|
|
089ef0fa
|
2020-10-14T11:31:56
|
|
Expose glGetTexLevelParameter{if}v before ES 3.1.
Add a new extension, ANGLE_get_tex_level_parameter which allows
users to query texture size and format information before ES 3.1.
This is very useful for re-using existing textures instead of
re-allocating.
Bug: chromium:1132514
Change-Id: I71f6bad8bdacb91875cc81b4884d4c3099235f3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2469959
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
08c4d094
|
2020-07-16T18:48:59
|
|
Improve WebGL 2.0 readPixels support.
Emulate GL_PACK_SKIP_PIXELS and GL_PACK_SKIP_ROWS on macOS, where it
appears the OpenGL driver ignores these parameters.
Add WebGL 2.0-specific validation constraints for pixel pack and
unpack parameters.
Bug: angleproject:4849
Change-Id: Iab566299223e05484a009817acb1ed2816023823
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2303905
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
18d412cb
|
2020-06-18T11:57:53
|
|
Fix readBuffer validation
The argument to glReadBuffer should be validated against
GL_MAX_COLOR_ATTACHMENTS, not GL_MAX_DRAW_BUFFERS.
Bug: angleproject:4766
Change-Id: Ic184934bd01e68b936266eae69543ae66fd68ea3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252978
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
7fde3673
|
2020-05-25T15:48:06
|
|
GL: Support GL_OES_texture_cube_map_array in frontend/GL backend
GL_OES_texture_cube_map_array is core in 3.2. This CL adds the
necessary validation for the frontend, as well as support for this
extension on the GL backend. The next step is to add the changes
to the translator.
Bug: angleproject:3584
Change-Id: I751a9c9f71a553b05fdf6673250290806d8cfbff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2215306
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
78ef4133
|
2020-05-15T23:24:18
|
|
Fix invalid enums for OES_draw_buffers_indexed
Make sure the new enums are invalid before the extension is enabled.
Add a angle_end2end_test for that.
Bug: angleproject:4394, chromium:1058744
Change-Id: Ib88f6159294dab2eb7d3662b96c44424ab132782
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2205179
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
204720bd
|
2020-05-08T18:08:37
|
|
Fix GetBooleani_v validation and params length for WebGL OES_draw_buffers_indexed
WebGL 2 seems to be ES300 context and will fail the
ValidateGetBooleani_v at context->getClientVersion() >= ES_3_1.
Also for getIndexedParameter pname==GL_COLOR_WRITEMASK, the length
shall be 4.
Bug: angleproject:4394, chromium:1058744
Change-Id: Ia60506b6b1f120ed06acbcea0cb1f4581c70b32b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2191424
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shrek Shao <shrekshao@google.com>
|
|
e09f7a14
|
2020-04-30T17:43:12
|
|
Validation: Fix some function types.
These were slightly mismatching the header types. They seemed
to link fine despite producing some warnings in a tool.
Bug: angleproject:4598
Change-Id: I19cfe4d87eca409c82a7c8cf25fff6f8a4c83ca9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2175057
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
57d95828
|
2020-04-30T17:35:50
|
|
Revert "Add type for attribute locations."
This reverts commit 9349c14344b2d1fd6bc357063b602bc2626c140f
and commit d43b057435e6c9e3194dd20627681ffca0c0808e.
It's no longer needed after we bind attribute locations before link.
Original CL message:
This will allow the capture/replay tool to easily intercept and label
attribute locations for remapping.
There's some inconsistency in implementation in the GL desktop front-
end. This is a quick fix and the full implementation is left for when
we implement the full desktop GL API set.
Bug: angleproject:4598
Change-Id: Ic510159d4d1982eff41560503cabf983a1be0381
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2174076
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9349c143
|
2020-04-29T16:36:17
|
|
Add type for attribute locations.
This will allow the capture/replay tool to easily intercept and label
attribute locations for remapping.
There's some inconsistency in implementation in the GL desktop front-
end. This is a quick fix and the full implementation is left for when
we implement the full desktop GL API set.
Bug: angleproject:4598
Change-Id: Ibf11bcb8669d27265ea376494a2e3124825cf3be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2171933
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
74e816bf
|
2020-03-26T17:40:25
|
|
Vulkan: Expose extension for ETC1 usage with subimage updates
This CL implements the GL_EXT_compressed_ETC1_RGB8_sub_texture
extension, which was added to relax restrictions on using
ETC1_RGB8_OES for subimage updates.
Test: Temple Run on Android
Bug: b:152512564
Change-Id: I78cfd7dfd54fab36dee59a93b3ec3bfce17e73e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2123232
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
91f44a9a
|
2020-03-20T12:08:24
|
|
ASTC: LDR support doesn't imply HDR support
There are SwiftShader related failures related to enabling the
textureCompressionASTCHDRKHR feature without properly checking if the
VK_EXT_texture_compression_astc_hdr extension is available, so HDR support
shouldn't be enabled only based on the LDR support being enabled.
Bug: angleproject:4447
Change-Id: Icde34892c9e2efff4b71e8c4e960c2fcff786700
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080594
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
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>
|
|
33b1e31e
|
2020-02-08T17:48:56
|
|
Fix compressed formats validation with TEXTURE_3D
Bug: angleproject:4385
Change-Id: Ibc1b482ec851d8076aacad84ab67fe20a745c122
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2045512
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
fed0dda1
|
2020-01-31T12:59:31
|
|
Remove getIndexRange call from ValidateDrawRangeElements
The spec doesn't require implementation to validate indices against
range. This extra validation is costing performance dearly, thus should
be removed.
Bug: angleproject:4373
Change-Id: I61b0628e75de368d9e869008b7c99c429222fd6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033495
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
94de306d
|
2020-01-14T16:18:56
|
|
Extensions suffixes
Added NV/OES suffixes to relevant Extensions members.
Bug: angleproject:3104
Change-Id: Ia1798157086230bde8d11c6fcb4fe93211e996ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2013168
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
17b3c2f3
|
2019-10-14T14:13:59
|
|
Implement SamplerVideoWEBGL for WEBGL_video_texture extension on desktop
WEBGL_video_texture is an extension that will improve uploading video frame to WebGL performance.
(https://www.khronos.org/registry/webgl/extensions/proposals/WEBGL_video_texture/)
This extension introduced a new texture type TEXTURE_VIDEO_IMAGE_WEBGL and a new sampler type
samplerVideoWEBGL to sample it.
In chromium implementation, TEXTURE_VIDEO_IMAGE_WEBGL maps to different native texture type
based on platform. On desktop, it maps to GL_TEXTURE2D(Currently supported). On Android, it
should map to GL_TEXTURE_EXTERNAL(TODO). SamplerVideoWEBGL needs to be mapped to sampler2D or
samplerExternalOES according to TEXTURE_VIDEO_IMAGE_WEBGL implementation.
This patch implements samplerVideoWEBGL in Angle to support WEBGL_video_texture on desktop. In
this case, samplerVideoWEBGL should map to sampler2D.
Bug: chromium:776222, angleproject:3889
Change-Id: Idb0a5fcde37ca75ccc1181226b91f257212e7500
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866274
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5f3456e3
|
2019-12-03T14:16:19
|
|
Expose GL_ARB_sync for GL
BUG=chromium:1028799
R=jonahr
CC=vasilyt
Change-Id: Id17c4061b206953b1e904bf7938cb371612e33fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948534
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
4c7db77e
|
2019-10-31T15:42:31
|
|
Vulkan: Set limitation on maxComputeWorkGroupCount
According to Table 20.45 and Chapter 17 in the ES 3.1 spec, MAX_COMPUTE_WORK_GROUP_COUNT
is get as a GLint by using GetIntegeri_v. However, it is an unsigned integer
in the Vulkan. It needs to set limitation on maxComputeWorkGroupCount[] during
translating.
1. Change the data type to GLint stored in Caps.
2. Ensure that the limitation is set during initialization.
3. Add workaround for angleproject:4120
Bug: angleproject:4066
Change-Id: I1659ba1d560e30b9599cace0feeab8a18890c3ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1890586
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
35f74cd6
|
2019-10-31T16:47:10
|
|
Reorder BaseVertexBaseInstance draw calls parameters
To match the parameter order of MultiDraw* calls.
And potentially expose in chromium directly with ANGLE_ prefix.
Bug: angleproject:3402, chromium:891861
Change-Id: I19548f4c3c7faa422e43905850b218039de43015
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1894241
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
2d0e5b55
|
2019-08-27T13:49:07
|
|
GL_EXT_multisampled_render_to_texture extension. Part 2.
For textures that use this extension, a multisampled texture is
implicitly created for the texture.
Upon write or read, the multisampled texture is either return
to be drawn to or resolved and returned as a single sampled texture.
This is the functionality change with end2end tests.
Bug: angleproject:980428
Change-Id: I5776875a132fed7a3f4f00fb02f9e8e250684630
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1773717
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f703443b
|
2019-09-21T14:10:35
|
|
Use Resource IDs in RefCountObject.
This lets us use strongly typed IDs pretty much everywhere. Only one or
two additional places still use GLuint IDs. Mostly for external queries
and for Framebuffer Attachments.
With some clever type reflection helpers lets us define a single
template function for handling operator== and != for resource IDs.
Refactor in preparation for more Capture/Replay work.
Bug: angleproject:3611
Change-Id: I1c0c848e89eb8a4b769714d57686f816daf01634
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1815550
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
46c88567
|
2019-09-04T11:17:49
|
|
Correct glCompressedTexSubImage3D() Parameter Checking
GL_INVALID_OPERATION is generated if format is an ETC2/EAC format and
the target is not GL_TEXTURE_2D_ARRAY.
Bug: angleproject:3895
Test: dEQP-GLES3.functional.negative_api.texture.compressedtex*image3d
Test: KHR-GLES2.texture_3d.compressed_texture.negative_compressed_tex_image
Change-Id: I7f653192328f0bb067cc4a0c0285a2d3acec7024
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1784060
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c3f7873b
|
2019-08-30T15:00:52
|
|
Use TransformFeedbackID in place of GLuint handle
Bug: angleproject:3804
Change-Id: Ib8fbec89f28645790df98a184f47303f4a8d64c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1779343
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
feb8507f
|
2019-09-03T13:22:04
|
|
Use VertexArrayID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I0454533eff13218a6aa1e1672ffcd0e76aedb399
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769716
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2c5d48a6
|
2019-08-23T09:28:35
|
|
Use FramebufferID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I5e1b5f1903b05a91468379e00ec130802315cdc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769039
Reviewed-by: Jiacheng Lu <lujc@google.com>
Commit-Queue: Jiacheng Lu <lujc@google.com>
|
|
56ba54cc
|
2019-08-08T13:03:34
|
|
Support separate read and draw surfaces in eglMakeCurrent
Update ANGLE's default framebuffer implementation to support reading
and writing to different surfaces within the same framebuffer.
Bug: angleproject:2620
Test: EGLSurfaceTest[3]
Change-Id: I4b1ea04ca87a751f80cf190bf3adec148fc4fce3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744746
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
120b61d3
|
2019-08-21T12:51:58
|
|
Use ShaderProgramID in place of GLuint handles
Bug: angleproject:3804
Change-Id: I5dc640004c2cc054c53261e8e939b6a9f5fc23bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762363
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
|
|
814a0a1b
|
2019-08-22T11:50:43
|
|
Use QueryID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I921bbe7f67c025ab2b624fe14530c04ac17346f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1765889
Reviewed-by: Jiacheng Lu <lujc@google.com>
Commit-Queue: Jiacheng Lu <lujc@google.com>
|
|
ee79e2ff
|
2019-08-20T11:28:36
|
|
Use SamplerID in place of GLuint handles
Update all Sampler handles to type SamplerID, preparing for midframe
capture of sampler.
Bug: angleproject:3804
Change-Id: I9337919f97d61e28718987612d642c569b90246a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1761780
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cdecd97c
|
2019-06-25T14:22:41
|
|
Add Draw base vertex and base instance function entrypoints
Split from https://chromium-review.googlesource.com/c/angle/angle/+/1705035/27
This patch adds entrypoints glDrawArraysInstancedBaseInstanceANGLE,
glDrawElementsInstancedBaseVertexBaseInstanceANGLE,
glMultiDrawArraysInstancedBaseInstanceANGLE,
and glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Implementation will come in a later separate patch.
Bug: chromium:891861, angleproject:3402
Change-Id: I18e19b850cddd79be4798b9ae7efe0680a050c7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750125
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9d737966
|
2019-08-14T12:25:12
|
|
Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
"The ANGLE Project Authors"
These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.
BUG=angleproject:3811
Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7e48c9eb
|
2019-08-06T17:17:19
|
|
Add explicit integer casts
WebKit uses the -Wshorten-64-to-32 flag which warns on these cases.
Bug: 3439
Change-Id: I8c1de60da0f173ca2036e2120e79b857f5f2775f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1740866
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
2ab08edc
|
2019-08-12T16:20:21
|
|
Use TextureID in place of GLuint handles.
Bug: angleproject:3611
Change-Id: Ie6156e8732b3ca4dc6c4439c059a5481a4dfd250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738753
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3b3fe837
|
2019-08-06T17:44:12
|
|
Use BufferID in place of GLuint handles.
Introduces enable_if handling for "FromGL". Avoids the use of any macro
code to handle resource id casting.
Bug: angleproject:3611
Change-Id: I1a6d10c3c9cc6ba0dc072bad1d62c33551f05d87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1736127
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
de50d039
|
2019-07-29T16:04:56
|
|
Enable ASTC 3D Textures
Enable ASTC 3D textures.
ETC are still unsupported, since dEQP fails if we indicate support.
Bug: angleproject:3188
Test: dEQP.KHR_GLES2/texture_3d_compressed_texture_*astc*
Test: dEQP.KHR_GLES2/texture_3d_compressed_texture_negative_compressed_tex_image
Change-Id: I8559ae42d19e63fdf96ea7a49f2d7e3d5098771c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1723094
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
f2412bca
|
2019-07-16T15:47:34
|
|
Get rendering to texture working
Other small fixes for desktop compatibility
Bug: angleproject:3620
Change-Id: I8e75bce1f850fb891c8bb6e16f79302a6d59276c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707932
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8bb46c5b
|
2019-07-22T16:04:55
|
|
Refactor: add InternalFormat::isInt()
Bug: angleproject:3727
Change-Id: I33ee85563e3b070b4b86afc37230d3f5af54f446
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713091
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9c17107
|
2019-07-10T14:56:26
|
|
Add support for GL_OES_texture_compression_astc
This extension adds 3D compressed texture formats, something ANGLE has
not seen before. This requires tracking a compressed block depth for
validation and image size computations.
Update the ldr and hdr extension checks to be in line with the spec.
HDR requires LDR and is not detectable by texture formats alone.
Expose all of the ASTC extensions on the GL backend.
BUG=angleproject:3675
Change-Id: Id04c7c8ef8541e9556579536cdba899b64303caf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1695923
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9d943af7
|
2019-07-11T17:53:37
|
|
Vulkan: Support more texture format-type combination tests.
This is a partial fix for 3455, which contains a number of different
root-causes. This CL addresses two sets of them.
1) Partial fix for KHR-GLES3.copy_tex_image_conversions.forbidden.*
Recent changes, including adding support for GL_RGBA8-to-GL_RGB5_A1,
plus adding support for GL_RGB10_A2-to-GL_RGB5_A1 eliminate the
crashes for 56 of the 70 tests.
2) Most of the KHR-GLES3.packed_pixels.rectangle.r* tests now pass.
Recent changes, including potentially the above get another 34
tests passing, and another 15 no longer crashing.
3) Vulkan: Fix errant glCopyTextImage validation code.
I got all but 2 of the KHR-GLES3.packed_pixels.rectangle.r* tests passing.
I fixed bugs in the validation code (with at least two more bugs
that I haven't fixed yet). More details below.
3a) Fix the IsValidES3CopyTexImageCombination() function for SNORM.
The code wasn't rejecting SNORM cases, which are missing from the table of
effective internal formats, meaning that support is undefined. The
GLES 3.2 spec says that a GL_INVALID_OPERATION error should be generated
"if the effective internal format of the source buffer does not match the
effective internal format of the new image."
3b) There's a caveat that was overlooked that means that internal
formats like GL_RGB10_A2 are not supported.
Bug: angleproject:3455
Bug: angleproject:3693
Bug: angleproject:3697
Change-Id: Ie4399a2d7cd969ec29acc926f32e6608775609c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1693325
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
6c90ebb0
|
2019-07-11T15:10:56
|
|
glTexStorage3D: Disallow compressed formats on GL_TEXTURE_3D targets.
GLES 3.0.4 p147:
"If internalformat is an ETC2/EAC format, CompressedTexImage3D will generate an
INVALID_OPERATION error if target is not TEXTURE_2D_ARRAY."
This matches the validation of glTexImage3D.
TEST=conformance2/textures/misc/tex-storage-compressed-formats.html
BUG=chromium:983142
Change-Id: Ifc4ea9503182c43de7e58c4b45b59bb03ae2f901
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1698648
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4e71b2bc
|
2019-07-08T13:23:38
|
|
Framebuffer: Clean up query naming.
Changes instances where we were querying 'color buffers' and 'depth
buffers' to 'color attachments' and 'depth attachments', etc.
Bug: angleproject:3611
Change-Id: I7af7d33e5204f21d288f5bcad997988d36eabfc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1690679
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
66b5ff58
|
2019-06-28T14:34:22
|
|
texture3D: Implement functionality and enable for Vulkan
Also update test expectations for texture3D.
Bug: angleproject:3188
Change-Id: If8a8e0a83a86c48c2afb0c36534c1e9d4120fe47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1682782
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
8af6c6f5
|
2019-06-18T15:43:44
|
|
Vulkan: Minor cleanup of Transform Feedback validation
By using the helper isTransformFeedbackActive* functions.
Bug: angleproject:3205
Change-Id: I50b3e9db427da9f65c3e2b50d7847464e8c28202
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665353
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
857880e5
|
2019-05-27T13:39:15
|
|
GL: Add extensions to enable hardware video decode on Android.
The Android SurfaceTexture API has to be initialized with a texture id
which Chrome has to query from an ANGLE external texture. It also
rebinds and sets the texture dimensions on calls to
SurfaceTexture.updateTexImage so ANGLE must be notified about these
changes so that state tracking and validation continue to function.
BUG=967410
Change-Id: I92e9077f75835b088da3a8caffb3ff40e9ad0361
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1630293
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ebab670c
|
2019-04-19T14:36:45
|
|
Adding new extension GL_OVR_multiview
GL_OVR_multiview functions exactly the same as GL_OVR_multiview2.
All GL_OVR_multiview2 tests now also repeat the same test using GL_OVR_multiview
Bug: angleproject:3341
Change-Id: I7e5294fb6bbf7692535174a15da6a42e1b5fc4e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575904
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fb6fbdbc
|
2019-04-12T15:16:30
|
|
Return that polling queries have completed after context loss.
KHR_robustness says that certain queries that poll such as GetSynciv with
SYNC_STATUS should still generate errors after context loss but also return
that the result is available.
BUG=angleproject:3379
Change-Id: Ibf61f8481bc7c3d1b4fa8979dc404d0ca3952fcd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1566142
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7d64c486
|
2019-03-12T14:27:40
|
|
GL_ANGLE_multiview has been renamed to GL_OVR_multiview2.
changes include:
1) GL_OVR_multiview to GL_OVR_multiview2 extension directive change
2) Removal of all references to side by side. We no longer support multiple views in a single 2DTexture. Only 2DTextureArray's are supported
3) WebGL 2 (ES3) is required for multiview
Bug: angleproject:3341
Change-Id: Ie0c1d21d7610f8feebdb2e4d01c6947f57e69328
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1552023
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2664da8b
|
2019-04-08T16:26:52
|
|
Correct texImage uses of texture type -> target.
Similarly to how the subImage calls were corrected. glTexImage and the
family of related functions apply to a single texture target. This
means we need a different TexImage call for each cube face. This is
distinct from TexStorage calls which take a Cube map directly.
Note this is mostly a refactoring change. But it does increase code
consistency and should allow for more efficient code reuse.
Bug: angleproject:3356
Change-Id: I252f8983cdda3a8f0223c44cbbe8d8e2dd319a88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1558673
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
cfc73cc1
|
2019-04-08T16:26:51
|
|
Correct subImage uses of texture type -> target.
Texture "types" are the same as texture "targets" except for cube maps.
Cube map targets specify a single face. Cube map types specify a whole
cube map. The subImage functions should take a target instead of a
type. We were using both in different places. This CL corrects all uses
in subImage calls to "target". It also adds a helper for getting a
target texture from a target. And clarifies the naming of the texture
query methods.
Bug: angleproject:3356
Change-Id: I06eb5c5666eec9b8934becf2ba57a066d5cdabde
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1558672
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
14126505
|
2019-03-06T21:13:20
|
|
Revert "Use a constexpr array for es3 copy conversion table."
This reverts commit f30808db86e31b8b301eb9ec07cfe785d60b6a16.
Reason for revert: build/android/gyp/assert_static_initializers.py thinks this adds a static initializer.
See https://ci.chromium.org/p/chromium/builders/try/android-marshmallow-arm64-rel/208664
Need to revert since this is blocking the roll.
Original change's description:
> Use a constexpr array for es3 copy conversion table.
>
> With the relaxed C++14 constexpr rules allowed in Chromium, we can
> use a constexpr sorted array to store our table data. This can lead
> to very fast lookups while being more maintanable than using auto-
> generator scripts for every lookup table.
>
> Note that to be sure this syntax is permitted, we should land this
> through the bots and let it sit for a little while.
>
> Bug: angleproject:1389
> Change-Id: I9395c40276470108ce3e5786d8f1b8d85462c517
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/777544
> Commit-Queue: Jamie Madill <jmadill@google.com>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,jmadill@google.com,syoussefi@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:1389
Change-Id: I482729b6f16975896b0e5c29999f9a081056e800
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1506238
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f30808db
|
2019-03-05T10:55:39
|
|
Use a constexpr array for es3 copy conversion table.
With the relaxed C++14 constexpr rules allowed in Chromium, we can
use a constexpr sorted array to store our table data. This can lead
to very fast lookups while being more maintanable than using auto-
generator scripts for every lookup table.
Note that to be sure this syntax is permitted, we should land this
through the bots and let it sit for a little while.
Bug: angleproject:1389
Change-Id: I9395c40276470108ce3e5786d8f1b8d85462c517
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/777544
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
25686848
|
2019-02-07T15:21:27
|
|
Refactor ANGLE's extensions struct to more easily represent multiple
vendor extension
Some extensions are available from multiple vendors with the same name,
while minimizing the amount of duplicated code and validation errors.
The anonymous struct allows individual vendor checks as well as an
"*Any()" check to check for any version of the extension.
Bug: angleproject:3104
Change-Id: Ib8b65cde850462d3746d9663496a595321817514
Reviewed-on: https://chromium-review.googlesource.com/c/1456619
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2b0553ce
|
2019-02-08T10:07:21
|
|
Implement EXT_instanced_arrays
Bug: angleproject:3015
Change-Id: Ib01cc5e0df6db27981cb843a6bd386de5d10c2db
Reviewed-on: https://chromium-review.googlesource.com/c/1452740
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c8c7d400
|
2019-01-16T13:27:15
|
|
Use a table for vertex attrib type validation.
No clearly sampled effect on performance but should require fewer
instructions. May lead to future improvements.
Bug: angleproject:3014
Change-Id: I64e155926ae2c553b059265780e72e91f91f097c
Reviewed-on: https://chromium-review.googlesource.com/c/1393906
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
dd34b3b9
|
2019-01-16T09:59:54
|
|
Pack VertexAttribType enum.
This improves performance slightly in vertex array format checks.
Instead of needing to switch on GLenum values we can use packed arrays
and tables to determine the values we need.
Does not significantly affect performance but will enable future work.
Bug: angleproject:3074
Change-Id: I6f4821a463e9b41fe3f8c8967eb3ed4c1d6b84be
Reviewed-on: https://chromium-review.googlesource.com/c/1393903
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c3dc5d48
|
2018-12-30T12:12:04
|
|
Merge gl::Context and gl::ContextState.
This reduces the number of indrections when accessing the Extensions
or Caps structures. It will provide a small speed-up to some methods.
It also cleans up the code.
Bug: angleproject:2966
Change-Id: Idddac70758c42c1c2b75c885d0cacc8a5c458685
Reviewed-on: https://chromium-review.googlesource.com/c/1392391
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Markus Tavenrath <matavenrath@nvidia.com>
|
|
c3e3731c
|
2018-11-30T15:25:39
|
|
Give every validation error a constant.
Makes the code more consistent and organized.
Also reduces binary size by about 4k.
Also refactors validation for GetBufferPointerv.
Bug: angleproject:2957
Change-Id: Ib076ce936193e9840eef2499bf815489cdb48479
Reviewed-on: https://chromium-review.googlesource.com/c/1350489
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8dc27f99
|
2018-11-29T11:45:44
|
|
Use packed enum for DrawElementsType.
The packing and unpacking take a few extra instructions. But it
completely obviates the need for any switches in the validation code.
Speed is slightly faster or the similar depending on the back-end.
Also add gl_angle_ext.xml to GL entry point generator inputs. This was
missing and would cause the code generation to miss certain changes.
Bug: angleproject:2985
Change-Id: I1ea41a71db71135000166ead8305ec42d22ff7b3
Reviewed-on: https://chromium-review.googlesource.com/c/1351729
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7310da33
|
2018-11-05T14:40:01
|
|
Implement GetMultismaplefvANGLE and SampleMaskiANGLE of texture multisample extension
This patch adds GetMultismaplefvANGLE and SampleMaskiANGLE api.
TEST=TextureMultisampleTest.CheckSamplePositions*
TEST=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: Ib1e8b856059229bbe88328a28cf2a892f4673214
Reviewed-on: https://chromium-review.googlesource.com/c/1319252
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3b7c9d09
|
2018-11-21T18:09:05
|
|
Change offsets in MultiDrawElements* entrypoints to match glMultiDrawElements
This patch changes arguments for MultiDrawElements and
MultiDrawElementsInstanced from from GLsizei *offsets to
const* GLvoid* indices.
Bug: chromium:890539
Change-Id: I2124cf2daeaa6af0f889f3c46aa2b8c77be200a6
Reviewed-on: https://chromium-review.googlesource.com/c/1352591
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
|
|
e0472f3d
|
2018-11-27T16:32:45
|
|
Slight refactor to ErrorStrings.h.
Allows for better readability. Also sort the error strings by ID.
Bug: angleproject:2957
Change-Id: Ib3900a4c90507ac84496fd5ff916417eb768667b
Reviewed-on: https://chromium-review.googlesource.com/c/1337461
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
471b8d4c
|
2018-11-21T15:37:47
|
|
WebGL, D3D: Forbid multiple TF outputs in one buffer
Implementing a WebGL spec change:
https://github.com/KhronosGroup/WebGL/pull/2658
Fixes WebGL 2 conformance test:
conformance2/transform_feedback/same-buffer-two-binding-points.html
Also applying the change to D3D backends because they can't support
multiple transform feedback outputs in one buffer.
Bug: chromium:866089
Change-Id: I8d7eda14225c13efb7ca1ed974239332be4e79a6
Reviewed-on: https://chromium-review.googlesource.com/c/1347749
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
610640fa
|
2018-11-21T17:28:41
|
|
Don't use gl::Error in validation.
Instead pass error code and error message directly to the Context. As
a side effect every validation error has an associated message now.
Reduces binary size by almost 100k.
Bug: angleproject:2957
Change-Id: I045e8ab57f8f9d787654a32f6f037011fe3a9f24
Reviewed-on: https://chromium-review.googlesource.com/c/1335890
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
778bf09d
|
2018-11-14T09:54:36
|
|
Auto-generate validation headers.
This will make them easier to maintain. Add to add new features.
Bug: angleproject:2964
Change-Id: I8c1f92e0d0ca15fc4f555f6c537fa9311320ef7d
Reviewed-on: https://chromium-review.googlesource.com/c/1334429
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
1bf18ce9
|
2018-10-19T15:34:02
|
|
Implement GL_ANGLE_multi_draw
This patch adds entrypoints glMultiDrawArraysANGLE,
glMultiDrawElementsANGLE, glMultiDrawArraysInstancedANGLE,
annd glMultiDrawElementsInstancedANGLE
Bug: chromium:890539
Change-Id: Ic9c374c53892460f44ca6e73a253b78473ac2dff
Reviewed-on: https://chromium-review.googlesource.com/c/1282268
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
|
|
c0b6c639
|
2018-09-06T15:02:04
|
|
Implement GetTexLevelParameter api of texture multisample extension
This patch adds GetTexLevelParameterivANGLE and GetTexLevelParameterfvANGLE.
TEST=TextureMultisampleTest.GetTexLevelParameter*
TEST=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: Id702ba31df36ab65f46b697d480b5bf01b87e360
Reviewed-on: https://chromium-review.googlesource.com/c/1295830
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
|
|
c1fd7376
|
2018-10-26T22:48:39
|
|
Move index range calculations into VertexArray.
This is in preparation for removing the entire DrawCallParams struct.
This struct was big enough to cause a performance hit on draw call perf
tests just by virtue of initializing the fields. Also dereferencing the
struct members is slower than reading function parameters since it adds
an indirection.
Also includes some error refactoring to enable moving code to a shared
location.
In total this patch series reduces overhead by up to 5%.
Bug: angleproject:2933
Change-Id: Ib663f2538c14ac30d4c31fd10d6350be469626e2
Reviewed-on: https://chromium-review.googlesource.com/c/1298380
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b8543630
|
2018-10-02T19:46:14
|
|
Support GL_OES_texture_border_clamp
Added support for GL_TEXTURE_BORDER_COLOR and GL_CLAMP_TO_BORDER in
OpenGL/OpenGLES, Direct3D9 and Direct3D11 backends.
For integer textures in OpenGLES3 contexts these additional entry points
are available now:
void glTexParameterIivOES(enum target, enum pname, const int *params);
void glTexParameterIuivOES(enum target, enum pname, const uint *params);
void glGetTexParameterIivOES(enum target, enum pname, int *params);
void glGetTexParameterIuivOES(enum target, enum pname, uint *params);
void glSamplerParameterIivOES(uint sampler, enum pname, const int *params);
void glSamplerParameterIuivOES(uint sampler, enum pname, const uint *params);
void glGetSamplerParameterIivOES(uint sampler, enum pname, int *params);
void glGetSamplerParameterIuivOES(uint sampler, enum pname, uint *params);
BUG=angleproject:2890
TEST=angle_end2end_tests.TextureBorderClamp*
Change-Id: Iee3eeb399d8d7851b3b30694ad8f21a2111f5828
Reviewed-on: https://chromium-review.googlesource.com/c/1257824
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7818a85c
|
2018-09-06T15:02:04
|
|
Implement GL_ANGLE_texture_multisample API part
Support GL_ANGLE_texture_multisample extension.
This patch adds enums of multisampled texture and texStorage2DMultisampleANGLE
API.
TEST=angle_end2end_tests.exe --gtest_filter=TextureMultisampleTest*
TEST=angle_end2end_tests.exe --gtest_filter=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: I2cab997edc33aa2d0be6082381545335423f64e0
Reviewed-on: https://chromium-review.googlesource.com/c/804613
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
785e8a0b
|
2018-10-04T17:42:00
|
|
Remove gl::LinkResult.
Instead of returning a small struct from LinkProgram calls we use
angle::Result. Linking can have 3 cases:
- the link was successful -> angle::Result::Continue
- the link failed -> angle::Result::Incomplete
- there was an internal error -> angle::Result::Stop
Note that any unexpected Incomplete is still an error. Each function
that accepts Incomplete must check explicitly.
This is the last user of ErrorOrResult.
Bug: angleproject:2491
Change-Id: Idba23be27efe4b561720a4bdd8fe486b40779497
Reviewed-on: https://chromium-review.googlesource.com/c/1255645
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@google.com>
|
|
0ca09753
|
2018-09-24T11:00:50
|
|
Add GLES3 support for EXT_blend_func_extended
This adds GLES3 API support for EXT_blend_func_extended. The patch
includes the API entrypoints, validation and also implementation on
the desktop GL backend.
Instead of having built-in fragment color variables, ESSL 3.00 has
custom output variables, which can now be bound to either primary or
secondary output color locations. The "index" set to a custom output
variable determines whether it's used a primary or secondary blending
source color.
The shader layout qualifier takes precedence over the bind call. This
is not specified in the EXT spec, but is specified in desktop OpenGL
specs.
BUG=angleproject:1085
TEST=angle_end2end_tests
Change-Id: Ia24e8e5dadcc165e5e8fbd7c653c7fab6217db88
Reviewed-on: https://chromium-review.googlesource.com/c/1249361
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4e6f2aea
|
2018-09-19T11:09:51
|
|
Implement ANGLE_copy_texture_3d Extension
Adds copyTexture3DANGLE and copySubTexture3DANGLE that adds copy
operations on volumetric textures.
Bug: angleproject:2762
Test: angle_end2end_tests
Change-Id: I0076989c2b7ed69abfc73143c325065bdb06a360
Reviewed-on: https://chromium-review.googlesource.com/c/1207216
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
44a6fbfd
|
2018-10-02T13:38:56
|
|
Optimize resolveLink.
This changes the program query to resolve the link if required. If the
validation layer is skipped the link is resolved in the gl::Context.
Resolving the link on program query allows us to avoid resolving the
link on most of the gl::Program query APIs.
This improves inlining and particularly affects uniform update. It
fixes a performance regression introduced by the parallel shader
linking extension. Gives a 17% increased score on a uniform benchmark.
Also fixes two missing cases of checking for the extension in our
validation code.
Note that some bugs might still exist when the validation layer is
disabled.
Bug: angleproject:2851
Change-Id: I5d725eede3fa147cedf2ce0129791b3412a97a61
Reviewed-on: https://chromium-review.googlesource.com/1255509
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@google.com>
|
|
2c8f0845
|
2018-09-12T14:44:55
|
|
Add ANGLE_multiview_multisample
We add a novel multiview multisampling extension that includes the
requirement to explicitly resolve the multisampled framebuffer. The
explicit resolve is much more straightforward to implement on top of
OpenGL and D3D11 than implicit resolve found in the native extension
OVR_multiview_multisampled_render_to_texture. It also has predictable
performance characteristics.
The extension allows multiview drawing to 2D multisample texture
arrays and is now enabled on both the GL backend and the D3D11
backend. The implementation is fairly simple, as it involves just
small changes in validation to allow multisampled framebuffer
attachments. The multiview rendering logic is exactly the same
regardless of whether multisampling is enabled.
For the most part the same tests are used to test both multisampled
and non-multisampled rendering. The tests will use a different
framebuffer setup depending on the test param. They resolve the
multisampled framebuffer to a non-multisampled framebuffer prior to
any readbacks from the framebuffer.
Some of the tests are adjusted so that they have the correct sub-pixel
positioning of multisampled quads, so there won't be any pixels that
would be just partially covered.
The tests don't have any tolerance for partially covered pixels - if
we find any platforms where the tests run into a sub-pixel positioning
corner case, tolerance may need to be added later.
BUG=angleproject:2775
TEST=angle_end2end_tests
Change-Id: I590d7f300a92ea5439f2720d9db14a7976db2e1d
Reviewed-on: https://chromium-review.googlesource.com/1221214
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fd162107
|
2018-08-27T16:14:57
|
|
Support multisample arrays as framebuffer attachments
This contains tests for framebuffer completeness when layers of
multisample array textures are attached.
Simple clearing of a layer of a multisample color texture array and
blitting the result to a non-multisampled texture is also covered.
BUG=angleproject:2775
TEST=angle_end2end_tests
Change-Id: Idf383cab69587dbd8157ab9a2b7c47e5a90b3cf7
Reviewed-on: https://chromium-review.googlesource.com/1190184
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
22f7aafb
|
2018-08-23T14:13:51
|
|
Add webgl checks in GetActiveUniformsiv.
Add validation that disallows GL_UNIFORM_NAME_LENGTH from being used.
BUG=angleproject:1523
TEST=angle_end2end_tests
Change-Id: Id70e25ab79fd93ae4eb8b8343819458a4a0e4a71
Reviewed-on: https://chromium-review.googlesource.com/1187511
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ca2ff38b
|
2018-07-11T09:01:17
|
|
Refactor internal format pixel math methods.
This removes the use of the ErrorOrResult class from these methods.
This will enable more performant Error handling. Also cleans up the
ANGLE_TRY_CHECKED_MATH macro to be more general.
Bug: angleproject:2713
Change-Id: I349947d320907839ca88ec1f9251e6ddc3858a08
Reviewed-on: https://chromium-review.googlesource.com/1128920
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
f7af13c4
|
2018-06-06T14:14:54
|
|
Fix the divide by zero exception in BindBufferRange
This bug is caught because we haven't implemented
caps.shaderStorageBufferOffsetAlignment on D3D backend. So the default
value is 0. This change will set its value for D3D11 backend.
BUG=angleproject:2625
TEST=angle_deqp_gles31_tests
Change-Id: I03c045c08903e4da41659133e7dbd9c4133186cc
Reviewed-on: https://chromium-review.googlesource.com/1088192
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
096a6c8c
|
2018-02-27T23:48:21
|
|
ES31: copy to a texture with RGB9_E5 internalformat is invalid.
BUG=angleproject:2378
TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.copytexsubimage2d_texture_internalformat
Change-Id: I4ad0ec6636c0312a3ecfeb47df3297e4bf399c35
Reviewed-on: https://chromium-review.googlesource.com/938328
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yunchao He <yunchao.he@intel.com>
|
|
493f9571
|
2018-05-24T19:52:15
|
|
Add PrimitiveMode packed GLenum.
Bug: angleproject:2574
Change-Id: I3d7bd7ca0d69a364a611dc04799ea34906fc4a6c
Reviewed-on: https://chromium-review.googlesource.com/1067114
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ad3ae90a
|
2018-03-09T13:40:42
|
|
Use packed enums for QueryType.
BUG=angleproject:2169
Change-Id: I129a9d8e295859daa071a298dab9fe1895315cc0
Reviewed-on: https://chromium-review.googlesource.com/957318
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
427064d2
|
2018-04-13T16:20:34
|
|
Fix perf regression with checkStatus.
Returning an Error was costing us performance in extra
error checks. This intead uses the Context to process the
Error immediately, and returns a value from isComplete and
checkStatus.
Improves performance in draw call validation.
Bug: chromium:822235
Change-Id: I0793fc690e86137425fed593d45083e40aee8db9
Reviewed-on: https://chromium-review.googlesource.com/1011370
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d104918f
|
2018-03-28T10:02:20
|
|
Refactor ANGLE Extensions Validation
Refactors ANGLE Extensions Validation functions into a common format for
future autogeneration. Any writes to output parameters that occurred
within the ANGLE entry point have been moved into the corresponding
validation function.
Bug:angleproject:2263
Change-Id: I7a678310ad481c1379596a493fcb0b0383fcf3b8
Reviewed-on: https://chromium-review.googlesource.com/985244
Commit-Queue: Brandon1 Jones <brandon1.jones@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6f5444da
|
2018-03-14T10:08:11
|
|
Remove HasIndexRange.
This is superseded by the DrawCallParams class. Instead of
storing the context, we also return an error from the index
range resolution.
Bug: angleproject:2389
Change-Id: I9e7d58f006f51872eb3b52cbb9efbee16fff7ef6
Reviewed-on: https://chromium-review.googlesource.com/960570
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e98b1b5d
|
2018-03-08T09:47:23
|
|
Framebuffer: Handle errors in checkStatus.
This pipes a lot more errors around in the Validation, where
they now will be caught.
Bug: angleproject:2372
Change-Id: Ibb4e47ddc932995a02dd92e10578b7a4097182a9
Reviewed-on: https://chromium-review.googlesource.com/954406
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b772312
|
2018-03-08T20:28:32
|
|
Nuke ValidationContext.
This pattern never really took off. It was intended to be used to
unit-test our Validation logic, but it become so complex because
of interactions with Framebuffer::syncState that we could never
really make use of it.
Nuke it entirely and simplify the Context class.
Bug: angleproject:2372
Change-Id: I40b9d46ce7706511a210da496ee19192cf609366
Reviewed-on: https://chromium-review.googlesource.com/954291
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e8a93c6e
|
2018-01-04T18:02:24
|
|
New transform feedback buffer binding rules
Detects undefined behavior when a buffer is bound to a transform feedback
binding point and a non transform feedback binding point at the same time.
Also moves the transform feedback buffer generic binding point out of the
transform feedback object and into the context's global state, to match
driver behavior. This way binding a new transform feedback object does not
affect GL_TRANSFORM_FEEDBACK_BUFFER_BINDING which is similar to how VAOs
work with GL_ARRAY_BUFFER_BINDING.
Bug: 696345
Change-Id: If3b9306cde7cd2197a8ce35e10c3af9ee58da0b8
Reviewed-on: https://chromium-review.googlesource.com/853130
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
99d492c2
|
2018-02-27T15:17:10
|
|
Use packed enums for the texture types and targets, part 2
This completes the refactor by using the packed enums in the gl:: layer
and in the backends.
The packed enum code generation is modified to support explicitly
assigning values to the packed enums so that the TextureTarget cube map
faces are in the correct order and easy to iterate over.
BUG=angleproject:2169
Change-Id: I5903235e684ccf382e92a8a1e10c5c85b4b16a04
Reviewed-on: https://chromium-review.googlesource.com/939994
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f0e89be6
|
2017-11-08T14:00:32
|
|
Use packed enums for the texture types and targets, part 1
In OpenGL there are two enum "sets" used by the API that are very
similar: texture types (or bind point) and texture targets. They only
differ in that texture types have GL_TEXTURE_CUBEMAP and target have
GL_TEXTURE_CUBEMAP_[POSITIVE|NEGATIVE]_[X|Y|Z].
This is a problem because in ANGLE we use GLenum to pass around both
types of data, making it difficult to know which of type and target a
variable is.
In addition these enums are placed somewhat randomly in the space of
OpenGL enums, making it slow to have a mapping from texture types to
some data. Such a mapping is in hot-code with gl::State::mTextures.
This commit stack makes the texture types and target enums be
translated to internal packed enums right at the OpenGL entry point
and used throughout ANGLE to have type safety and performance gains.
This is the first of two commit which does the refactor for all of the
validation and stops inside gl::Context. This was the best place to
split patches without having many conversions from packed enums to GL
enums.
BUG=angleproject:2169
Change-Id: Ib43da7e71c253bd9fe210fb0ec0de61bc286e6d3
Reviewed-on: https://chromium-review.googlesource.com/758835
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2f3a0dc5
|
2018-02-27T22:39:44
|
|
Report INVALID_VALUE if width/height of invalidateSubFramebuffer is negative.
BUG=angleproject:2376
TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.invalidate_sub_framebuffer
Change-Id: Ie1ca30f29d7583c86130f46d4e6b5c7211eee63a
Reviewed-on: https://chromium-review.googlesource.com/938367
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9fdaa497
|
2018-02-16T10:52:11
|
|
Don't no-op draw calls for zero count in validation.
Make the no-op happen in the Context, so we can properly generator
more errors for negative WebGL tests. Some validation tests still
need to check for no-ops, such as range checks.
BUG=angleproject:2050
Change-Id: I48d0b3cf640f7f128679600e5df108146cfd6348
Reviewed-on: https://chromium-review.googlesource.com/522869
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|