|
bc82fb14
|
2019-11-28T16:58:19
|
|
Suppress failing end2end tests for ASAN builds
GLSLTest_ES31.StructArraySample and
ComputeShaderTest.DispatchComputeIndirect both hit stack-buffer-overflow
errors with ASAN enabled, using the vulkan backend. Right now ASAN is
only tested on Mac, so these are only hit when Mac is using
swiftshader-vulkan.
Bug: 1029378
Change-Id: Ie590f73c29be44f683fd47fe4da139e1b5f96289
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1943408
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
6fcc0bb8
|
2019-11-21T01:19:40
|
|
Metal: Re-add end2end test configs (running test is still disabled)
angle_test_instantiate.cpp & angle_test_instantiate_apple.mm:
- Disabled metal platform selection on pre-10.13 mac devices for
Bug: angleproject:4153
Explicitly disabled tests on metal:
- DifferentStencilMasksTest.DrawWithDifferentMask
- PointSpritesTest.PointSizeAboveMaxIsClamped
- WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D
This requires the crash fix in http://crrev.com/c/1924101
Bug: angleproject:4153
Bug: angleproject:2634
Change-Id: I95046d731a8ba7414cf1a1f4b6f2940282725872
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926389
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
c1776c61
|
2019-11-13T11:36:35
|
|
Vulkan:Add Swiftshader configs
Add Swiftshader configs to existing test instantiation macros for all ESX
variants. This causes Swiftshader to be used to run end2end tests.
Added detection code to know when tests are running on Swiftshader and skipping
a number of fails initially.
Note that when running ANGLE end2end tests within Chromium build on Win32 bots
there were crashes with Swiftshader config for tests that should have been skipped.
Due to this, just skipping Swiftshader configs on Win32 for now.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I32527a62304c5fad90f645b372edf9411ca2b212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1914126
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8392b118
|
2019-11-20T16:57:08
|
|
Revert "Metal: Enable end2end tests."
This reverts commit 0bb42e091b77f174632434a05789b2ce632bd902.
Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1026633
Causing failures on Mac bots.
Original change's description:
> Metal: Enable end2end tests.
>
> Explicitly disabled tests:
> - DifferentStencilMasksTest.DrawWithDifferentMask
> - PointSpritesTest.PointSizeAboveMaxIsClamped
> - WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D
>
> Bug: angleproject:2634
> Change-Id: I76ab450c06d0e1be1e7469a8b9c6497684c3ca54
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906607
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org,le.hoang.q@gmail.com
Change-Id: Iaa4264834170a49c274f186d3d74f57714c84b32
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2634
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1926378
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
0bb42e09
|
2019-11-19T23:04:00
|
|
Metal: Enable end2end tests.
Explicitly disabled tests:
- DifferentStencilMasksTest.DrawWithDifferentMask
- PointSpritesTest.PointSizeAboveMaxIsClamped
- WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D
Bug: angleproject:2634
Change-Id: I76ab450c06d0e1be1e7469a8b9c6497684c3ca54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1906607
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1a01b4b3
|
2019-11-11T16:41:07
|
|
Refactor end2end test macros
This is a foundational CL to enabling the end2end tests on swiftshader.
Refactored infrastructure with new ANGLE_INSTANTIATE_TEST_ES*
macros that will run tests over all various combinations of all
platforms for different ES versions.
Just skipping failing tests initially to get the refactor landed.
Bug: angleproject:4081
Bug: angleproject:4092
Change-Id: I017f6c3267179e49b6ae08cc7488096b423dcdb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1904635
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
|
|
b3070102
|
2019-10-18T16:01:34
|
|
Add SH_REMOVE_DYNAMIC_INDEXING_OF_SWIZZLED_VECTOR
This is a workaround for the webgl2 conformance test case
WebglConformance_conformance2_glsl3_vector_dynamic_indexing_swizzled_lvalue.
Dynamic indexing of swizzled lvalue like "v.zyx[i] = 0.0" is problematic on
various platforms. This removes the indexing by translating it this way:
void dyn_index_write_vec3(inout vec3 base, in int index, in float value){
switch (index) {
case (0):
(base[0] = value);
return ;
case (1):
(base[1] = value);
return ;
case (2):
(base[2] = value);
return ;
default:
break;
}
if ((index < 0))
{
(base[0] = value);
return ;
}
{
(base[2] = value);
}
}
...
dyn_index_write_vec3(v.zyx, i, 0.0);
...
Bug: chromium:709351
Change-Id: I971b38eb404209b56e6764af1063878c078a7e88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869109
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
70d79b76
|
2019-09-11T11:43:55
|
|
GL: Add state validation functions to GL backend
These functions validate that the driver's reported state matches
ANGLE's internal state. Can be useful for debugging
Bug: angleproject:3900
Change-Id: I35d15e991986dcab114939c551a88549f09bd263
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1797254
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7f00d338
|
2019-08-28T15:19:16
|
|
Suppress end2end tests failures on Android FYI Release (NVIDIA Shield TV)
These were fixed on desktop drivers but not this Android driver.
TBR=geofflang@chromium.org
BUG=chromium:998505
Change-Id: Ie5f434c52753beff4d8f119713ef55f229ee7b95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1773253
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
76a93c33
|
2019-08-21T13:21:52
|
|
Remove skipping of several tests on NVIDIA since they are now passing
Remove skipping of several tests on NVIDIA since they are now passing.
- MissingReturnStructOfArrays
- DrawWithLevelsOutsideRangeWithInconsistentDimensions
- TextureFormatChangesWithBaseLevel
- TextureLuminance16Implicit
BUG=angleproject:3849
BUG=angleproject:1305
BUG=angleproject:596
Change-Id: Ie3c3ba6634a251a7320a61c6c4cc03cb178db925
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763964
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1d5aaa6c
|
2019-08-06T11:20:13
|
|
Vulkan: support dynamic indices in array of arrays
Expands existing struct-sampler rewrite to flatten arrays of arrays.
This allows us to support dynamically-uniform array indexing, which is
core in ES 3.2.
Samplers inside (possibly nested) structs are broken apart as before,
and then if the type resulting from merging the array sizes of the field
and its containing structs is an array of array, the array is flattened.
Also adds an offset parameter to functions taking in arrays to account
for this translation.
As a result of outer array sizes leaking into function signatures,
functions taking arrays of different sizes are duplicated according to
how the function is invoked.
Bug: angleproject:3604
Change-Id: Ic9373fd12a38f19bd811eac92e281055a63c1901
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744177
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5f45432f
|
2019-08-22T15:34:57
|
|
Add several angle bugs for end2end tests failing on NVIDIA
Add several angle bugs for end2end tests failing on NVIDIA.
- TwiceMaxVaryingVec2 failing on GLES
- MipLevels failing on Shield GLES
- GenerateMipmapCubeBaseLevel failing on GL
BUG=angleproject:3849
BUG=angleproject:3850
BUG=angleproject:3851
Change-Id: I6e5283f0d4c1c5da8259034dfda3beb94e041b21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768016
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d6c7fec1
|
2019-08-12T16:46:57
|
|
Vulkan: Support mixed column/row-major buffer fields
Adds comprehensive tests for mixed column/row-major interface blocks,
which flush out various bugs in different OpenGL drivers too.
Bug: angleproject:3443
Change-Id: Ie88cca743373891bbb49d9f564f30407475e07fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1749334
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2f07e4fb
|
2019-08-02T10:41:56
|
|
Add test for array of arrays of samplers
This test fails on the Vulkan backend because Vulkan does not allow
arrays of arrays of samplers.
Also adds a few other tests relating to arrays of arrays.
Test: ./angle_end2end_tests --gtest_filter='GLSLTest_ES31.*'
Bug: angleproject:3604
Change-Id: I5c47119b6ba6d26fe30fdd9c6730caac6f222696
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1733476
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cdecd97c
|
2019-06-25T14:22:41
|
|
Add Draw base vertex and base instance function entrypoints
Split from https://chromium-review.googlesource.com/c/angle/angle/+/1705035/27
This patch adds entrypoints glDrawArraysInstancedBaseInstanceANGLE,
glDrawElementsInstancedBaseVertexBaseInstanceANGLE,
glMultiDrawArraysInstancedBaseInstanceANGLE,
and glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Implementation will come in a later separate patch.
Bug: chromium:891861, angleproject:3402
Change-Id: I18e19b850cddd79be4798b9ae7efe0680a050c7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750125
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c9ba782a
|
2019-08-05T16:14:22
|
|
Vulkan: Support atomic counter array of arrays
Previously, it was assumed that a function argument is either AC or
AC[i], and it was converted to AC or AC+i respectively. The code is
changed to support any number of dimensions and subscripts, using
array size information from AC's type. If AC is an array of array
(atomic_uint AC[N][M][R]), the following index calculations are done.
AC -> AC.arrayIndex
AC[i] -> AC.arrayIndex + i*M*R
AC[i][j] -> AC.arrayIndex + i*M*R + j*R
AC[i][j][k] -> AC.arrayIndex + i*M*R + j*R + k
A test is added to exercise these various forms of indexing:
AtomicCounterBufferTest31.AtomicCounterArrayOfArray
Bug: angleproject:3566
Change-Id: I1e181a7363463d1d0ee4916f35006ed7c58e0f7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1739488
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
593b1a6c
|
2019-07-30T10:02:22
|
|
Vulkan: Fix array handling in default uniforms
Changes default uniform block layout generation to only remove the first
array subscript, which causes arrays of arrays to be recognized
correctly.
Bug: angleproject:3604
Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES31.functional.shaders.arrays*'
Test: ./angle_deqp_gles31_no_gtest --deqp-egl-display-type=angle-vulkan -n 'dEQP-GLES31.functional.program_interface_query.*array*array*'
Change-Id: Ifacc665cae87c651253e5cb8d929178d7fc92817
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1724906
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: James Dong <dongja@google.com>
|
|
8cb95960
|
2019-07-16T13:54:57
|
|
Vulkan: Fix FS array output location assignment
Test: angle_end2end_test --gtest_filter=GLSLTest_ES3.FragmentShaderOutputArray/ES3_Vulkan
Bug: angleproject:3707
Change-Id: I6519a76aa58ad80ada0e2ad90a2a70d93f831ce5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1704779
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2589cdcc
|
2019-06-11T11:38:41
|
|
GLSLTest stack overflow bug fix
Bug: angleproject:3514
Change-Id: Id02bdb230dce0435b0b33db101d196596d6e8c93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1652435
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
12a52423
|
2019-06-03T10:39:54
|
|
Sharpen GL test skip condition for NVIDIA
The skip condition for GLSLTest_ES3.VaryingStructNotInitializedInVertexShader
is modified to not skip NVIDIA on windows.
Bug: angleproject:3413
Change-Id: I126d9fa9e36c3b6c07abfd24bdaf6feb76ac4f6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1640208
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3fe06eb3
|
2019-05-21T17:37:25
|
|
D3D: Make sure Lod0 functions are never referenced in non-fragment shaders.
The lod0 functions would not be declared but could still be referenced by
vertex shaders.
BUG=angleproject:3471
Change-Id: I635a8465ce68dc22a6f7387b30bf7e93b14dd67d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1622741
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
|
|
06de90c6
|
2019-05-16T12:46:54
|
|
Vulkan: Re-enable a handful of suppressed ES3 tests
Few features are already implemented but the suppressions were not
removed.
Bug: angleproject:2392
Bug: angleproject:2394
Bug: angleproject:3199
Bug: angleproject:3219
Bug: angleproject:3423
Change-Id: Iefd6c10f5ec774e174901114b35410c0d397085f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1614428
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
5cbaa3f8
|
2019-05-07T15:49:22
|
|
Don't inherit ANGLETest SetUp and TearDown.
Instead of inheriting from testing::Test's SetUp and TearDown we add
new methods 'testSetUp' and 'testTearDown'. This helps prevent a common
error of forgetting to call the base class method.
Also add a check in the ANGLETest destructor that SetUp and TearDown
have been called.
Bug: angleproject:3393
Change-Id: Iab211305cc06ffea9ca649e864ddc9b180f2cba0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593960
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9421b2c
|
2019-04-08T15:16:56
|
|
Vulkan:Only apply invariant pragma to output vars
The "#pragma STDGL invariant(all)" directive should only be applied to
shader output vars. This change also removes the workaround
SH_DONT_REMOVE_INVARIANT_FOR_FRAGMENT_INPUT which is no longer needed.
This change fixes two tests that were incorrectly assuming that the
pragma would be applied to inputs: GLSLTest.InvariantAll[Both|In].
Bug: angleproject:1293
Bug: angleproject:3285
Change-Id: I4eb03fa89fbc7c560150ee0cc32382024b0cb3e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1558678
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
216f73d0
|
2019-04-12T13:32:30
|
|
Vulkan: add uniform buffer object support
Support for layout qualifiers in interface blocks are added. All
interface blocks are adjusted to either be in std140 or std430.
In the Vulkan backend, a new descriptor set is added for UBOs. A dirty
bit is added for UBO updating and pipeline layouts and descriptor
bindings are updated.
Bug: angleproject:3199, angleproject:3220
Change-Id: I271fc34ac2e1e8b76dee75e54a7cff0fe15fe4ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565061
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3e62561c
|
2019-05-06T11:48:52
|
|
Suppress test hitting Nvidia shield driver bug
The same test was hitting a bug with the Nvidia driver on windows+gles.
Bug: angleproject:3413, angleproject:3417
Change-Id: I39426291eac731bcda068829686e09cf406ff661
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595438
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e25ff9d8
|
2019-05-01T00:02:05
|
|
Vulkan: Fix qualifiers for varyings
`out` variables in the vertex shader and `in` variables in the fragment
shader were not decorated with `layout(location=?)` as they should
according to the Vulkan GLSL spec. This change makes sure these
decorations are present regardless of whether the compiler sees these
variables as EvqVaryingIn/Out or EvqVertexOut/FragmentIn.
Bug: angleproject:3412
Change-Id: I66473e876cb989a60b0c6d6a5850a8b2c763d8e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1590694
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
80147d11
|
2019-04-30T16:21:24
|
|
Add support for dynamically allocate initial stack for Angle
By updating YYLTYPE_IS_TRIVIAL to true, YYSTACK_RELOCATE can be enabled, so
we can dynamically allocate stack size based on needs.
BUG=angleproject:3028
Change-Id: I1b9cc0768cd0c6955589695e703595c56d43f24a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593954
Commit-Queue: Yi Xu <yiyix@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
051b0896
|
2019-04-15T15:39:39
|
|
Vulkan: Fix layout substitution for struct varyings
If the shader contains code such as the following:
struct S {
vec4 field;
};
out S varStruct;
The layout qualifier macro is defined as @@ LAYOUT-varStruct @@.
However, the Vulkan backend was replacing @@ LAYOUT-field @@.
Bug: angleproject:3220
Change-Id: Iae15003867e0bed2cc939159a6653429c7a431e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1571389
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ddc4d33a
|
2019-05-01T15:11:46
|
|
Remove several underused platform configs.
* Removes D3D11 Warp and Reference configs from tests.
* Removes several permutations of OpenGL back-end specific configs.
* Removes FL 9_3 since it is no longer supported.
* Removes present path "Copy" since it's redundant with normal D3D11.
Reduces number of configs from over 60 to 25.
Bug: angleproject:3393
Change-Id: Ia5a23de3c4865b17ee50673a4066757b901a4b5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574675
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b8149075
|
2019-04-30T16:14:44
|
|
Clean up ANGLE test extension functions.
None of these functions needed to be member functions. Also make the
naming more consistent.
Bug: angleproject:3393
Change-Id: I7aafe2269a48af703a87bd9a8cf4cfab9e177dd3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1574673
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
422c94bd
|
2019-04-12T13:37:19
|
|
Vulkan: Enable ES3 fragment output attribute locations
GLSLTest_ES3 end2end tests are enabled for Vulkan, though with
suppressions for other features that are missing.
Bug: angleproject:3199
Change-Id: Ie744e160eab2df9a5a4f2c67ea5acf4b865ea5bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565058
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5646a7cc
|
2019-04-12T16:42:56
|
|
Uniform buffers not dirtied for gl_VertexID workaround on D3D11.
Related to:
https://chromium-review.googlesource.com/c/angle/angle/+/1520988
The program uniform buffers were dirtied for this edge case, but it
should have been the driver uniform buffers. This CL fixes this and adds
a tests case which catches this.
Bug: 945903
Change-Id: I6142771e200513ed0251fc97cec68d371d39ec1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1565059
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shrek Shao <shrekshao@google.com>
|
|
f39b4f02
|
2019-04-09T12:04:51
|
|
Vulkan Android: Remove workaround to clamp the point size
This is to remove the workaround introduced by anglebug.com/2599 since
Nexus 5x devices aren't in the farm anymore and the tests pass on Pixel
devices.
Bug: angleproject:2599
Test: angle_deqp_gles2_tests
Test: angle_end2end_tests
Change-Id: I14f724494909486a2164ddd734a95b6980429f29
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1559202
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9078c6a7
|
2019-03-19T11:10:15
|
|
Update necessary angle_end2end_tests to check the Android device name
Some tests fail only on specific devices, so the tests should be updated
to reflect that, and allow more tests to run on more devices.
Bug: angleproject:3275
Change-Id: I8e3183c1769c0bb8ed6d2605afcaf399cb1d9ed0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1534463
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|
|
eaf56133
|
2019-03-13T12:56:49
|
|
gl_VertexID is incorrect if offset argument to glDrawArrays is non-zero
On D3D the vertex ID is always indexed from 0, unlike GL. The D3D
backend had assumed the wrong behavior. This forwards the true offset to
D3D by using the ConstantsBuffer.
Bug: angleproject:3090
Change-Id: Ia19e3490503c97541af14979b75af0c94c67ab6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1520988
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
aead8edf
|
2019-02-13T13:55:09
|
|
Mute worker context creation warnings
This moves the warnings to InfoLog.
Bug: chromium:931294
Change-Id: I1627aa63bdda6f92fc89b8921eb260302ba9063f
Reviewed-on: https://chromium-review.googlesource.com/c/1469721
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
|
|
d3fac74a
|
2019-02-12T13:40:28
|
|
Disable warnings-as-error in GLSLTest.
This disables the warnings in the FragData test. We were
getting errors in Debug from the multithreading compile
implementation.
Bug: chromium:931294
Change-Id: I6d1424e54335534f794884e40f527b5464113084
Reviewed-on: https://chromium-review.googlesource.com/c/1465960
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
00f43c91
|
2019-02-09T11:41:12
|
|
Vulkan: Suppress layer warnings about unbound outputs.
This warning could pop up whenever an OpenGL app would write
to a particular output and not bind an attachment. This is
valid in OpenGL. Also it could happen when writing to
gl_FragData instead of gl_FragColor. Since it's hard to fix
every usage we can just suppress the warning.
Also adds a way to change test platform warnings into errors.
Bug: angleproject:2866
Change-Id: I9793f58121ac848d74d6b0131e79ebab2c70f45c
Reviewed-on: https://chromium-review.googlesource.com/c/1462057
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
75d577fb
|
2019-02-04T16:28:28
|
|
Fixed Bug where array initialized with same name of
previously declared variable fails on DirectX.
Combined user defined variables with their unique ids to avoid
overwriting same name variables of different scope.
Bug: angleproject:2126
Change-Id: If9ad9e48f629d83b105d43ee28a50b8176d0e0a1
Reviewed-on: https://chromium-review.googlesource.com/c/1456484
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
fa7ca18f
|
2019-01-15T11:20:58
|
|
Vulkan: Enable dEQP point limit raster test.
This requires enabling a workaround in the ANGLE shader translator to
clamp the point size.
Bug: angleproject:2599
Change-Id: I3171bdca5dd2e5af965e94ee2a955f46f8d706da
Reviewed-on: https://chromium-review.googlesource.com/c/1412235
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
828acb39
|
2019-01-22T15:01:55
|
|
Enable ParallelCompile for Mac
Linked in parallel, GLSLTest_ES3.LargeNumberOfFloat4Parameters
fails on the Mac asan bots. It looks a driver bug caused by
handling some long GLSL expressions. This works around it by
breaking down the expression in the test from:
return a0 + a1 + ... + alast;
to:
vec4 sum = vec4(0, 0, 0, 0);
sum += a0;
sum += a1;
...
sum += alast;
return sum;
This also fixes a CGLPixelFormat leak, although it's irrelevant
to the bot failures.
BUG=922936
BUG=angleproject:3087
BUG=angleproject:3047
Change-Id: I20249ada43e9dd226f582a568ed4ed50a0e4375d
Reviewed-on: https://chromium-review.googlesource.com/c/1426430
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
|
|
6ae34889
|
2019-01-18T11:44:54
|
|
Suppress test crashing on Mac ASAN AMD too.
The initial suppression didn't apply to AMD but the test crashes there
too.
BUG=angleproject:3087
BUG=chromium:923399
Change-Id: I8ccffbb7746dd6fc6aa3eb6edaaef30aaae8c097
Reviewed-on: https://chromium-review.googlesource.com/c/1423057
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
3159b2e5
|
2019-01-17T16:39:03
|
|
Suppress test crashing on Mac ASAN.
GLSLTest_ES3.LargeNumberOfFloat4Parameters/ES3_OPENGL started crashing
after the parallel compile enablement on OpenGL and disabling the
workers didn't fix it.
BUG=angleproject:3087
Change-Id: I317b140e66b04102059486381ef70e16600fad12
Reviewed-on: https://chromium-review.googlesource.com/c/1419007
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
a100d8f4
|
2018-12-29T16:39:55
|
|
ParallelCompile: add GL backend support
For GL backend, at first each worker thread must have a naitve context
for its own to work in. These worker contexts have to be shared from
the main context, so that all shader and program objects are seen in
any context. This extends backend displays to create and destroy the
worker contexts. RendererGL manages and allocates them to the worker
threads. ShaderImpl has a new compile method added to do the actual
glCompile work in worker thread. The ProgramGL's link method is broken
down by introducing the LinkEventGL class.
Bug: chromium:849576
Change-Id: Idc2c51b4b6c978781ae77810e62c480acc67ebb5
Reviewed-on: https://chromium-review.googlesource.com/c/1373015
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ba319ba3
|
2018-12-29T10:29:33
|
|
Re-land "Load entry points dynamically in tests and samples."
Fixes the Android/ChromeOS/Fuchsia builds by using consistent EGL
headers.
This CL adds a dynamic loader generator based on XML files. It also
refactors the entry point generation script to move the XML parsing
into a helper class.
Additionally this includes a new GLES 1.0 base header. The new
header allows for function pointer types and hiding prototypes.
All tests and samples now load ANGLE dynamically. In the future this
will be extended to load entry points from the driver directly when
possible. This will allow us to perform more accurate A/B testing.
The new build configuration leads to some tests having more warnings
applied. The CL includes fixes for the new warnings.
Bug: angleproject:2995
Change-Id: I5a8772f41a0f89570b3736b785f44b7de1539b57
Reviewed-on: https://chromium-review.googlesource.com/c/1392382
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9f088621
|
2018-12-29T20:46:15
|
|
Revert "Load entry points dynamically in tests and samples."
This reverts commit 03923558a7103827ffec6a4d2a1453ed91f01c6f.
Reason for revert: fails compilation on Android, ChromeOS and Fuchsia during roll https://chromium-review.googlesource.com/c/chromium/src/+/1392624
Original change's description:
> Load entry points dynamically in tests and samples.
>
> This CL adds a dynamic loader generator based on XML files. It also
> refactors the entry point generation script to move the XML parsing
> into a helper class.
>
> Additionally this includes a new GLES 1.0 base header. The new
> header allows for function pointer types and hiding prototypes.
>
> All tests and samples now load ANGLE dynamically. In the future this
> will be extended to load entry points from the driver directly when
> possible. This will allow us to perform more accurate A/B testing.
>
> The new build configuration leads to some tests having more warnings
> applied. The CL includes fixes for the new warnings.
>
> Bug: angleproject:2995
> Change-Id: I6726d4163f7a6e54d2482f094c0a952f59702a05
> Reviewed-on: https://chromium-review.googlesource.com/c/1359516
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I902bec2d733c2b879be29c02ab52a0b7d4eaa077
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2995
Reviewed-on: https://chromium-review.googlesource.com/c/1392381
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
03923558
|
2018-12-29T10:29:33
|
|
Load entry points dynamically in tests and samples.
This CL adds a dynamic loader generator based on XML files. It also
refactors the entry point generation script to move the XML parsing
into a helper class.
Additionally this includes a new GLES 1.0 base header. The new
header allows for function pointer types and hiding prototypes.
All tests and samples now load ANGLE dynamically. In the future this
will be extended to load entry points from the driver directly when
possible. This will allow us to perform more accurate A/B testing.
The new build configuration leads to some tests having more warnings
applied. The CL includes fixes for the new warnings.
Bug: angleproject:2995
Change-Id: I6726d4163f7a6e54d2482f094c0a952f59702a05
Reviewed-on: https://chromium-review.googlesource.com/c/1359516
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2b35654d
|
2018-12-20T12:43:37
|
|
compiler: Fix const non-square matrix component mult.
It seems like there weren't any dEQP tests for constant folding of
nonsquare matrices component-wise multiplication. There were a couple
bugs in our implementation which could lead to undefined behaviour.
Fixes the code and cleans up a few style issues.
Also includes a regression test.
Bug: chromium:912505
Bug: chromium:912508
Change-Id: I7fb85d1404a32950fa9fe4c3bbba9edc9f38ddd1
Reviewed-on: https://chromium-review.googlesource.com/c/1387065
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
35cd7332
|
2018-12-02T12:03:33
|
|
Refactor test shader style.
This change enforces a lot more consistency. We pass const char * to
the Compile functions instead of std::string. Also fixes the
indentation of C++11 block comments to be more consistent.
Bug: angleproject:2995
Change-Id: Id6e5ea94055d8cbd420df4ea2e81b2d96cb5ce78
Reviewed-on: https://chromium-review.googlesource.com/c/1357103
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b980c563
|
2018-11-27T11:34:27
|
|
Reformat all cpp and h files.
This applies git cl format --full to all ANGLE sources.
Bug: angleproject:2986
Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f
Reviewed-on: https://chromium-review.googlesource.com/c/1351367
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0864a7ac
|
2018-11-07T15:50:15
|
|
Vulkan: Enable end2end tests for ES2_VULKAN everywhere
Used a script to find test files that have more ES2_OPENGL() invocations
than ES2_VULKAN(), and added ES2_VULKAN() to those. There may be false
negatives.
Bug: angleproject:1578
Change-Id: I938eb3571c909879e9276b355a9f1d324880f99a
Reviewed-on: https://chromium-review.googlesource.com/c/1324350
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c3bef3e7
|
2018-10-03T07:35:09
|
|
Allow 'defined' in define in non-WebGL.
This is needed to pass dEQP conformance. Several of the harder dEQP
tests around this behaviour are excluded from the mustpass list. This
is presumably because the behaviours weren't implemented portably.
Nevertheless we need to support conformant behaviour for GLES 2.0
Contexts for the most simple uses.
This also leaves the error behaviour intact for WebGL specs.
Bug: angleproject:1335
Change-Id: Ia80b4f71475efa928488ee6c2ee35c566d4602d4
Reviewed-on: https://chromium-review.googlesource.com/c/1242013
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
79207e6e
|
2018-09-28T16:09:26
|
|
Skip tests failing on Pixel XL
RobustBufferAccessBehaviorTest.NoBufferData/ES2_OPENGLES
RobustBufferAccessBehaviorTest.NoBufferData/ES3_OPENGLES
RobustBufferAccessBehaviorTest.NoBufferData/ES3_1_OPENGLES
ClearTest.ChangeFramebufferAttachmentFromRGBAtoRGB/ES2_OPENGLES
ClearTest.ChangeFramebufferAttachmentFromRGBAtoRGB/ES3_OPENGLES
WebGLGLSLTest.InitUninitializedGlobals/ES2_OPENGLES
Bug: angleproject:2861,angleproject:2689,angleproject:2862
Change-Id: I142594c952b6e7de24057784794b5725f3486212
Reviewed-on: https://chromium-review.googlesource.com/1252701
Reviewed-by: Yuly Novikov <ynovikov@google.com>
Commit-Queue: Yuly Novikov <ynovikov@google.com>
|
|
8e9d2340
|
2018-09-10T13:29:37
|
|
Vulkan: Fix FragCoord scaling when a viewport is applied.
We were using the pivot based on the viewport dimensions which is
only valid if the viewport is the size of the framebuffer. The more
correct pivot size is actually based on the Framebuffer height.
Also updates the driver uniforms block to be a bit simpler.
Bug: angleproject:2598
Change-Id: I1cb500cded7141d10e8db6862b6ed29758cc7fb4
Reviewed-on: https://chromium-review.googlesource.com/1214205
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
fb19e084
|
2018-09-06T15:39:09
|
|
Vulkan: Correct gl_FragCoord with default FBO.
The viewport flipping we use would give incorrect values. Correct
them using the same logic we do for gl_PointCoord.
Also corrects the viewport scale driver uniform. It was not being
updated after the draw framebuffer setting was adjusted.
Also corrects the naming of the replaced builtin variables so it
can't possibly conflict with a user variable.
This was affecting the OpenGL line raster emulation.
Bug: angleproject:2598
Change-Id: I843b5ac7b02160a5ec81a6f8ed2d937b0937198b
Reviewed-on: https://chromium-review.googlesource.com/1208515
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
fda46aa5
|
2018-08-31T17:19:15
|
|
Vulkan: Enable GLSLTest.ScopedStructsOrderBug.
This was fixed upstream in glslang.
Bug: None
Change-Id: I21751dba101fe39f94c91de6e73853ee9ad8c8f2
Reviewed-on: https://chromium-review.googlesource.com/1200366
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
76301e09
|
2018-07-19T11:48:30
|
|
Vulkan: Fix compound nested sampler struct params.
Replace the struct type of binary and symbol parameter nodes with a
lookup of the struct type in the tree.
Bug: angleproject:2494
Change-Id: I1e892e0f1b1f97302d1cdce1035f51c01d0efd9e
Reviewed-on: https://chromium-review.googlesource.com/1135695
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
06235df9
|
2018-07-20T14:26:07
|
|
Make HLSL shaders use only one main function
Instead of having separate main() and gl_main() functions in HLSL
shaders, add initializing outputs and inputs directly to the main
function that's in the AST.
This works around some HLSL bugs and should not introduce name
conflicts inside main() since all the user-defined variables are
prefixed.
BUG=angleproject:2325
TEST=angle_end2end_tests
Change-Id: I5b000c96aac8f321cefe50b6a893008498eac0d5
Reviewed-on: https://chromium-review.googlesource.com/1146647
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e835609c
|
2018-07-12T12:36:47
|
|
Vulkan: Implement gl_DepthRange support using driver uniform
Bug: angleproject:2592
Change-Id: Iec3d111df4d8e5cef205c8afb177f0514ffac5c8
Reviewed-on: https://chromium-review.googlesource.com/1135448
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
84c11c53
|
2018-07-11T10:12:39
|
|
Vulkan: Implement sampler structs as function args.
Bug: angleproject:2494
Change-Id: Ia8e374846427b7140ab2565ae5b9b18409a76d96
Reviewed-on: https://chromium-review.googlesource.com/1117323
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
cdf50444
|
2018-06-26T15:05:42
|
|
Add test for sampler struct rewriting indexing.
The concern originally was that rewriting sampler structs could lead to
incorrect behaviour for indexing. The test attempts to cover this but
doesn't repro. It possibly is not an issue.
Bug: angleproject:2494
Change-Id: Ibc34b08b5cee3b6ff82d150a64f1768aae64396f
Reviewed-on: https://chromium-review.googlesource.com/1117321
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e9c0b262
|
2018-06-22T09:50:04
|
|
Vulkan: Add drawQuad to a sampler test
Bug: angleproject:2675
Change-Id: I3774ca4602e9eea7c191e99a95939043ac0d8777
Reviewed-on: https://chromium-review.googlesource.com/1111901
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4da0d315
|
2018-06-20T11:46:38
|
|
Vulkan: Handle embedded struct uniforms.
Also known as nameless structs. Uniform structs without a struct name
would not be parsed correctly. This fixes the bug by adding a tree
transformation. The transformation gives an internally scoped name to
the embedded struct.
Bug: angleproject:2665
Change-Id: I43e4dad7d9ad64a40e382066bb136e4f8f719797
Reviewed-on: https://chromium-review.googlesource.com/1101566
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3237f759
|
2018-06-20T14:45:43
|
|
Vulkan: Fix issue when a sampler2D was not used in FS or VS
Bug: angleproject:2675
Change-Id: Idbf2590a763fd7b81d2bcc5850180a1bb931360e
Reviewed-on: https://chromium-review.googlesource.com/1108490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
50cf2be0
|
2018-06-15T09:46:57
|
|
Reformat some style in touched files.
This was triggered by running the code generation script.
Bug: angleproject:2665
Change-Id: Id639c78eb618182ee1859678590cf0f559b572c2
Reviewed-on: https://chromium-review.googlesource.com/1101564
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4cc753e0
|
2018-06-13T13:25:33
|
|
Vulkan: Implement sampler arrays.
Bug: angleproject:2462
Change-Id: If9c9cb69624d6f9f0895f6883e1eed19a27e6cb4
Reviewed-on: https://chromium-review.googlesource.com/1089809
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
983460e6
|
2018-05-02T17:57:39
|
|
Rewrite repeated assignments to swizzled vectors on NVIDIA
This works around the most common instances of a bug that reproduces
on some NVIDIA OpenGL drivers prior to version 397.31.
BUG=chromium:798117
TEST=angle_end2end_tests
Change-Id: Iafc6a9a64e56fa98b42117149fe6867040e932e5
Reviewed-on: https://chromium-review.googlesource.com/1042190
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7a8fe156
|
2018-04-28T12:59:58
|
|
ES31: Add link validation on MAX_COMBINED_SHADER_OUTPUT_RESOURCES
This patch adds the link validation on the maximum combined shader
output resources required in OpenGL ES 3.1 SPEC.
OpenGL ES 3.1 SPEC has restrictions on the sum of the number of all
active images, shader storage blocks and fragment shader outputs. A
link error will be generated if this sum exceeds the implementation-
dependent value of MAX_COMBINED_SHADER_OUTPUT_RESOURCES.
In order not to affect the existing image tests, this patch also
sets a temporary value for maxCombinedShaderOutputResources on D3D11
back-ends. We will set more accurate values for all the UAV related
resource limits in the next patch.
BUG=angleproject:2345
TEST=dEQP-GLES31.functional.state_query.integer.max_combined_shader_output_resources_*
Change-Id: Ib83a19ef0ae0b9af3422b5c970c7c07d96b2359d
Reviewed-on: https://chromium-review.googlesource.com/1039155
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
03bb2231
|
2018-05-03T15:21:20
|
|
Add test for D3D11 nested floor() bug
The test fails on D3D11, which seems to ignore floor() calls if
they're nested in a particular way with magic multipliers inside.
BUG=chromium:838885
TEST=angle_end2end_tests
Change-Id: I2c8749defa923553bfee69149da15f8e4ddf5096
Reviewed-on: https://chromium-review.googlesource.com/1041959
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
40786bdf
|
2018-04-18T13:58:57
|
|
ES31: Add validation on geometry shader interface blocks matching
This patch adds the validation on checking if there is any mismatch
among geometry shader interface blocks and the ones defined in other
graphics shaders in the same program.
BUG=angleproject:1941
TEST=angle_end2end_tests
Change-Id: I1f65e3c49390135bbe9f9323098daf28c9b838c7
Reviewed-on: https://chromium-review.googlesource.com/1016175
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3ec304db
|
2018-04-18T14:14:25
|
|
Vulkan: Support struct initializers in shaders
Also adds a new test in GLSLTest to validate the initialization of
a struct on the same line as its declaration.
Bug: angleproject:2459
Change-Id: Ib37e20378f8ec76541db26392663bcba03390756
Reviewed-on: https://chromium-review.googlesource.com/1017340
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
fe22e23a
|
2018-04-16T14:15:11
|
|
Vulkan: Use SH_INITIALIZE_UNINITIALIZED_LOCALS in ShaderVk
Re-enable the flaky test InitUninitializedStructContainingArrays that
was failing because of this option missing.
Bug: angleproject:2460
Change-Id: Icf794a5fdca48619756d575faa4cb04f0323712e
Reviewed-on: https://chromium-review.googlesource.com/1014271
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f1d3c20c
|
2018-04-16T07:44:27
|
|
Vulkan: Fix the issue with unused attributes / varyings
When an attribute, a uniform or a varying isn't used, we now remove
their layout and in/out qualifiers so that the shader can still refer
to these var names.
Bug: angleproject:2456
Change-Id: I5f1241d91bd46f663750adfab2562ef87ce69ae5
Reviewed-on: https://chromium-review.googlesource.com/1014009
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ef2fda72
|
2018-04-18T07:44:14
|
|
Vulkan: Fix issue in GlslWrapper and maxVaryingVectors calculation (2nd try)
The layout needed to also have a component qualifier so that the
registerColumn wouldn't be ignored.
Bug: angleproject:2460
Bug: angleproject:2483
Change-Id: I3adcd6208aca4afebd45311ded93d00087b60a99
Reviewed-on: https://chromium-review.googlesource.com/1016680
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5804dc8e
|
2018-04-13T14:11:46
|
|
Refactor GL tests to use a shader library
Instead of having the same simple shaders repeated over and over in
the test code, reuse a single shader library.
BUG=angleproject:2474
TEST=angle_end2end_tests
Change-Id: I13f8ca8c0125e6d30f1761639bf8c3f69e0e77d2
Reviewed-on: https://chromium-review.googlesource.com/1012078
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
c97e900c
|
2018-04-17T19:11:39
|
|
Revert "Vulkan: Fix issue in GlslWrapper and maxVaryingVectors calculation"
This reverts commit 1d882aaa0720b0dee0e8fc807d93d0e3f3e6bc67.
Sorry about this Luc. I think there was a missing suppression. You can
even see a flaky failure in the CQ when you landed this - it seems the
flakiness of the failure let it through. This is blocking another fix
from landing which fixes the fact the CQ is on fire. The revert button
is also missing from Gerrit which means this is a manual revert.
Failures:
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win_angle_rel_ng/361
Original CL Message:
The layout needed to also have a component qualifier so that the
registerColumn wouldn't be ignored.
Bug: angleproject:2460
Bug: angleproject:2483
No-Try: True
Change-Id: I84c38497fbda43d9defbc6d5d3ff0f9c133e6e46
Reviewed-on: https://chromium-review.googlesource.com/1015323
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1d882aaa
|
2018-04-13T10:12:05
|
|
Vulkan: Fix issue in GlslWrapper and maxVaryingVectors calculation
The layout needed to also have a component qualifier so that the
registerColumn wouldn't be ignored.
Bug: angleproject:2460
Bug: angleproject:2483
Change-Id: Ib5b15c4dc0ce42633f4994648f1eb22d8b63336a
Reviewed-on: https://chromium-review.googlesource.com/1011680
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
bfb5df15
|
2018-04-12T12:45:26
|
|
Vulkan: Suppress flaky test in GLSLTest on Windows
Bug: angleproject:2460
Change-Id: I4dba274e29a147c3066848a729f37297951a7f77
Reviewed-on: https://chromium-review.googlesource.com/1010405
Commit-Queue: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6d5af92b
|
2018-04-09T14:37:15
|
|
Vulkan: Enable GLSLTest tests for Vulkan
- Suppress tests that don't pass yet.
Bug: angleproject:2460
Change-Id: I7c95ae9504a8d5e112fd9d1bb8536cc9bbf16e7b
Reviewed-on: https://chromium-review.googlesource.com/1003099
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
d91c3793
|
2018-04-06T09:36:36
|
|
Vulkan: Implement support for structs in uniforms
- Also enables 174 additional dEQP tests.
Bug: angleproject:2446
Change-Id: I07cce46815d2f7a80fd48e7fd9407f7d528b397f
Reviewed-on: https://chromium-review.googlesource.com/998406
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
94bbed1e
|
2018-03-20T14:44:53
|
|
Collect static use information during parsing
We now collect metadata for variables in the symbol table. The
metadata is stored in a map using the variable unique id as a key, so
we can store the variables themselves as constexpr while still having
dynamic metadata.
For now we collect whether a variable is statically read or written.
This can be used to more accurately determine whether a variable is
statically used, but can also enable more optimizations in the future,
such as pruning variables that are never read or folding variables
that are never written after initialization. The collection is done
during parsing, so that nothing is pruned from the AST before the
static use is recorded.
Static writes are flagged in ParseContext::checkCanBeLValue, as that
function is already called for all variables that are written.
Static reads are flagged whenever there's an operation that requires
a variable to be read. This includes:
* Unary and binary math ops
* Comma ops
* Ternary ops
* Assignments
* Returning the variable
* Passing the variable as an in or inout argument to a function
* Using the variable as a constructor argument
* Using the variable as an if statement condition
* Using the variable as a loop condition or expression
* Using the variable as an index
* Using the variable as a switch statement init expression
In case there are statements that simply refer to a variable without
doing operations on it, the variable is being treated as statically
read. Examples of such statements:
my_var;
my_arr[2];
These are a bit of a corner case, but it makes sense to treat them as
static use for validation purposes.
Collecting correct static use information costs us a bit of compiler
performance, but the regression is on the order of just a few percent
in the compiler perf tests.
BUG=angleproject:2262
TEST=angle_unittests, angle_end2end_tests
Change-Id: Ib0d7add7e4a7d11bffeb2a4861eeea982c562234
Reviewed-on: https://chromium-review.googlesource.com/977964
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
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>
|
|
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>
|
|
ed04619a
|
2018-02-08T14:57:14
|
|
Fix typo in bug link.
BUG=angleproject:2205
Change-Id: I7ff1c3d0bb380c73c07dad0a30a4a4a19c17e397
Reviewed-on: https://chromium-review.googlesource.com/909577
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
06b95582
|
2018-02-08T13:48:44
|
|
Re-supress VerifyMax*UniformVectors on Ozone Intel.
BUG=angleproject:2205
Change-Id: Icff414dc7a521205fd3e39af4652b0fdef1cb900
Reviewed-on: https://chromium-review.googlesource.com/909291
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8e5ba8bb
|
2018-02-05T17:52:27
|
|
Clean up end2end tests for Intel Linux platform.
Removed tests can pass on Intel Linux Desktop (Intel KabyLake, Ubuntu 17.04)
with system default mesa and latest upstream mesa.
BUG=angleproject:2205
BUG=chromium:680631
Change-Id: Ie3f0f34b9708a7dab81f66d9ec83a469658deee7
Reviewed-on: https://chromium-review.googlesource.com/901382
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
61d5325e
|
2018-01-31T14:49:24
|
|
D3D9: Improve varying packing failure mode.
D3D9 has a special limitation on varying packing, where each
variable takes up a full register width, and cannot share space
with other packed varyings.
A bug was counting registers incorrectly on D3D9. Fix this by
introducing a new limitation exposed to the ANGLE front-end via
the gl::Limitations structure. Now varying packing will fail
correctly in the ANGLE linking front-end with a more descriptive
error message, as such:
"Could not pack varying blah"
"Note: Additional non-conformant packing restrictions are enforced on D3D9."
Also change the packing so that input built-in variables are
counted towards varying limits (e.g. gl_PointSize), except for
gl_Position. On D3D9 we don't pack gl_PointSize, since it is
used in a special extra PSIZE register.
Also update some tests to be more robust.
Bug: chromium:804799
Change-Id: I9027266a8b66a28626f038f259bff42ebf09dcd2
Reviewed-on: https://chromium-review.googlesource.com/889898
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
881b7bfa
|
2017-12-25T11:18:37
|
|
ES31: Refactor link mismatch error log
This patch intends to refactor the structure of logging link mismatch
errors to meet the new GLES 3.1 program link requirements and support
linking program with geometry shader.
This patch is mainly focusing on the following 4 issues:
1. There are totally 14 places that log the link mismatch errors
in almost same format.
2. A temporary string is created (STRUCT_NAME.FIELD_NAME) before
checking a field of a block, which is of no use if link succeeds.
3. LinkValidateVariablesBase needs to know "shaderTypes" if we support
geometry shader based on current structure. Since uniforms are
checked in the range of the whole program, it is unnecessary to
know in which shader a uniform is defined if link succeeds.
4. GLES 3.1 regards varyings with same location but different names
as matched, so it isn't enough to log errors only by one name.
This patch can solve all these issues by the following 3 changes:
1. Replace "infoLog" and "variableNames" by "mismatchedFieldName" (the
complete field name if the mismatch occurs on a field of a struct
or block).
2. Use enum LinkMismatchError as the return value of all linkValidate*
functions to reflect the detail of the link mismatch error.
3. Log all the link mismatch errors by InfoLog::logLinkMismatch where
we can get shader types instead of passing them into linkValidate*
functions.
BUG=angleproject:1941, angleproject:2144
TEST=angle_end2end_tests
Change-Id: I3ed876d61f812cc7a45a6a3c5fec0b4a88b9cc2c
Reviewed-on: https://chromium-review.googlesource.com/844215
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
4e36db8c
|
2018-01-19T17:35:33
|
|
Skip FindMSBAndFindLSBCornerCases on Android OpenGLES
Due to a bug in Adreno N5X Oreo driver
BUG=angleproject:2304
Change-Id: I209d9b227557571f45a93aa68a003378e12402a1
Reviewed-on: https://chromium-review.googlesource.com/876995
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
02f15239
|
2017-12-27T10:10:28
|
|
Clear error logs when starting a new link process
This patch intends to fix a bug in logging link errors.
OpenGL ES requires glGetProgramInfoLog return a string
that contains information about last link or validation
attempt on a program object (GLES 2.0 Chapter 6.1.8,
GLES 3.0 Chapter 6.1.12). So all the link error logs
should be cleared when a new link process is begun.
This patch also removes several redundant allocations
of mLazyStream in ProgramD3D::compileProgramExecutables.
Calling "<<" on InfoLog objects will initialize its
member mLazyStream from heap, so we will skip using "<<"
if there is actually nothing to output.
BUG=angleproject:2295
TEST=angle_end2end_tests
Change-Id: Ib81fffd3d05919a8ebccd9145ff780548ca86a70
Reviewed-on: https://chromium-review.googlesource.com/848324
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b8cb939f
|
2017-12-20T14:23:19
|
|
Fix tracking variables in folded ternary operators
The result of folding a ternary operator may be a TIntermSymbol node
where the qualifier doesn't match the qualifier of the variable that
the node is referring to.
Get the qualifier from the variable instead of directly from
TIntermSymbol when collecting variables in CollectVariables or when
tracking referenced variables in OutputHLSL.
BUG=angleproject:2288
TEST=angle_unittests, angle_end2end_tests
Change-Id: If294a7fe9dca50f2ebcea3feff887e72a521d395
Reviewed-on: https://chromium-review.googlesource.com/836893
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
629a6449
|
2017-12-11T10:55:43
|
|
Fix HLSL integer pow workaround
The exponent should be rounded prior to casting it to an integer.
Also if the exponent has a significant fractional part the expression
should not be turned into a multiplication. The previous code failed
to check this correctly if the exponent's fractional part was greater
than 0.5.
The test case is expanded to cover the previously failing cases.
BUG=chromium:793115
TEST=angle_end2end_tests
Change-Id: Ic72cd6ddc7f3d2495f7c87a3e3cfac5791445e72
Reviewed-on: https://chromium-review.googlesource.com/817299
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
7caa80e7
|
2017-11-14T15:03:14
|
|
Edit tests to reference temporary variables
The shader translator is intended to prune unreferenced variables in
the future. To maintain test coverage when this is done, most tests
that used to have unreferenced GLSL locals and globals are edited to
use built-ins or reference the necessary variables instead.
BUG=angleproject:2166
TEST=angle_unittests, angle_end2end_tests
Change-Id: I3964e7a80d52fc04a95f57e73da6095e433095e8
Reviewed-on: https://chromium-review.googlesource.com/768740
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
703671e9
|
2017-11-08T17:47:18
|
|
Unify extension behavior checks
Some supportsExtension and isExtensionEnabled checks are now turned
into checkCanUseExtension checks. Using checkCanUseExtension is
preferable so that warnings are generated correctly when an extension
is used and a warn directive is present.
isExtensionEnabled is still used in some places where an error message
about the extension could be confusing, particularly when a core spec
version adds support for something that is also present in an
extension.
Also make it possible to disable ARB_texture_rectangle extension using
an extension directive. ARB_texture_rectangle extension functionality
is enabled by default in GLSL when the extension is supported.
BUG=angleproject:2238
TEST=angle_unittests
Change-Id: I7455293412ff469f54bc7da79df146e7bc127379
Reviewed-on: https://chromium-review.googlesource.com/760737
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
661fc487
|
2017-10-16T12:17:05
|
|
Work around NVIDIA GLSL vector-scalar op bug
This adds a new AST transform VectorizeVectorScalarArithmetic. The AST
transform works around incorrect handling of certain types of GLSL
arithmetic operations by NVIDIA's GL driver. It works around only the
most common cases where the bug reproduces, since detecting all the
cases would take more sophisticated analysis of the code than what
is currently easily implementable in ANGLE.
When a float add operator has both vector and scalar operands, the AST
transform turns the scalar operand into a vector operand. Example:
vec4 f;
f += 1.0;
gets turned into:
vec4 f;
f += vec4(1.0);
When a vector constructor contains a binary scalar float
multiplication or division operation as its only argument, the AST
transform turns both operands of the binary operation into vector
operands. Example:
float f, g;
vec4(f * g);
gets turned into:
float f, g;
vec4(vec4(f) * vec4(g));
Another example with compound assignment:
float f, g;
vec4(f *= g);
gets turned into:
float f, g;
vec4 s0 = vec4(f);
(s0 *= g, f = s0.x), s0;
This latter transformation only works in case the compound assignment
left hand expression doesn't have side effects.
BUG=chromium:772651
TEST=angle_end2end_tests
Change-Id: I84ec04287793c56a94845a725785439565debdaf
Reviewed-on: https://chromium-review.googlesource.com/721321
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bd3cd506
|
2017-11-03T15:48:52
|
|
Clean up HLSL constructor output
Split generating HLSL struct constructors from generating built-in
type constructors, as these didn't have much in common. Struct
constructors are now only generated when they are needed, as opposed
to before, when they were generated on any use of a struct.
This changes built-in constructor naming to include "_ctor" and gets
rid of having special built-in type names just for constructors.
This will make it easier to do changes to constructor output, for
example to add constructors for structs in std140 layout. This might
be needed to implement SSBOs efficiently.
This includes one bug fix for writing out struct declarations for
varyings.
Also improves const-correctness of accessing structs through TType
in general.
BUG=angleproject:2218
TEST=angle_unittests, angle_end2end_tests
Change-Id: If865fb56f86486b9c4a2c31e016ea16427f4a5fa
Reviewed-on: https://chromium-review.googlesource.com/753883
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
c1f14fbe
|
2017-10-28T19:17:23
|
|
Remove empty switch statements from translated shaders
The native HLSL compiler does not accept switch statements with an
empty statement list. The simplest way to accommodate this is to
simply remove them from the AST after parsing and some initial
pruning.
This is done by the new RemoveEmptySwitchStatements traverser. It
preserves init statements of switch statements in case they have side
effects. So for example
switch(++i) {}
gets translated to
++i;
BUG=angleproject:2206
TEST=angle_end2end_tests
Change-Id: I550a3c9b010a3566016bdfd93344ac30fd860604
Reviewed-on: https://chromium-review.googlesource.com/742922
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f6d242ed
|
2017-10-12T17:21:06
|
|
Wrap switch statements in blocks in HLSL
If variables are declared inside a GLSL switch statement, they are
scoped until the end of the switch statement. This is not compatible
with HLSL rules, where the scoping is until the end of the case. To
work around this, wrap switch statements in a block that declares
the variables in HLSL.
This is done after most other transformations done to the AST are
complete, since some of the other transformations may introduce
temporary variables.
BUG=angleproject:2179
TEST=angle_end2end_tests
Change-Id: Id0bb89affe103177fd3d6a6b2f3619b5e1ada0a6
Reviewed-on: https://chromium-review.googlesource.com/716381
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4bd730c8
|
2017-10-10T14:14:19
|
|
Recognize more non-fallthrough cases in switch/case
RemoveSwitchFallThrough now treats cases where break; or return; is
nested inside a block as non-fallthrough to avoid unnecessary
duplication of code. For example, the case 1 below would previously
get treated as fall-through:
switch(foo)
{
case 1:
{
break;
}
default:
break;
}
Now RemoveSwitchFallThrough doesn't do anything to this code.
BUG=chromium:772695
TEST=angle_end2end_tests
Change-Id: Iafab6d8b05c63bcdb5f54834dbc1f41192c31dd4
Reviewed-on: https://chromium-review.googlesource.com/709197
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|