|
63ba357c
|
2017-12-06T10:25:40
|
|
Enable depth buffer to workaround driver bug on Intel windows
Rendering with depth buffer disabled and stencil buffer enabled
leads to memory leak if we set viewport a large size on Intel
windows platforms. So we enable depth buffer if stencil buffer
is enabled to workaround this issue.
TEST=gl_test.exe --gtest_filter=GLClearFramebufferTestWithParam/GLClearFramebufferTest.ClearDepthStencil/0
TEST=conformance/rendering/rendering-stencil-large-viewport.html
TEST=RenderStencilBufferTest.DrawWithLargeViewport/ES3_D3D11
BUG=782317
Change-Id: Idb185db296f13e3fa897534514e198651a56439f
Reviewed-on: https://chromium-review.googlesource.com/809574
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4728bdc8
|
2017-12-20T17:51:08
|
|
Unify looking for symbols with a specific name in the AST
Keep only one traverser for looking up symbol nodes by name instead
of having two largely identical ones.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I36e906258180e22b7b1353cab79d90266d99fa0e
Reviewed-on: https://chromium-review.googlesource.com/836895
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
492b5f51
|
2017-12-13T09:39:27
|
|
ES31: Support struct arrays as Geometry Shader inputs
This patch adds the support of struct arrays as valid
geometry shader user-defined inputs.
Struct arrays are accepted as geometry shader inputs to
match the vertex shader outputs that are also declared
as structs.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: I0b5d545b10e9dda576a1c96d7c93ec2450611e9e
Reviewed-on: https://chromium-review.googlesource.com/823622
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bed35d76
|
2017-12-20T16:36:26
|
|
Don't query names of empty symbols
This makes it possible to return a reference from TSymbol::name()
instead of a pointer. This is safer since it completely avoids the
possibility of a nullptr dereference. An assert is making sure that
the function is not being called for empty symbols.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I44279f65989dbb828322843fc0216ba84d91dedf
Reviewed-on: https://chromium-review.googlesource.com/836894
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
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>
|
|
f095799b
|
2017-12-22T11:10:04
|
|
Fix accessing the name of a nested struct definition
When generating an error message about the struct nesting limit, the
code should make sure that the struct definitions are not nested.
While nested struct definitions by themselves are also an error,
they're not a syntax error so parsing will continue after encountering
them.
This fixes a regression from commit: Don't allocate name strings for
empty symbols.
BUG=chromium:797156
TEST=angle_unittests
Change-Id: I4149fbe874c0e7ec90e690aec078ccaf7313eab0
Reviewed-on: https://chromium-review.googlesource.com/842643
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b6af22b5
|
2017-12-15T14:05:44
|
|
Store TVariable* in TIntermSymbol instead of storing id
This is an intermediate step to only storing a TVariable * in
TIntermSymbol instead of copying the name.
This makes it possible to get a constant value out of a TIntermSymbol
without doing a symbol table lookup.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ibff588241a4ad4ac330063296273288b20a072c9
Reviewed-on: https://chromium-review.googlesource.com/829142
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
62fcf62a
|
2017-11-30T16:16:12
|
|
ES31: Add DispatchComputeIndirect suport for OpenGL backend
BUG=angleproject:2270
TEST=dEQP-GLES31.functional.compute.indirect_dispatch.*
Change-Id: Id062a80188b2a37f28833aaae8e6d31bac382276
Reviewed-on: https://chromium-review.googlesource.com/802763
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c6faa974
|
2017-12-20T19:50:10
|
|
Skip UniformBufferTest.SimpleBindingChange on Mac NVIDIA GL
Unskip UniformBufferTest.SimpleBufferChange,
which was skipped by mistake instead of this test in
https://chromium-review.googlesource.com/833287
BUG=angleproject:2287
Change-Id: Id79821b26ad38ed07d1193b717ad222df3bb58fe
Reviewed-on: https://chromium-review.googlesource.com/838262
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
26143fdd
|
2017-11-01T18:19:05
|
|
ES31: Support bindImageTexture on Texture2D for compute shaders on D3D
BUG=angleproject:1987
TEST=angle_end2end_tests
Change-Id: I3b0afb441a41dbd7f204b1d1bba7884c8d203ce1
Reviewed-on: https://chromium-review.googlesource.com/749004
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
10d41397
|
2017-12-18T18:13:36
|
|
Fix addDummyTextureNoRenderTarget workaround memory leak
Add dummy attachment in FramebufferD3D as a private member and release
the dummy attchment in destory of FramebufferD3D.
BUG=angleproject:2282
TEST=FramebufferTest_ES31.RenderingLimitToDefaultFBOSizeWithNoAttachments/ES3_1_D3D11
TEST=dEQP-GLES31.functional.fbo.no_attachments.*
Change-Id: I3a17282ef132185fbc25f4076f624e53661d4b20
Reviewed-on: https://chromium-review.googlesource.com/831847
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
89c422ad
|
2017-11-29T18:24:20
|
|
ES31: Support memoryBarrier and memoryBarrierRegion APIs
BUG=angleproject:2280
TEST=dEQP-GLES31.functional.compute.basic.image_barrier_single
dEQP-GLES31.functional.compute.basic.image_barrier_multiple
dEQP-GLES31.functional.compute.basic.ssbo_cmd_barrier_single
dEQP-GLES31.functional.compute.basic.ssbo_cmd_barrier_multiple
dEQP-GLES31.functional.synchronization.*
Change-Id: If14debab21247dc4b446e86d1642fbc9376b6dd7
Reviewed-on: https://chromium-review.googlesource.com/798803
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
37385e11
|
2017-12-19T11:50:30
|
|
Emulate tanh on HLSL
This ensures mathematically correct results on large inputs.
BUG=chromium:795269
BUG=angleproject:1093
TEST=dEQP-GLES3.functional.shaders.builtin_functions.precision.tanh*
Change-Id: Id5ba05a3284e51a34f196b419abef0f4a41551e0
Reviewed-on: https://chromium-review.googlesource.com/832463
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
ae4dbf32
|
2017-12-08T20:49:00
|
|
Don't allocate name strings for empty symbols
This removes unnecessary memory allocations.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ide575ea19ab2f8e9fc93092490f1352efa6024a3
Reviewed-on: https://chromium-review.googlesource.com/817415
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f2afccca
|
2017-12-18T20:13:15
|
|
Skip UniformBufferTest.SimpleBufferChange on Mac NVIDIA GL
BUG=angleproject:2287
Change-Id: I1a5895a9b5c173b221da6ac511c05d8b7d646a5d
Reviewed-on: https://chromium-review.googlesource.com/833287
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5b1180df
|
2017-10-10T20:26:52
|
|
Add gyp deprecation warning.
gyp_angle now prints a warning every time it is run.
All targets print the same warning as one of their build steps.
The DEPS change updates gypi_to_gn so it doesn't choke on
files with 'target_defaults' sections.
BUG=angleproject:1569
Change-Id: Ibdf277fcc14cf4ebc7b7db78270210752cd8ef9d
Reviewed-on: https://chromium-review.googlesource.com/711155
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
0e74e059
|
2017-12-17T22:17:17
|
|
Fix gcc builds.
Remove unused function and fix dangling else's that gcc complains about.
In the gyp build specify -std=c++14.
BUG=none
Change-Id: I552942ccc574104a5424a9add00e6e72d6efa28a
Reviewed-on: https://chromium-review.googlesource.com/830750
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a2d98141
|
2017-12-15T14:18:55
|
|
Fix allowing non-constant ternary global initializer
Check the qualifier of a node resulting from the folding of a ternary
node correctly. The folded node might even be a TIntermConstantUnion
with a non-constant qualifier.
BUG=angleproject:2285
TEST=angle_unittests
Change-Id: I74516e44ce9d78bc54093a5b58d14cf33a57e6e5
Reviewed-on: https://chromium-review.googlesource.com/829138
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
9fc87331
|
2017-12-13T15:46:52
|
|
Fix Bug in Intel Workaround
Fixes an incorrect assert that is hit when trying to find a program
output when none are present. It is valid to not have an output, so we
should not check for an output when there are none.
Bug:angleproject:2283
Change-Id: Ia640482870c6ee589a933b989272177760237e3b
Reviewed-on: https://chromium-review.googlesource.com/825957
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9c8e1a36
|
2017-12-06T17:59:58
|
|
ES31: Implement image state query
BUG=angleproject:2278
TEST=dEQP-GLES31.functional.state_query.indexed.image_binding*
Change-Id: Ia624d55ccf1fdf92188d9e710265bdffe96a23c6
Reviewed-on: https://chromium-review.googlesource.com/810465
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
195be942
|
2017-12-04T23:40:14
|
|
Always create TVariables for TIntermSymbol nodes
TIntermSymbol nodes are now constructed based on a specific TVariable.
This makes sure that all TIntermSymbol nodes that are created to refer
to a specific temporary in an AST transform will have consistent data.
The TVariable objects are not necessarily added to the symbol table
levels - just those variables that can be referred to by their name
during parsing need to be reachable through there.
In the future this can be taken a step further so that TIntermSymbol
nodes just to point to a TVariable instead of duplicating the
information.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: I4e7bcdb0637cd3b588d3c202ef02f4b7bd7954a1
Reviewed-on: https://chromium-review.googlesource.com/811925
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f414121d
|
2017-12-12T15:08:07
|
|
D3D11: Fix program uniform buffer dity bits.
There were actually three missing state synchronization points:
1. When re-binding a uniform buffer, we had no dirty bits.
2. When modifying the Program bindings, we also had no update.
3. When triggering a dependent state update via BufferData.
This fixes all the missing syncs and adds tests for the cases.
Bug: angleproject:1390
Change-Id: I2f05766545784248bcca8308ae34ac5720237ab1
Reviewed-on: https://chromium-review.googlesource.com/823150
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
bd924af1
|
2017-11-16T15:28:04
|
|
ES31: Remove support of GL_OES_geometry_shader in compiler
This patch intends to remove the support of GL_OES_geometry_shader
in ANGLE compiler.
To make the implementation simpler, currently we decide to only
support "GL_EXT_geometry_shader" as the extension string of geometry
shader in ANGLE.
This patch also updates all the related shaders in angle_unittests
into R"()" format.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: Ife9858abeedfb46b02c5c2fb1cda16fa27198511
Reviewed-on: https://chromium-review.googlesource.com/773451
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ece12535
|
2017-11-21T15:50:21
|
|
ES31: Fix the issue for relink rendering/compute program.
When link or relink fails, if we try to install the unsuccessfully linked
program (via UseProgram) and start rendering or dispatch compute, We can
not always report INVALID_OPERATION for rendering/compute pipeline.
The result depends on the previous state: Whether a valid program has been
installed in pipeline before. If a valid program has been installed, it
should be OK to use the old executable residing in the GL state to start
rendering or dispatch compute. No error should be reported.
This change also add unit tests for unsuccessfully linked/relinked program
for rendering pipeline to avoid potential error.
If a program successfully relinks when it is in use, the program might
change from a rendering program to a compute program in theory,
or vice versa.
BUG=angleproject:2266
Change-Id: I4726112af2bc74f5beef25e35d2fcaa9f31e0768
Reviewed-on: https://chromium-review.googlesource.com/784273
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
5f19810d
|
2017-12-12T14:21:39
|
|
WebGLCompat: Fix depth & stencil query results.
getFramebufferAttachmentParameter returns incorrect
result for framebuffers in an inconsistent state.
BUG=angleproject:2281
Change-Id: Ifb83ecaf16c95bf1237b2c4f2684de6aa2d55c46
Reviewed-on: https://chromium-review.googlesource.com/823224
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8225e73b
|
2017-11-14T16:29:03
|
|
Support struct varying for transform feedback
Capturing struct members is vague In ES 3.00. But the ES 3.10
explicitly says that base-level members of struct are feasible for
transform feedback capture. This implementation fills the gap.
TEST=angle_end2end_tests:TrasnformFeedbackTest*
BUG=angleproject:2241
Change-Id: Ibdf3ae6c2b8b28952e2f7fef1363545cbccad389
Reviewed-on: https://chromium-review.googlesource.com/768613
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ebe13bb1
|
2017-12-11T13:32:44
|
|
Remove SH_TRANSLATE_VIEWID_OVR_TO_UNIFORM
Instanced multiview is fully implemented and performs much better than
broadcasting draw calls on the CPU. There's no need to maintain
translating ViewID_OVR to a uniform.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: If3a8fa573f37b7926c052aecfcd4271f266751dc
Reviewed-on: https://chromium-review.googlesource.com/819417
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e30edd6f
|
2017-12-13T13:12:33
|
|
Update deqp31 test expectations
dEQP-GLES31.functional.shaders.builtin_functions.precision*compute* cases were
fixed by https://chromium-review.googlesource.com/c/angle/angle/+/792951
BUG=angleproject:1951,angleproject:1663
TEST=dEQP-GLES31.functional.shaders.builtin_functions.precision*compute*
dEQP-GLES31.functional.draw_indirect.compute_interop.*
dEQP-GLES31.functional.layout_binding.image*
Change-Id: I25a9272df8c66e1e5279de54a091b3077cd59b22
Reviewed-on: https://chromium-review.googlesource.com/822606
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
9db70de8
|
2017-07-04T18:28:42
|
|
Reland: Implement EGL_ANGLE_iosurface_client_buffer
Includes a fix for creating pbuffers with <buftype> EGL_D3D_TEXTURE
with EGL_WIDTH and EGL_HEIGHT attributes.
BUG=angleproject:1649
TBR=geofflang@chromium.org
Change-Id: Id2974b8fab02c3218febfac708b9b034e65cbc53
Reviewed-on: https://chromium-review.googlesource.com/823248
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
3acfc625
|
2017-12-12T13:25:40
|
|
Add test for Chromium's EGL_D3D_TEXTURE pbuffer creation
When creating the pbuffer, Chromium specifies EGL_WIDTH and EGL_HEIGHT
attributes that are unnecessary because they are extracted from the
D3D11 texture passed as <buffer> to eglCreatePbufferFromClientBuffer.
This is a regression test for crbug.com/794086 where a change to
ValidateCreatePbufferFromClientBuffer made EGL_WIDTH and EGL_HEIGHT
invalid for <buftype> EGL_D3D_TEXTURE and caused Chromium to fail
creating the pbuffer, causing all black rendering.
BUG=chromium:794086
Change-Id: I262fd0991e0f46f255aeac25528ddb4a62fa1309
Reviewed-on: https://chromium-review.googlesource.com/822296
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
a98a2811
|
2017-11-30T18:12:06
|
|
ES31: Add support for GL_DISPATCH_INDIRECT_BUFFER_BINDING binding point
BUG=angleproject:2270
TEST=dEQP-GLES31.functional.state_query.integer.dispatch_indirect_buffer_binding_*
Change-Id: I2c286c219c5c849d7ba417069f53f2d0fae6abf1
Reviewed-on: https://chromium-review.googlesource.com/799990
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7f5c3eb7
|
2017-12-12T14:54:17
|
|
Revert "Implement EGL_ANGLE_iosurface_client_buffer"
This reverts commit c7abc08034a30a41748eefc5b628a76d4e2daa8a.
Reason for revert: Might have broken Chromium Win10 composition due to validation changes.
Original change's description:
> Implement EGL_ANGLE_iosurface_client_buffer
>
> BUG=angleproject:1649
>
> Change-Id: I1e72c31d7c9497ad14039a8d3fb97317ab193cb2
> Reviewed-on: https://chromium-review.googlesource.com/559107
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
TBR=geofflang@chromium.org,cwallez@chromium.org
Change-Id: I605b710b6d76056d6276b09822cd6ddca277bfd0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:1649
Reviewed-on: https://chromium-review.googlesource.com/822172
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
feb2c63b
|
2017-12-08T17:59:19
|
|
ES31: Fixed the SSBO instance array error
In ESSL 3.10 spec, there are below descriptions:
1. Any uniform or shader storage block declared without a binding qualifier
is initially assigned to block binding point zero.
2. If the binding qualifier is used with a uniform block or shader storage
block instanced as an array, the first element of the array takes the
specified block binding and each subsequent element takes the next
consecutive binding point.
So explicitly specifying the binding to zero is different with not declaring
a binding qualifier for a block instance array.
For example:
1) layout(shared, binding = 0) buffer blockName {
uint data;
} instanceName[3];
2) layout(shared) buffer blockName {
uint data;
} instanceName[3];
In 1), the binding point of each element instance is 0, 1, 2.
In 2), the binding point of each element instance is 0, 0, 0.
BUG=angleproject:1951
TEST=dEQP-GLES31.functional.ssbo.layout.*
Change-Id: If770d6e1fd8e13d2cdc762bab289772076258e4c
Reviewed-on: https://chromium-review.googlesource.com/816340
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
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>
|
|
c7abc080
|
2017-07-04T18:28:42
|
|
Implement EGL_ANGLE_iosurface_client_buffer
BUG=angleproject:1649
Change-Id: I1e72c31d7c9497ad14039a8d3fb97317ab193cb2
Reviewed-on: https://chromium-review.googlesource.com/559107
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
10a4d434
|
2017-11-28T14:46:26
|
|
ES31: Enable some dirty bits and dirty objects for compute pipeline
BUG=angleproject:2265
TEST=dEQP-GLES31.functional.shaders.builtin_var.compute.*
angle_end2end_test.ShaderStorageBufferTest31
.MultiStorageBuffersForMultiPrograms
Change-Id: Icc3df122602951a2328003c10a76696ab4c9f0d8
Reviewed-on: https://chromium-review.googlesource.com/792951
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3dddccff
|
2017-11-14T16:44:36
|
|
Support RGB gl-tex-external stream consumers for StreamProducerNV12.
This makes it relatively simple to sample from a D3D11Texture of
arbitrary format.
From: https://bugzilla.mozilla.org/show_bug.cgi?id=1322746
BUG=angleproject:2233
TEST=angle_end2end_tests
Change-Id: I10cd3043b5cb0c5d36dd613467ba6c0ceadf41af
Reviewed-on: https://chromium-review.googlesource.com/758042
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2eeb1b34
|
2017-11-29T16:06:43
|
|
WebGLCompat: Fix depthstencil query results.
getFramebufferAttachmentParameter returns incorrect
result for framebuffers in an inconsistent state.
BUG=angleproject:2259
Change-Id: I76fa99f1b8847c30469d344bd93dedd9cf6657bf
Reviewed-on: https://chromium-review.googlesource.com/798318
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
fdb400d7
|
2017-12-01T15:12:36
|
|
Test multiview extension warning
Ensure that a warning is generated if the shader tries to set a global
layout qualifier. Since a num_views layout qualifier is the only valid
global layout qualifier in GLSL ES 1.00, it's sufficient that
checkCanUseExtension() that generates the warning is called for
"num_views" specifically. Parsing "layout" or "in" storage qualifier
may use the simpler isExtensionEnabled() check that doesn't generate a
warning.
BUG=angleproject:2238
TEST=angle_unittests
Change-Id: I19caff7be9cb4f53c581b5f5526b7cade08469d6
Reviewed-on: https://chromium-review.googlesource.com/803577
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3de2703d
|
2017-11-30T12:16:47
|
|
Fix handling matrix qualifiers on block members
Individual block member row_major/column_major layout qualifiers may
override the qualifiers set on the block. During parsing, this was
already being handled correctly, so that the qualifier is resolved for
each block member and recorded for each TField / InterfaceBlockField.
Now we always write the qualifiers on a per-member granularity to the
output GLSL shaders, so that the native driver gets the correct
per-member qualifiers. This replaces earlier behavior where the matrix
qualifiers were only written per-block.
Also only use qualifiers from individual members in block layout.
Since the block-level qualifier information is no longer used after
parsing, it is no longer kept in the AST. A dummy value is still set
to the InterfaceBlock structs exposed through the ShaderVars
interface, since that has existing usage in Chromium that needs to be
removed before the field can be removed.
Some AMD OpenGL drivers don't seem to handle matrix layout qualifiers
correctly, so most of the added tests need to be skipped for AMD GL.
On NVIDIA and Intel the tests pass.
BUG=angleproject:2271
TEST=angle_unittests, angle_end2end_tests,
dEQP-GLES31.functional.program_interface_query.uniform.matrix*
Change-Id: I1baa7a633bc2da548743c2190cb72db491b5227a
Reviewed-on: https://chromium-review.googlesource.com/800174
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
361df070
|
2017-11-22T09:33:59
|
|
ES31: Implement Geometry Shader resource queries on OpenGL
This patch intends to implement all geometry shader related
resource queries on OpenGL back-ends.
This patch also fixes a memory leak by releasing the geometry
shader compiler handle in the destructor of the Compiler.
BUG=angleproject:1941, angleproject:2261
TEST=angle_end2end_tests
Change-Id: Ieb69c162d2fc6c6550e145d1ec7948c3d36d4d15
Reviewed-on: https://chromium-review.googlesource.com/784552
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
94f1e89f
|
2017-11-20T12:14:32
|
|
ES31: Add atomic counter buffer data size
BUG=angleproject:1729
TEST=dEQP-GLES31.functional.ssbo.layout.*
dEQP-GLES31.functional.compute.basic.atomic_counter*
Change-Id: Ic78c0f089fd539c0b1064e8405d63505456dbc01
Reviewed-on: https://chromium-review.googlesource.com/777958
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
5b18f487
|
2017-11-30T17:24:22
|
|
Vulkan: Implement basic TexSubImage2D.
This also adds a test for updating a Texture that is in-use. This will
ensure our Texture updates occur at the right time when we're
implementing command re-ordering.
Bug: angleproject:2264
Bug: angleproject:2200
Change-Id: Id6040d7238eca031e3cc7b27564d8ea815bf3d73
Reviewed-on: https://chromium-review.googlesource.com/801031
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
1f679cc6
|
2017-11-29T18:06:00
|
|
Code refactoring for angle::BitSet and EXPECT_GL_TRUE/FALSE.
This change refactors two style issues to make it be consistent.
1) This CL uses "using" to replace "typedef" for all angle::BitSet<...>.
2) This CL uses EXPECT_GL_TRUE/FALSE to replace EXPECT_EQ for bool comparison.
BUG=angleproject:2005
Change-Id: I4afad92313ea2457bbfedf80f917a5873d7f29ee
Reviewed-on: https://chromium-review.googlesource.com/795871
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
18841310
|
2017-11-28T12:48:47
|
|
Clean up MatchOutputCodeTest usage
It's cleaner to use a generic function to test that a sequence of
strings is found in a specific order rather than fetching and
comparing string locations in test case code.
Also make sure that string occurrences can't overlap when looking for
a specific number of occurrences of the same string.
TEST=angle_unittests
Change-Id: I8ca66c73c7aaa5be8469ded466f51d97a36c801b
Reviewed-on: https://chromium-review.googlesource.com/793041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
ae04e1e4
|
2017-11-27T16:00:39
|
|
Fix scalarizing vec and mat constructor args
Scalarizing vec and mat constructor args can generate new statements
in the parent block of the constructor. To preserve the correct
execution order of expressions, scalarized vector and matrix
constructors need to be first moved out from inside loop conditions
and sequence operators. This is done whenever the compiler flag to
scalarize args is on.
BUG=chromium:772653
TEST=angle_unittests
Change-Id: Id40f8d848a9d087e186ef2e680c8e4cd440221d9
Reviewed-on: https://chromium-review.googlesource.com/790412
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f13cadd8
|
2017-11-28T10:53:09
|
|
Fix checking negative index when indexing matrix/vector
It's important that the test against the maximum of the valid range
is only done if the index is positive, so the sanitized index value
is guaranteed to end up in the valid range.
This fixes a regression from commit "Add GLSL support for
runtime-sized arrays in SSBOs".
BUG=chromium:789029
TEST=angle_unittests
Change-Id: Ic7125e383a64e46994b072df6d7e642432c521af
Reviewed-on: https://chromium-review.googlesource.com/792935
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5201ce12
|
2017-11-28T11:36:28
|
|
Fix MSVC 2015 warnings.
BUG=angleproject:2258
Change-Id: I280eb0e461fd749b01594bb1bb9a417f2cbc23fa
Reviewed-on: https://chromium-review.googlesource.com/793975
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ebee5b3b
|
2017-11-23T12:56:32
|
|
Add GLSL support for runtime-sized arrays in SSBOs
The GLSL parser now allows a runtime-sized array as the last member in
a shader storage block. Clamping indexing against the memory bounds is
done by determining the array length at runtime.
Runtime-sized arrays are used in dEQP tests for many compute shader
tests, so these now work on the OpenGL backend.
BUG=angleproject:1951
TEST=angle_unittests,
dEQP-GLES31.functional.shaders.linkage.shader_storage_block.*
dEQP-GLES31.functional.shaders.builtin_functions.*compute*
Change-Id: Ibecca24623ca8e4723af6f0e0421fe9711ea828d
Reviewed-on: https://chromium-review.googlesource.com/787976
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
cddcb59e
|
2017-11-13T15:27:35
|
|
ES31: Fix the issue when rendering against compute program.
It is a undefined behavior in gles spec, but we should generate an error.
This change also refactored the coding style for shader in the test.
BUG=angleproject:2260
Change-Id: I7b480e8b66486d9954f7c7f6e8683298e94b6ad7
Reviewed-on: https://chromium-review.googlesource.com/764797
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
7881cfdf
|
2017-08-23T18:00:21
|
|
Add parsing of arrays of arrays
This changes the grammar so that multiple array sizes can be chained
together, and adds arrays of arrays support to TPublicType. In
TPublicType the array sizes are stored using a pointer to a vector, a
plain vector won't work due to bison restrictions.
A larger subset of program interface query tests now pass. Some are
still failing due to unrelated bugs.
BUG=angleproject:2125
TEST=angle_unittests, angle_end2end_tests,
dEQP-GLES31.functional.shaders.arrays_of_arrays.*
dEQP-GLES31.functional.uniform_location.nested_array.*
dEQP-GLES31.functional.program_interface_query.*
dEQP-GLES31.functional.ubo.*level*array.*
Change-Id: Iee16477a3752b953f5068c0473a2ed62fead8155
Reviewed-on: https://chromium-review.googlesource.com/633944
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
85072e8f
|
2017-11-14T15:43:28
|
|
ES31: Fix detaching/deleting compute shader after LinkProgram.
This change also moves the ShaderType enum from D3D renderer to angletype.h.
And it uses a bit mask to track the linked shader stages.
BUG=angleproject:2247
Change-Id: I5c7ee1445d353a02e24549ffcf6b0ac694dd1069
Reviewed-on: https://chromium-review.googlesource.com/768629
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
465835d6
|
2017-09-26T13:34:10
|
|
Support arrays of arrays in the API
The ShaderVariable class that is used as an interface between the
compiler and the rest of the code gets arrays of arrays support.
Array of array variables are passed from the compiler just like any
other variables. However, when stored in Program state each innermost
array constitutes a separate variable. This is done to make the
implementation match the GLES specification for program interface
query APIs.
This will be tested more fully once support for parsing arrays of
arrays lands in the compiler.
TEST=angle_end2end_tests, angle_unittests
BUG=angleproject:2125
Change-Id: I0f7159000f039be92a87a52b3b68cd9a215a21cb
Reviewed-on: https://chromium-review.googlesource.com/684742
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
89be29a5
|
2017-11-06T14:36:45
|
|
ES31: Implement creation and attaching geometry shader on OpenGL
This patch intends to implement the creation of a geometry shader
and attaching a geometry shader to a program on OpenGL back-ends.
This patch also adds all geometry shader related dEQP-GLES31 test
failures to deqp_gles31_test_expectations.txt.
BUG=angleproject:1941
TEST=angle_end2end_tests
Change-Id: Ib0b497030255b15dacd967e48bc59eef0009af46
Reviewed-on: https://chromium-review.googlesource.com/757979
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c801e359
|
2017-11-21T13:53:48
|
|
Add configurations of the TexturePerf benchmark that use robust init.
BUG=angleproject:2188
Change-Id: Ia23b54044a85435c761478bceeb9aac961fac0d1
Reviewed-on: https://chromium-review.googlesource.com/783230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4f407ce2
|
2017-11-21T11:52:12
|
|
Fix Clang dEQP build on Win.
Rolls the build/ repos from Chromium to include the fixed config.
Also includes incidental improvements to platform-specific hooks.
Bug: chromium:727437
Change-Id: Ia42a30acac1e800e593e304bfc59d86eb0a1e57c
Reviewed-on: https://chromium-review.googlesource.com/782340
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
39f74df5
|
2017-11-20T16:09:57
|
|
Remove unreferenced struct types from the AST
This expands pruning unreferenced variables so that unreferenced named
struct types can also be removed from the AST.
Includes a small cleanup in GLSL output so that the output code
matching tests can test against clean output.
BUG=chromium:786535
TEST=angle_unittests
Change-Id: I20974ac99a797e478d82f9203c179d2d58fac268
Reviewed-on: https://chromium-review.googlesource.com/779519
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
578b51fd
|
2017-11-20T16:13:34
|
|
D3D: Add helper for index translation type.
This makes it a bit simpler to work with the prepareIndexData method.
Also removes the mRendererClass member of the index data manager
since it was no longer necessary.
BUG=angleproject:2229
Change-Id: I03768b104da21f57c499239bbbb5f716efb0fd48
Reviewed-on: https://chromium-review.googlesource.com/765261
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
491b0d60
|
2017-11-10T12:48:22
|
|
WebGLCompatibility: Allow GL_DEPTH_STENCIL_ATTACHMENT.
Permits depth-stencil attachment points for WebGL.
BUG=angleproject:2090
Change-Id: I7f5a7c63f2a4a76116ce5639833e5fd8d7f50ffb
Reviewed-on: https://chromium-review.googlesource.com/764591
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
be0e2c0c
|
2017-11-20T11:38:16
|
|
Fix type conversion warnings
Warnings about implicit type conversions were showing up as errors on
MSVS 2017.
TEST=build with MSVS 2017
Change-Id: I5f173a6838da16e96fad134756d31f56890c147b
Reviewed-on: https://chromium-review.googlesource.com/778841
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c622833c
|
2017-11-16T21:21:56
|
|
Re-enable SimpleStateChangeTest.RedefineBufferInUse on Win/Intel
Now SimpleStateChangeTest.RedefineBufferInUse can pass on Win/Intel
with https://chromium-review.googlesource.com/756959
BUG=angleproject:2221
TEST=angle_end2end_test
Change-Id: Ibdb619a61fcaa35c72ff5a22dc6905edf9f0ec7b
Reviewed-on: https://chromium-review.googlesource.com/774679
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3d70ca9c
|
2017-11-10T16:53:26
|
|
Remove unreferenced variables from the AST
Unreferenced local and global variables are now pruned from the AST.
They will be removed unless their initializer has side effects.
The CollectVariables step needs to be run after the pruning, as the
pruning may affect which interface variables are statically used.
It's also good to gather built-ins that need to be emulated after the
pruning, so unnecessary built-in emulation functions are not added to
the translator output.
This will help handle some dEQP tests for arrays of arrays that have
extremely large local arrays that are only used in an array length
query. By constant folding the length and pruning unused variables we
will avoid adding a large amount of array initialization code to the
generated shaders.
BUG=angleproject:2166
TEST=angle_unittests, angle_end2end_tests
Change-Id: Ic918bfe8f16460bcd6101d73a7a674145f5aeecd
Reviewed-on: https://chromium-review.googlesource.com/766434
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bb27c3a1
|
2017-11-15T16:32:25
|
|
Fix VectorizeVectorScalarArithmetic statement insertion
The traverser must avoid inserting two statements to the same position
on a single traversal, so it doesn't trigger an assert.
BUG=chromium:784078
TEST=angle_unittests
Change-Id: I855054e62cc1b1cf4e6bb02af527954151c7d0e7
Reviewed-on: https://chromium-review.googlesource.com/771611
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1eda27a6
|
2017-11-16T13:06:38
|
|
Buffer11: Allow CopySubData from uninitialized.
This fixes a very odd use case where an app would try to copy from an
uninitialized buffer. I didn't search the spec too closely, but it's
likely a valid operation that produces undefined buffer contents.
Previously to this change we would genearte an OOM error.
Also includes an unrelated fix to ensure the latest buffer storage is
never nullptr when we have any data.
Bug: angleproject:1155
Change-Id: I4292bd302cc2b84d125a7d3e8d28e4d2b0210e53
Reviewed-on: https://chromium-review.googlesource.com/774991
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
78413499
|
2017-11-16T17:36:13
|
|
Skip ShaderStorageBufferTest31.AtomicMemoryFunctions on Linux AMD GL
BUG=angleproject:2255
Change-Id: I986ee0e674d0f3fc2425c922ca92a3f8d86efb8c
Reviewed-on: https://chromium-review.googlesource.com/775816
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
92a1459f
|
2017-11-16T10:01:08
|
|
Add Regression Test for D3D11 Alpha Passthrough
As a follow up to commit "8d6af08 Use dedicated ALPHA passthrough shader",
this change adds a regression test that verifies RGB channels are set to
zero when performing an ALPHA copy.
BUG=angleproject:2239
Change-Id: Icc08deb523c388a0f2cbdcadd1eec69a97fbe136
Reviewed-on: https://chromium-review.googlesource.com/774579
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8957b6c0
|
2017-11-14T12:40:38
|
|
Add perf test for ushort DrawElements.
The code path in the D3D11 back-end is sigificantly different for
unsigned short indices vs unsigned int. Because of the workaround we
have for the primitive restart index in D3D11, ushort rendering can
be slower.
BUG=angleproject:2229
Change-Id: I303dcc55b0314ec45508044995ba47b250cbb87d
Reviewed-on: https://chromium-review.googlesource.com/767149
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0a05df48
|
2017-11-02T21:39:08
|
|
Add TextureUploadFormatTest for texture unpack/upload behavior checks.
Also force ANGLE_SKIP_TEST_IF() to require a semicolon.
BUG=angleproject:2220
TEST=angle_end2end_tests
Change-Id: I2dc777ec75babb8fbb1a2dd8949636c5c05c5767
Reviewed-on: https://chromium-review.googlesource.com/754337
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a3106c58
|
2017-11-03T09:39:39
|
|
ES31: Add atomic memory functions
BUG=angleproject:1442
TEST=angle_unittests, angle_end2end_tests
dEQP-GLES31.functional.compute.shared_var.atomic*
dEQP-GLES31.functional.compute.basic.shared_atomic_op*
dEQP-GLES31.functional.ssbo.atomic.*
Change-Id: I82b54fde3a852d3bd917b1e19680baa1c28fce4d
Reviewed-on: https://chromium-review.googlesource.com/765061
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
39644fee
|
2017-11-15T16:31:44
|
|
Fix Clang build with dEQP.
This will require a Chrome-side patch to the build/ folder to enable
the new path, with appropriate Chrome-side changes.
Bug: chromium:727437
Change-Id: Iae8d8f4caeead703b322abce75c97c7c9d9e1619
Reviewed-on: https://chromium-review.googlesource.com/773021
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
98f9f537
|
2017-11-15T19:16:19
|
|
Skip RenderingLimitToDefaultFBOSizeWithNoAttachments on Linux AMD GL
BUG=anglebug:2253
Change-Id: I4c2fc6904f88a6d61c5d847b812a4272a99c1906
Reviewed-on: https://chromium-review.googlesource.com/773063
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
10137d59
|
2017-10-30T15:36:44
|
|
Remove crash expectation on dEQP tests after driver fix
NVIDIA 387.* drivers do not reproduce the issue anymore, so the test
expectations for the previously failing indirect draw tests can be
lifted.
BUG=angleproject:1659
TEST=dEQP-GLES31.functional.draw_indirect.random.*
Change-Id: Iba69821d19bfad8d2f2e81045658f3ef08695c80
Reviewed-on: https://chromium-review.googlesource.com/744021
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
08943afd
|
2017-11-14T16:51:00
|
|
Remove huge buffer data test.
This is too difficult to implement without mocking new/delete.
BUG=angleproject:875
Change-Id: I7cdafe11d26939f14a43bc515454dd5cf70c4a2a
Reviewed-on: https://chromium-review.googlesource.com/769849
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fb7685f4
|
2017-11-13T11:44:11
|
|
Validate texture parameters for >0 after rounding.
From the spec (2.3.1 Data Conversion For State-Setting Commands):
"Validation of values performed by state-setting commands is performed
after conversion, unless specified otherwise for a specific command."
BUG=783574
Change-Id: I9edf585a17489ad284bc85a1c3c2236b53ee34d9
Reviewed-on: https://chromium-review.googlesource.com/766569
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
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>
|
|
5ad52994
|
2017-11-14T12:43:40
|
|
Add generator for EGL proc table.
This should improve ANGLE startup time by avoiding creating a large
std::map filled with the entry points.
BUG=chromium:781460
Change-Id: I20cfdb10b99844d0f60759dda73b729991dc60fe
Reviewed-on: https://chromium-review.googlesource.com/768209
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e8afa902
|
2017-09-27T15:00:43
|
|
Make GL_ANGLE_framebuffer_blit enableable.
BUG=angleproject:1523
Change-Id: I5d6df35d2e65be6d73ec6100e3351ba5f9ff53a2
Reviewed-on: https://chromium-review.googlesource.com/688639
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
7af63727
|
2017-11-13T15:03:40
|
|
Fix nullptr dereference on struct parameter error
Function parameter name string does not necessarily exist, so it's
better to use the function name as the token in the error message.
BUG=chromium:784158
TEST=angle_unittests
Change-Id: I8f3b8604fd702bdc9486b8d721a5f60de1ff3fa7
Reviewed-on: https://chromium-review.googlesource.com/765972
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
19744529
|
2017-10-11T16:37:25
|
|
Clear up deqp cases for multisampled texture
BUG=angleproject:1590
TEST=dEQP-GLES31.functional.state_query.texture_level.texture_2d_multisample.*
TEST=dEQP-GLES31.functional.state_query.internal_format.texture_2d_multisample.*
TEST=dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.renderbuffer_storage_multisample
Change-Id: Ic5b9867f3588dae4c930e844b1ee2b99467a60ff
Reviewed-on: https://chromium-review.googlesource.com/711975
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
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>
|
|
336129f6
|
2017-10-17T15:55:40
|
|
Use a packed enum for buffer targets.
BUG=angleproject:2169
Change-Id: I4e08973d0e16404b7b8ee2f119e29ac502e28669
Reviewed-on: https://chromium-review.googlesource.com/723865
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e3bfefb4
|
2017-11-10T16:22:37
|
|
Align float access in InterleavedAttributeData perf test
Used to crash on arm because of unaligned float access in positionColorData
BUG=chromium:675997
Change-Id: Iadc705986700248ce3cff9bb33fcd72c94ad1c59
Reviewed-on: https://chromium-review.googlesource.com/764688
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
9776035d
|
2017-11-09T13:08:29
|
|
Vulkan: Implement Buffer updates.
This allows the app to update Buffer data while the data is in use
by the GPU. For instance, uploading new vertex attribute data after
a draw call.
It introduces a StagingBuffer helper class, similar to StagingImage.
These classes are somewhat temporary and could be redesigned.
BUG=angleproject:2200
Change-Id: If8634b1411779b16c2bd22cce18a5f37ed958d1c
Reviewed-on: https://chromium-review.googlesource.com/756959
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
38d92b59
|
2017-09-13T13:47:52
|
|
Workaround Intel driver bug on D3D when renderering with no render target
When rendering with no render target on D3D, two bugs lead to
incorrect behavior on Intel drivers < 4815. The rendering samples
always pass neglecting discard statement in pixel shader.
Two bugs are listed bellow,
1. When a framebuffer has no attachments, the pixel shader will be
recompiled to drop 'SV_TARGET'. On Intel drivers, when using a pixel
shader with no 'SV_TARGET' in a draw, pixels are always generated even
if they should be discard by 'discard' statements.
2. When a framebuffer has no attachments, ID3D11BlendState.RenderTarget
[].RenderTargetWriteMask were set to 0 in angle. If RenderTargetWriteMask
is 0 and rendertarget is not set, then rendering samples also pass
neglecting discard statement in pixel shader on Intel.
So we add a dummy texture as render target to workaround this issue.
BUG=angleproject:2152
TEST=FramebufferTest_ES31.RenderingLimitToDefaultFBOSizeWithNoAttachments/ES3_1_D3D11
TEST=dEQP-GLES31.functional.fbo.no_attachments.*
TEST=dEQP-GLES31.functional.state_query.integer.max_framebuffer*
TEST=dEQP-GLES31.functional.state_query.integer.max_color_texture_samples_*
TEST=dEQP-GLES31.functional.state_query.integer.max_depth_texture_samples_*
TEST=dEQP-GLES31.functional.state_query.integer.max_integer_samples_*
Change-Id: I1cb974703b6c05c39b731d147f7c8c4fb7b5fe68
Reviewed-on: https://chromium-review.googlesource.com/741544
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3a9090fa
|
2017-09-27T14:37:04
|
|
ES31: Add BUFFER_VARIABLE and SHADER_STORAGE_BLOCK program interfaces
This patch collects the shader storage block members information.
It implements getShaderStorageBlockMemberInfo and getShaderStorageBlockSize
for OpenGL backend. Meanwhile, it implements BUFFER_VARIABLE and SHADER_STORAGE_BLOCK
interfaces for program query.
BUG=angleproject:1920
TEST=angle_end2end_tests:ProgramInterfaceTest*
dEQP-GLES31.functional.layout_binding.ssbo*
dEQP-GLES31.functional.compute.basic.empty
dEQP-GLES31.functional.compute.basic.ssbo_rw*
dEQP-GLES31.functional.compute.basic.ssbo_local_barrier*
dEQP-GLES31.functional.compute.basic.copy_image_to_ssbo_small
dEQP-GLES31.functional.compute.basic.copy_ssbo_multiple_groups
dEQP-GLES31.functional.compute.basic.copy_ssbo_multiple_invocations
dEQP-GLES31.functional.compute.basic.copy_ssbo_single_invocation
dEQP-GLES31.functional.compute.basic.copy_ssbo_to_image_small
dEQP-GLES31.functional.compute.basic.shared_var*
dEQP-GLES31.functional.compute.basic.ubo_to_ssbo*
dEQP-GLES31.functional.compute.basic.write_multiple_arr*
dEQP-GLES31.functional.compute.shared_var.basic_type.*
dEQP-GLES31.functional.compute.shared_var.work_group_size.*
dEQP-GLES31.functional.atomic_counter.*
Change-Id: Ie8b81fde5a2e919aab77adb3d137c9ff2f193409
Reviewed-on: https://chromium-review.googlesource.com/712235
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: 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>
|
|
935cb7c5
|
2017-11-08T15:53:41
|
|
Support B8G8R8A8_UNORM_SRGB as D3D11 texture format
Support B8G8R8A8_UNORM_SRGB as D3D11 texture format.
BUG=angleproject:2172
Change-Id: I2f15a55123601735d7fc6caa40bb056243a91b44
Reviewed-on: https://chromium-review.googlesource.com/758600
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
fa125c9e
|
2017-10-24T13:01:46
|
|
Validate GL_COLOR_ATTACHMENT0 separately from the draw buffers attachments.
EXT_draw_buffers may not be enabled but the maxColorAttachments cap is
always initialized so make sure to validate for the extension instead of
just checking that the attachment is in the valid range.
BUG=angleproject:2058
Change-Id: I5b48cb496bf96cbc0911295aa5bf87784ce9241b
Reviewed-on: https://chromium-review.googlesource.com/735749
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
70b715c9
|
2017-11-07T14:59:15
|
|
ES31: Add test for DispatchCompute with rendering program
BUG=angleproject:1955
Change-Id: Ib3ee1ead76c83c8dceafba30a1c7526dd0891f8c
Reviewed-on: https://chromium-review.googlesource.com/756654
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0e883134
|
2017-10-26T09:53:50
|
|
ES31: Support EXT_geometry_shader in GLSL compiler
This patch intends to support "EXT_geometry_shader" as a valid
extension string in ANGLE GLSL compiler.
We decide to support it because in dEQP-GLES31 all geometry
shader related tests are using "EXT_geometry_shader" instead of
"OES_geometry_shader".
1. Support new extension string "EXT_geometry_shader"
2. Enable geometry shader layout qualifiers with EXT_geometry_shader
3. Enable geometry shader builtins with EXT_geometry_shader
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: Iaedd01a9100ccf56243c957db36ff0c983d17060
Reviewed-on: https://chromium-review.googlesource.com/737933
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6db1c2e8
|
2017-11-08T09:17:40
|
|
Link interface blocks in ProgramImpl::link.
This allows the back-end to have access to the interface block info
in the link operation, and also allows the interface block info to
have direct access to the post-link Impl information.
BUG=angleproject:2208
Change-Id: Ib2bfb3c9155eee715bd3d29de1c3fdd67b16eed4
Reviewed-on: https://chromium-review.googlesource.com/753521
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f8edd6e
|
2017-10-31T14:26:30
|
|
attachmentsHaveSameDimensions should not compare depths.
From: https://bugzilla.mozilla.org/show_bug.cgi?id=1372083
BUG=angleproject:2210
TEST=angle_end2end_tests
Change-Id: I00539fb7e0bc9a21f90f5c87d7082c2a6b1ed907
Reviewed-on: https://chromium-review.googlesource.com/747814
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ef7fb388
|
2017-11-07T16:33:49
|
|
Size const unsized arrays without an initializer
The array size for unsized arrays needs to be sanitized in all cases,
since subsequent checks on array indexing depend on all arrays being
sized.
BUG=chromium:781729
TEST=angle_unittests
Change-Id: I3af6c08bb249a19f7c2ef169c877a2b863eb31d3
Reviewed-on: https://chromium-review.googlesource.com/757101
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
fb05264b
|
2017-10-24T13:42:09
|
|
Disallow null pixel data for TexSubImage that have non-zero size.
BUG=angleproject:2055
Change-Id: I4c338691776c6d807333c169ed876d686188a97c
Reviewed-on: https://chromium-review.googlesource.com/735786
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d80f2944
|
2017-11-06T12:44:45
|
|
Struct definition not allowed as function parameter type
Struct definitions are not allowed as a function parameter type now.
This is specified in ESSL 3.00.6 section 12.10. ESSL 3.00.6 section
6.1.1 contradicts this, but that seems like a mistake, it's been fixed
in subsequent spec versions.
BUG=angleproject:2225
TEST=angle_unittests
Change-Id: I6b97d120c440f0c0a45d31bbfaf292fb497160ce
Reviewed-on: https://chromium-review.googlesource.com/754606
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
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>
|
|
5b09d90d
|
2017-11-06T12:06:24
|
|
Skip RedefineBufferInUse Vulkan test on Win/Intel.
Also cleans up GenerateWorkarounds a bit for D3D11.
BUG=angleproject:2221
Change-Id: I01667f850051045006d3439406aac3f4d094a374
Reviewed-on: https://chromium-review.googlesource.com/754915
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
25858166
|
2017-11-06T11:25:58
|
|
Skip several multiview tests on Windows NVIDIA after P400 upgrade.
BUG=angleproject:2228
Change-Id: If1ba74973e0c116e17de8ab77de712e281233d04
Reviewed-on: https://chromium-review.googlesource.com/753795
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1f0b468c
|
2017-11-05T19:56:28
|
|
StateManagerGL: Fix reserved indexed buffer count.
We were reserving the count of shader resource limits instead of API-
side binding limits. This fixes a broken dEQP test that was only
showing up in some device configs. Also add an ASSERT.
See:
dEQP-GLES31.functional.layout_binding.ubo.fragment_binding_max_array
BUG=angleproject:1920
Change-Id: I993ebc7993cc3cc78e90f74e097c0bbab9d03909
Reviewed-on: https://chromium-review.googlesource.com/754721
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ebb1ea2d
|
2017-11-05T15:23:45
|
|
Fix dEQP test expectations.
These were broken in 1f4d68d because of a lack of test expectation.
Also narrow the expectations to the Quadro P400.
Also add a new GLES3 OpenGL expectation.
Note that putting in a certain configs breaks the GPU test
expectations logic on Android:
I 20.617s list_tests(01000be22172ac54) Fail to identify GPU
I 20.617s list_tests(01000be22172ac54) [ CRASHED ]
BUG=angleproject:2222
Change-Id: I783c5e36414a201df64b21c6b7cf8410b2260534
Reviewed-on: https://chromium-review.googlesource.com/754591
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|