|
d28758de
|
2017-08-30T15:32:48
|
|
D3D11: Re-enable updateVertexBuffer dirty bits.
In some cases, when the app would call glBufferSubData to do a small
data update in an existing vertex buffer, the sync code would not
flush out the data to the native D3D11 buffer from the temporary
staging buffer.
Fix this problem by notifying the VertexArray11 class when buffer
data is updated. Note that in the future we can improve this by
using a different update notification for when the buffer data changes
and when the underlying storage changes. For now take a very broad
approach.
BUG=angleproject:1156
Change-Id: I2e0fabc97c1f1d5a14d609247e61c602e9a5a85f
Reviewed-on: https://chromium-review.googlesource.com/644208
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
57ae8c16
|
2017-08-30T12:14:29
|
|
GLES3: Auto-generate entry points source.
Lots of incidental fixes to formatting and naming.
Adds specific default return type overloads for ClientWaitSync and
GetUniformBlockIndex.
BUG=angleproject:1309
Change-Id: Id67cbc0b19fc2cb94c859ab8390f1ff36b1bbd25
Reviewed-on: https://chromium-review.googlesource.com/637203
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e8ef2bc4
|
2017-08-29T13:38:57
|
|
Add compile error on using inputs with interpolation qualifier as l-value
This patch intends to fix a compile error in ANGLE GLSL compiler when
parsing an expression with inputs which has interpolation qualifiers
('flat', 'smooth' and 'centroid').
The compiler should report a compile error when a shader input with
interpolation qualifier is used as a l-value.
BUG=angleproject:2140
TEST=angle_unittests
Change-Id: I7c059d53bf001ac31d34519a98e5289797833ce7
Reviewed-on: https://chromium-review.googlesource.com/640075
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7c2e6a96
|
2017-08-28T11:13:16
|
|
Do not forward multi-view fields to backend on detach
The patch fixes an unexposed bug in FramebufferGL which would pass
an incorrect multi-view state to StateManagerGL on texture detachment.
The bug is not exposed because upon a subsequent syncing step the
correct state is queried and restored from the framebuffer state.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ie0e783c53e87497b3673ef87ab9c53c3c04054a7
Reviewed-on: https://chromium-review.googlesource.com/636369
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
1ba9b85a
|
2017-08-29T14:08:41
|
|
HLSL: Declare gl_ViewID_OVR as fragment input if extension is enabled
Previously a pixel shader would have gl_ViewID_OVR as input only if it
were used in it. However, in a case with a user-specified varying and no
usage of gl_ViewID_OVR in the pixel shader, a link-time error would
occur whenever the geometry and pixel shaders were to be linked as the
order of parameters in the signatures would not match.
The patch addresses this by always having gl_ViewID_OVR declared as
pixel shader input if the OVR_multiview(2) shader extension is enabled.
The patch does not provide any tests because draw commands are not yet
supported at this stage.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ia154fd53cbf3847cfaf0504e4ec44632b9cd5327
Reviewed-on: https://chromium-review.googlesource.com/641151
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
77d4d4da
|
2017-08-29T17:31:32
|
|
D3D11: Temporarily disable vertex array dirty bits.
In some cases we could end up with bufferSubData updates being left
in staging buffers during a draw call. Currently we rely on
InputLayoutCache::applyVertexBuffers to flush all pending buffer
updates, but this could be done in VertexArray11::syncState, or
even in the draw call sync state.
BUG=angleproject:1156
BUG=chromium:759403
Change-Id: I7019425f874414bf5857b825ddae7e022750c759
Reviewed-on: https://chromium-review.googlesource.com/642057
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ed5b46f1
|
2017-07-21T08:39:17
|
|
Add additional ES2 and WebGL 1.0 Validation
Adds validation for various cases.
Adds corresponding unit tests.
Change-Id: I9451d286bcf2d6fa32de495e5d0bdec1eb5c955d
Reviewed-on: https://chromium-review.googlesource.com/633157
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2e29b13d
|
2017-08-28T17:22:11
|
|
Fix some default return values in auto-gen.
We don't generally test for the default return values of function
calls that have validation errors, but the auto-gen script might
not have been returning things correctly. For GLint values, default to
returning -1 instead of zero.
BUG=angleproject:1309
Change-Id: I736b5a7ef9b50ca1509087fe933c4a4e526531d8
Reviewed-on: https://chromium-review.googlesource.com/636522
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b79b3f96
|
2017-07-21T14:23:21
|
|
Assign symbol ids in RemoveDynamicIndexing
Assign consistent symbol ids to out base, index and value nodes that
get created in RemoveDynamicIndexing. Some utility functions in
RemoveDynamicIndexing have also now become unnecessary now that there
are better generic helpers and node constructors.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: I98891e448b85d51518dbf3156ec93f9661def57e
Reviewed-on: https://chromium-review.googlesource.com/580954
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3db4072a
|
2017-08-28T17:59:13
|
|
Skip end2end test case due to failure on D3D Intel GPU
Test case FramebufferTest_ES31.RenderingLimitToDefaultFBOSizeWithNoAttchments
failed on Intel gpu on D3D.
BUG=angleproject:1594
Change-Id: Icda5179513b697b41aeb39bffad23fdb1977b55f
Reviewed-on: https://chromium-review.googlesource.com/637750
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
14b2126e
|
2017-08-25T13:54:37
|
|
Relax multi-view end-point validation on detach
Passing invalid arguments to the multi-view end-points should not
generate an error if a texture is being detached from the framebuffer.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I22e1ed13b64db046724031d0189612d5e111dcac
Reviewed-on: https://chromium-review.googlesource.com/635166
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
39e78122
|
2017-08-29T14:34:22
|
|
Fix assert when linking nonexistent transform feedback varying
linkValidateTransformFeedback needs to be run after packing varyings,
since it relies on nonexistent varyings being already handled.
BUG=angleproject:2141
TEST=angle_end2end_tests on debug
Change-Id: I6178348f05a19070a2d17caf90f732df9eb06b9d
Reviewed-on: https://chromium-review.googlesource.com/641152
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
54164b0c
|
2017-08-28T15:17:37
|
|
Add getUniform impl methods.
This will let us remove some of the uniform data management code in
the GL front-end, and simplify the GL back-end. It will also enable
us to implement uniform data more efficiently in the D3D11 back-end,
and probably Vulkan back-end later.
This also implements a new impl method for the ProgramGL class to
flag optimized-out uniforms as no longer used, post-link. This is
important because otherwise the optimized uniforms get assigned
valid locations, and then the getUniform calls are expected to
succeed.
We also use a workaround for uniform value queries for the GL
back-end. It seems as though some drivers (seen on NVIDIA and AMD)
may not properly clamp to the maximum representable integer value
when querying out-of-range floating point values. Work around this by
always calling the driver with the proper type and then casting the
value in ANGLE.
BUG=angleproject:1390
Change-Id: I03dc2382e7af52455c356a2bf3971a4d1bd46ec6
Reviewed-on: https://chromium-review.googlesource.com/616785
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ff161f83
|
2017-08-26T23:49:10
|
|
Fix EP generation event output format for uint.
This should be %u not %d.
BUG=angleproject:1309
Change-Id: I1fe1b8df9ea4f9123fc05e9ff58afa1f7723692c
Reviewed-on: https://chromium-review.googlesource.com/636521
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a42a4e5e
|
2017-08-28T14:02:12
|
|
D3D11: Copy external offscreen texture when required.
In some cases ANGLE gets an external back buffer texture for our
SwapChain11 class, and in some of these cases we get an offscreen
texture that can't be used as a shader resource. The becomes a problem
for some copy operations that use a shader to convert texture formats.
Work around this problem by making a shadow copy of the texture that
has sampling enabled - it is possible to use CopyResource to copy
between them.
BUG=chromium:752917
Change-Id: Ib757949d3d06295a118b055bf37311f820f7149c
Reviewed-on: https://chromium-review.googlesource.com/638551
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
16daadba
|
2017-08-26T23:34:31
|
|
GLES3: Auto-generate entry point header.
BUG=angleproject:1309
Change-Id: I40e3580c99df44338dfd1d06677e80fd0c57853e
Reviewed-on: https://chromium-review.googlesource.com/636520
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9696d073
|
2017-08-26T23:19:57
|
|
Clean up the ES3 entry points for auto-generation.
Removes some unnecessary includes, and moves some validatoinfunctions
to the ES3-only file.
BUG=angleproject:1309
Change-Id: I3b274014c48f6f39b5e67223987c91fbc5b4d390
Reviewed-on: https://chromium-review.googlesource.com/636519
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
70b5bb00
|
2017-08-28T13:32:37
|
|
Rename gl::FenceSync to gl::Sync.
The spec refers to Sync objects, FenceSyncs being a subtype. The
motivation for this fix is to clear up the FenceSync_ entry point for
auto-generation.
BUG=angleproject:1309
Change-Id: I94c440476d701628575e7a3eea68b6dd110f41c3
Reviewed-on: https://chromium-review.googlesource.com/636516
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3ef140a9
|
2017-08-26T23:11:21
|
|
Finish refactoring the rest of the ES3 entry points.
BUG=angleproject:747
Change-Id: I3da02120bfff5f33f15a5a9dd45ec99fd654425f
Reviewed-on: https://chromium-review.googlesource.com/636518
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7f0c5a4b
|
2017-08-26T22:43:26
|
|
Refactor sync EPs (plus one extra).
More entry point validation refactor for auto-gen.
BUG=angleproject:747
Change-Id: I9462a28838df3f265e1401f66c838cc5a73d511f
Reviewed-on: https://chromium-review.googlesource.com/636517
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7e1197e0
|
2017-08-24T15:48:38
|
|
Fix crash when indexing unsupported interface blocks by variable
This patch intends to fix a compiler crash when indexing an
unsupported interface blocks. We should not use UNREACHABLE() here
because the compiler will continue parsing when this kind of error
is generated. Instead, we use an ASSERT to ensure the compile error
must have been reported before when the parsing reaches here.
BUG=chromium:758159
Change-Id: I4bc63316d156d51f721123fe963106d1e81d8d32
Reviewed-on: https://chromium-review.googlesource.com/631797
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
97577623
|
2017-08-28T11:31:06
|
|
Fix assertion failure in CollectVariables.cpp
The built-in gl_Layer can occur in the AST in cases in which either
GL_OVR_multiview or GL_OVR_multiview2 is enabled.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I7409b2712c715c3898c33300b7e5689e347742f0
Reviewed-on: https://chromium-review.googlesource.com/636367
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
18b75bad
|
2017-08-15T15:50:40
|
|
D3D11: Handle Clear* commands for layered framebuffers
According to the ANGLE_multiview spec, Clear* commands only affect
the range of attached layers to the multi-view layered framebuffer.
The patch extends ImageIndex so that the range of attached layers is
tracked and a render target view can be created with that range of
texture array slices attached.
The special case of scissored clears for depth and stencil attachments
is handled by instancing the same number of quads as there are views and
selecting the layer within a geometry shader.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ibea248b980513f83d918652030a72c62c7ecd88b
Reviewed-on: https://chromium-review.googlesource.com/632256
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
12e957f8
|
2017-08-26T21:42:26
|
|
Refactor uniform block and other query EPs.
Also some minor fixes to validation and error messages.
BUG=angleproject:747
Change-Id: I4f97a45c2d39a8deec2255620e5cc2bcb8cad7b9
Reviewed-on: https://chromium-review.googlesource.com/637126
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f0dcb8b5
|
2017-08-26T19:05:13
|
|
Refactor transform feedback EPs.
BUG=angleproject:747
Change-Id: I4891966cd7b3d478980202e795742e15dd1dcb01
Reviewed-on: https://chromium-review.googlesource.com/637125
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d7576737
|
2017-08-26T18:49:50
|
|
Refactor VAO entry points.
This also touches the extension EPs for ES2.
BUG=angleproject:747
Change-Id: Iaa04d97465e518f6b0496e64bc7a737914709b8f
Reviewed-on: https://chromium-review.googlesource.com/637124
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c8c95817
|
2017-08-26T18:40:09
|
|
Refactor uniform matrix entry points.
This should also slightly speed up some of the validation.
BUG=angleproject:747
BUG=angleproject:1390
Change-Id: I60735e2773788aef3f535bf7d3d8cd27bc4df5b1
Reviewed-on: https://chromium-review.googlesource.com/637123
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f0e0449e
|
2017-08-26T15:28:42
|
|
Format ES3 query entry points.
Also refactor some query extension entry points.
BUG=angleproject:747
Change-Id: I5a8a3b2616a3872b5645a655641ec9c12739f804
Reviewed-on: https://chromium-review.googlesource.com/636062
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ff325f1b
|
2017-08-26T15:06:05
|
|
Refactor ES3 uniform entry points.
This should improve validation speed slightly because it allows us to
move the ES3-only check into the ES3-only code, and make it a bit
simpler.
BUG=angleproject:747
BUG=angleproject:1390
Change-Id: I41f9ffef1c6a552fde924e62e481831f07b1503a
Reviewed-on: https://chromium-review.googlesource.com/636061
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ef661517
|
2017-08-26T11:13:04
|
|
Add ANGLE dEQP trybots to default set of tryservers.
These trybots -- for Win, Linux, and Android -- are all working now
per https://chromium-review.googlesource.com/636294 . Make them run
for all ANGLE CLs so that the dEQP tests can be removed from the
others. This will allow the dEQP bots' compiler configuration to
ultimately diverge from the other bots'.
BUG=727437
TBR=geofflang@chromium.org
Change-Id: I90ffcd358dfa888b77ecf718727d809c486170c7
Reviewed-on: https://chromium-review.googlesource.com/636759
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
511937d9
|
2017-08-03T15:41:29
|
|
ES3.1: Implement framebuffer default parameters for d3d part.
Set framebuffer default params with glFramebufferParameteri and
glGetFramebufferParameteriv, keep framebuffer default parameters
in cache for query.
The es 3.1 spec section 9.2 states that, "If there are no attachments
, rendering will be limited to a rectangle having a lower left of
(0, 0) and an upper right of (width, height), where width and height
are the framebuffer object's default width and height."
If the Framebuffer has no color attachment and the default width or
height is smaller than the current viewport, use the smaller of the
two sizes.
BUG=angleproject:1594
TEST=dEQP-GLES31.functional.state_query.framebuffer_default.framebuffer_default*
TEST=dEQP-GLES31.functional.fbo.completeness.no_attachments
TEST=dEQP-GLES31.functional.fbo.no_attachments.*
TEST=angle_end2end_tests --gtest_filter=FramebufferTest_ES31.*
Change-Id: I8041fd655161390acf115efa08ce0f04b10810a0
Reviewed-on: https://chromium-review.googlesource.com/609414
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d27f5c8d
|
2017-08-23T09:38:08
|
|
ES31: Implement GL_OES_geometry_shader built-ins in GLSL compiler
This patch intends to implement all built-in constants, variables and
functions defined in OpenGL ES 3.1 extension GL_OES_geometry_shader
in ANGLE GLSL compiler.
1. Add all built-in constants defined in GL_OES_geometry_shader.
2. Add built-in functions EmitVertex() and EndPrimitive() required
in Geometry Shader.
3. Add built-in variables gl_PrimitiveIDIn and gl_InvocationID to
Geometry Shader.
4. Add built-in variables gl_PrimitiveID and gl_Layer to both
Geometry Shader and Fragment Shader when GL_OES_geometry_shader
is enabled.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: I92821553ed0efee2ccb77fead6e065e7799819d0
Reviewed-on: https://chromium-review.googlesource.com/627670
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3c25ad07
|
2017-08-22T17:36:53
|
|
Enable all multiview rendering tests for layered framebuffers
The patch restructures the tests in MultiviewDrawTests.cpp, so that
all rendering tests can be instantiated for side-by-side and layered
framebuffers.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I2c32fd3bd57b6afd1eb8d6cedb2d1b88b9fd6525
Reviewed-on: https://chromium-review.googlesource.com/627918
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
335d67b8
|
2017-08-24T14:57:44
|
|
Fixes to the Uniforms Perf benchmark.
Fix the REPEAT test, and add a D3D11 and OpenGL null test.
BUG=angleproject:1390
Change-Id: I491cbc9f9201ef85aeb9f70138a276078220b26d
Reviewed-on: https://chromium-review.googlesource.com/623928
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2c1183bb
|
2017-08-24T10:36:01
|
|
Fix compile on non C++14 configs.
The WrappedArray move constructor was not contexpr under c++11
rules. New code was introduced when fixing D3D11 runtime warnings.
BUG=angleproject:2025
Change-Id: Ie322d9fa3db36f320b7a9ef5048a23c31c153ad1
Reviewed-on: https://chromium-review.googlesource.com/633911
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
41013bdd
|
2017-08-24T14:07:33
|
|
Perf script runner Python 3 compatibility.
No code changes in ANGLE, just a perf test runner fix.
BUG=angleproject:1155
Change-Id: If49c58da26f9224e09f292689b2d74f7e129a844
Reviewed-on: https://chromium-review.googlesource.com/633786
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c1346fba
|
2017-08-24T16:11:26
|
|
Revert "Remove IndexRange retrieving in validation"
This reverts commit 59d9da089580afac175ff5f1a932b987c9d194d6.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Remove IndexRange retrieving in validation
>
> This change can improve the performance of drawElements which uses
> the path without translation.
> Paste a set of mean data (repeated 30) for reference on Intel skylake
> Win10 desktop.
> DrawElementsPerfBenchmark.Run/d3d11:
> before after
> mean: 13644.4666667 -> mean: 13887.8333333
> DrawElementsPerfBenchmark.Run/d3d11_index_buffer_changed:
> before after
> mean: 45.8 -> mean: 46.3666666667
>
> BUG=755897, angleproject:1393
>
> Change-Id: I11f5db25445346958dfef52b1d23df5483cda32f
> Reviewed-on: https://chromium-review.googlesource.com/607413
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,jiajia.qin@intel.com
Change-Id: I4b00af2c32af36aa978ac2fddcf7514134497cf3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 755897, angleproject:1393
Reviewed-on: https://chromium-review.googlesource.com/633296
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
e080387e
|
2017-08-23T15:30:23
|
|
Refactor array element type checks
Remove checks that would never fail, and refactor the functions into
more self-contained checks. For example, it doesn't make sense to
check the qualifier from the part of the type that doesn't contain the
qualifier.
This prepares for adding the parsing of arrays of arrays.
BUG=angleproject:2125
TEST=angle_unittests
Change-Id: I1144bee35d2b04c7cb22e2bb7e17307298e35f8c
Reviewed-on: https://chromium-review.googlesource.com/629016
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
59d9da08
|
2017-08-09T16:59:17
|
|
Remove IndexRange retrieving in validation
This change can improve the performance of drawElements which uses
the path without translation.
Paste a set of mean data (repeated 30) for reference on Intel skylake
Win10 desktop.
DrawElementsPerfBenchmark.Run/d3d11:
before after
mean: 13644.4666667 -> mean: 13887.8333333
DrawElementsPerfBenchmark.Run/d3d11_index_buffer_changed:
before after
mean: 45.8 -> mean: 46.3666666667
BUG=755897, angleproject:1393
Change-Id: I11f5db25445346958dfef52b1d23df5483cda32f
Reviewed-on: https://chromium-review.googlesource.com/607413
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
abf66fb3
|
2017-08-23T11:58:27
|
|
D3D11: Use dirty bits for applyVertexBuffers.
If the vertex array has any dirty or dynamic attribs, we must do an
update. Similarly, if a prior state change has left the vertex
state invalidated, we do an update. For instance, a program change
means we need a new input layout. If there was no such invalidation
or dirtyness we can skip the call to InputLayoutCache.
This improves the performance of the draw call benchmark (with no
state changes) by about 50% on the D3D11 null driver. Increases the
frames per second count of the aquarium demo with the passthrough
command buffer by about 25% on a test machine.
BUG=angleproject:1156
Change-Id: I8381999029f5b1912030a3342e96285a58f95e82
Reviewed-on: https://chromium-review.googlesource.com/616784
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e3d8628d
|
2017-08-22T11:50:01
|
|
D3D11: Split input layout and VB application.
This will enable future optimizations that only update either the
applied vertex buffers or the input layout independenty. It also
makes debugging a bit easier since we can force an update of the
vertex buffer or input layout to diagnose potential state sync
bugs.
BUG=angleproject:1156
Change-Id: Ib375561528da539e136ff4fd02398b03c9caabb7
Reviewed-on: https://chromium-review.googlesource.com/627077
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
96f6adfa
|
2017-08-16T11:18:54
|
|
Add support for arrays of arrays in AST processing
Data concerning arrays of arrays is added in TType.
Parsing arrays of arrays and support for arrays of arrays in
TPublicType are still left to be implemented later.
ShaderVariable interface for arrays of arrays is also left to be
implemented later.
We rely on existing test coverage to make sure that arrays of arrays
are not accidentally exposed.
BUG=angleproject:2125
TEST=angle_unittests, angle_end2end_tests, angle_deqp_gles31_tests
Change-Id: Ie17d5ac9b8d33958e9126dc0fb40bf1c81ddeec9
Reviewed-on: https://chromium-review.googlesource.com/616146
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5e424fae
|
2017-08-09T16:25:36
|
|
Handle Clear* commands for layered framebuffers
The patch adds support for clearing the layers of 2D array textures
attached to a multi-view framebuffer. According to the ANGLE_multiview
spec, the layers which are outside of the range
[baseViewIndex; baseViewIndex + numViews) should remain unmodified.
Because the native Clear* commands clear all of the layers, a workaround
is implemented which creates a FBO, attaches a single layer from all
multi-view attachments and clears the contents.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ibf711d02046233eed16bdd3f9c96fc38f82ed0a8
Reviewed-on: https://chromium-review.googlesource.com/615242
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
61bd9994
|
2017-08-11T13:10:55
|
|
Test multi-view rendering of various primitives
The patch adds tests to verify that all primitive types are rendered
correctly in a multi-view context.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ied4521264841d29ba3b39a612e2da285d0fd9fc6
Reviewed-on: https://chromium-review.googlesource.com/612243
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d8105a03
|
2017-08-08T09:54:36
|
|
ES31: Implement gl_in in Geometry Shader
This patch intends to implement geometry shader built-in interface
block instance gl_in defined in GL_OES_geometry_shader.
1. Add the definition of gl_in and its interface block gl_PerVertex
into the symbol table.
2. Support gl_Position as a member of gl_in.
3. Set the array size of gl_in when a valid input primitive type is
known.
4. Add check that it should be a compile error to index gl_in or
call length() on gl_in without a valid input primitive declaration.
This patch also adds unit tests to cover all these new features.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: I8da20c943b29c9ce904834625b396aab6302e1e1
Reviewed-on: https://chromium-review.googlesource.com/605059
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
401345e4
|
2017-08-21T10:52:40
|
|
D3D11: Move more state into StateManager11.
This moves the input layout cache and vertex and index data managers
and related info into the state manager. This makes it easier to
manage the state application with regards to dirty bits.
Also updates the dirty current value handling in StateManager11.
BUG=angleproject:1156
BUG=angleproject:2052
Change-Id: I8de968a1f8416363aa1c49d9e9da129942d21275
Reviewed-on: https://chromium-review.googlesource.com/616783
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3cb4894c
|
2017-08-18T10:03:01
|
|
Make TextureD3D::clearLevel work with depth/stencil.
Although we only used this method in one place that didn't need to
clear depth or stencil, the method itself doesn't seem like it should
be limited. It will become useful in later patches which initialize
depth and stencil textures robustly.
BUG=angleproject:2107
Change-Id: I7dc67608972f2b31c0cb4d309941be10f47d1d47
Reviewed-on: https://chromium-review.googlesource.com/585600
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
977ee7eb
|
2017-07-21T11:38:27
|
|
Add gl_ViewportIndex to the symbol table
gl_ViewportIndex is a GLSL built-in that's needed to implement
instanced multiview. It is a bit of a special case: it only exists in
desktop GLSL and not ESSL, and it shouldn't be exposed to the parser.
We add a new level to the symbol table that's hidden from the parser
to make adding this kind of builtins in AST transforms consistent with
the way ESSL builtins are supported.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I51b2d983950b38c8e85e4b6ed00c6b39f9b3cb03
Reviewed-on: https://chromium-review.googlesource.com/580953
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4e619f58
|
2017-08-09T11:50:06
|
|
Add branch for viewport or layer selection in VS
The patch extends the behavior of
SH_SELECT_VIEW_IN_NV_GLSL_VERTEX_SHADER so that either the viewport
or layer is selected based on the value of the internal uniform variable
MultiviewRenderPath.
BUG=angleproject:2062
TEST=angle_end2end_tests
TEST=angle_unittests
Change-Id: Ia311b12b1fed642dac78eba8732e2535242f34fd
Reviewed-on: https://chromium-review.googlesource.com/615260
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3dfaf265
|
2017-08-18T12:32:14
|
|
Add a Linux/Intel suppression for CopyTextureTestES3.ES3UintFormats.
BUG=chromium:756087
Change-Id: If7d318d58ce46b52a810b1a96fcdbff57a787f86
Reviewed-on: https://chromium-review.googlesource.com/621408
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0ce8ef33
|
2017-08-18T12:00:28
|
|
Add arrays of arrays negative test coverage
Arrays of arrays have not been implemented yet, but these tests can
already be enabled. This is useful to make sure that we don't
accidentally enable arrays of arrays where they shouldn't be enabled
and that the initial implementation generates errors correctly and
doesn't crash on malformed inputs.
BUG=angleproject:2125
TEST=angle_unittests, angle_deqp_gles31_tests
Change-Id: I538e5ae1f0903c42e06cfce352124130f160649d
Reviewed-on: https://chromium-review.googlesource.com/620706
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
92996b0d
|
2017-08-17T10:39:02
|
|
D3D11: Fix masked clear unused RTV warning.
This benign warning would show up in the Debug layer messages. It was
causing the test to fail in some standalone configurations.
This fix implemented here is to keep 8 different pixel shaders, one
for each total count of render targets, up to the implementation max.
BUG=angleproject:2025
Change-Id: I826ddae686ddb1cfad17879644152be2f6125c5b
Reviewed-on: https://chromium-review.googlesource.com/617512
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
46d6c2b6
|
2017-08-16T14:58:36
|
|
D3D: Make some helper methods static.
A couple index data manager and Renderer helper methods didn't need
to modify state or use any local member variables, so we can make
them static to be more accessible from other parts of the code.
BUG=angleproject:1156
Change-Id: I522d0dfd396f0fed7b5087e90dcb70a0f9502a75
Reviewed-on: https://chromium-review.googlesource.com/616782
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a836b466
|
2017-08-16T14:58:35
|
|
D3D11: Allow no-op pixel shader output.
On HLSL 4+, the debug runtime issues a warning when we try to render
to a color output in the pixel shader that doesn't have a matching
render target bound. This happens when doing a depth or stencil-only
render pass. We only need to bind a dummy output in HLSL 3, so tighten
the workaround we had in place and fix the warning for D3D11.
BUG=angleproject:2025
Change-Id: I16ba9e907f3a6e59afff93fe4583d084cbdf42c5
Reviewed-on: https://chromium-review.googlesource.com/617268
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b18c33e9
|
2017-08-16T12:37:51
|
|
Remove arraySize in TInterfaceBlock
This patch intends to remove the field 'arraySize' in TInterfaceBlock.
The field 'arraySize' in TInterfaceBlock is redundant because:
1. If the interface block has instance name, it is recorded as one
symbol as a whole, and its array size is recorded in the TType
of the symbol.
2. If the interface block doesn't have instance name, its members are
recorded separately, and it cannot be declared as an interface block
array.
This patch can make the implementation of Geometry Shader easier
when we set array size to the built-in interface block 'gl_in' and other
user-defined unsized input interface blocks during the compilation of a
Geometry Shader.
BUG=angleproject:1941
TEST=angle_end2end_test
Change-Id: I9a51aab9b8f9ea7e88af157505c092426cee7e6e
Reviewed-on: https://chromium-review.googlesource.com/615759
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
41ac68e7
|
2017-06-06T12:16:58
|
|
Select viewport index in GS for multi-view instanced rendering
The patch extends the OutputHLSL and DynamicHLSL translators to
select the viewport index in the geometry shader and propagate
the ViewID variable to the fragment shader.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I9e344a7521e2e1137e6eb38d0bfecea8bece778f
Reviewed-on: https://chromium-review.googlesource.com/608967
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e86db0c1
|
2017-08-11T15:24:58
|
|
Remove unused vectorSize() from OutputHLSL
BUG=angleproject:2125
TEST=compile
Change-Id: Ideae29190bd9cd56ecdc0ea31a078d4460413540
Reviewed-on: https://chromium-review.googlesource.com/616145
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
9b8dfb80
|
2017-08-16T15:07:15
|
|
Support more display extensions in DisplayNULL.
BUG=602737
Change-Id: I05987f4806e179eb50f4b86533c88831e359b9e8
Reviewed-on: https://chromium-review.googlesource.com/617514
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c0094eca
|
2017-08-16T14:16:24
|
|
Validate the combination of type and internal format for CopyTextureCHROMIUM.
Sized internal formats with invalid types would pass validation because
GetInternalFormatInfo does not validate that the type is a valid upload
type for the given internal format.
TEST=conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html
BUG=angleproject:1932
Change-Id: I07fd542630a4508383263c1fe3d7a80c037d7ca0
Reviewed-on: https://chromium-review.googlesource.com/617508
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
200e2d23
|
2017-08-14T13:19:54
|
|
D3D11: Force level zero render target in FL 9.3.
Since 9.3 doesn't support non-zero level render targets, we should
always be getting the level zero render target. Previously the code
would never try creating a render target when level zero mode was
not enabled, but this can break if we refactor the code.
Fixes a bug in a future patch which creates the storage as a render
target instead of as a non-renderable texture first.
BUG=angleproject:2107
Change-Id: Ib2732a35e586bc4956d07783325429e8edeb0c66
Reviewed-on: https://chromium-review.googlesource.com/614120
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e59000c3
|
2017-08-16T11:13:49
|
|
Skip CopyTextureTestES3.ES3FloatFormats in Win/Intel/OpenGL.
Possibly due to a driver bug.
BUG=angleproject:1932
Change-Id: I8b10457681c5635b89f898aab09fa244b3bf7d9c
Reviewed-on: https://chromium-review.googlesource.com/616817
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5c00d0db
|
2017-08-07T10:06:59
|
|
D3D11: Handle Clear* commands for side-by-side framebuffers
The patch modifies Clear11 to add support for clearing the color, depth
and stencil attachments to a side-by-side framebuffer:
- Color attachments are cleared through the command ClearView.
- Depth and stencil attachments are cleared by drawing a quad on top of
each view.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I5753a72222216a48cd954eb1219bc58f968735fc
Reviewed-on: https://chromium-review.googlesource.com/603853
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
eef80e40
|
2017-08-11T14:44:57
|
|
Do not implicitly enable the scissor test for side-by-side FBOs
The patch modifies the ANGLE_multiview specification so that issuing a
Draw* command has undefined results for side-by-side FBOs if the scissor
test is disabled. Also, clearing a side-by-side framebuffer will result
in clearing the whole content of the specified buffers if the scissor
test is disabled.
StateManagerGL and FramebufferGL are modified to address this change in
the spec.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I39a87d297944f12769dee2ead17b508ac22053db
Reviewed-on: https://chromium-review.googlesource.com/612283
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
599555b5
|
2017-08-15T11:12:42
|
|
Clean up createSamplerSymbols
The arrayOfStructsSize parameter can always be determined from the
TType object, so there's no need to pass it to
TType::createSamplerSymbols. Furthermore, it's more natural to do
the processing for arrays of structs in TType::createSamplerSymbols,
rather than in the TStructure::createSamplerSymbols helper it is
using.
Also rename some parameter names, and move createSamplerSymbols
implementation to Types.cpp.
This refactoring change prepares for implementing arrays of arrays.
BUG=angleproject:2125
TEST=angle_end2end_tests
Change-Id: I3f8bec711c0434677ebcf3741abb4f910c36dba3
Reviewed-on: https://chromium-review.googlesource.com/614883
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
28839f03
|
2017-08-15T11:38:16
|
|
Fix handling sampler arrays in structs as function arguments on HLSL
Some of the code was written under the mistaken assumption that
createSamplerSymbols would be splitting sampler arrays in structs into
individual samplers. Fix it by adding array dimensions to sampler
parameters generated by createSamplerSymbols when necessary.
BUG=angleproject:2128
TEST=angle_end2end_tests
Change-Id: Ie622c777d78ae65b5629d12e0ae574800c1b78f5
Reviewed-on: https://chromium-review.googlesource.com/614882
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
afa75152
|
2017-07-21T13:11:29
|
|
Refactor More Validation Error Messages
Replace many error string literals with variables existing in
ErrorStrings.h
BUG=:angleproject:1644
Change-Id: If5665a6787a1fa8d789811d774711c3705dfb0ab
Reviewed-on: https://chromium-review.googlesource.com/598588
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
aadc8f37
|
2017-08-11T17:34:44
|
|
Implement the CPU fallback for CopyTextureCHROMIUM on OpenGL.
BUG=angleproject:1932
Change-Id: Iabc1a3e361d66313dc16bf19b392402b7836f8a5
Reviewed-on: https://chromium-review.googlesource.com/612562
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
79f7104a
|
2017-08-14T16:43:43
|
|
Validate that transform feedback buffers are not mapped.
Mapping a buffer that is bound for active transform feedback or starting
transform feedback on a mapped buffer is undefined behaviour under
section 2.10.3.2 of the ES 3.0 spec "Effects of Mapping Buffers on Other
GL Commands". The spec suggests that an error is generated in this
case.
TEST=ES3MapBufferRangeTest.TransformFeedback
BUG=754000
Change-Id: I613defd07cc1a4348682d992cda61cc898936720
Reviewed-on: https://chromium-review.googlesource.com/614483
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
78ed6cd9
|
2017-08-09T16:19:00
|
|
Rename VariableInfo files to CollectVariables
Files that only have a single function should be named consistently
with the function. Unnecessary include in CallDAG.h is removed.
BUG=angleproject:2068
TEST=angle_unittests
Change-Id: I27d55a766b9eb66fcfd1e0a2341a2843bb9dc5bb
Reviewed-on: https://chromium-review.googlesource.com/608368
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d93cd6c2
|
2017-08-11T16:32:41
|
|
Refactor the CPU copy texture code into a function in renderer utils.
BUG=angleproject:1932
Change-Id: Iab79f2a09c2d8a85d2a9dde34acf4d2151072c2b
Reviewed-on: https://chromium-review.googlesource.com/612561
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d7487b13
|
2017-08-09T15:45:13
|
|
Clean up checking variable packing limits
This encapsulates expanding struct variables inside the VariablePacker
class that packs variables according to the GLSL ES spec.
The variable expansion step is no longer run twice when checking
uniforms against the max uniforms limit.
BUG=angleproject:2068
TEST=angle_unittests
Change-Id: I012ddaa249f71c0a78d937c98007c61352e64888
Reviewed-on: https://chromium-review.googlesource.com/608367
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9b11ea4f
|
2017-07-11T16:50:08
|
|
Gather UniformBlock and ShaderStorageBlock separately
Refactor InterfaceBlocks since it only stands for UniformBlock before
ES31. But for ES31, uniform block and shader storage block both belong
to interface block.
This CL will add GetUniformBlocks and GetShaderStorageBlocks in
ShaderLang.h. Meanwhile, keep GetInterfaceBlocks which can return all
the interface blocks together.
BUG=angleproject:1951
Change-Id: I3036e201aadfbd490575ed03538c81bcc3793ff3
Reviewed-on: https://chromium-review.googlesource.com/582546
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0d671c9a
|
2017-08-10T16:41:52
|
|
Verify occlusion query correctness in a multi-view context
The patch adds tests to verify that an occlusion query correctly tracks
whether any fragments pass the depth test for any of the views as
according to the ANGLE_multiview extension.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ia85bac4935192554a337c27fad110fbb7f56cf8a
Reviewed-on: https://chromium-review.googlesource.com/609961
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
82ef774b
|
2017-08-08T17:44:58
|
|
Save layered multiview end-point's arguments into attachment's state
Handle glFramebufferTextureMultiviewLayeredANGLE calls by saving the
arguments into the attachment's state.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I9d7c0e00fe9e917ad2f9d903a39f30b2546dc7a3
Reviewed-on: https://chromium-review.googlesource.com/609960
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5116d687
|
2017-08-02T12:39:44
|
|
ES31: Add missing initialization of MAX_*_SAMPLES on D3D
This patch intends to add missing initialization of MAX_INTEGER_SAMPLES,
MAX_DEPTH_TEXTURE_SAMPLES and MAX_COLOR_TEXTURE_SAMPLES required for
multisampled textures on D3D backends.
Since MAX_*_SAMPLES cannot be queried directly from D3D APIs, these
values are initially assigned a large value in renderer11.cpp and
re-calculated in context::updateCaps().
This patch also adds tests to ensure these values are greater than 1
as required in OpenGL ES3.1 spec.
BUG=angleproject:1592
TEST=angle_end2end_tests
Change-Id: Iba586e311d40d2da4569816902f96e40bbd6935b
Reviewed-on: https://chromium-review.googlesource.com/597411
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
936ea325
|
2017-08-04T20:58:06
|
|
Clip to framebuffer when copying to cube map.
In D3D cube map textures use different code paths than regular 2D
textures. Add outside-the-framebuffer handling to those paths, same as
was added the other paths earlier.
Change-Id: I51896a07f73ae8d761cd9d7b18c68076f38d32a3
Reviewed-on: https://chromium-review.googlesource.com/603050
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c2157a09
|
2017-08-09T18:52:59
|
|
HLSL: Fix handling nested structs in interface blocks
Make sure that the type definitions for nested structs get added to
the HLSL header, and that the std140 padding information gets
recorded. Prior to this trying to use nested structs in interface
blocks crashed.
BUG=angleproject:2084
TEST=angle_end2end_tests
Change-Id: If57870285c6feaf0c2e462f98f50f20730dd6470
Reviewed-on: https://chromium-review.googlesource.com/608449
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d23bcd8e
|
2017-08-01T23:40:17
|
|
Add cube map to read-outside-framebuffer tests.
Cube maps go through a separate path on D3D so we need to test them.
BUG=angleproject:1815
Change-Id: Ifb7a85d7e2750f25bce382fdd7a00062d23b3573
Reviewed-on: https://chromium-review.googlesource.com/597213
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ed049ab4
|
2017-06-30T17:38:33
|
|
HLSL: Fix handling arrays of structs in interface blocks
In HLSL output, structs in interface blocks are not accessed directly.
Rather they get copied from the D3D constant buffer to static structs
in the shader header. Fix generating the copy/init code in the header
to handle arrays of structs correctly.
BUG=angleproject:2084
TEST=angle_end2end_tests
Change-Id: If66bd5be3f3570ba591b8b62c5284c06fc83dd45
Reviewed-on: https://chromium-review.googlesource.com/608448
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
47bb4933
|
2017-08-03T11:52:13
|
|
Implement CopyTexture functions for uint texture formats.
BUG=angleproject:1932
Change-Id: I6474237cbb82b59a0bd40c1b9b9e2455952d3755
Reviewed-on: https://chromium-review.googlesource.com/600510
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
553590a5
|
2017-07-31T16:40:39
|
|
Modify attribute divisor for multiview instanced rendering
If the ANGLE_multiview extension is used in a program, the number
of geometry instances is the number of instances passed to
glDraw*Instanced times the number of views in the program. The attribute
divisor has to be multiplied by the number of views so that the correct
attributes are gathered in the input assembly stage.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I960d6313c02e3eb83f7a07e72b9bcac072c736f4
Reviewed-on: https://chromium-review.googlesource.com/593953
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0f7714ec
|
2017-08-07T15:13:42
|
|
Refactor FramebufferMultiviewTest.cpp
The patch refactors the tests to use the GL RAII objects from
gl_raii.h. It also specifies a correct internal format for a texture 2D
array object in one of the tests so that the texture is
color-renderable.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ie536ffeb5b2f2594f5273b795fe786a5042f63d4
Reviewed-on: https://chromium-review.googlesource.com/603610
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
85d624a5
|
2017-08-07T13:42:33
|
|
Fix null pointer dereference in redeclaration error message
When a function parameter name conflicts with another, the pointer
returned to ParseContext will be null.
BUG=chromium:745242
TEST=angle_unittests
Change-Id: Ie53bb06b0c6660e382d85aeda41f3a1b7df5a917
Reviewed-on: https://chromium-review.googlesource.com/603368
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
6a6199b4
|
2017-06-05T17:30:55
|
|
Add multiview performance tests
The patch adds two tests to measure the performance of the
ANGLE_multiview extension implementation:
1) The first test renders onto two views by issuing thousands of state
changes and draw calls. The aim of the test is to stress the CPU.
2) The second test renders onto two views by drawing with one draw call
half a million quads with multiple attributes per vertex. The attributes
are passed to the fragment shader where they are used for computing the
color. The aim of the test is to stress the GPU's memory system.
The patch also extends the ANGLEPerfTest's functionality to only run
the benchmark if the necessary extensions are available.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ic63d54a69fdddb72439eeeb1951a500fb1247e95
Reviewed-on: https://chromium-review.googlesource.com/597630
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
a438f4e7
|
2017-08-04T13:42:39
|
|
Fix some style issues
BUG=angleproject:2123
Change-Id: Ic3c70c7148297662d4fd9e08edcd208f5a1cc885
Reviewed-on: https://chromium-review.googlesource.com/601370
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
880683b1
|
2017-04-12T16:21:55
|
|
ES31: Add glGetProgramResourceiv API
Add API entry and validation checks(GLES 3.1 section 7.3).
Add the first 2 interfaces(PROGRAM_INPUT and PROGRAM_OUTPUT) implementation.
BUG=angleproject:1920
TEST=angle_end2end_tests:ProgramInterfaceTestES31.*
Change-Id: I50057f7b99f4dc7c23ca87fa9b797ca424f66e3d
Reviewed-on: https://chromium-review.googlesource.com/475075
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ccb9fad3
|
2017-07-28T15:54:09
|
|
Initialize ANGLE_multiview in the D3D11 renderer
The patch enables the ANGLE_multiview extension in the D3D11 renderer
and determines the maximum number of available views.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I56e434a14c61df3d6ab66c2863ce783fcdcc5a93
Reviewed-on: https://chromium-review.googlesource.com/595507
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
3c76d59f
|
2017-08-03T08:47:56
|
|
Check GCC for __has_attribute
The __has_attribute macro was one of improvements in GCC 5 release.
See https://gcc.gnu.org/gcc-5/changes.html.
This checks to make it work with older GCC.
BUG=angleproject:2119
Change-Id: I751249b9d028d1322829bebc1ca8d423edf27057
Reviewed-on: https://chromium-review.googlesource.com/599152
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
188fd5f6
|
2017-08-04T20:44:08
|
|
Skip TimerQueriesTest.TimeElapsedMulticontextTest on all AMD
Was skipped on Windows and Mac before, now seen flaky also on Linux.
BUG=angleproject:1541
Change-Id: Ic993eeadb104989416607271ce100b02aea7cecc
Reviewed-on: https://chromium-review.googlesource.com/603087
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
90d874fc
|
2017-08-04T17:33:35
|
|
Skip couple TextureRectangleTest tests on Window NVIDIA OpenGL
TextureRectangleTest.TexStorage2D and TextureRectangleTest.TexImage2D
failed on NVIDIA Quadro P400, previously disabled on Linux.
BUG=angleproject:2122
TBR=cwallez@chromium.org
Change-Id: I471dc040ed51a0e4588cfaab7d1c4c46e69932d5
Reviewed-on: https://chromium-review.googlesource.com/602779
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
53440f39
|
2017-08-03T20:01:26
|
|
Skip couple TextureRectangleTest tests on Linux NVIDIA OpenGL
TextureRectangleTest.TexStorage2D and TextureRectangleTest.TexImage2D
failed on NVIDIA Quadro P400.
BUG=angleproject:2122
TBR=cwallez@chromium.org
Change-Id: I72d1755881cb06ef4363266b368ada5ca954f6dd
Reviewed-on: https://chromium-review.googlesource.com/601348
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
13c0dd46
|
2017-07-04T18:27:01
|
|
Add texture rectangle extension.
This is needed to support binding IOSurfaces to textures on OSX. This
commit adds support in the API and tests, but didn't need to implement
compiler changes as it already supported ARB_texture_rectangle.
Implementation of CHROMIUM_opy_texture for rectangle texture and the
spec are left for follow-up commits.
Change-Id: I45c66be763a9d3f6f619640f9f95f39b05c70867
Reviewed-on: https://chromium-review.googlesource.com/559106
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
acd20b1f
|
2017-08-02T16:39:27
|
|
Refactor BlitGL to potentially hold multiple blit shader types.
BUG=angleproject:1932
Change-Id: I4d19892852540797c765916131498c96511b4f55
Reviewed-on: https://chromium-review.googlesource.com/600509
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d2d0b30e
|
2017-08-03T12:27:28
|
|
angle: Fix chrome/win-on-linux build after https://chromium-review.googlesource.com/466106.
Bug: 495204
Change-Id: I6d460a9e6d110be4697e3cc1685e16395276dd42
Reviewed-on: https://chromium-review.googlesource.com/600258
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a0bcc50b
|
2017-08-02T14:45:58
|
|
TextureD3D: Mark images clean after binding a surface.
By marking the images as dirty after binding a surface, the surface would
be cleared when it was first read or written to.
BUG=750813
BUG=angleproject:1635
Change-Id: Ic0d1c985151d55a0f1a1af67bb1edc4b0e8f2063
Reviewed-on: https://chromium-review.googlesource.com/598731
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
38abd6c9
|
2017-08-02T13:27:45
|
|
Skip all EGLContextCompatibilityTest tests on debug builds.
BUG=angleproject:2121
Change-Id: Ie7d09aca453753577dd26dcd35b1c743dbfcfce2
Reviewed-on: https://chromium-review.googlesource.com/598495
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6c58b062
|
2017-08-01T13:44:25
|
|
Add histograms for the program cache.
Also includes some tracking of if a cache hit comes from a binary
inserted after a Link call, or sourced from the external disk cache.
Chromium-side CL: https://chromium-review.googlesource.com/c/592151/
BUG=angleproject:2118
Change-Id: I80eefd203d8ce31d1ac03dd1a36459d3581128f5
Reviewed-on: https://chromium-review.googlesource.com/590689
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c2493e38
|
2017-06-20T17:16:25
|
|
Add DrawElementsPerf test
This is a follow-up CL for
https://chromium-review.googlesource.com/c/544634/.
In this commit, we add drawElements perf test for d3d9, d3d11 and
OpenGL. Specially, we test DrawElements with unchanged index buffer
every frame and changed index buffer every frame. This is also a
preparation for further remove IndexRange in validation.
Paste a set of data (repeated 30) for reference on Intel skylake
Win10 desktop.
DrawElementsPerfBenchmark.Run/d3d11:
mean: 13186.1666667, stddev: 200.479605502,
truncated mean: 13192.5416667, stddev: 156.284190704
DrawElementsPerfBenchmark.Run/d3d11_index_buffer_changed:
mean: 43.6, stddev: 4.02160830183,
truncated mean: 43.5833333333, stddev: 2.97092391166
BUG=angleproject:1393
TEST=angle_perftests
Change-Id: I94bd181aa2b4515df1affc79f591f5db399feac3
Reviewed-on: https://chromium-review.googlesource.com/585981
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f276e25
|
2017-05-30T12:05:52
|
|
Handle multiview Draw* calls
Because the ANGLE_multiview extension uses instancing to multiply
geometry for each view, Draw* calls with an active multiview program
have to be handled in the follwing way:
1) Convert non-instanced Draw calls to their instanced versions.
2) Multiply the number of instances in an instanced Draw call by the
number of views.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I19119e8178f70336e5dbb1e5eed0658b5b9f43d7
Reviewed-on: https://chromium-review.googlesource.com/593657
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Martin Radev <mradev@nvidia.com>
|
|
df7d7c9e
|
2017-07-31T09:34:04
|
|
Split varyings into input and output varyings in compiler
This patch intends to split all vector<Varying> into two vectors
to store input and output varyings separately in the compiler.
This patch is a base of implementing the built-ins, inputs and
outputs of a geometry shader to ANGLE GLSL compiler. Unlike the
vertex shaders (their outputs are varyings) and fragment shaders
(their inputs are varyings), the inputs and outputs of geometry
shaders are all varyings, so we need two vector<Varying> to store
them correctly.
BUG=angleproject:1941
Change-Id: I9e8cc16045d5e29e9a80a09dc31b33a7ae39b345
Reviewed-on: https://chromium-review.googlesource.com/593347
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|