|
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>
|
|
1f4d68db
|
2017-11-03T23:33:06
|
|
Suppress dEQP test failures on Quadro P400.
BUG=angleproject:2222
TBR=jmadill@chromium.org
NOTRY=true
Change-Id: Iec2a6b63920e026e78a3f8db58dcf84bb8f5040d
Reviewed-on: https://chromium-review.googlesource.com/754344
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
2ef23e2d
|
2017-11-01T16:39:11
|
|
Fix writing uniform block maps to HLSL output
HLSL output maps structs in std140 uniform blocks to a different
layout in order to eliminate padding. The padding may have been
inserted to comply with std140 packing rules.
There used to be two issues in writing the maps: Sometimes the same
map could be written multiple times, and the maps were not being
written for uniform blocks with instance names.
Rewrite how the uniform buffer struct maps get generated so that
the code works correctly. Instead of flagging accesses, structs inside
uniform blocks are gathered from uniform block declarations. When
accesses to structs in uniform blocks are written out in OutputHLSL,
it's checked whether a mapped struct needs to be used instead of the
original one.
This code could still be optimized further by limiting mapped structs
generation to those ones that really need to be used. This is left to
be done later.
BUG=angleproject:2084
TEST=angle_end2end_tests
Change-Id: Iee24b3ef15847d2af64554ac74b8e4be5060d18c
Reviewed-on: https://chromium-review.googlesource.com/751506
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
7b62cf97
|
2017-11-02T15:20:49
|
|
Refactor TextureFormatMap to store an array.
std::map lookups are already showing up as a hot spot during some
profile trace analysis. We can elimintate these by only doing a
single switch at the entry point level to convert the GL internal
format to an internal identifier or type info pointer.
This change doesn't completely fix the hot spot, since now we are
doing multiple switch statements, but it does remove the std::map
storage in TextureCapsMap. It replaces it with a flat std::array
indexed by angle::Format::ID, and gives us the option in the future
to eliminate all by one switch statement.
This should allow for a faster texture caps implementation in Vulkan.
This also fixes the missing ANGLE format entries for ETC1 compressed
formats.
BUG=angleproject:2207
Change-Id: I74ea2082e582a6790d5fde90e33246a618a2da0e
Reviewed-on: https://chromium-review.googlesource.com/742375
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a59fc19f
|
2017-11-02T12:57:58
|
|
Use active textures mask with robust init.
This should speed up clearUnclearedActiveTextures considerably.
It was showing up as a hotspot when running the aquarium demo with
the passthrough command decoder.
Also rename the complete textures mask in gl::State to an active
textures mask, since it includes incomplete textures.
BUG=angleproject:2188
Change-Id: Idf020fc49c1e74f17a8005c3b88516829767b84c
Reviewed-on: https://chromium-review.googlesource.com/722421
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
58f67be0
|
2017-10-27T08:59:27
|
|
ES31 program query: support AtomicCounterBuffer and UniformBlock
Calculates atomic counter buffer's shader reference according to its
child counters.
Merges GL_UNIFORM_BLOCK_* queries to GL_*.
Refreshes deqp_gles31_test_expectations.
BUG=angleproject:1920
TEST=angle_end2end_tests:ProgramInterfaceTest*
dEQP-GLES31.functional.state_query.program.active_atomic_counter_buffers_get_programiv
dEQP-GLES31.functional.layout_binding.ubo.*
Change-Id: Ia23ddfef5f5dd7e15628f4c259273e1c01c14d80
Reviewed-on: https://chromium-review.googlesource.com/715436
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5ca5c65c
|
2017-10-27T17:29:54
|
|
Pass offsets to base validation for CompressedSubTexImage3D.
BUG=angleproject:2216
Change-Id: I54716fe7ba08a19d5f4c3287701cffc650adb2d8
Reviewed-on: https://chromium-review.googlesource.com/742504
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7bd16666
|
2017-10-28T19:40:50
|
|
Vulkan: Allow in-flight Framebuffer changes.
This allows the app to alter Framebuffer attachments while there
are existing command buffers using the resources and attachments.
BUG=angleproject:2200
Change-Id: I3298dafef5e3bd2c6efda8e8a32a6cf7febc13dc
Reviewed-on: https://chromium-review.googlesource.com/742370
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2348e21a
|
2017-09-27T17:46:25
|
|
Make GL_OES_get_program_binary enableable.
BUG=angleproject:1523
Change-Id: Iad002e8cbc354b9a9d08a30ba57a293f889ecffb
Reviewed-on: https://chromium-review.googlesource.com/688640
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b8d2664f
|
2017-10-27T18:14:14
|
|
Run angle_perftests on GLES backend
Adds OPENGLES_NULL configuration
and selects between OPENGL and OPENGLES based on whether building for Android.
Also 2 small changes to get the newly enabled tests to pass on N5X:
1. Require GL_EXT_texture_storage in TexSubImage test
2. Limit numVertexUniforms and numFragmentUniforms to 64 in MatrixUniforms test
BUG=675997
Change-Id: I5439e5fb7e93b3a928f12594761115d56f60d81b
Reviewed-on: https://chromium-review.googlesource.com/748522
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
526543cb
|
2017-10-28T10:59:16
|
|
Vulkan: Fix deleting in-use Framebuffer.
BUG=angleproject:2200
Change-Id: I13d661b690a6a9e67b3e8a27f9d7bd4126dca87f
Reviewed-on: https://chromium-review.googlesource.com/742749
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
86f8116b
|
2017-10-30T15:10:45
|
|
Make compressed texture format extensions enableable.
Fix allowing CompressedTexSubImage calls on ETC1 texture types
(disallowed in the extension spec).
BUG=angleproject:1523
Change-Id: Ic90175ff4626da0170b6c94f204a9d31fd0154a7
Reviewed-on: https://chromium-review.googlesource.com/744443
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
1b038241
|
2017-11-01T15:14:36
|
|
Vulkan: Support Texture redefinition.
Because initializing the texture can queue a copy from a staging
vk::Image, we must ensure we're not in a render pass. To make this
easier we move the current render pass tracking into the RendererVk
from the FramebufferVk class. (Note: in the future we will have
deferred command submission and this will become unnecessary.)
BUG=angleproject:2200
Change-Id: Ide8d4d70b50efbd79bbfa7006ad75cbc57cdf4c7
Reviewed-on: https://chromium-review.googlesource.com/741549
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8724e254
|
2017-10-28T10:44:40
|
|
Vulkan: Fix re-creating buffer storage.
BUG=angleproject:2200
Change-Id: Id60e857517cce9c0bfa272e4e6a399f236e395f7
Reviewed-on: https://chromium-review.googlesource.com/741548
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
096f278e
|
2017-10-28T10:44:40
|
|
Introduce SimpleStateChangeTests.
BUG=angleproject:2200
Change-Id: I5bf2305a6d98f16c3c2677d1c81b8285fa7ba3f9
Reviewed-on: https://chromium-review.googlesource.com/737559
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4751aabb
|
2017-10-30T15:14:52
|
|
Fix minor issues with ANGLE_texture_rectangle.
* Some texture parameters were not initialized correctly.
* Binding points were not created for enableable texture extensions.
BUG=angleproject:1650
BUG=angleproject:1523
Change-Id: Id3436fe1dbb4069eafad97e722ac519a6b59e5db
Reviewed-on: https://chromium-review.googlesource.com/744446
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d78e33a8
|
2017-10-30T12:33:52
|
|
preprocessor: Fix lineno overflow on line continuations
BUG=chromium:774807
Change-Id: I4b3fbee31683f411810080572cfff0f8307b93bf
Reviewed-on: https://chromium-review.googlesource.com/744183
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
63458a3e
|
2017-10-30T15:16:53
|
|
CopyTextureCHROMIUM: Validate the texture target enums first.
INVALID_ENUM should be generated before any INVALID_VALUE errors based
on the texture state.
BUG=angleproject:1932
Change-Id: If74440602d56b1a86fa24ff87c38d2b0dec2bfb2
Reviewed-on: https://chromium-review.googlesource.com/744448
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
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>
|
|
b8ee9dd3
|
2017-10-30T12:43:27
|
|
Validate empty statements in switch statements
Even an empty statement like ";" is a statement according to the
grammar. They should not be allowed in switch statements before the
first case statement, but on the other hand a switch statement that
has just an empty statement after the last statement is valid.
Now the parser creates AST nodes from empty statements so that we can
validate switch statements correctly. However, they are pruned shortly
after parsing completes in PruneNoOps, so they don't affect further
processing of the AST.
BUG=angleproject:2181
TEST=angle_unittests
Change-Id: I1085056fc34b146142546fc5f2b7f3124b910ab9
Reviewed-on: https://chromium-review.googlesource.com/743621
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
2c5c41f9
|
2017-10-31T10:58:09
|
|
Skip WebGLCompatibilityTest.InvalidTextureFormat on Ozone.
Attempting to figure out why the Linux Ozone (Intel) is failing.
BUG=779346
Change-Id: I94bb50f0b7746c90fe31ea1a9107319864d85438
Reviewed-on: https://chromium-review.googlesource.com/746372
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d922775b
|
2017-10-19T16:23:07
|
|
Clean up passed end2end tests on Intel Windows platform
Intel driver has released its latest versions, many intel driver bugs are fixed.
This patch cleans up end2end test cases skipped on windows 10 and windows 7.
The test environment is as follows,
Hardware: Skylake(HD 530), Kabylake(HD 630)
Driver version: 4815, 4821
OS: windows 10(15063), windows 7.
BUG=angleproject:2205
Change-Id: Iae14763aa86a572da1221e9ea35b28da2561d3b0
Reviewed-on: https://chromium-review.googlesource.com/729549
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6bb4f501
|
2017-10-31T14:54:00
|
|
Fix MSVS 2015 compilation of tests
"GLenum" needs to be prefixed to disambiguate between global GLenum
and sh::GLenum.
TEST=compile with MSVS 2015
Change-Id: I31a13c8d410bf32c4d5114c03f4b119aae256778
Reviewed-on: https://chromium-review.googlesource.com/746761
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
722bfb51
|
2017-10-26T17:00:11
|
|
Fix detecting duplicate field names in structures
Previously field names that were listed in the first declarator list
inside a struct declaration were not checked against each other.
BUG=angleproject:2204
TEST=angle_unittests
Change-Id: Ibf821d45556f6dfe0223dae673644f6795daf4cb
Reviewed-on: https://chromium-review.googlesource.com/739825
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
9088557f
|
2017-10-30T20:43:38
|
|
D3D11: Fix dirty current value updates.
Fixes a bug where subsequent updates to a "current value" (disabled)
Vertex Attribute would not trigger the state change to D3D11 such that
the updated buffer handle would be applied to D3D11. Also adds a test
to cover the problem case.
This bug was introduced in 2bc947334cad:
"D3D11: Minor optimizations to vertex attribute application."
BUG=chromium:779675
BUG=angleproject:1155
Change-Id: Ib0447231fb6969e7dad1e1e576315cab91acf4f4
Reviewed-on: https://chromium-review.googlesource.com/744924
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d84a00b9
|
2017-10-27T17:27:26
|
|
Make GL_OES_rgb8_rgba8 enableable.
Allow unsized RGB/UNSIGNED_BYTE without the rgb8rgba8 extension.
BUG=angleproject:1523
Change-Id: Ic7b4236c7b8389952b093719f26840ea2bbd01bf
Reviewed-on: https://chromium-review.googlesource.com/742501
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
163965d5
|
2017-10-11T11:38:55
|
|
BUILD.gn: prepare dEQP test support on Mac
BUG=angleproject:1569
Change-Id: I703f4739726c849950ba103049fa39498a4ff1df
Reviewed-on: https://chromium-review.googlesource.com/744361
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
660b28cc
|
2017-10-30T12:58:56
|
|
Disable WebGL texture_rg tests on all OpenGL ES.
BUG=angleproject:1523
BUG=779346
Change-Id: I019597bea3f17f178d584b8a6f070d0640511781
Reviewed-on: https://chromium-review.googlesource.com/743852
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
55bc905f
|
2017-10-25T17:33:06
|
|
Always consider type arrayness for atomic counters
Atomic counter arrays may be declared with various different syntax -
the array size may be declared as a part of the type or as a part of
the declarator. Take this into account when determining whether atomic
counter offsets overlap.
BUG=angleproject:1729
TEST=angle_unittests
Change-Id: I7435ded9401c4c1caab22c22d83fd2ad301df768
Reviewed-on: https://chromium-review.googlesource.com/738140
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
65c56dd9
|
2017-10-13T16:18:57
|
|
Fix incorrect hashing on built-in interface block fields
This patch intends to fix an error in translating built-in interface
block fields. Any field of a built-in interface block should be kept
and cannot be hashed.
This patch can fix a bug in handling the interface block gl_in when
we try to output the translated geometry shader string.
BUG=angleproject:1941
TEST=angle_unittest
Change-Id: Iebfba4b6a30c8942ed0f66131ad30d12ad96c62a
Reviewed-on: https://chromium-review.googlesource.com/719454
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2a35741b
|
2017-09-05T10:42:47
|
|
WebGLCompatibility: Disable ES format extensions by default.
Prevents format validation errors with WebGL context.
BUG=angleproject:1523
Change-Id: Iddc525eeb467de0139e166dad0893f3bea3ef35f
Reviewed-on: https://chromium-review.googlesource.com/650807
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
aa9c396b
|
2017-10-27T14:54:39
|
|
Revert "BUILD.gn: prepare dEQP test support on Mac"
This reverts commit 4b8b650c8e4586c14466faa9527175755860cd6b.
Reason for revert: causes build failure on the Mac dEQP builder.
Original change's description:
> BUILD.gn: prepare dEQP test support on Mac
>
> BUG=angleproject:1569
>
> Change-Id: I77aa55d28b884fa648ff52aedddf3a23fe6e4a8c
> Reviewed-on: https://chromium-review.googlesource.com/713194
> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
> Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=fjhenigman@chromium.org,jmadill@chromium.org,cwallez@chromium.org
Change-Id: Idc08cf12294505600890d1c6e43f62c0261631a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:1569
Reviewed-on: https://chromium-review.googlesource.com/741881
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
ca68d988
|
2017-09-18T16:41:56
|
|
ES31: Add std430 support for OpenGL backend
BUG=angleproject:1920
TEST=angle_unittests
Change-Id: Ie8e171abec053c2c5dca93d6e79db534f74520e7
Reviewed-on: https://chromium-review.googlesource.com/737532
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9cd7163e
|
2017-10-26T14:43:20
|
|
Fix setting array sizes on a constructor
Take any array sizes that have been explicitly specified in the shader
text into account, and only set the ones that are unsized according to
the arguments.
BUG=angleproject:2125
TEST=angle_unittests
Change-Id: I37d08a86c25f7cd4f3ce5689f2c9fad444e7d5ad
Reviewed-on: https://chromium-review.googlesource.com/738141
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
4b8b650c
|
2017-10-11T11:38:55
|
|
BUILD.gn: prepare dEQP test support on Mac
BUG=angleproject:1569
Change-Id: I77aa55d28b884fa648ff52aedddf3a23fe6e4a8c
Reviewed-on: https://chromium-review.googlesource.com/713194
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
454c34cb
|
2017-10-25T16:35:56
|
|
Accept valid geometry shader inputs regardless of syntax
Before, only the following style of declarations were accepted:
in float f[];
Now also these styles are accepted:
in float[] f;
in float f[], g[];
BUG=angleproject:2201
TEST=angle_unittests
Change-Id: I0af7d355a5e06a67ceef2d6bd69af7e23c180a04
Reviewed-on: https://chromium-review.googlesource.com/738234
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
335d8bf2
|
2017-10-23T15:41:43
|
|
WebGLCompatibility: Fix shader validation using define macros.
Backslash as line-continutation character is not permitted to be used
within a pre-processor directive for WebGL1.
BUG=angleproject:2093
Change-Id: I649a914b9bc544a3e4f9e7eff23b95a62c9b7008
Reviewed-on: https://chromium-review.googlesource.com/734218
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c4f1dd83
|
2017-10-25T17:02:29
|
|
Use angle::BitSetIterator optimizations on arm64 as well
Previously were enabled only on x86_64.
Also change from using target_cpu to current_cpu, as the doc recommends.
BUG=angleproject:1814
Change-Id: Ia7e8e930c76aab5cfb47b75e0ec78902ab313237
Reviewed-on: https://chromium-review.googlesource.com/737438
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
b79e7bb6
|
2017-10-24T13:55:50
|
|
Vulkan: Implement simple render-to-texture.
This was mostly working already, just needed to set up a few entry
points.
BUG=angleproject:2200
Change-Id: I9c13d6d4dd42f23c69a58e42e07e3e28877671a1
Reviewed-on: https://chromium-review.googlesource.com/734237
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
971f8508
|
2017-10-17T13:01:24
|
|
Implement get compute work group size for glGetProgramiv
BUG=angleproject:2187
TEST=dEQP-GLES31.functional.state_query.program.compute_work_group_size_get_programiv
Change-Id: Ic09153ffccfb207e37ad70cf7e14714be987e7e1
Reviewed-on: https://chromium-review.googlesource.com/722178
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
55bde916
|
2017-10-25T13:41:13
|
|
Parse array specifier with a separate grammar rule
This brings the grammar closer to the GLSL ES 3.10 spec.
Some corner cases related to handling unsized arrays are fixed.
BUG=angleproject:2125
TEST=angle_unittests, angle_end2end_tests
Change-Id: I9bcf87b17b97da0e2ec2954d32037c272fde3080
Reviewed-on: https://chromium-review.googlesource.com/738233
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f7480ad2
|
2017-10-24T11:46:02
|
|
D3D11 FL 10: Create cubemap SRVs as cube maps instead of 2D arrays.
The creation of these SRVs would fail and spew D3D11 runtime errors.
BUG=angleproject:2171
Change-Id: I80b6390822f74128b3443db7b6d48c4d318ec34d
Reviewed-on: https://chromium-review.googlesource.com/735745
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8e4b355b
|
2017-08-30T14:20:58
|
|
ES31: Implement Geometry Shader inputs and outputs
This patch intends to implement Geometry Shader inputs and
outputs in ANGLE GLSL compiler.
1. Only accept arrays as the inputs of a Geometry Shader.
2. Allow unsized arrays as the inputs of a Geometry Shader after a
valid input primitive declaration and assign size to them.
3. Implement Geometry Shader outputs.
4. Allow Geometry Shader inputs and outputs using interpolation
qualifiers ('flat', 'smooth', 'centroid').
5. Allow using 'location' layout qualifier on Geometry Shader inputs
and outputs.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: Ia7e250277c61f45c8479437b567c2831ff26b433
Reviewed-on: https://chromium-review.googlesource.com/650211
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e7c2857d
|
2017-10-23T16:29:33
|
|
Clean up direct access of ShaderVariable::arraySize
This change is pure refactoring. It's intended to help with adding
support for arrays of arrays.
BUG=angleproject:2125
TEST=angle_unittests
Change-Id: I82881a98c3c476fd6666a551ce6be255ae0de4cf
Reviewed-on: https://chromium-review.googlesource.com/733127
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5547b384
|
2017-10-23T18:16:01
|
|
Vulkan: Implement simple static textures.
After this change, the SimpleTexture2D sample mostly runs.
BUG=angleproject:2167
Change-Id: Ie6d56f890b1aede329e11d1e987d0f8c17a2d0b4
Reviewed-on: https://chromium-review.googlesource.com/720072
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
de03e003
|
2017-10-21T14:04:20
|
|
Vulkan: Add shader handling for textures.
BUG=angleproject:2167
Change-Id: I33940288331a23b940753795e5e43b8cabcb87f5
Reviewed-on: https://chromium-review.googlesource.com/732189
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4cd889ec
|
2017-10-20T11:19:57
|
|
Remove unnecessary work from VariablePacker
The VariablePacker does not check the staticUse flag, variables should
be pre-filtered according to their staticUse flag before passing them
to CheckVariablesInPackingLimits if that's desired.
The names of the variables are also not relevant to the packing. We
keep the "name" field to make the code easier to debug, but updating
the mappedName is not useful.
This will make implementing arrays of arrays simpler.
BUG=angleproject:2125
TEST=angle_unittests
Change-Id: I5ce91885f6478ad436e6fa60ca9675e161d10256
Reviewed-on: https://chromium-review.googlesource.com/730104
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
76e471e9
|
2017-10-21T09:56:01
|
|
Vulkan: Implement basic uniforms.
This implementation adds one descriptor set with two bindings: one for
default vertex uniforms and the other for fragment. It adds two
corresponding uniform buffers, and the logic for updating the
descriptor sets bound to Vulkan. It doesn't handle much in the way of
synchronization and dependency management, or uniform update.
If there are only vertex or fragment uniforms the empty uniform buffer
is omitted from the descriptor set. If both are missing, there is no
descriptor set bound.
Note that as our implementation progresses we might not be able to
initialize our descriptor sets at link time, due to streaming in
uniform data.
BUG=angleproject:2167
Change-Id: I4ce4c3879ab454114df43bfac8d87ddf817fc045
Reviewed-on: https://chromium-review.googlesource.com/706340
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
711b7a12
|
2017-10-09T13:38:12
|
|
ES31: Support images in the compiler on D3D backend.
BUG=angleproject:1987
TEST=angle_end2end_tests
Change-Id: I83f5f9ffda7e676a8f98b963d1f1c50e9463faf4
Reviewed-on: https://chromium-review.googlesource.com/706247
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7478ce7f
|
2017-10-13T13:19:07
|
|
D3D11: Minor Optimization to DrawCallNeedsTranslation
Remove IsStreamingIndexData from DrawCallNeedsTranslation since
IsStreamingIndexData is only needed for drawElementsIndirect for fast path.
This change gives about a 4% improvement on the drawElements benchmark for
the D3D11 backend with the null driver.
BUG=angleproject:1155
Change-Id: Ife2a9748f6b6fe9bc1f3a67c96672ab941a89d44
Reviewed-on: https://chromium-review.googlesource.com/717946
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
02032bda
|
2017-10-13T18:10:17
|
|
Generate an error if no XFB varyings are in use
GLES specifies an error if BeginTransformFeedback is called when no
binding points would be used.
BUG=angleproject:2184
TEST=angle_end2end_tests
Change-Id: Ie4489b5ba63885e718dafdcdaacc02b603959be3
Reviewed-on: https://chromium-review.googlesource.com/719136
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
cbcb96fc
|
2017-10-19T14:14:06
|
|
Fix switch/case last case validation for ESSL 3.10
No statement should be required after the last case label of a switch
statement in ESSL 3.10. The validation is still kept for ESSL 3.00 for
dEQP compatibility. If the dEQP tests are changed in the future, we
might consider just issuing a warning regardless of shader version.
BUG=angleproject:2189
TEST=angle_unittests
Change-Id: Ic53e71e0176668a7dbffa315712885846e217f03
Reviewed-on: https://chromium-review.googlesource.com/727802
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d0ef13a2
|
2017-08-28T22:53:24
|
|
Stand-alone build with gn.
This should do the same things as the stand-alone gyp build, but with gn.
You should switch to gn as gyp support will go away.
You need a recent enough version of gn. If yours is too old try this one:
./buildtools/linux64/gn
If "gclient sync" or anything fails with an ImportError on gyp stuff,
try running it with the following PYTHONPATH in the environment:
PYTHONPATH=tools/gyp/pylib
BUG=angleproject:1569
Change-Id: I56d19bec2d8b649a7bd65062c656cbfc69ea3dd8
Reviewed-on: https://chromium-review.googlesource.com/642588
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
0a6752e3
|
2017-10-17T22:59:09
|
|
Use default window size in RenderTestParams.
This fixes a D3D11 runtime warning in perf test init. We don't
see it on the bots because we don't typically enable the D3D11
runtime.
BUG=angleproject:2188
Change-Id: I512db7d5a34204f1d94e28d80cadb18f9b17e55f
Reviewed-on: https://chromium-review.googlesource.com/724738
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|