|
b1edc4f5
|
2015-11-02T17:20:03
|
|
Accept const array initialization in shader parsing
Array constructors are not folded, unlike all other constant expressions.
Change initializer parsing path so that it accepts constant initializers
whether they are folded or not.
Some parts need to be adapted to work with expressions that are qualified
as constant but that are not necessarily folded:
1. Identifier parsing
2. Indexing parsing
3. Field selection parsing
4. HLSL output for variable declarations
5. Determining unary operator result type
6. Determining binary operator result type
7. Determining built-in function call result type
8. Determining ternary operator result type
Corner cases that are not supported yet:
1. Using array constructors inside case labels
2. Using array constructors inside array size expressions
3. Detecting when a negative constant expression containing an array
constructor is used to index an array
In these cases being able to constant fold the expression is essential to
validating that the code is correct, so they require a more sophisticated
solution. For now we keep the old code that rejects the shader if ANGLE
hasn't been able to constant fold the case label or array size. In case of
indexing an array with a negative constant expression containing an array
constructor, ANGLE will simply treat it as a non-constant expression.
BUG=541551
BUG=angleproject:1094
TEST=dEQP-GLES3.functional.shaders.constant_expressions.* (all pass),
angle_unittests
Change-Id: I0cbc47afd1651a4dece3d68acf7ec72a01fdf047
Reviewed-on: https://chromium-review.googlesource.com/310231
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
08fc7732
|
2015-11-02T16:24:25
|
|
Update dEQP failing test expectations.
BUG=angleproject:1088
BUG=angleproject:1095
BUG=angleproject:1097
BUG=angleproject:1101
Change-Id: I40f4d5960ef52bb1049336d23da4034a41f2fe63
Reviewed-on: https://chromium-review.googlesource.com/310480
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
3e14e2b1
|
2015-10-29T14:38:53
|
|
D3D11: Fix basic provoking vertex flat shading cases.
The enables geometry shaders that correct for the flat shading on
provoking vertexes. It does not fix it for triangle strips, or in
conjunction with primitive restart (which is not yet implemented
in D3D11).
Also ensure we do not regress with flat shading enabled and transform
feedback. In cases where we use flat shading, do a double draw call,
first with an untransformed vertex stream, and no geometry shader,
then with the geometry shader enabled.
This also fixes the dEQP fragment output tests with ints.
BUG=angleproject:754
Change-Id: Ib37e8ec32d19db17ea5d4dc88158cdae0c956bfc
Reviewed-on: https://chromium-review.googlesource.com/309155
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
5d91dda9
|
2015-06-18T15:47:46
|
|
Remove dynamic indexing of matrices and vectors in HLSL
Re-re-relanding after clang warning fix.
Re-re-landing with fix to setting qualifiers on generated nodes. The
previous version failed when a uniform was indexed, because it would
set the uniform qualifier on some of the generated nodes and that
interfered with the operation of UniformsHLSL.
Re-landing after fixing D3D9 specific issues.
HLSL doesn't support dynamic indexing of matrices and vectors, so replace
that with helper functions that unroll dynamic indexing into switch/case
and static indexing.
Both the indexed vector/matrix expression and the index may have side
effects, and these will be evaluated correctly. If necessary, index
expressions that have side effects will be written to a temporary
variable that will replace the index.
Besides dEQP tests, this change is tested by a WebGL 2 conformance test.
In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec
allows undefined behavior. KHR_robust_buffer_access_behavior adds the
requirement that program termination should not occur and that
out-of-range reads must return either a value from the active program's
memory or zero, and out-of-range writes should only affect the active
program's memory or do nothing. This patch clamps out-of-range indices so
that either the first or last item of the matrix/vector is accessed.
The code is not transformed in case the it fits within the limited subset
of ESSL 1.00 given in Appendix A of the spec. If the code isn't within
the restricted subset, even ESSL 1.00 shaders may require this
workaround.
BUG=angleproject:1116
TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change)
WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html)
Change-Id: I9f6d7c7ecda8ac4dc3c30b39e15a9a0b5381c5a8
Reviewed-on: https://chromium-review.googlesource.com/310010
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
0c1d4403
|
2015-10-29T10:13:49
|
|
dEQP: Use full GTest name in non-standalone.
With crbug.com/509883 fixed, we can use the full test names.
BUG=509883
BUG=angleproject:1153
Change-Id: I62bf60fb5066de8c0cc118512ba0d9e9bbd94303
Reviewed-on: https://chromium-review.googlesource.com/309653
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a5f64de7
|
2015-10-30T12:31:00
|
|
Revert "Remove dynamic indexing of matrices and vectors in HLSL"
Failing build on Clang-win:
..\..\third_party\angle\src\compiler\translator\RemoveDynamicIndexing.cpp(128,43) : error: expected '(' for function-style cast or type construction
fieldType.setPrimarySize(unsigned char(indexedType.getRows()));
~~~~~~~~ ^
BUG=angleproject:1116
This reverts commit 7535b761dd4740c8e76b888d7c58c7cbeefd2083.
Change-Id: I7b502e3dcd45e17b7ed88fec18be702614d9ac65
Reviewed-on: https://chromium-review.googlesource.com/309772
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
60ad73dc
|
2015-10-23T10:08:44
|
|
Add ASTC compressed texture format info to the GL layer.
BUG=angleproject:1185
Change-Id: Ie723687e0289812d6c2306589911b548ac321e22
Reviewed-on: https://chromium-review.googlesource.com/308491
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
e2cd53d6
|
2015-10-27T11:15:46
|
|
Implement primitive restart boolean query.
We have support for primitive restart in the GL renderer, but we
didn't complete support for the state query.
BUG=angleproject:1101
Change-Id: I4c6ad10642f7de1d09718c4582f1037782cced58
Reviewed-on: https://chromium-review.googlesource.com/309151
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@google.com>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
839ce0b4
|
2015-10-23T13:13:12
|
|
Validate that compressed image formats are supported by the context.
This validation was previously acceptable because all renderers supported all
compressed formats in the format tables. Adding new formats that are not
universally supported would have caused failures in the dEQP negative API
tests.
BUG=angleproject:1185
Change-Id: I102a3286a351a7c8936527963a382d9673341fc0
Reviewed-on: https://chromium-review.googlesource.com/308490
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
7535b761
|
2015-06-18T15:47:46
|
|
Remove dynamic indexing of matrices and vectors in HLSL
Re-re-landing with fix to setting qualifiers on generated nodes. The
previous version failed when a uniform was indexed, because it would
set the uniform qualifier on some of the generated nodes and that
interfered with the operation of UniformsHLSL.
Re-landing after fixing D3D9 specific issues.
HLSL doesn't support dynamic indexing of matrices and vectors, so replace
that with helper functions that unroll dynamic indexing into switch/case
and static indexing.
Both the indexed vector/matrix expression and the index may have side
effects, and these will be evaluated correctly. If necessary, index
expressions that have side effects will be written to a temporary
variable that will replace the index.
Besides dEQP tests, this change is tested by a WebGL 2 conformance test.
In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec
allows undefined behavior. KHR_robust_buffer_access_behavior adds the
requirement that program termination should not occur and that
out-of-range reads must return either a value from the active program's
memory or zero, and out-of-range writes should only affect the active
program's memory or do nothing. This patch clamps out-of-range indices so
that either the first or last item of the matrix/vector is accessed.
The code is not transformed in case the it fits within the limited subset
of ESSL 1.00 given in Appendix A of the spec. If the code isn't within
the restricted subset, even ESSL 1.00 shaders may require this
workaround.
BUG=angleproject:1116
TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change)
WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html)
Change-Id: I16119f9092360fb72798f9550a6f4d3cfffdc92f
Reviewed-on: https://chromium-review.googlesource.com/308790
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Zhenyao Mo <zmo@chromium.org>
|
|
a33475b3
|
2015-10-26T13:08:58
|
|
Suppress failing textures tests in Linux dEQP.
BUG=angleproject:1020
Change-Id: Ia074186c2f80b41c5a02523b3b3f564cd09ec557
Reviewed-on: https://chromium-review.googlesource.com/308920
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f71e6618
|
2015-10-23T10:28:24
|
|
Update dEQP-GLES2 expectations.
Some texture.mipmap.2d.projected are passing and
fbo.api.valid_texcube_attachments seems to pass.
BUG=angleproject:1026
BUG=angleproject:1020
Change-Id: I46ada896978cbb0a3bcbfb3985a5a50e4095ab98
Reviewed-on: https://chromium-review.googlesource.com/308391
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
b066669d
|
2015-10-26T10:38:18
|
|
Revert "Remove dynamic indexing of matrices and vectors in HLSL"
This reverts commit 3766a40d6fda7e7190514ab7838a3f37169d863f.
This CL was causing crashes in UniformHLSL.cpp, where an internal
uniform "base" was attempted to be declared in HLSL. Was crashing
on an external WebGL 3D canvas page (http://www.taccgl.org/?dbg=t).
BUG=546686
Original commit message:
Re-landing after fixing D3D9 specific issues.
HLSL doesn't support dynamic indexing of matrices and vectors, so replace
that with helper functions that unroll dynamic indexing into switch/case
and static indexing.
Both the indexed vector/matrix expression and the index may have side
effects, and these will be evaluated correctly. If necessary, index
expressions that have side effects will be written to a temporary
variable that will replace the index.
Besides dEQP tests, this change is tested by a WebGL 2 conformance test.
In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec
allows undefined behavior. KHR_robust_buffer_access_behavior adds the
requirement that program termination should not occur and that
out-of-range reads must return either a value from the active program's
memory or zero, and out-of-range writes should only affect the active
program's memory or do nothing. This patch clamps out-of-range indices so
that either the first or last item of the matrix/vector is accessed.
The code is not transformed in case the it fits within the limited subset
of ESSL 1.00 given in Appendix A of the spec. If the code isn't within
the restricted subset, even ESSL 1.00 shaders may require this
workaround.
BUG=angleproject:1116
TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change)
WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html)
Change-Id: I1d4b2e3888e91af7d5eebf743d12778698b6b903
Reviewed-on: https://chromium-review.googlesource.com/308770
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d0925fd2
|
2015-10-23T10:22:01
|
|
Add "../../../third_party/deqp/src/data" to dEQP data directories
Change-Id: I9bd4127d2eb24657e45b3a3b4668794d86b9d0e3
Reviewed-on: https://chromium-review.googlesource.com/308481
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
de6144f1
|
2015-10-20T10:55:44
|
|
Add support for EAC and ETC2 texture formats with D3D11.
Passes:
* dEQP-GLES3.functional.implementation_limits.num_compressed_texture_formats
* dEQP-GLES3.functional.implementation_limits.compressed_texture_formats
* dEQP-GLES3.functional.texture.*eac*
* dEQP-GLES3.functional.texture.*etc2*
BUG=angleproject:598
Change-Id: Iaec1756b540f8f44c821fd8b9ba63f115ebe6de0
Reviewed-on: https://chromium-review.googlesource.com/305520
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
adff67b5
|
2015-10-14T10:34:45
|
|
Re-land "Implements more pack/unpack states."
Pack: row length, skip rows, skip pixels.
Unpack: image height, skip images, skip rows, skip pixels.
Note that PBOs are not covered by this change.
Re-land with fix for test expectations.
BUG=angleproject:512
BUG=angleproject:1095
Change-Id: I71d8d3bd8fc1f2c75ca16ac2634d5eafcbd71f26
Reviewed-on: https://chromium-review.googlesource.com/305522
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
c7473924
|
2015-10-14T14:33:19
|
|
Revert "Implements more pack/unpack states. Pack: row length, skip rows, skip pixels. Unpack: image height, skip images, skip rows, skip pixels. Note that PBOs are not covered by this change."
Expectations still not correct. This removes suppressions for two
failing tests:
functional.texture.specification.teximage3d_depth_pbo.depth_component32f_2d_array
dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth32f_stencil8_2d_array
BUG=angleproject:512
BUG=angleproject:1095
This reverts commit 72e7013e68a24107b9082629fc52d59a78998eb2.
Change-Id: Id81b6e616e61535b8504890ce57591813e22af69
Reviewed-on: https://chromium-review.googlesource.com/305521
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
72e7013e
|
2015-10-01T17:19:45
|
|
Implements more pack/unpack states.
Pack: row length, skip rows, skip pixels.
Unpack: image height, skip images, skip rows, skip pixels.
Note that PBOs are not covered by this change.
BUG=angleproject:512
BUG=angleproject:1095
Change-Id: Ia2fd7e52615d4aa08011dd615fcc20b79672d355
Reviewed-on: https://chromium-review.googlesource.com/304908
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
02f98029
|
2015-10-13T11:13:34
|
|
Use named value-parameterized tests for dEQP gtests
This replace the non-descriptive digit at the end of the test name by
the name of the dEQP test being run.
Reland, enabling the named tests only in standalone.
BUG=angleproject:1153
Change-Id: I1336d38425c19305fae8279a42d4931cc516215c
Reviewed-on: https://chromium-review.googlesource.com/304171
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2f6ddf31
|
2015-09-22T16:10:07
|
|
Allow double underscore in macro names
Double underscore is allowed according to GLSL ES 3.10, and based on
Khronos discussions the intent is that this should also apply to older
specs. The dEQP tests also check this, and WebGL tests that check the
opposite were recently removed. The error is changed into a warning.
BUG=angleproject:989
TEST=angle_unittests
dEQP-GLES3.functional.shaders.preprocessor.* (2 tests start passing)
dEQP-GLES2.functional.shaders.preprocessor.* (2 tests start passing)
Change-Id: I582c01b4adc8fc416354351e02b776f2cc602408
Reviewed-on: https://chromium-review.googlesource.com/300965
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com>
|
|
000b2f49
|
2015-10-09T15:33:14
|
|
Revert "Implements more pack/unpack states. Pack: row length, skip rows, skip pixels. Unpack: image height, skip images, skip rows, skip pixels."
This is causing failures in dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth_component24_2d_array
First failing build on the bot:
http://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20dEQP%20%28NVIDIA%29/builds/3635
Please fix the failure and re-land your CL with the fix.
BUG=angleproject:512
BUG=angleproject:1095
This reverts commit f1bb3f0569d5ef41b17f8ad0add7308f9d0f0de1.
Change-Id: I30f61db888b0adf73a1d98bbeeb2428068119627
Reviewed-on: https://chromium-review.googlesource.com/304990
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f1bb3f05
|
2015-10-01T17:19:45
|
|
Implements more pack/unpack states.
Pack: row length, skip rows, skip pixels.
Unpack: image height, skip images, skip rows, skip pixels.
BUG=angleproject:512
BUG=angleproject:1095
Change-Id: I11e3bc05d23419b72c92b96aabd3f0bacd983626
Reviewed-on: https://chromium-review.googlesource.com/304370
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
7c10269d
|
2015-10-02T16:43:40
|
|
Correcting INVALID_ENUM issue for GLES3.
Similar to prior fix for GLES2, validation now correctly returns
INVALID_ENUM instead of shorting out.
BUG=angleproject:1168
Change-Id: I8247b0b3520b0f116856049c85606bb44fa24021
Reviewed-on: https://chromium-review.googlesource.com/303472
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Tommy Martino <tmartino@chromium.org>
|
|
e746890e
|
2015-10-02T10:46:24
|
|
Return the correct value when querying GL_MAX_FRAGMENT_UNIFORM_VECTORS.
BUG=angleproject:1087
Change-Id: Ibd0918f29b65c509e749953059d584ea83776a31
Reviewed-on: https://chromium-review.googlesource.com/303775
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
0ccd5aee
|
2015-10-01T14:33:14
|
|
Correcting INVALID_OPERATION to INVALID_ENUM
Should return INVALID_ENUM when uncompressed texture passed to
compressed image constructor.
BUG=angleproject:1168
Change-Id: If30f0407e7455d6e19432831883d33a1e8bfec9a
Reviewed-on: https://chromium-review.googlesource.com/303750
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
947908f1
|
2015-09-22T10:42:08
|
|
Add dEQP GLES2 test expectations for Mac
BUG=angleproject:891
Change-Id: Ib7d16a9266fe23fb9374cec94f3baa4ad135c0d3
Reviewed-on: https://chromium-review.googlesource.com/302333
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
68a9d748
|
2015-09-15T08:21:10
|
|
Compile the dEQP test targets on Mac
BUG=angleproject:891
Change-Id: I4bc2817106c8170684a76972badd38c02c0abf0e
Reviewed-on: https://chromium-review.googlesource.com/299852
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
247374cb
|
2015-09-09T15:07:24
|
|
Allow limited form of expressions in #line directives
Reuse ExpressionParser that's also used for parsing preprocessor
conditionals to parse line and file numbers in #line directives.
According to recent Khronos discussions, the intent of the spec is that
expressions in #line directives should be interpreted similarly to
expressions in conditional directives, so reusing ExpressionParser is a
natural way to implement this. This enables simple math operators
operating on integers. There are a few unclear corner cases, but this
approach is enough to support practical use cases and pass the dEQP
tests.
Valid line directives have one of the following forms:
#line line-expression
#line line-expression file-expression
ExpressionParser is first run to parse the line-expression. In ambiguous
cases the ExpressionParser consumes as much of the line as possible to
form line-expression. Then, if end-of-line hasn't been reached,
file-expression is parsed by running ExpressionParser again. As an
example of an ambiguous case:
#line 1 + 2
This could alternatively be interpreted to mean line-expression "1" and
file-expression "+ 2" where + is the unary + operator, but ANGLE now
interprets it to mean line-expression "1 + 2". Because of these ambiguous
cases, a bison grammar that would parse multiple expressions on the same
line couldn't be easily constructed, so this solution where
ExpressionParser is run twice was chosen instead.
The problematic corner cases are:
- ExpressionParser uses 64-bit integers internally for evaluating the
expression's value. It's possible to interpret the ESSL3 spec so that
32-bit integer wraparound behavior would be required also for #line
directive expressions.
- It's unclear whether the defined operator can be used in #line
expressions. In this patch it is disabled. Hoping for further
clarification from Khronos.
- It's unclear how short-circuiting should affect the parsing of
undefined identifiers in #line expressions. Now it's consistent with #if
expressions (undefined identifiers are OK if they're short-circuited).
dEQP expectations are updated for preprocessor tests, including ones
not affected specifically by this change.
BUG=angleproject:989
TEST=angle_unittests,
dEQP-GLES3.functional.shaders.preprocessor.* (4 start passing),
dEQP-GLES2.functional.shaders.preprocessor.* (4 start passing)
Change-Id: I55c5bf75857da5de855cc600d3603ee19399f328
Reviewed-on: https://chromium-review.googlesource.com/300964
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
cc54ab36
|
2015-09-02T10:27:28
|
|
Generate tests.sln for WinRT, and make it include dEQP projects
Change-Id: I34284965f7b4f9d11aa7bab263292d4f41312d04
Reviewed-on: https://chromium-review.googlesource.com/297307
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
62d31cb6
|
2015-09-11T13:25:51
|
|
Re^6-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
Re^5-land with a fix for a test warning on Linux.
Re^6-land with a fix for transposed matrix uniform arrays.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: Ie6fcde1c16eb05d67191b629338b88302a2563f5
Reviewed-on: https://chromium-review.googlesource.com/298971
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
fb53603c
|
2015-09-11T13:19:49
|
|
Revert "Re^5-land "Move Uniform and UBO info to the gl::Program layer.""
Failing dEQP-GLES3.functional.uniform_api.random.22 and 23:
There's a bug with arrays of tranpsosed matrix uniforms.
BUG=angleproject:1123
This reverts commit 78d356929bd0441d81e2dd8a63130cd6788e2fde.
Change-Id: If39b5908af39671dfe98965e6a1ba77fd18ea8fc
Reviewed-on: https://chromium-review.googlesource.com/299320
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
78d35692
|
2015-09-11T08:32:51
|
|
Re^5-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
Re^5-land with a fix for a test warning on Linux.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: I03afcd446d9e74573c4d4c712ed7407b91d8001c
Reviewed-on: https://chromium-review.googlesource.com/299180
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
a2eb02c9
|
2015-09-11T12:31:41
|
|
Revert "Re^4-land "Move Uniform and UBO info to the gl::Program layer.""
Test has a warning on Linux:
In file included from ../../third_party/angle/src/tests/test_utils/ANGLETest.h:13:
../../testing/gtest/include/gtest/gtest.h:1392:16: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare]
if (expected == actual) {
~~~~~~~~ ^ ~~~~~~
../../testing/gtest/include/gtest/gtest.h:1422:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned int>' requested here
return CmpHelperEQ(expected_expression, actual_expression, expected,
^
../../third_party/angle/src/tests/gl_tests/UniformBufferTest.cpp:357:5: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here
EXPECT_EQ(GL_FLOAT, type);
^
BUG=angleproject:1123
This reverts commit 2ae1ee6161c24aab065190b1528f6195e80e34d0.
Change-Id: Ic3dabea54068377d1f2c5f722ba52966cf1a0491
Reviewed-on: https://chromium-review.googlesource.com/299170
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2ae1ee61
|
2015-09-10T10:04:24
|
|
Re^4-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
Re^4-land with a fix for boolean uniform arrays and UBO uniforms.
BUG=angleproject:1123
TEST=end2end_tests, bots, dEQP GLES3.ubo and GLES2.uniform_api
Change-Id: I4c9f5ed31b81380507bef7981f97086d642801ae
Reviewed-on: https://chromium-review.googlesource.com/298451
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
769769a7
|
2015-09-09T15:20:08
|
|
Adding in checks for program and shader names to return INVALID_OPERATION
When a valid program is given instead of a shader, an INVALID_OPERATION
is returned rather than INVALID_VALUE when a shader related function is
called. The reverse happens when a program related function is called and
a valid shader program is given to it.
This commit also refactors other places that requires a similar check to
use the same validation function and error message.
BUG=angleproject:1029
dEQP-GLES2.functional.negative_api.state.get_shader_info_log
dEQP-GLES2.functional.negative_api.state.get_shader_source
dEQP-GLES2.functional.negative_api.state.get_programiv
dEQP-GLES2.functional.negative_api.state.get_program_info_log
BUG=angleproject:1101
dEQP-GLES3.functional.negative_api.state.get_shader_info_log
dEQP-GLES3.functional.negative_api.state.get_shader_source
dEQP-GLES3.functional.negative_api.state.get_programiv
dEQP-GLES3.functional.negative_api.state.get_program_info_log
Change-Id: I707b6ba10da0288128af185ce8dfb906fca0f766
Reviewed-on: https://chromium-review.googlesource.com/298604
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Dian Xiang <dianx@google.com>
|
|
a6c95fc6
|
2015-09-09T13:02:52
|
|
Pass the texture unit to TextureGL::syncSamplerState.
When syncing the texture's sampler state, make sure the correct texture
unit is active. When StateManagerGL syncs the textures, it may not set
the active texture if the texture ID has not changed.
BUG=angleproject:884
BUG=angleproject:883
BUG=angleproject:1051
Change-Id: Ib22874c22a12b1b9bd68887ac5a449c507e7bdc6
Reviewed-on: https://chromium-review.googlesource.com/298482
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
61b8dd97
|
2015-09-09T19:04:04
|
|
Revert "Re-re-re-land "Move Uniform and UBO info to the gl::Program layer.""
Seems to be failing the dEQP-GLES2.functional.uniform_api tests relating to boolean arrays.
BUG=angleproject:1123
This reverts commit 892a6a4b17b35e89898be8b4605c1ee595d3ae13.
Change-Id: Ifc4ce3ca806ef88a02ac6f693334ac37ce098a88
Reviewed-on: https://chromium-review.googlesource.com/298520
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
892a6a4b
|
2015-09-09T10:17:15
|
|
Re-re-re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
Re-re-re-land with a fix for boolean uniforms and Uniform{1234}f.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: Ia40820a5ce2f34ec2d27648b1dc940a8955e9999
Reviewed-on: https://chromium-review.googlesource.com/298440
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
b654f659
|
2015-09-08T20:40:00
|
|
Revert "Re-re-land "Move Uniform and UBO info to the gl::Program layer.""
Failes the gles2_conform_test:
GLES2ConformTest.GL2Tests_glGetUniform_input_run
Possibly also WebGL failures, will investigate.
BUG=angleproject:1123
This reverts commit 10750cb936288d8dd09d49fadd592904c06c56f9.
Change-Id: I1ae59325e1831589019bc5a27ffc2091d3994a65
Reviewed-on: https://chromium-review.googlesource.com/298200
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
10750cb9
|
2015-09-04T14:23:52
|
|
Re-re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
Re-re-land with a fix for multiply defined symbols on Clang.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I7b55e4964fbe64e0106c37928c894146937a2476
Reviewed-on: https://chromium-review.googlesource.com/298110
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2119dd05
|
2015-09-08T19:30:37
|
|
Revert "Re-land "Move Uniform and UBO info to the gl::Program layer.""
Problems with multiply defined symbols in the Linux builder.
BUG=angleproject:1123
This reverts commit ff1abe63c3d8af28e9755c8d0c95b2aeca27a0d9.
Change-Id: Ifcb2ad885d0841c128ffd69afb6594e37eba17fc
Reviewed-on: https://chromium-review.googlesource.com/298100
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ff1abe63
|
2015-09-04T14:23:52
|
|
Re-land "Move Uniform and UBO info to the gl::Program layer."
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
Re-land with fix for dEQP unused uniforms. The fix involves storing
a local copy of all uniform data in the GL layer. This will also
let us validate sampler indexes during draw calls at the GL layer.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I9074c057c2c67d4d3221ec11c5556a26e07c7ceb
Reviewed-on: https://chromium-review.googlesource.com/297070
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
9bbad18e
|
2015-09-04T11:07:29
|
|
Mark GL_RGB10_A2UI as a renderable format.
dEQP-GLES3.functional.fbo.color.tex3d.rgb10_a2ui was already failing but
because the framebuffer was marked as unsupported, dEQP considers the test to
be passing.
BUG=angleproject:1149
BUG=angleproject:1097
Change-Id: I82223e8e927d1fd6d66f75b5fdea7989c92d706d
Reviewed-on: https://chromium-review.googlesource.com/298031
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
47f730fa
|
2015-09-08T14:29:37
|
|
Revert "Mark GL_RGB10_A2UI as a renderable format."
Fails the dEQP test:
dEQP-GLES3.functional.fbo.color.tex3d.rgb10_a2ui
BUG=angleproject:1149
This reverts commit d0f9fdc772d0b286a50978f4a16c94e2af3dfee7.
Change-Id: I5b76255be3fc1f0734395dac609e2949fc8c8185
Reviewed-on: https://chromium-review.googlesource.com/298010
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6026538a
|
2015-09-04T14:36:16
|
|
Revert "Use named value-parameterized tests for dEQP gtests"
This reverts commit 0db7b15554f30c528a69285ec19150f36be263f7.
BUG=
Change-Id: Ia2de8268bd51d865ad87875c55cb5bfcc51e29f6
Reviewed-on: https://chromium-review.googlesource.com/297760
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
b92c133e
|
2015-09-04T12:54:55
|
|
Don't use the mip level to validate the 2D texture depth parameter.
BUG=angleproject:1149
Change-Id: I5dd45c99b373d480814c9fbdbe0abd419a270c89
Reviewed-on: https://chromium-review.googlesource.com/297052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
d0f9fdc7
|
2015-09-04T11:07:29
|
|
Mark GL_RGB10_A2UI as a renderable format.
BUG=angleproject:1149
Change-Id: Ia808c0d411133d135eef8e90485ba346086f012c
Reviewed-on: https://chromium-review.googlesource.com/296964
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
0db7b155
|
2015-09-03T15:25:41
|
|
Use named value-parameterized tests for dEQP gtests
This replace the non-descriptive digit at the end of the test name by
the name of the dEQP test being run.
BUG=angleproject:1153
Change-Id: Ibc9e5fbf46ffbf3a8c783807161b2bdc63119f54
Reviewed-on: https://chromium-review.googlesource.com/296686
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
|
|
3766a40d
|
2015-06-18T15:47:46
|
|
Remove dynamic indexing of matrices and vectors in HLSL
Re-landing after fixing D3D9 specific issues.
HLSL doesn't support dynamic indexing of matrices and vectors, so replace
that with helper functions that unroll dynamic indexing into switch/case
and static indexing.
Both the indexed vector/matrix expression and the index may have side
effects, and these will be evaluated correctly. If necessary, index
expressions that have side effects will be written to a temporary
variable that will replace the index.
Besides dEQP tests, this change is tested by a WebGL 2 conformance test.
In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec
allows undefined behavior. KHR_robust_buffer_access_behavior adds the
requirement that program termination should not occur and that
out-of-range reads must return either a value from the active program's
memory or zero, and out-of-range writes should only affect the active
program's memory or do nothing. This patch clamps out-of-range indices so
that either the first or last item of the matrix/vector is accessed.
The code is not transformed in case the it fits within the limited subset
of ESSL 1.00 given in Appendix A of the spec. If the code isn't within
the restricted subset, even ESSL 1.00 shaders may require this
workaround.
BUG=angleproject:1116
TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change)
WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html)
Change-Id: I66a5e5a8d7f4267da0045f1cc2ba6b0dc7eb3f5d
Reviewed-on: https://chromium-review.googlesource.com/296671
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
a7e1d9aa
|
2015-09-01T12:41:47
|
|
Only validate that color and alpha blend funcs are non-constant on D3D renderers.
BUG=angleproject:1025
Change-Id: I9c6008cc2f268bda4afa2c67e0b3d3716e77ea31
Reviewed-on: https://chromium-review.googlesource.com/296681
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
48705cad
|
2015-09-02T20:40:51
|
|
Revert "Move Uniform and UBO info to the gl::Program layer."
Seems to be failing dEQP-GLES2.functional.uniform_api.value.unused_uniforms.* on Linux (possibly Win as well)
BUG=angleproject:1123
This reverts commit 54f882c9167b1aff5b3700187a2048bd886e8b17.
Change-Id: I7dbbf40aae8dd9ebd35895df0dd338a3b6b9cc96
Reviewed-on: https://chromium-review.googlesource.com/297051
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
54f882c9
|
2015-09-02T14:33:48
|
|
Move Uniform and UBO info to the gl::Program layer.
This data was previously stored entirely in the Impl level. Move
as much as possible to the GL level, using a read-only view in the
Impl level. Some information in D3D-specific, and should be stored
separately in the Impl.
This patch has a lot of refactoring that splits the D3D and GL info,
and moves as much validation as possible to the GL layer, where it
is shared between the back-ends.
BUG=angleproject:1123
TEST=end2end_tests,Canary WebGL (D3D11/GL), dEQP-GLES2+3.functional.uniform_api
Change-Id: I8b7e1380a61590a46ccee646a47ffe9bda287f6b
Reviewed-on: https://chromium-review.googlesource.com/295124
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
3a86ad38
|
2015-09-01T11:47:05
|
|
Only validate that stencil refs and masks are the same on D3D renderers.
BUG=angleproject:1025
Change-Id: If79046f9f81ad20c5f2f7296245b0cb74a4102aa
Reviewed-on: https://chromium-review.googlesource.com/296680
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
93fc8f3e
|
2015-09-02T11:26:06
|
|
Add back a suppression for a bot specific dEQP GLES2 failure on Windows
BUG=angleproject:1127
Change-Id: I749c2c39dfaf60d5e39a00bd7954fcb1d7e931ac
Reviewed-on: https://chromium-review.googlesource.com/296960
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
f2ee0752
|
2015-09-01T10:14:36
|
|
Fix wrongly formatted dEQP GLES2 expectations
The formatting problem was introduced in
770f8f8658806b278f67e55ca195e022b683f9e0 and prevented the bots from
running the dEQP tests.
BUG=angleproject:1143
Change-Id: I427f6472625df19111ff56685b7e70b9e9aae866
Reviewed-on: https://chromium-review.googlesource.com/295199
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
770f8f86
|
2015-08-28T13:46:02
|
|
Add back suppressions for bot-specific dEQP GLES2 failures on Linux
BUG=angleproject:1143
Change-Id: I5bd1a7de7b147062f2e093a30efe4ed06eb80ec2
Reviewed-on: https://chromium-review.googlesource.com/295247
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ad915e9b
|
2015-08-27T14:34:47
|
|
Update the Windows dEQP GLES2 test expectations
BUG=angleproject:1127
Change-Id: I6f38e5441c4a288e9c1f55fefa31d5d2f10a700c
Reviewed-on: https://chromium-review.googlesource.com/295246
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
7cb71880
|
2015-08-26T16:24:07
|
|
Update the dEQP GLES2 test expectations for Linux
BUG=angleproject:1127
Change-Id: Ia5f9442ef718625ed913fe3a76301a0edea00390
Reviewed-on: https://chromium-review.googlesource.com/295720
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3c192a78
|
2015-08-26T20:32:53
|
|
Revert "Remove dynamic indexing of matrices and vectors in HLSL"
Seems to be failing a WebGL/ES2 CTS test in D3D9:
conformance/ogles/GL/mat3/mat3_001_to_006
BUG=angleproject:1116
BUG=525188
This reverts commit 83f3411da456faac8570892e3dd7d76edf4095e5.
Change-Id: Ic186f51240dbdd96ccab3f5470329cdc9727c618
Reviewed-on: https://chromium-review.googlesource.com/295730
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
5f57cc6e
|
2015-08-26T13:41:37
|
|
Add targets that run the EGL dEQP tests.
Generates lots of assertion failures when run, expectations and assertion fixes
to come.
BUG=angleproject:1139
Change-Id: Ia55b4b2ca3a7844d8d9d05cb7043cd42d55b86ed
Reviewed-on: https://chromium-review.googlesource.com/295243
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
83f3411d
|
2015-06-18T15:47:46
|
|
Remove dynamic indexing of matrices and vectors in HLSL
HLSL doesn't support dynamic indexing of matrices and vectors, so replace
that with helper functions that unroll dynamic indexing into switch/case
and static indexing.
Both the indexed vector/matrix expression and the index may have side
effects, and these will be evaluated correctly. If necessary, index
expressions that have side effects will be written to a temporary
variable that will replace the index.
Besides dEQP tests, this change is tested by a WebGL 2 conformance test.
In the case that a dynamic index is out-of-range, the base ESSL 3.00 spec
allows undefined behavior. KHR_robust_buffer_access_behavior adds the
requirement that program termination should not occur and that
out-of-range reads must return either a value from the active program's
memory or zero, and out-of-range writes should only affect the active
program's memory or do nothing. This patch clamps out-of-range indices so
that either the first or last item of the matrix/vector is accessed.
The code is not transformed in case the it fits within the limited subset
of ESSL 1.00 given in Appendix A of the spec. If the code isn't within
the restricted subset, even ESSL 1.00 shaders may require this
workaround.
BUG=angleproject:1116
TEST=dEQP-GLES3.functional.shaders.indexing.* (all pass after change)
WebGL 2 conformance tests (glsl3/vector-dynamic-indexing.html)
Change-Id: I024722ef4ca1e14d5ad47fdc540397e18858bed6
Reviewed-on: https://chromium-review.googlesource.com/290515
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
4d5362d0
|
2015-08-25T11:25:14
|
|
VertexArrayGL: fix the streaming of offset non-packed strides
When the packed stride and source stride were different, the streaming
code path used a loop that added two times the offset for the start of
the index range.
BUG=angleproject:1135
Change-Id: I6d314a1a28abec4df22f7c798c1af87a18d8b7ec
Reviewed-on: https://chromium-review.googlesource.com/295225
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
ec1be6d5
|
2015-08-19T15:07:43
|
|
Suppress dEQP negative_api compressedtexsubimage2d_invalid_size on Linux
Temporarily suppress this test as it might be caused by a dEQP bug.
BUG=angleproject:1128
Change-Id: I9c6f1b95edca55f54f3292227ebc81d4ddc57f0a
Reviewed-on: https://chromium-review.googlesource.com/294580
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
cce24e9c
|
2015-07-29T15:14:29
|
|
dEQP-GLES2: Reland of "Skip flush/finish test on Windows."
This test is having flaky timeouts on the bots. Disable it for now.
The re-land fixes the test syntax, and ensures we will see any errors
in test config as test failures on the bots.
BUG=angleproject:1107
TEST=angle_deqp_gles2_tests runs
Change-Id: Ia4fa8affb70e4474d8e43ff87ee86328aa47ebeb
Reviewed-on: https://chromium-review.googlesource.com/289580
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6db9adac
|
2015-07-29T19:13:10
|
|
Revert "dEQP-GLES2: Skip flush/finish test on Windows."
Incorrect syntax is making the bots skip all tests.
BUG=angleproject:1107
This reverts commit e8c8de2da7907579dd25273bbb422143586e79b1.
Change-Id: I4469b6b320f8754af576875128e4e3fb210c67b6
Reviewed-on: https://chromium-review.googlesource.com/289501
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
e8c8de2d
|
2015-07-27T10:09:31
|
|
dEQP-GLES2: Skip flush/finish test on Windows.
This test is having flaky timeouts on the bots. Disable it for now.
BUG=angleproject:1107
Change-Id: Iaa15672fb96f4aa3463a0613980f8a941aeafe1f
Reviewed-on: https://chromium-review.googlesource.com/288405
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
3aa9b2e0
|
2015-07-27T10:46:30
|
|
dEQP-GLES3: Mark dynamic_loop_struct_array_fragment as failing.
This test is failing on the bots.
BUG=angleproject:1108
Change-Id: Iaef3f0810c5d076b6c49bc356340c9bde014c4f5
Reviewed-on: https://chromium-review.googlesource.com/288518
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d1b9568f
|
2015-07-22T14:36:15
|
|
dEQP: Remove old test expectations file.
This is no longer needed by Chromium, after we land the GLES3
expectations patch.
BUG=angleproject:1071
BUG=510822
Change-Id: I63c2b020838aae8771314c959e9e7eb994bed93f
Reviewed-on: https://chromium-review.googlesource.com/287518
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
bc4acb4e
|
2015-07-22T13:37:42
|
|
dEQP: Update dEQP-GLES3 test expectations.
Tests are all green on my local Nvidia configuration.
BUG=510822
BUG=angleproject:1071
Change-Id: I56d30089d574e795cfbd012ce7430896856d32ee
Reviewed-on: https://chromium-review.googlesource.com/287517
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
86170f33
|
2015-07-21T13:01:12
|
|
Add a GLES3 GoogleTest target.
BUG=510822
BUG=angleproject:1071
Change-Id: Ia2e6d0ac71e61dbed75e55994d2bf874a75fabd6
Reviewed-on: https://chromium-review.googlesource.com/286831
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
819d9bc2
|
2015-07-21T13:39:28
|
|
dEQP: Duplicate/rename gles2 test expectations.
This will clear the way to put the GLES3 tests on the bots.
BUG=angleproject:1071
BUG=510822
Change-Id: I65fc917425531f6c080bcc862802d25af10cf265
Reviewed-on: https://chromium-review.googlesource.com/287164
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
06c5a646
|
2015-07-09T14:48:12
|
|
Suppress dEQP failure, only showing on the bot.
Unsure why this is failing:
functional.shaders.struct.local.dynamic_loop_struct_array_fragment
BUG=angleproject:1059
Change-Id: I72e05269f831769a763c44354b95a7224edb72fa
Reviewed-on: https://chromium-review.googlesource.com/284636
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
01e4bfe7
|
2015-07-02T15:07:13
|
|
Update dEQP test expectations with Linux failures
BUG=angleproject:1051
Change-Id: I5f397e230f0e56b1e6832c3dae5ae5c0c9a8b7c4
Reviewed-on: https://chromium-review.googlesource.com/283226
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ccda698b
|
2015-07-02T08:26:22
|
|
Remove redundant chdir in angle_deqp_test_main
Fixes the tests not running directly from the VS UI.
BUG=angleproject:1051
Change-Id: Ia299d8e7ad676330902725c114e8f5766db49d82
Reviewed-on: https://chromium-review.googlesource.com/283158
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
c491e0fb
|
2015-07-02T10:41:11
|
|
Fix command line being ignored in non-gtest dEQP tests
BUG=angleproject:1051
Change-Id: If10abaea31ad29af9f8d438403f67b9dfbfd7e45
Reviewed-on: https://chromium-review.googlesource.com/283167
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
f5cb6aa5
|
2015-06-30T11:31:54
|
|
Port gpu_test_expectations and angle_deqp_googletest to Linux
BUG=angleproject:1051
Change-Id: I46c3a5651d36750558735eb626ed5c9424b250b4
Reviewed-on: https://chromium-review.googlesource.com/282596
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
a55e4b7a
|
2015-06-09T13:30:25
|
|
Enable compilation of dEQP tests on Linux
BUG=angleproject:1051
Change-Id: I158e59ca581b580825848e831d05064cdcc30d96
Reviewed-on: https://chromium-review.googlesource.com/276202
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
fdee4112
|
2015-06-26T14:27:31
|
|
Roll dEQP 554adf..92f7752.
Includes updated Licences.
https://android.googlesource.com/platform/external/deqp/+log/554adf..92f7752
BUG=angleproject:998
Change-Id: If2da8719addeef25ec46adc105cf63c8b861f55a
Reviewed-on: https://chromium-review.googlesource.com/282271
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
4d06a24c
|
2015-06-26T11:12:24
|
|
dEQP: Extend GoogleTest support.
*re-land after rebase on top of Chrome build fix*
This patch will enable a Chromium-side CL to build dEQP/ANGLE with
GoogleTest.
BUG=angleproject:998
BUG=500736
Change-Id: Id02c66a260b0a7bab3de9cda624fe097322b2d3c
Reviewed-on: https://chromium-review.googlesource.com/281824
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
57cdc69c
|
2015-06-23T21:03:06
|
|
Revert "dEQP: Extend GoogleTest support."
Causing runhooks failures:
gyp: Undefined variable deqp_path in C:\b\build\slave\GPU_Win_Builder\build\src\third_party\angle\src\tests\tests.gyp
BUG=angleproject:998
BUG=500736
This reverts commit 8edd75d1bb6680e7c2018ece9f5c81e3b87bf938.
Change-Id: I8cd83bb5871dea81abea61554b182825145298e6
Reviewed-on: https://chromium-review.googlesource.com/281208
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
8edd75d1
|
2015-06-22T15:35:53
|
|
dEQP: Extend GoogleTest support.
This patch will enable a Chromium-side CL to build dEQP/ANGLE with
GoogleTest.
BUG=angleproject:998
BUG=500736
Change-Id: Ie480e3319c1bd77dd1de2c964f78ef97297fcfe9
Reviewed-on: https://chromium-review.googlesource.com/280856
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
|
|
52445286
|
2015-06-09T09:15:54
|
|
Add a OSPixmap class to have cross platform pixmaps
This will help make the deqp support code platform agnostic.
BUG=angleproject:892
Change-Id: I6f8c738ed8125057db87afea2079583f8feac977
Reviewed-on: https://chromium-review.googlesource.com/276201
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
ce991cf6
|
2015-05-27T15:07:33
|
|
Add OSWindow::takeScreenshot to be used by some dEQP egl tests
This helps make dEQP support platform agnostic
BUG=angleproject:892
Change-Id: Ifd9436caa8c79018a053c27e32b514ef9ebee707
Reviewed-on: https://chromium-review.googlesource.com/273596
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
3c85635d
|
2015-05-27T12:50:55
|
|
Add SetLowPriorityProcess to utils and use it in dEQP support
This provides a cross-platform way to make sure dEQP runs in a low
priority process.
BUG=angleproject:892
Change-Id: I0d12f1eacb78be43edcdb6622f945734c0b377ff
Reviewed-on: https://chromium-review.googlesource.com/273595
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
774c66f3
|
2015-05-27T12:37:42
|
|
dEQP support: use OSWindow instead of tcuWin32Window
This is to help dEQP support become cross platform.
BUG=angleproject:892
Change-Id: I4480b64a33b1725fb42769bf7dddef1b4ee27c83
Reviewed-on: https://chromium-review.googlesource.com/273594
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
e9e4c7f7
|
2015-06-12T11:40:33
|
|
Roll dEQP 9b4161..554adf1.
Includes some tests for EXT_debug_marker
https://android.googlesource.com/platform/external/deqp/+log/9b4161..554adf1
BUG=None
Change-Id: I911fcb5577caefaa1fe3479445146a2b3f819124
Reviewed-on: https://chromium-review.googlesource.com/277140
Reviewed-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
7f165fd9
|
2015-06-10T16:46:11
|
|
dEQP: Hook up GPU test expectations code.
With the list of failures, this gives a 100% passing GLES2 test
suite.
BUG=angleproject:998
Change-Id: I20985c729104d7a114352d156c238bca3ea1698c
Reviewed-on: https://chromium-review.googlesource.com/274423
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
44b07e94
|
2015-06-09T18:00:46
|
|
Fix compilation of libtester_main on Linux
Replace usage of std::exception by std::runtime_error
BUG=angleproject:892
Change-Id: I214fe6a93944dcfb39b0633f46caf3b1187bd5d3
Reviewed-on: https://chromium-review.googlesource.com/275815
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
df785dfa
|
2015-06-09T09:55:30
|
|
dEQP: Add GoogleTest integration.
Use value-parameterized tests, loading a full test list from
case files.
BUG=angleproject:998
Change-Id: Iff65a2d722e9d105e22649b17a18cc74dccea2b1
Reviewed-on: https://chromium-review.googlesource.com/274421
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4f3c14be
|
2015-06-09T09:55:29
|
|
dEQP: Add tcu::RandomOrderExecutor.
A prototype based on work from phaulos@. This should eventually
be integrated into the dEQP repo.
BUG=angleproject:998
Change-Id: I9be137fb54423bc180623f172dde63a22311b791
Reviewed-on: https://chromium-review.googlesource.com/274420
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d0834a00
|
2015-06-08T10:59:27
|
|
dEQP: Add case file generator script.
Use the dEQP null platform for speed and to avoid popping up
a new window. Store the case lists as .gz files to save space
in the repo.
BUG=angleproject:998
Change-Id: Ib9b10b8a83edc510cc98f120847b1cf93a3d2f78
Reviewed-on: https://chromium-review.googlesource.com/273975
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
2a7ffe16
|
2015-04-23T15:00:04
|
|
Add ANGLE platform selection for dEQP.
This gives us the choice between D3D9 and D3D11. We can add more
platforms easily using the same patterns.
BUG=angleproject:901
Change-Id: Ia8dc77466bd32f0b8b0d638ae839f41288bfe25b
Reviewed-on: https://chromium-review.googlesource.com/266889
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
3cd438d1
|
2015-03-17T11:25:27
|
|
Add dEQP tests.
We integrate dEQP as a console application and a shared library which
runs all of the test logic. Using a shared library lets us compile
dEQP with all the specific compiler options it needs, without
conflicting with the compile settings in ANGLE proper.
Currently we only support Windows D3D11, ES 2 and 3. We can add
other targets in the future.
We also have a few bugs preventing us from running the test suite in
full. We run into infinite loop problems in some shader tests, and
have crashes or UNIMPLEMENTED in others.
BUG=angleproject:901
Change-Id: Ib6fe66041a6fe547eb2cba497c52de7fd080d667
Reviewed-on: https://chromium-review.googlesource.com/238084
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|