|
26ed93d7
|
2018-03-23T20:06:17
|
|
Reduce number of uniforms in UniformsBenchmark perf test
To fit Nexus 5 limit.
BUG=angleproject:2431
Change-Id: I2184a28c19ecadb8d7f2e8ba682fc6c4e382210e
Reviewed-on: https://chromium-review.googlesource.com/979154
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
ad4f9642
|
2018-02-08T17:58:46
|
|
Allow ANGLE libs to have arbitrary suffix.
In order to work with tools which intercept EGL and GLES calls.
BUG=angleproject:2343
Change-Id: I63aec7a56648dc4b3e7f4aff7f7d1608709ba118
Reviewed-on: https://chromium-review.googlesource.com/920652
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
49cef9a5
|
2018-03-21T17:28:53
|
|
Vulkan: Support of A8 textures
Bug:angleproject:2358
Change-Id: I56a86de7cc21dee00a95f1d054d2940262797ca7
Reviewed-on: https://chromium-review.googlesource.com/974305
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
c26214de
|
2018-03-16T10:43:11
|
|
Move AST utilities to a subdirectory
Move AST related utilities to compiler/translator/tree_util.
BUG=angleproject:2409
TEST=angle_unittests
Change-Id: I7567c2f6f2710292029263257c7ac26e2a144ac8
Reviewed-on: https://chromium-review.googlesource.com/966032
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
8b92c53b
|
2018-03-22T01:05:02
|
|
Skip EnableQueryExtensions test on Win/AMD/GL.
This test seems to be causing device lost.
Bug: angleproject:2423
Change-Id: If759aa6478df89d1cf5a5fd199a6065300c4c8ec
Reviewed-on: https://chromium-review.googlesource.com/974888
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9acf9120
|
2018-03-21T19:01:25
|
|
Revert "Skip TransformFeedbackLifetimeTest.DeletedBuffer on Win Intel GL"
This reverts commit 3a46574594305af25676952825fcf2cdb849d680.
Reason for revert: Win10 driver version was fixed
Original change's description:
> Skip TransformFeedbackLifetimeTest.DeletedBuffer on Win Intel GL
>
> Due to wrong driver version on the bots.
>
> BUG=angleproject:2398
>
> Change-Id: Ia6b69a24bfb0ded8848a791db6b540576ef2f57c
> Reviewed-on: https://chromium-review.googlesource.com/957207
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
TBR=ynovikov@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:2398
Change-Id: I5c147a46ad04570d25d04ff6218fde6a72a21ea6
Reviewed-on: https://chromium-review.googlesource.com/973642
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
60284223
|
2018-03-20T16:01:44
|
|
Vulkan: Support of npot textures
The bug was with the readPixels not using the rowPitch, and not really
with the support of npot.
Bug:angleproject:2413
Change-Id: I09c0d87768bc29d3beb452ae83996cd4d2b4a600
Reviewed-on: https://chromium-review.googlesource.com/971830
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
40b1c770
|
2018-03-19T10:29:37
|
|
Fix asserts related to writing nameless parameters in HLSL
We rely on TSymbol::name() to generate names also for nameless
parameters. Fix asserts to reflect this.
BUG=chromium:823041
TEST=angle_unittests
Change-Id: Ie9b8253a150e79965bf85d8a7f36643ada6c54cc
Reviewed-on: https://chromium-review.googlesource.com/968242
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d2fa07e4
|
2018-03-15T09:20:25
|
|
ES31: Support queries on primitives generated by geometry shader
This patch implements a new query target GL_PRIMITIVES_GENERATED_EXT
for querying the number of primitives generated by geometry shader.
BUG=angleproject:1941
TEST=dEQP-GLES31.functional.geometry_shading.query.primitives_generated*
Change-Id: Icdc0d2d8be4ff4d589972eada2fa1f917d7bae4c
Reviewed-on: https://chromium-review.googlesource.com/963793
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
115b2c4a
|
2018-03-15T17:46:29
|
|
Remove desktop GLSL builtins from symbol lookups
Desktop GLSL builtins can be accessed through functions in
BuiltIn_autogen.h. They don't need to be included in symbol table
lookups.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I8ba188a0d2584353e34159c2732c9e2bd420c168
Reviewed-on: https://chromium-review.googlesource.com/964447
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
427071ea
|
2018-03-19T09:21:37
|
|
ES31: Add link validation on geometry shader interface block limits
This patch adds link validation on the maximum number of active
uniform blocks and shader storage blocks defined in the geometry
shader.
BUG=angleproject:1941
TEST=angle_end2end_tests
Change-Id: Ieffc234981a3f32a569392786e8fa1c6623a7a23
Reviewed-on: https://chromium-review.googlesource.com/966491
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b391ec40
|
2018-03-12T17:04:59
|
|
Generate code for looking up built-ins
Instead of storing built-ins in a std::unordered_map, we now generate
a series of switch statements using the hash value of the look-up
string. This works similarly to earlier implementation of looking up
unmangled built-ins.
Those built-ins that need to be initialized at run-time are stored as
member variables of TSymbolTable.
This increases compiler init performance significantly, as well as
increasing compiler perf test scores around 1-2%. Binary size is
larger than before though.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: If1dcd36f0d2b30c2ed315cdcf6e831ae9fe70c94
Reviewed-on: https://chromium-review.googlesource.com/960031
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4121799f
|
2018-03-15T11:15:33
|
|
Clean up switch/case pruning code
There was some duplicate switch/case pruning in the code in
PruneEmptyCases and RemoveNoOpStatementsFromTheEndOfSwitchStatements.
Combine the functionality of both AST transformations into
PruneEmptyCases and remove the other transformation.
The tests are improved to better cover the full functionality.
BUG=angleproject:2402
TEST=angle_unittests, angle_end2end_tests --gtest_filter=*Switch*
Change-Id: Ib74b6b9b455769ea15650e9653a9c53635342c49
Reviewed-on: https://chromium-review.googlesource.com/964081
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dfebe9b2
|
2018-03-14T10:08:12
|
|
D3D11: Add dirty bits for Transform Feedback.
After testing, it seems practially impossible to trigger a
dependent state change in a Buffer that would affect XFB.
Any buffer change would have to happen between a pause or
begin/end of XFB, which would trigger a state update.
Bug: angleproject:1155
Bug: angleproject:2389
Change-Id: Ic3c1dc7cec661a826909bb5647ddabda1d6fb7fc
Reviewed-on: https://chromium-review.googlesource.com/948795
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5ae6ee45
|
2018-03-06T17:39:42
|
|
ES31: Sync dirty objects for compute shader
BUG=angleproject:2395
TEST=angle_end2end_tests
Change-Id: Ife833a6573c49fc453c120ebc66765064d807b16
Reviewed-on: https://chromium-review.googlesource.com/954991
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d4bd963f
|
2018-03-08T16:32:44
|
|
Don't use TIntermSymbol nodes for function parameters
Parameter nodes are not needed - it's simpler to just create a
TVariable object for each parameter when the TFunction is initialized.
With this change we also store only one object per each parameter type
used in built-in functions, instead of one array of TConstParameter
entries for each unique parameter sequence.
This simplifies code and reduces binary size and compiler memory use.
Compiler perf does not seem to be significantly affected.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I2b82400dd594731074309f92a705e75135a4c82c
Reviewed-on: https://chromium-review.googlesource.com/955589
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
44a73fcf
|
2018-03-06T09:32:17
|
|
Always Invalidate Vertex Attribute Translation
Fixes bug where mVertexAttribsNeedsTranslation was not being set when
vertex attribute changes internally from DIRECT to DYNAMIC. This changes
mVertexAttribsNeedTranslation to be set during any change in vertex
attribute type.
BUG=angleproject:2381
Change-Id: I91ae86624f0cb68bd8c41c3bcbdeb31fa1ccd9ed
Reviewed-on: https://chromium-review.googlesource.com/951894
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
41918387
|
2018-03-13T11:37:54
|
|
Vulkan: Additional texture formats support. RGB565, RGBA4444, RGBA5551
Bug:angleproject:2358
Change-Id: I4dc19f9e4cc7b51f215b57d440a108cdf17aec24
Reviewed-on: https://chromium-review.googlesource.com/960573
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0b0dcbc1
|
2018-03-14T11:33:22
|
|
Prune empty cases and switch statements
The translator already prunes no-ops and unreferenced variables, and
this may result in case statements that are followed by nothing.
Since the last case statement in as switch statement must always
contain a statement to be valid GLSL, the translator must not leave
empty case statements in place. They're now being pruned by the
PruneEmptyCases AST transformation. This improves on the earlier
RemoveEmptySwitchStatements AST transformation that did address
empty switch statements but could not remove them if they had a
case statement inside.
BUG=angleproject:2402
TEST=angle_unittests
Change-Id: Ieb9598a744078e45226d8fb7266d877f7835cf0c
Reviewed-on: https://chromium-review.googlesource.com/962181
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5b64aca8
|
2018-03-14T14:55:58
|
|
Vulkan: Support of float uniform matrixes (2,3,4).
Bug:angleproject:2392
Change-Id: I97efea83e604d19b1745d9db4ab8f02997a1b7fc
Reviewed-on: https://chromium-review.googlesource.com/962666
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0ab41fa5
|
2018-03-14T11:03:30
|
|
Add an EGL extension to disable GL extensions by default.
BUG=angleproject:2404
Change-Id: I2667ddc92d5c9ef6e0ef115f2fdf0c3d3643d945
Reviewed-on: https://chromium-review.googlesource.com/962702
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1b14d7ce
|
2018-03-14T14:40:19
|
|
VertexArray: Add perf tests for VAO dirty bits.
This simple perf test already in the source does a great job at this.
Bug: angleproject:2389
Change-Id: I94ff14e0eab1cb49a8d19725056ad8f7f008ac05
Reviewed-on: https://chromium-review.googlesource.com/962962
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
447bfac1
|
2018-03-14T14:23:40
|
|
ES31: Support program parameter queries on geometry shader
This patch implements all the program queries on the geometry
shader stage of a program by glGetProgramiv(), including the
queries on geometry shader input/output primitives, invocations
and maximum output vertices
BUG=angleproject:1941
TEST=dEQP-GLES31.functional.geometry_shading.query.geometry_linked_*
dEQP-GLES31.functional.geometry_shading.query.geometry_shader_invocations
dEQP-GLES31.functional.state_query.program.geometry_shader_state_get_programiv
Change-Id: Ibfa630c64dba5baf52ff84ce7e0bf4c567eef8c4
Reviewed-on: https://chromium-review.googlesource.com/961397
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
7cec3353
|
2018-03-13T13:29:34
|
|
Vulkan: Get/SetUniform for float / int and vec*
Bug:angleproject:2392
Change-Id: I2110ecde653a85a28b515dc9d8473a1b37a73eb6
Reviewed-on: https://chromium-review.googlesource.com/962718
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
74ba598f
|
2018-03-13T11:22:16
|
|
Fix cubemap robust resource init for GenerateMipmap
The code in gl::Texture would only check whether the first cube map face
is correctly initialized but not for the others.
BUG=angleproject:2169
Change-Id: Ib565579a4570e731da785b5c74c8d1a6511ebcd4
Reviewed-on: https://chromium-review.googlesource.com/960571
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0cec82a5
|
2018-03-14T09:21:07
|
|
Vulkan: Implement basic depth/stencil buffers.
This implements basic depth/stencil states and clearing.
This also implements "fallback" texture formats in the texture
generation. Fallback formats are those that are chosen at runtime for
replacements for main formats which lack driver support. They are
different from override formats, which are always used because we
assume there is no driver support.
The Vulkan spec only asserts that one of the two of D32 or D24 has
mandatory support. In the case of AMD, D24 is not supported fully, and
we need the fallback format support emulation.
Bug: angleproject:2357
Change-Id: Ic86cede3c69ff9893a06b3a55c3b5d2d897fa55f
Reviewed-on: https://chromium-review.googlesource.com/916701
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
fccebffe
|
2018-03-08T13:51:02
|
|
ES31: Support adjacency draw modes for geometry shader
This patch implements adjacency primitive types as new draw modes
on OpenGL back-ends.
This patch also implements validations on the compatibilities among
draw modes and geometry shader input primitive types.
BUG=angleproject:1941
TEST=dEQP-GLES31.functional.geometry_shading.input.*
dEQP-GLES31.functional.geometry_shading.negative.*
Change-Id: I373ebfe88d7f50da3cc81adaf2d1b7f586b0932a
Reviewed-on: https://chromium-review.googlesource.com/954715
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f0b30dd8
|
2018-03-12T13:21:29
|
|
Vulkan: Enable a bunch of dEQP texture related tests
This enables 21 tests in the texture department (including luminance
texture format tests except mimap related tests).
Bug:angleproject:2364
Change-Id: Ib609f0457833b34ecdb9d8f8b4479ece9ef6c1a6
Reviewed-on: https://chromium-review.googlesource.com/959233
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e600c0aa
|
2018-03-02T11:23:29
|
|
Use non-human-readable mangled names for types
The new mangled name format is as follows:
The first character is a hex digit from 0 to F that encodes vector or
matrix size. For scalars, structs etc. the character is 0.
Then, if it's a struct, the mangled name continues with "{s", followed
by mangled names of fields, and ends with "}".
If it's an interface block, the mangled name continues with "{i",
followed by mangled names of fields, and ends with "}".
If it's anything else, the second alphabetic character encodes the
basic type. Characters are assigned to basic types in the enumeration
order.
If it's an array, the mangled name has a suffix [array_size].
This saves a few kilobytes from the binary size. The effect on symbol
lookup speed seems mostly marginal.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I26e65dcb48c3478df9a719ffff9c15f2fd12e293
Reviewed-on: https://chromium-review.googlesource.com/945910
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
64e5ed2a
|
2018-03-09T16:32:32
|
|
Vulkan: Fix scissor clears + enable dEQP tests
Vulkan does not support receiving out of bounds numbers for the scissor
region but no validation errors are sent. This change clips the region
received to fit the current viewport and it fixes
many dEQP tests.
Bug:angleproject:2356
Change-Id: I5dcf739366ba1f62b56593eaaccedf5f14d0c200
Reviewed-on: https://chromium-review.googlesource.com/957758
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
92de2af5
|
2018-03-12T11:37:38
|
|
Vulkan: Enable culling rasterization state dEQP tests
This change enables the following tests:
dEQP-GLES2.functional.rasterization.culling.* 18/18
dEQP-GLES2.functional.rasterization.interpolation.* 12/12
dEQP-GLES2.functional.rasterization.fill_rules.* 5/5
Bug:angleproject:2352
Change-Id: I5a8869751ea0d787cc266ae12422633106e39983
Reviewed-on: https://chromium-review.googlesource.com/959118
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
203d6365
|
2018-03-09T15:27:02
|
|
Vulkan: enable multiple draw* dEQP tests
This enables 17 additional tests, including the line_loop tests.
Bug:angleproject:2335
Change-Id: I5d441dde08e6018d089749e102070886ccef3a08
Reviewed-on: https://chromium-review.googlesource.com/957448
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cc48e5fa
|
2018-03-09T14:17:17
|
|
Vulkan: Enable 16 additional tests for the scissor test
This set of expectations modifications effectively enables exactly these tests:
dEQP-GLES2.functional.fragment_ops.scissor.* -> 16/16 tests passed.
Bug:angleproject:2338
Change-Id: Icb971e0e7b253e7df390de1196cc4bc4401f9631
Reviewed-on: https://chromium-review.googlesource.com/957269
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a87023e0
|
2018-03-09T13:29:56
|
|
Vulkan: Enable 1046 additional tests for blending rasterization states
This set of expectations modifications effectively enables exactly these tests:
dEQP-GLES2.functional.fragment_ops.blend.* -> 1046 / 1046 tests passed.
Bug:angleproject:2346
Change-Id: I3acf903db9be05180df41fed10c2803c59cfc838
Reviewed-on: https://chromium-review.googlesource.com/957312
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7c9492eb
|
2018-03-12T11:01:29
|
|
gpu_test_expectations: Fix test for API overlap
Bug:angleproject:2396
Change-Id: I8069847f1389308c7c4d4e4786360dfc5a7eb1f4
Reviewed-on: https://chromium-review.googlesource.com/959047
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
529434a5
|
2018-03-08T13:13:29
|
|
ES31: Update dEQP-GLES31 geometry shader related test expectations
BUG=angleproject:1941
TEST=dEQP-GLES31.functional.shaders.builtin_constants.*
dEQP-GLES31.functional.shaders.builtin_functions.*_geometry
dEQP-GLES31.functional.debug.negative_coverage.*.geometry_shader
Change-Id: I37b29e48f27ae31e3753efe00b849849879f848d
Reviewed-on: https://chromium-review.googlesource.com/954713
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b3b177d7
|
2018-03-09T16:37:22
|
|
Update driver constants on program change. Comes with a new SamplerMetadataUpdateOnSetProgram test.
This is a fix for a graphics problem we've been seeing for a while with WebRender+Angle on Nvidia/Windows. The sampler metadata doesn't get updated properly for some of the draw calls, since it's not invalidated on program change (this is what the CL is fixing). Extra entries get filled with garbage data because the constant buffer is updated with `MAP_WRITE_DISCARD`, and only those samplers are updated that the current program has. This may generally occur undetected, if not for our `textureSize` calls that appear to go the NV-specific Angle workaround path that ignores our `baseLevel = 0` and instead picks the one from the driver constants (which contains garbage), leading to either zeroes returned or even crashing the driver sometimes...
BUG=angleproject:2399
Change-Id: Ie2bef32184e2305c7255299933b899eb3fffb7ab
Reviewed-on: https://chromium-review.googlesource.com/949412
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e2995cce
|
2018-03-09T17:43:45
|
|
Vulkan: Fix layers not being enabled on the bots.
We were missing the data definition for the standard validation layer.
This file was missing from the isolate, and the entire layer system
was not working.
Found this as a side-effect of working on depth stencil support.
Also fixes a missing definition in the white_box_tests BUILD.gn.
Also temporarily disables the ClearTest support for Vulkan because of
an implementation bug on AMD. Unfortunately because of the failure
mode it didn't work to just skip the test in the preamble.
Bug: angleproject:2357
Change-Id: I4d06c54191b09e09a4ba68c24613db6f148b17e3
Reviewed-on: https://chromium-review.googlesource.com/956759
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3a465745
|
2018-03-09T15:42:25
|
|
Skip TransformFeedbackLifetimeTest.DeletedBuffer on Win Intel GL
Due to wrong driver version on the bots.
BUG=angleproject:2398
Change-Id: Ia6b69a24bfb0ded8848a791db6b540576ef2f57c
Reviewed-on: https://chromium-review.googlesource.com/957207
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@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>
|
|
2878379d
|
2018-03-05T09:37:32
|
|
Add NPOT validation to copyTextureCHROMIUM
copyTextureCHROMIUM should generate INVALID_VALUE when using a NPOT
texture and level not equal to zero, so we should add
validation to catch this case.
BUG=angleproject:2380
Change-Id: I7ca2e657287c11d560db0ad296f8e87ed0c19798
Reviewed-on: https://chromium-review.googlesource.com/956018
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5242d5bf
|
2018-02-15T07:14:35
|
|
Vulkan: Implement scissored clears.
Bug: angleproject:2356
Change-Id: I33888f9b4ebaf4b0b5af4ad59b12ad963325a790
Reviewed-on: https://chromium-review.googlesource.com/921882
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5164b797
|
2018-03-06T09:10:12
|
|
Vulkan: Support GL_LUMINANCE and GL_LUMINANCE_ALPHA
The dEQP tests cannot be turned on before immediate data for drawElements
is supported.
Bug:angleproject:2364
Change-Id: Id5fd6fbc0c74f2dba08341f36ca0091d540f4ed8
Reviewed-on: https://chromium-review.googlesource.com/951402
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
e3688d27
|
2018-03-07T22:14:54
|
|
Revert "Add NPOT validation to copyTextureCHROMIUM"
This reverts commit 2202680c6a5d08ba74d57ce675af2266dddb205c.
Reason for revert: ASAN found error https://ci.chromium.org/buildbot/chromium.gpu.fyi/Mac%20FYI%20GPU%20ASAN%20Release/210
Original change's description:
> Add NPOT validation to copyTextureCHROMIUM
>
> copyTextureCHROMIUM should generate INVALID_VALUE when using a NPOT
> texture and level not equal to zero, so we should add
> validation to catch this case.
>
> BUG=angleproject:2380
>
> Change-Id: I0ea50a981e4d8f10f5913969f6b629617b57aa15
> Reviewed-on: https://chromium-review.googlesource.com/951713
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,brandon1.jones@intel.com
Change-Id: I04dcbd5e1d97b1bd968b26a06e4d3e4d175be0d8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2380
Reviewed-on: https://chromium-review.googlesource.com/953343
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2202680c
|
2018-03-05T09:37:32
|
|
Add NPOT validation to copyTextureCHROMIUM
copyTextureCHROMIUM should generate INVALID_VALUE when using a NPOT
texture and level not equal to zero, so we should add
validation to catch this case.
BUG=angleproject:2380
Change-Id: I0ea50a981e4d8f10f5913969f6b629617b57aa15
Reviewed-on: https://chromium-review.googlesource.com/951713
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
24180607
|
2018-03-02T14:12:13
|
|
Allow rectangle textures to be sample with texture() in ESSL3
This makes them consistent with the other texture types. Also adds a
test for using texture(sampler2DRect, ...).
BUG=chromium:757974
BUG=angleproject:1650
Change-Id: Ie966da928ae0c83850da1e530e72c0d501909394
Reviewed-on: https://chromium-review.googlesource.com/946675
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
065aa863
|
2018-02-22T15:30:27
|
|
Generate code for unmangled name lookup
Instead of using an std::map at each symbol table level, use the
gen_builtin_symbols.py script to build a function to query unmangled
names.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I4f1cf1df1f50fe9d909f3249150ee002ee6efb61
Reviewed-on: https://chromium-review.googlesource.com/931885
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f184ae9
|
2018-03-06T20:36:50
|
|
Update dEQP EGL expectations
Timeout is not enough to suppress
functional.native_color_mapping.native_window.*
since it's retried 3 times and always times out.
Need to skip.
BUG=angleproject:2382
Change-Id: Ib87f25cc6c17be2b5c4c592374b28386685115d2
Reviewed-on: https://chromium-review.googlesource.com/951973
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a53d0e18
|
2018-02-13T00:06:06
|
|
Vulkan: support indices in client memory.
glDrawElements will now work with indices and/or vertex data in client memory,
as well as in a buffer object.
Enable corresponding tests.
BUG=angleproject:1683
Change-Id: Iefb9796a48b21ed6f9a837b08b0ad3218ff6dd6b
Reviewed-on: https://chromium-review.googlesource.com/915721
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7b21381e
|
2018-03-06T10:13:13
|
|
Vulkan: Support changing in-flight Renderbuffers.
Bug: angleproject:2347
Change-Id: I9bb1494a960969bb6e7c8656c27c7c180ddba069
Reviewed-on: https://chromium-review.googlesource.com/922458
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d2cb7cec
|
2018-03-02T09:04:03
|
|
ES31: Fix wrong method of computing combined interface blocks
This patch fixes a bug in the method of validating the number of
combined interface blocks in currenct ANGLE implementation.
When a resource (uniform block, shader storage block, image, atomic
counter buffer, atomic counter) is used by multiple shader stages,
each such use counts separately against the combined resource limit.
This patch also fixes an unexpected link error in a related test by
skipping the test when the number of ssbos exceeds the resouorce
limit.
BUG=angleproject:1951
TEST=angle_end2end_tests
Change-Id: I0de439a412148e0d5ebef3c27d20e0cbd536175a
Reviewed-on: https://chromium-review.googlesource.com/945143
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d05f964b
|
2018-03-05T12:13:26
|
|
Last case in switch statement can't be empty in ESSL 3.10
This is based on recent discussion in Khronos, though public specs
have not yet been updated to reflect this.
BUG=angleproject:2388
TEST=angle_unittests
Change-Id: I66a0d03b3c2bb9740772a813b543f8f6c6bb2a28
Reviewed-on: https://chromium-review.googlesource.com/947977
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dc0cdba8
|
2018-02-28T00:42:20
|
|
Vulkan: Fix Texture attachment state changes.
This implements a notification to the Framebuffer that an attachment
had a state change that might require recreating the VkFramebuffer.
This implementation is much simpler than the prior method with
signal notifications. Only currently implemented for TextureVk but
will also be implemented for RenderbufferVk.
Bug: angleproject:2347
Change-Id: I05f7da4132f6ed2bda02671e8ba5ee9805252928
Reviewed-on: https://chromium-review.googlesource.com/930024
Reviewed-by: Luc Ferron <lucferron@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
27f4321e
|
2018-02-26T11:05:53
|
|
ES31: Implement memoryBarrier on D3D backend
Because D3D11 makes a coherent write, so memoryBarrier is not needed on
D3D backend.
This patch also simples some test cases and modifies some cases errors when
accessing memory after an incoherent write, but does not use memoryBarrier.
BUG=angleproject:2280
TEST=angle_end2end_tests.ComputeShaderTest.*
Change-Id: Iee5d105a0b6d8534aded03fdaaefc909864d33a4
Reviewed-on: https://chromium-review.googlesource.com/937023
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6f683089
|
2018-02-28T00:35:16
|
|
Rename signal utils to Observer.
This completes the basic refactor to the Observer pattern.
Bug: angleproject:2372
Change-Id: I810deff7c7e39baa64b57ce2a79cd732b1af7c34
Reviewed-on: https://chromium-review.googlesource.com/940862
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
0d88ec9f
|
2018-02-27T16:25:31
|
|
ES31: Add link validations on geometry shader uniforms
This patch adds the link validations on the uniforms defined in a
geometry shader.
1. Validate if there is any link mismatch between a geometry shader
uniform and a uniform defined in another shader in the current
graphics pipeline.
2. Validate if the number of images, samplers or atomic counters in
a geometry shader exceeds the related resource limit.
3. Validate if there is name contradiction between a geometry shader
uniform and a vertex shader attribute.
BUG=angleproject:1941
TEST=dEQP-GLES31.functional.shaders.linkage.es31.geometry.uniform.*
dEQP-GLES31.functional.geometry_shading.basic.*
dEQP-GLES31.functional.geometry_shading.conversion.*
dEQP-GLES31.functional.geometry_shading.emit.*
dEQP-GLES31.functional.geometry_shading.varying.*
dEQP-GLES31.functional.geometry_shading.instanced.geometry_*
dEQP-GLES31.functional.geometry_shading.instanced.invocation_output_*
dEQP-GLES31.functional.geometry_shading.instanced.draw_*
Change-Id: I365aee624a3a79658c3e4c7487a586cf9532b529
Reviewed-on: https://chromium-review.googlesource.com/939264
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
92e4e079
|
2018-03-02T13:34:56
|
|
Test shader builtin accessibility from different stages
Test that fragment, vertex or compute shader exclusive builtins are
not accessible from another shader stage. This will protect against
regressions when refactoring the symbol table.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I50f97cbde3f1c5cb4584568e3008f1dab724b769
Reviewed-on: https://chromium-review.googlesource.com/941953
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
28cf920e
|
2018-03-02T15:54:56
|
|
Fix checking texture function offset
There was a mistake in one of the texture offset function names being
checked. Fix it and add a test making sure that a similar mistake
cannot slip in again.
BUG=angleproject:2387
TEST=angle_unittests
Change-Id: I2dddfbdc2836f9e7e94ca6573a8f3689eecf7eb2
Reviewed-on: https://chromium-review.googlesource.com/946254
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e765e215
|
2018-03-01T12:00:48
|
|
Test that ESSL 300 standard derivatives compile successfully
These functions have the same name in the ESSL 100 extension, creating
a possibility for conflicts. This adds a convenient way to test for
regressions when refactoring the symbol table.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I9716524a0ea85064ba5f3ee8e7adfbdfc59d257e
Reviewed-on: https://chromium-review.googlesource.com/945989
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b7d14586
|
2018-03-01T18:07:41
|
|
Update dEQP EGL expectations
BUG=angleproject:2341,angleproject:2382
Change-Id: I5bcc0938e2d86165022cc80afda6b11c801ef5ed
Reviewed-on: https://chromium-review.googlesource.com/944711
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d6fef528
|
2018-03-01T13:41:13
|
|
Shorten mangled names of types
This will reduce binary size by a few kilobytes once we store mangled
names of functions as constexpr strings.
This still keeps mangled names human readable.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ia63980bd511c701a93e2c5e247d24578c7d7f332
Reviewed-on: https://chromium-review.googlesource.com/943101
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
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>
|
|
a8e868f2
|
2018-01-28T23:32:25
|
|
Vulkan: use correct vertex stride.
It was passing the attribute size, not the stride, so it worked only
when they were the same.
Enable corresponding tests.
BUG=angleproject:2310
Change-Id: Ie3ab13567c16c302aa9aeda5d059e5fd4eb92b4e
Reviewed-on: https://chromium-review.googlesource.com/875304
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
640fa5dc
|
2018-02-22T17:03:15
|
|
Enable more of AttributeLayoutTest.
Enable more parts of AttributeLayoutTest because:
- partial Vulkan support for vertex data in client memory has landed
- we can work around bugs which prevented some parts from working
- we have more fine-grained control over which parts to run
Avoid glBufferSubData to work around ANGLE bug 2374.
Let subclasses decide about skipping test cases. For example on Vulkan
indexed draw with vertex data in client memory is not supported yet.
BUG=angleproject:1683
Change-Id: Id073334299bd1a642b2518ccb3c47ebd8ff010d9
Reviewed-on: https://chromium-review.googlesource.com/933943
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
339f65bb
|
2018-02-27T12:52:48
|
|
ES31: Fix incorrect initialization for indexed atomic counter buffer
BUG=angleproject:1729
TEST=dEQP-GLES31.functional.state_query.indexed.atomic_counter_buffer_binding_getbooleani_v
Change-Id: I3f6975ecc0e69f487f66ff65d613307fcaa6eb08
Reviewed-on: https://chromium-review.googlesource.com/939106
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aef92166
|
2018-02-27T13:51:44
|
|
Move the early-return case of zero mask to Context::blitFramebuffer
When the mask is zero, no buffers are copied in BlitFramebuffer. But we still
need to check all the error situations. So mask of zero should be put in
blitFramebuffer not the validation file.
Meanwhile, we adjust the checking sequence to pass the deqp case.
BUG=angleproject:2375
TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.blit_framebuffer
Change-Id: I73c78ffb8853153f70fc30e8ae0e704e08e454ac
Reviewed-on: https://chromium-review.googlesource.com/938573
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d063affa
|
2018-02-22T10:19:09
|
|
ES31: Add link validation on geometry shader varyings
This patch adds the link validation on geometry shader varyings.
According to SPEC, geometry shader inputs should not be treated
as arrays for the purpose of interface matching.
This patch also moves the checks on fragment input bindings into
a single function.
BUG=angleproject:1941
TEST=angle_end2end_tests
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.*
Change-Id: Ib3ca64e28683e9688edc9432d43ff5a70c86117e
Reviewed-on: https://chromium-review.googlesource.com/929866
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
6ae51611
|
2018-02-23T14:03:25
|
|
ES31: Add missing checks for querying GL_COMPUTE_WORK_GROUP_SIZE
This patch adds missing checks for querying GL_COMPUTE_WORK_GROUP_SIZE
by glGetProgramiv.
When querying GL_COMPUTE_WORK_GROUP_SIZE, an INVALID_OPERATION error
should be generated when this program hasn't been linked successfully
or it doesn't contain any objects to form a compute shader.
BUG=angleproject:2324
TEST=angle_end2end_tests
dEQP-GLES31.functional.debug.negative_coverage.get_error.compute.invalid_program_query
Change-Id: I13dcebef8a0abede5c18a038d4cf915ee4164e2e
Reviewed-on: https://chromium-review.googlesource.com/933627
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bacaa714
|
2018-01-30T14:01:39
|
|
ES31: support stencil texture via DEPTH_STENCIL_TEXTURE_MODE.
BUG=angleproject:2373
Change-Id: I5edd9db6ef6101b0ad75f71fdcdfbb1261100583
Reviewed-on: https://chromium-review.googlesource.com/936421
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3582c0e2
|
2018-02-22T14:38:09
|
|
Add a test for redefining an unavailable built-in
This is going to guard against regressions when symbol table init is
optimized.
TEST=angle_unittests
BUG=angleproject:2267
Change-Id: Iec7b9814f4af215dc0b3e8a39c8cfab004451836
Reviewed-on: https://chromium-review.googlesource.com/931883
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3c43b4d1
|
2018-02-23T11:08:28
|
|
Fix incorrect conversion in ConvertToGLint
This patch fixes a bug in function ConvertToGLint. This function
should convert ParamType into GLint instead of GLenum.
This patch can fix the bug that no errors are generated when trying
to set negative base level or max level by glTexParameteri because
ConvertToGLint always incorrectly converts a negative integer into
an unsigned integer in ValidateTexParameterBase.
BUG=angleproject:2371
TEST=angle_end2end_tests
dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameter*
Change-Id: Id5baf3430ae574a083bcc40a7a8f7db1cb2d07ed
Reviewed-on: https://chromium-review.googlesource.com/933923
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a4ef843f
|
2018-02-22T16:02:24
|
|
ES31: Fix incorrect error code in DispatchComputeIndirect
INVALID_VALUE error should be generated not INVALID_OPERATION if indirect
is not a multiple of the size, in basic machine units, of uint.
Meanwhile, we put the validation of indirect before indirect buffer so that
the corresponding deqp cases can pass.
BUG=angleproject:2324
Change-Id: I223ec1893a6dd613f84e51a98f02d5f79482952f
Reviewed-on: https://chromium-review.googlesource.com/929900
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
76bf01d7
|
2018-02-22T14:11:34
|
|
Fix that readonly buffer variable can be assigned
This change will add memory qualifier checking for binaryNode in case the
memory qualifier information is lost.
BUG=angleproject:1951
TEST=angle_unittests
Change-Id: I3f0cfd7d8a059753cf3c982ee0a977b4b0fd0128
Reviewed-on: https://chromium-review.googlesource.com/929877
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e41df655
|
2018-02-09T14:31:39
|
|
ES31: Add shader version check for CS and GS
This patch adds the missing check on the shader version for compute
and geometry shaders, which can fix a bug that ANGLE GLSL compiler
doesn't report a compile error when compiling an empty compute or
geometry shader in version 100 or 300.
This patch also updates the original compiler tests on the check of
shader version. In these tests, the compile errors are all caused by
illegal layouts instead of shader versions, which is against the
purpose of the tests.
This patch also fixes an incorrect case that used an empty compute
shader in version 300.
BUG=angleproject:1442, angleproject:1941
TEST=angle_unittests
Change-Id: Ic26bb8eb312dbc0cec6a879997d0ae7a2e625a0f
Reviewed-on: https://chromium-review.googlesource.com/910715
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
7c8567a3
|
2018-02-20T15:44:07
|
|
Always add most extension symbols to symbol table
An error will be generated either way if the extension symbols are
used incorrectly since each use of an extension function or variable
checks whether the extension is enabled.
We now also track extension in unmangled built-in names, so that
redefining built-ins of extensions that are not enabled can be
supported.
This includes refactoring the shader extension tests to share a common
helper class ShaderExtensionTest.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I9cc5e9bd62fa07796e69256a6a9a493531a62446
Reviewed-on: https://chromium-review.googlesource.com/926526
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1dce1bd3
|
2017-12-06T10:25:40
|
|
Add test case to catch depth stencil buffer bug on Intel windows
Rendering with depth buffer disabled and stencil buffer enabled
leads to memory leak if we set viewport a large size on Intel
windows platforms. Add an end2end test case to catch this driver
bug.
TEST=DepthStencilFormatsTestES3.DrawWithLargeViewport/ES3_D3D11
BUG=782317
Change-Id: I16efb9459717e94e2edb5d5eb5dc24f47d746ea3
Reviewed-on: https://chromium-review.googlesource.com/858430
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
24842908
|
2018-02-02T01:21:12
|
|
New test for vertex attribute arrangements.
Test various ways of organizing attributes: in memory or buffer object,
sequential or interleaved.
Test different types of vertex data.
Test non-indexed draw, indices in buffer, indices in memory.
Test starting at vertex zero and higher.
BUG=angleproject:1683
Change-Id: I54a752679b31bbb3f573c922d59da69a18302daa
Reviewed-on: https://chromium-review.googlesource.com/898608
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
df4b6316
|
2018-01-18T18:22:19
|
|
Vulkan: Add unmap in BufferVk::getIndexRange.
There was a map() without a corresponding unmap().
Add a test which does multiple indexed draws, triggering the problem.
BUG=angleproject:2310
Change-Id: Id33d66f24de2005ec3f9958d33ab4c2630b49dc5
Reviewed-on: https://chromium-review.googlesource.com/875318
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
e703c606
|
2018-02-20T10:21:48
|
|
Add gl::RenderbufferState shared state helper.
This shared state will be read-only visible in the RenderbufferImpl
class. It mirrors existing structs for Textures, Buffers, and other
classes. It allows the implementation class to have a read-only view
as to the current GL state of an object.
This will be useful to the Vulkan back-end, which would like to know
the current Renderbuffer state before having to redefine the storage.
If the current parameters match, it might not have to redefine the
storage at all.
The solution involves passing around the gl::RenderbufferState
through various factory methods.
Also name the Renderbuffer implementation pointer consistently and
make it use std::unique_ptr.
Bug: angleproject:2347
Change-Id: Ied6e0358e24e74a7fedbe4aea692edee909b5838
Reviewed-on: https://chromium-review.googlesource.com/922457
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f81d17c2
|
2018-02-02T15:10:37
|
|
D3D11: Downsample when copying to emulated 16-bit texture formats.
BUG=angleproject:2313
Change-Id: Ic1e679164d82f3024bb6842c9af2716aa10feb76
Reviewed-on: https://chromium-review.googlesource.com/900042
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3f4b87b4
|
2018-02-16T17:12:19
|
|
Expand the EGLIOSurfaceClientBufferTests
This expands the test to check for validation errors and that multiple
formats of IOSurfaces can be read from / rendered to. It fixes a couple
issues in the implementation of the extension too.
Minor fixes in the EGL_ANGLE_iosurface_client_buffer extension text.
Fix a fragile test that was not setting the texture unit a shader is to
sample from.
BUG=angleproject:1649
Change-Id: Ied2a9bfff95cb3a9a7a59008260899eb2fc55575
Reviewed-on: https://chromium-review.googlesource.com/924477
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
029e8ca7
|
2018-02-16T14:06:49
|
|
Add a constexpr constructor for TFunction
Access to TFunction parameters is now handled through two new members:
a pointer to a parameter array and a parameter count.
There's still also a vector pointer in TFunction for adding function
parameters one by one. This is used when parsing user-defined
functions.
TEST=angle_unittests
BUG=angleproject:2267
Change-Id: I86987ae56b7cf37f010d0651e9861789050aec2b
Reviewed-on: https://chromium-review.googlesource.com/923987
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
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>
|
|
0cbfa586
|
2018-02-15T14:45:41
|
|
Vulkan: Implement basic Renderbuffer attachments.
Creating an ImageView for color Renderbuffers allows us to render to
them in a RenderPass. We will also need additional functionality to
support depth/stencil Renderbuffers.
Bug: angleproject:2347
Change-Id: I5d4f7d8242ad4fbca38cb08c0cf6b43edca57c8f
Reviewed-on: https://chromium-review.googlesource.com/922456
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e80825ef
|
2018-02-16T10:24:53
|
|
Simplify built-in function node initialization
Built-ins with no math op associated with them now have the op code
EOpCallBuiltInFunction set. This makes initializing built-in function
nodes simpler, since they can always get the op code from the function
symbol.
We also no longer look for functions in inner scopes, only from the
global scope and from built-in functions.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I55a2642f34bb3c8b8f13183c95fa509ec3b9cfdb
Reviewed-on: https://chromium-review.googlesource.com/923724
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
17448956
|
2017-01-05T15:48:26
|
|
Vulkan: vertex attributes in client memory.
Support vertex data stored in client memory passed to glVertexAttribPointer.
Only GL_FLOAT data is supported at this time. Includes a simple test.
BUG=angleproject:1683
Change-Id: I3bc0cdefe02b02c046b0e85822019a0f1762235e
Reviewed-on: https://chromium-review.googlesource.com/425137
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f618c9e5
|
2018-02-15T14:45:40
|
|
Vulkan: Add depth/stencil surfaces.
This change lets us create egl::Surfaces from a D24S8 config. This is
a bit hacky, because the spec only mandates 24 -or- 32 bit depth
support, but not both or either individually. Will need follow-up work
for proper EGL config setup.
A single depth buffer is allocated for the entire set of swapchain
images and is used with each. This also might be a problem if we're
rendering to multiple frames at the same time. We'll likely have to
revisit this in the future as well.
This adds a new RenderTargetVk to the SurfaceVk class which points to
the Depth/Stencil image. Since ImageViews must refer to either the
depth or stencil, but not both, we'll need to address this when we
get to implementing depth/stencil texture reads in shaders.
Bug: angleproject:2357
Change-Id: Ibed0eed7e1d0efb272758dbfc79fa2c5aa93997f
Reviewed-on: https://chromium-review.googlesource.com/919761
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f3803d4f
|
2018-02-14T18:29:27
|
|
Fix standalone Linux build
Need to include gtest before X11 to avoid defines conflict
BUG=angleproject:2348
Change-Id: If758c53fb5ef010506f13165186110f00c099e07
Reviewed-on: https://chromium-review.googlesource.com/919687
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
12eb3d74
|
2018-02-14T12:34:45
|
|
Vulkan: Implement basic Renderbuffer creation.
Bug: angleproject:2347
Change-Id: I56edfde2dbc020d5c792cc4f107aa4b9d6b71840
Reviewed-on: https://chromium-review.googlesource.com/905895
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ee305913
|
2018-02-14T13:50:38
|
|
AngleWrangle: Suppress newly introduced flakyness
Flakyness noticed there:
https://ci.chromium.org/buildbot/tryserver.chromium.angle/mac_angle_rel_ng/
https://ci.chromium.org/buildbot/chromium.gpu.fyi/Mac%20FYI%20Release%20%28Intel%29/
Introduced in:
https://chromium-review.googlesource.com/c/angle/angle/+/913108
Change-Id: I9cbd76c0472d023005ded9f957b304a4a769c619
Reviewed-on: https://chromium-review.googlesource.com/919547
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8170eab7
|
2017-09-21T13:59:04
|
|
D3D: Implement robust resource init for Surfaces.
BUG=angleproject:2107
BUG=angleproject:2317
Change-Id: I22260e1093dc6c09e4627c62a95ca4088c99e951
Reviewed-on: https://chromium-review.googlesource.com/678480
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
9550c603
|
2018-02-13T14:47:05
|
|
Code refactoring for end2end tests.
This change:
1) uses the new style ANGLE_SKIP_TEST_IF to skip tests.
2) replaces compile-time definition for OSX to skip tests by run-time
function IsOSX() to skip tests, in order to align with ANGLE_SKIP_TEST_IF.
3) fixes a couple of typos.
BUG=angleproject:2005
Change-Id: I5af77d82257536b9eb79e26afa502f5b91ff6d31
Reviewed-on: https://chromium-review.googlesource.com/915861
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2900c3be
|
2018-02-09T16:02:41
|
|
Vulkan: Add culling rasterization states tests and invert front face
Bug: angleproject:2352
Change-Id: I0ac83f3173d22a2ee8bc98d2fd7bfa1875d46b8c
Reviewed-on: https://chromium-review.googlesource.com/912358
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
d50537a7
|
2018-02-07T17:02:08
|
|
Vulkan: Texture caps map
We are generating the caps map using various bits from the results of
vkGetPhysicalDeviceFormatProperties. This contains all the information
required to fill out "renderable", "texturable" and "filterable".
Later we'll need to read from vkGetPhysicalDeviceImageFormatProperties as
well to get the sampleCounts.
The tests for now are not very meaningful since they use the same logic
as the caps code to build the expected results, however as soon as we'll
add the hard-coded list of mandatory texture caps, the test will be a good
validator that we are not breaking anything.
We only check the optimal set of flags since it is the most restrictive
set.
isTexturable = flags contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
isFilterable = flags contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
isRenderable = flags contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT OR
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
Bug: angleproject:2348
Change-Id: I9da0712190d2678d7e377d6fcd4ca83d23eefd38
Reviewed-on: https://chromium-review.googlesource.com/908712
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b79f0351
|
2018-02-12T13:13:53
|
|
Add test for scissored clear.
This simple test will be used to debug the Vulkan back-end's basic
scissored clear functionality.
Bug: angleproject:2356
Change-Id: I4bed68740ac57b3cc61f2dfe9164081b05bc31b3
Reviewed-on: https://chromium-review.googlesource.com/914230
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f0d3b901
|
2018-02-08T08:57:14
|
|
Enable Multisample Sources in copyImageInternal For D3D11
This enables the copyTexImage2D and copyTexSubImage2D to handle
multisampled source through through the blit path. We attempt to use a
cached texture as an intermediate to resolve to, or create a new texture
if there's a mismatch. The resolved texture is sent through
blit11::copyTexture as normal.
BUG:angleproject:2316
Change-Id: Ie3490b45b1a368300ee13fe5a0b35dc3920364ff
Reviewed-on: https://chromium-review.googlesource.com/911889
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4ed05da2
|
2018-02-02T14:26:15
|
|
ES31: Add link validation on geometry shader itself
This patch intends to support program link validation on geometry
shader itself. A link error should occur when linking a program with
a geometry shader that lacks input primitive or output primitive or
the declaration of 'max_vertices'.
This patch also adds the support of linking a program with geometry
shader in angle_end2end_tests.
BUG=angleproject:1941
TEST=angle_end2end_tests
dEQP-GLES31.functional.shaders.linkage.es31.geometry.varying.rules.unspecified_*
Change-Id: I25fb08514753102f5dd3ab86211c05d2ca4fd185
Reviewed-on: https://chromium-review.googlesource.com/898842
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
30414789
|
2018-02-12T15:16:02
|
|
Revert "GLES1: Link against angle_util_static instead of angle_util."
This reverts commit da91c9a6d86c9ecd21c6ac724cf9576d7ee310d2.
Reason for revert: Causes undefined behaviour in linker.
Original change's description:
> GLES1: Link against angle_util_static instead of angle_util.
>
> Attempting to work around missing .so on linux bots.
>
> BUG=angleproject:2303
>
> Change-Id: I7fabad308afd420987369b460c13c00781113605
> Reviewed-on: https://chromium-review.googlesource.com/909028
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,lfy@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:2303
Change-Id: I8d3f3d9bd618d9604cec0f02424f788cab25b3f9
Reviewed-on: https://chromium-review.googlesource.com/913550
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2f23f35a
|
2018-02-11T22:11:37
|
|
Clean up end2end tests for Intel OSX.
BUG=angleproject:2205
BUG=angleproject:2041
BUG=angleproject:2155
Change-Id: I26bcbb63e147787cd342ec80a86d60cf230be4c9
Reviewed-on: https://chromium-review.googlesource.com/913108
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|