|
5dae57b0
|
2017-07-14T16:15:55
|
|
Save side-by-side function arguments into attachment's state
Handle glFramebufferTextureMultiviewSideBySideANGLE calls by saving the
arguments into the attachment's state.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Idc5441d673b48640f47415b07b2854fbdf566c8d
Reviewed-on: https://chromium-review.googlesource.com/574915
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
137032d9
|
2017-07-13T10:11:12
|
|
Validate ANGLE_multiview end-points
The patch adds validation for the ANGLE_multiview end-points
and propagates the calls to the unimplemented stubs in Context.
The patch also removes the
glFramebufferTextureMultiviewSideBySideRobustANGLE end-point
because the size of the viewport offsets buffer can trivially
be computed from the number of views.
BUG=angleproject:2062
Change-Id: I9a10bc00c19825e586d3df2750fabea4daf5ef8f
Reviewed-on: https://chromium-review.googlesource.com/573861
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
222c517f
|
2017-07-19T16:15:42
|
|
Control Debug layers in ANGLE_platform_angle.
Debug layers seem to be a universal thing among functional back-ends.
D3D, OpenGL and Vulkan all need some kind of controls for debugging,
so it seems to make sense to make this control part of the base
extension.
Default the extension to EGL_DONT_CARE, which allows the back-end to
have a lot of flexibility in terms of implementation.
Also enable the extension in the D3D11 and OpenGL back-ends, and set
the extension to enabled for angle_end2end_tests.
Remove EGLVulkanEXTTest since it no longer tests anything not tested
in the base ANGLETest class.
BUG=angleproject:2086
Change-Id: I52d8170effd1846b9afbe6e4052c699fe5cb0de8
Reviewed-on: https://chromium-review.googlesource.com/578369
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a59a1c1e
|
2017-07-12T15:46:26
|
|
D3D11: Consolidate shader state application.
This consolidates all the state changes for shaders into
StateManager11.
BUG=angleproject:2052
Change-Id: I64dc3af5b0f1459442369e09f93a9ca8ce3232b3
Reviewed-on: https://chromium-review.googlesource.com/531796
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
95107bc8
|
2017-07-12T15:46:25
|
|
D3D11: Consolidate primitive topology application.
BUG=angleproject:2045
Change-Id: Ie1deac50a534ee748518d9ec5e6f749f3c78b53d
Reviewed-on: https://chromium-review.googlesource.com/531795
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6dd06eac
|
2017-07-19T13:47:55
|
|
Give StateManager11 internal dirty bits.
Intead of checking a series of bools and special variables, organize
the state application into a switch with internal dirty bits. This
should be faster for no-op, and makes it clear where we have to
further optimize the state update to pre-compute certain values.
BUG=angleproject:1156
Change-Id: I8eca8716340499085afa170ff45f7788e84fecab
Reviewed-on: https://chromium-review.googlesource.com/531794
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b3f26b9e
|
2017-07-19T15:07:41
|
|
Add a zero-filled scratch buffer to Context.
We need this in a few places for handling resource init.
Centralize this in the context so we don't have to recreate
and re-fill a large zero buffer.
BUG=angleproject:2107
Change-Id: Icf9ce417e7ee3498f03e47741dfff89e81b49519
Reviewed-on: https://chromium-review.googlesource.com/576057
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ab918821
|
2017-07-14T17:03:42
|
|
Clamp point size to maximum point size from the API on NVIDIA
NVIDIA OpenGL drivers have a bug where the point size range is being
reported incorrectly - it appears the core GL driver incorrectly gives
the range for smooth points, when it should be giving the range for
aliased points. Clamp the actual point size to the maximum point size
reported from the API so that the GLES spec is followed.
The same workaround seems to be necessary also on Android. The issue
was revealed by the trybots, and has not been fully diagnosed though.
The newly added test fails on AMD OpenGL.
As a part of this change, the existing tests in PointSpritesTest are
refactored to use gl_raii.
BUG=chromium:740560
TEST=angle_end2end_tests
Change-Id: Ic4a66c9ea16f5ae76beb3bb6577716d10c3b226e
Reviewed-on: https://chromium-review.googlesource.com/574598
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3860b6c0
|
2017-07-19T16:17:24
|
|
Fix arrays of structs containing samplers as parameters on HLSL
In HLSL output, samplers are never passed to functions as arrays, but
rather sampler array arguments are expanded into single sampler and/or
texture arguments. This applies also when the samplers were inside
arrays of structs in the original source.
BUG=angleproject:2103
TEST=angle_end2end_tests
Change-Id: Ib1fcba0c0ab3da592d15272eb56a03c3e536f349
Reviewed-on: https://chromium-review.googlesource.com/576041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
191381fd
|
2017-04-11T13:59:04
|
|
ES31: Add glGetProgramResourceLocation 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: I5128cda43b0d9176c910b036cdc76bf37757670e
Reviewed-on: https://chromium-review.googlesource.com/474212
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
24fe74c1
|
2017-07-06T16:56:50
|
|
ES31: Query multisampled texture binding id
Add GL_TEXTURE_BINDING_2D_MULTISAMPLE option to State.cpp to
query binding id of GL_TEXTURE_2D_MULTISAMPLE.
BUG=angleproject:1590
TEST=angle_deqp_gles31_tests.exe --deqp-case=dEQP-GLES31.functional.state_query.integer.texture_binding_2d_multisample_*
Change-Id: I86b24f00ac4e75eb0e2986f7cf2eb108aae14674
Reviewed-on: https://chromium-review.googlesource.com/561196
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a5e693af
|
2017-07-13T16:07:26
|
|
Make unique id counter a member of TSymbolTable
This makes unique id counting thread-safe.
BUG=angleproject:624
TEST=angle_unittests
Change-Id: Ie0f2c7e574470b39750d37d2181c790bc874b275
Reviewed-on: https://chromium-review.googlesource.com/570419
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e5285d29
|
2017-07-14T16:23:53
|
|
Handle ANGLE_multiview state queries
The patch extends glGetIntegerv and glGetFramebufferAttachmentParameteriv
logic to handle the new tokens from the ANGLE_multiview extension.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ide145279cd7b58cd03502458d7d3a1a0f5e9e86d
Reviewed-on: https://chromium-review.googlesource.com/573780
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6170bef8
|
2017-07-18T15:51:14
|
|
Fix validation of querying GL_FRAGMENT_SHADER_DERIVATIVE_HINT.
This enum is queryable in ES3 or with the GL_OES_standard_derivatives
extension.
BUG=2110
Change-Id: I688777bcc65468d796333a24223d24cc66170788
Reviewed-on: https://chromium-review.googlesource.com/576156
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9c335865
|
2017-07-18T11:51:38
|
|
Refactor StateManager11 for dirty bits.
This will make iterating over an internal set of dirty bits simpler.
This also reorganizes the framebuffer invalidation logic a bit,
including how the sample count is pulled from the Framebuffer.
BUG=angleproject:1156
Change-Id: I79dbcd11704ab52568c587d836af9c1bff1d2d1f
Reviewed-on: https://chromium-review.googlesource.com/529708
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ab4be84f
|
2017-07-18T11:23:07
|
|
Add newlines when writing original shader source to shader debug output.
Previously, the entire original shader would end up being written to a single
line, not very readable.
Change-Id: I8cdfd498bb47395da2bd11c3d3b2eecf266c914e
Reviewed-on: https://chromium-review.googlesource.com/576064
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
282847e9
|
2017-07-12T14:11:01
|
|
Clean up recording declarations in OutputHLSL
Relying on the AST conforming to known limitations makes the code for
recording referenced varyings easier to understand.
BUG=angleproject:2104
TEST=angle_end2end_tests
Change-Id: Icdcd7602f6ed54fa439f989bf256e261627d11f5
Reviewed-on: https://chromium-review.googlesource.com/568018
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dde78e8c
|
2017-05-22T14:13:27
|
|
ES31: Implement Vertex Attrib Binding on OpenGL
This patch intends to implement Vertex Attrib Binding on OpenGL
back-ends:
1. Add supports for updating vertex attributes by Vertex Attrib
Binding APIs.
2. Refactor the process of updating vertex attribtues in class
VertexArray to make it easier to implement this feature.
BUG=angleproject:1593
TEST=dEQP-GLES31.functional.vertex_attribute_binding.*
Change-Id: I800e61518c552b94b84c415895ad31668b0a84b2
Reviewed-on: https://chromium-review.googlesource.com/510251
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ffb35f64
|
2017-07-14T18:01:07
|
|
Fix broadcasting gl_FragColor at the end of main
Previously, the broadcast step would not get run in case the main()
function returned before reaching its end. Now the broadcast step is
put in a separate function that wraps main() if needed, so that it
gets run even if the main() function in the original shader source
returns in the middle.
DrawBuffersTest is refactored to use ANGLETest::drawQuad() instead of
calling glDrawArrays directly.
BUG=angleproject:2109
TEST=WebGL conformance tests, angle_end2end_tests
Change-Id: Id5f05094e816df03bc9c8ca62b60de914072682c
Reviewed-on: https://chromium-review.googlesource.com/574597
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3e5695d1
|
2017-07-17T15:21:14
|
|
Fix standalone OSX warnings
BUG=
Change-Id: I447900488559622108c0da12a352c88218f9ddc6
Reviewed-on: https://chromium-review.googlesource.com/575201
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d2e87929
|
2017-07-12T15:42:34
|
|
Enable Haiku in platform-specific headers.
1. src/common/platform.h updated to define ANGLE_PLATFORM_POSIX on Haiku.
2. include/EGL/eglplatform.h updated to add stubs typedefs for
platform-specific primitives for Haiku.
Change-Id: I28775e909ad9cabec1c474ff4fe0a241eb05d6a1
Reviewed-on: https://chromium-review.googlesource.com/573022
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cf42a7e8
|
2017-07-12T16:49:58
|
|
Add ANGLE_multiview end-points and tokens
The patch adds the new end-points and tokens introduced
by ANGLE_multiview without implementing them.
BUG=angleproject:2062
Change-Id: I9be175263ab54b4f6d7537f05505b87ad763ee2d
Reviewed-on: https://chromium-review.googlesource.com/570051
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4cff8d62
|
2017-07-06T14:54:09
|
|
ES31: TexParameter{if} validation for TEXTURE_2D_MULTISAMPLE on OpenGL
When setting parameters by TexParameter{if} for TEXTURE_2D_MULTISAMPLE,
an INVALID_ENUM error is generated if target is TEXTURE_2D_MULTISAMPLE,
and pname is any sampler state from table 20.11. An INVALID_OPERATION
error is generated if target is TEXTURE_2D_MULTISAMPLE, and pname
TEXTURE_BASE_LEVEL is set to a value other than zero.
BUG=angleproject:1590
TEST=angle_deqp_gles31_tests.exe --deqp-case=dEQP-GLES31.functional.texture.multisample.negative.texture*
Change-Id: I5d71731c11fb6e114a57e753e439e180695a7c79
Reviewed-on: https://chromium-review.googlesource.com/560607
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f68463f
|
2017-07-13T12:42:15
|
|
Clean up inserting variables to symbol table
This makes the TSymbolTable interface cleaner and prepares for making
unique id counting thread-safe.
BUG=angleproject:624
TEST=angle_unittests
Change-Id: Ief99c9fc777603de28ba1517e351bc8a00633590
Reviewed-on: https://chromium-review.googlesource.com/570418
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
daaff1cc
|
2017-07-05T18:03:26
|
|
Set correct symbol ids when referring to GLSL built-ins
The symbol ids are fetched from the symbol table. A new utility
function is added to make this more convenient.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: I780430e3386f6599503d8290c568ca9bc9cad147
Reviewed-on: https://chromium-review.googlesource.com/559535
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c7ba85c9
|
2017-07-14T22:17:01
|
|
TexutreD3D: Only update storage level if it exists.
This was causing an assertion failure in updateStorageLevel when the
storage didn't contain the requested level. Gate the call behind an
isValidLevel check.
TEST=conformance/misc/type-conversion-test.html
BUG=angleproject:1815
Change-Id: Iadf46d232d5a117ae1ae74c6e71677b1e06a5321
Reviewed-on: https://chromium-review.googlesource.com/572705
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a0016b7f
|
2017-07-14T14:30:46
|
|
Check depth-stencil attachment sample count.
Currently we would only check for the color attachment sample count,
which could return incorrect results for depth or stencil-only
Framebuffers.
BUG=angleproject:2108
Change-Id: I378349c91c0139ee507d88fa6a36a86234fea0d4
Reviewed-on: https://chromium-review.googlesource.com/571064
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b50ccd36
|
2017-07-06T17:09:58
|
|
Use FindMainBody to retrieve node of main()'s body
The patch addresses code duplication in cases in which main()'s body node
has to be retrieved from the AST.
TEST=angle_unittests
Change-Id: I0ccee41821a5ecb2cdf09f5a928b178d6c037587
Reviewed-on: https://chromium-review.googlesource.com/561521
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
318f9aa5
|
2017-05-17T17:47:28
|
|
Initialize ANGLE_multiview caps and workaround state
The patch checks whether ANGLE_multiview can be supported in the OpenGL
renderer, updates the caps and adds a workaround field to enable
multiview support through the NV_viewport_array2 extension.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I99dae10564db7bcca41d7624f8de272c1d996e09
Reviewed-on: https://chromium-review.googlesource.com/567934
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4cafb867
|
2017-07-05T14:05:06
|
|
Sanitize AST nodes created by UseInterfaceBlockFields
Don't add the same node pointer to the AST more than once, and assign
the right symbol ids to symbol nodes.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: I3f00e9234245fe4b81a2388df3f83e13c4c24856
Reviewed-on: https://chromium-review.googlesource.com/559534
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
cca63f2e
|
2017-07-14T11:08:41
|
|
Fix compilation error in RobustResourceInitTest.cpp
The patch fixes a compilation bug caused from having local variable
names clash with the variables names from a parent scope.
BUG=angleproject:1815
Change-Id: I3d23faaafdea9be503da99512b204d7a50a3b228
Reviewed-on: https://chromium-review.googlesource.com/571000
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
c43be720
|
2017-07-13T16:22:14
|
|
Implement ANGLE_program_cache_control extensions.
This will give the browsers the ability to control the cache size,
query and populate the contents, and trim cache contents on memory
pressure.
BUG=angleproject:1897
Change-Id: I6edaa7d307b890223db98792d5b074e4a7fdfaa4
Reviewed-on: https://chromium-review.googlesource.com/563606
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bc58515e
|
2017-06-23T15:42:17
|
|
ES31: Add 'buffer' qualifier support in shader
This change added 'buffer' qualifier support in shader which
corresponds to ESSL 3.1 spec, session 4.3.7 'Buffer Variables'.
BUG=angleproject:1951
TEST=angle_unittests:BufferVariablesTest
Change-Id: I2ecb5317d5ea9d378a60b03f86bdae04dbd89e9f
Reviewed-on: https://chromium-review.googlesource.com/534960
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c5af8ba6
|
2017-07-11T12:18:31
|
|
D3D11: Make sure to resolve the storage for CopyTexImage3D.
TextureD3D_3D::copySubImage worked around missing functionality in D3D11
for copying a framebuffer directly to a texture storage but didn't handle
the case of a texture storage already existing. This caused the image to
have out-of-date data before the new data was copied into it. Simply copy
the data from the storage back into the image before performing the copy
from the framebuffer and then copy back to the storage afterwards.
TEST=conformance2/textures/misc/copy-texture-image-webgl-specific.html
BUG=angleproject:1815
Change-Id: I308d6a1d3ecbc738f7d0e232bece433e6b353638
Reviewed-on: https://chromium-review.googlesource.com/567199
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d90b214f
|
2017-07-12T15:33:35
|
|
D3D11: If an image is dirty, copy it to the storage before copying from a FB.
If a storage already existed, it may have old data in it. Check if the
image is dirty and copy the initialized memory into the storage before
copying data from the framebuffer.
TEST=conformance/textures/misc/copy-tex-image-and-sub-image-2d
BUG=angleproject:1815
Change-Id: Ic69c5519b2e09e4b62025b1bf413d2a71a4a2afb
Reviewed-on: https://chromium-review.googlesource.com/568410
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d7ceaa16
|
2017-07-12T17:46:35
|
|
Remove TIntermSymbol::setId
The only place it was being used was when parsing array declarators.
The declarator only needs to be added to the AST when the variable
has successfully been declared, so this usage was not necessary.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I05b8851cfdebc9253c9fda8b12733f23da604ca6
Reviewed-on: https://chromium-review.googlesource.com/569160
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d178aa46
|
2017-07-13T14:03:22
|
|
Fix attachment validation bug
Passing COLOR_ATTACHMENTm, where m is greater or equal to
MAX_COLOR_ATTACHMENTS, to a FramebufferTexture* function should
generate an INVALID_OPERATION instead of an INVALID_VALUE error.
BUG=angleproject:2106
TEST=angle_end2end_tests
Change-Id: I99045defcbe5eb2afefac1b45062ee4245f50dd3
Reviewed-on: https://chromium-review.googlesource.com/569966
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
34bc315d
|
2017-03-29T14:56:01
|
|
ES31: Implement multisampled Textures for D3D part.
Implement TexStorage2DMultisample api for d3d part.
BUG=angleproject:1590
TEST=angle_end2end_tests --gtest_filter=TextureMultisampleTest*
TEST=angle_deqp_gles31_tests --deqp-case=dEQP-GLES31.functional.texture.multisample.negative.fbo_*
Change-Id: Icbfba45b9c2965af02b54dd4060b7b49970cb74b
Reviewed-on: https://chromium-review.googlesource.com/457161
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3ec75686
|
2017-07-05T17:02:55
|
|
Collect AST transform utilities to a separate file
Collect static functions that are used to create nodes in AST
transformations into a single file.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I6f87422988fa088f2f4b48986e378a2909705cb7
|
|
84db5733
|
2017-07-13T08:00:02
|
|
Merge "Fix non statically used fragment input structs on HLSL"
|
|
e2a728aa
|
2017-07-12T20:39:35
|
|
Merge "Validate uniforms and attributes name conflicts when linking"
|
|
d5fbb8b0
|
2017-07-12T19:29:47
|
|
Merge "Add tests for the cache control extension."
|
|
59bc668c
|
2017-07-12T18:57:24
|
|
Merge "Validate the ReadPixels type and format for INVALID_ENUM."
|
|
caa5cda0
|
2017-06-15T21:14:03
|
|
Validate uniforms and attributes name conflicts when linking
Uniforms and attribute names have global scope, according to:
GLSL 1.017 sections 4.2.6, 4.3.3 and 4.3.4.
Thus, they can't have same names.
BUG=angleproject:2014
Change-Id: Ibeb064aca877e404a67b9e3e9b57a0cc42e86f9f
|
|
6fc8c9b9
|
2017-07-12T17:14:54
|
|
Merge "Validate that the mip level is not too large for CopyTextureCHROMIUM."
|
|
9dd5dbd8
|
2017-07-12T16:26:42
|
|
Merge "Link atomic counters to buffers"
|
|
293e114d
|
2017-07-11T13:51:05
|
|
Add tests for the cache control extension.
A first test verifies the validation of the extension, and a second
compiles a simple shader and checks the cache behaviour.
These tests don't currently run since the extension is disabled,
but they will start running as soon as we expose it.
BUG=angleproject:1897
Change-Id: Id4a76b83090712a267576069b711eeee29aa81dd
|
|
280ba991
|
2017-04-18T16:30:58
|
|
Validate the ReadPixels type and format for INVALID_ENUM.
GL_INVALID_ENUM should be generated if the type or format arguments were
not valid for any ReadPixels command. This validation should happen
before validating if the combination of format and type is valid.
TEST=conformance/reading/read-pixels-test
BUG=angleproject:2000
Change-Id: If49d69655f5ab0a3abbde58b49541c84249c1750
|
|
3847f94d
|
2017-07-12T11:17:28
|
|
Validate that the mip level is not too large for CopyTextureCHROMIUM.
When the mip level was greater than the maximum, it could cause an
out-of-bounds read when trying to query the Texture's size and format
later in the validation.
BUG=740426
Change-Id: Ibd6c977981e5f8b7368c161b7969d9e916c6095b
|
|
1636e1b9
|
2017-07-12T14:29:06
|
|
Merge "D3D11: Clip copy rect to the source framebuffer for copyTexImage3D."
|
|
f69ac0a5
|
2017-07-12T14:18:57
|
|
Merge "Add support for new internalformats in copyTextureCHROMIUM"
|
|
06a06f5e
|
2017-07-12T12:22:15
|
|
Fix non statically used fragment input structs on HLSL
Add static use information to struct fields that mirrors the static
use information on the struct itself. This way dynamically generated
HLSL doesn't need special handling for initializing fragment inputs
if they are structs.
This fixes a problem with the previous code where dynamically
generated HLSL ended up trying to initialize structs that are not
declared in the HLSL output because they were not being referenced.
BUG=angleproject:2104
TEST=angle_end2end_tests
Change-Id: I21283ce4fe26515d62d95e61f8155dc9a9b44cf1
|
|
2c7c4268
|
2017-07-12T07:53:34
|
|
Merge "Select viewport index in the GLSL/ESSL vertex shader"
|
|
eaef1e5e
|
2017-06-13T10:44:11
|
|
Link atomic counters to buffers
Gather counters from each shader and group them according the
layout qualifier 'binding' into each buffer.
BUG=angleproject:1729
TEST=angle_end2end_tests:AtomicCounterBufferTest
Change-Id: I8d0cd0d2bf65be37c035b0e1540481c8bee0bae4
|
|
b74c769a
|
2017-07-11T19:48:41
|
|
Merge "Fix Clear validation assert for default FBOs"
|
|
bc5d7add
|
2017-07-10T16:17:26
|
|
D3D11: Clip copy rect to the source framebuffer for copyTexImage3D.
TEST=conformance2/textures/misc/copy-texture-image-webgl-specific.html
BUG=angleproject:1815
Change-Id: I146fcf97a9c90f07d6270672c5e44e05602eecf8
|
|
315ecd20
|
2017-07-11T13:51:04
|
|
Add entry points for EGL_ANGLE_program_cache_control.
This instruments the plumbing for the extension without adding any
functionality or exposing the extensions string.
The extension text is also updated to reflect the new entry point
design and naming. Also this corrects a few mistakes.
This will be followed up by the tests (which won't run) and then
the extension functionality in ANGLE.
BUG=angleproject:1897
Change-Id: I5b009e23bc27da06b067375525bd6fc574027702
|
|
59c41597
|
2017-07-11T13:19:54
|
|
Fix Clear validation assert for default FBOs
The validation was iterating over maxDrawBuffers attachments when
default framebuffers only have one attachment. Use the framebuffer's
drawBufferCount instead.
Also adds a regression test in the form of a WebGLComptibility test for
glClearBuffer with the default framebuffer.
BUG=angleproject:2091
Change-Id: I07ee524db1fcb8a99dab4043248c0885100fd216
|
|
c39a19aa
|
2017-07-07T18:52:09
|
|
Select viewport index in the GLSL/ESSL vertex shader
The patch enables viewport selection for multiview rendering in the
GLSL/ESSL vertex shader through the use of the GL_NV_viewport_array2
extension. The AST is modified only for GLSL and ESSL to include the
viewport selection expression after ViewID_OVR's initialization.
BUG=angleproject:2062
TEST=angle_unittests
Change-Id: Iee05bb5a4b687ed53ddbdd466f1572227b1f0cde
|
|
37d96cce
|
2017-07-11T14:14:03
|
|
Fix accepting arrays as array indices
Previously, arrays were being incorrectly accepted as array indices.
This was because the isScalar() check only checked that the type was
not a vector or matrix, but still returned true for scalar arrays.
This patch changes the isScalar() check so that it returns false for
arrays. This makes usage of the term "scalar" more consistent in the
shader translator. Most of the code using isScalar() was compatible
with this change. Code in util.cpp that used to assume that isScalar()
doesn't care about arrayness is refactored to work with the new
behavior.
BUG=angleproject:2102
TEST=angle_unittests
Change-Id: I2a7f4c30fca7917d1099d0400efe3de859338b2a
|
|
56229f1b
|
2017-07-10T14:16:33
|
|
Remove TIntermediate::addConstantUnion
This includes asserts in TConstantUnion to reveal incorrect usage of
union - reading a different field of an union that has last been set
is undefined behavior in C++.
Existing issues with accessing incorrect fields of constant unions
are fixed.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: Idd6b7a871d73e2928f117a9348c92043612fab82
|
|
eb7f90fd
|
2017-07-07T17:25:23
|
|
Remove simple Intermediate.h functions
Most of the functions were just simple wrappers around node
constructors. Dropping this extra redirection makes the code simpler.
The fold() functions of node types are simplified, so that if the node
can't be folded the pointer to the node itself is returned. This makes
the code in ParseContext more straightforward.
The few remaining functions in Intermediate are a bit more complex so
they should be handled separately, but they'll be removed eventually
as well.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I85e11919d1f62358cfba9c011b841e32bc25402f
Reviewed-on: https://chromium-review.googlesource.com/563393
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
340b7b8b
|
2017-06-26T13:02:31
|
|
Add support for new internalformats in copyTextureCHROMIUM
This adds support in blit11::copyTexture for LUMA, LUMA_ALPHA, and ALPHA
formats as destinations. Added is handling for each case to match up
the corresponding shader. This required new premultiply and
unmultiply D3D11 shaders for some cases.
Changed copyTextureCHROMIUM validation to allow new formats.
Tests have been created to demonstrate using copyTextureCHROMIUM with
the new formats with default parameters, as well as with the
unpackPremultiply and unpackUnmultiply parameters.
BUG=:angleproject:2101
Change-Id: Id8cd303a46fe70710bc18172fc938552a6e4cfaf
|
|
70c95fa6
|
2017-07-07T18:45:49
|
|
Add function in MatchOutputCodeTest to find occurrence of a string
The patch adds a function in MatchOutputCodeTest to get the position
of the first occurrence of an expression in the translated output code.
This can help design more complicated tests like a test which checks
for the order of simple expressions.
BUG=angleproject:2062
TEST=angle_unittests
Change-Id: I1249d4762c247848c4eec64ecb8c1357b5e8d40a
Reviewed-on: https://chromium-review.googlesource.com/563659
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
88318b44
|
2017-07-05T14:39:01
|
|
Fall back to CPU copies for srgb textures in copy_texture_CHROMIUM.
The copied data is not supposed to have sRGB conversions applied to it
when written to the destination texture but an sRGB SRV is used by Blit11.
Instead of creating multiple sRGB and non-sRGB SRVs for textures, simply
fall back to the CPU copy path for this format for now.
Clip color channels that should not exist in the destination texture
formats in Image11::CopyImage. This works around issues with texture
formats with emulated channels.
TEST=conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8-rgb-unsigned_byte
TEST=conformance2/textures/image_bitmap_from_canvas/tex-2d-srgb8_alpha8-rgba-unsigned_byte
BUG=angleproject:1932
Change-Id: Ieeda3569f80d016fda781e7eb498acd3b97568d0
Reviewed-on: https://chromium-review.googlesource.com/559857
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ea39a223
|
2017-07-06T12:47:59
|
|
Simplify queueReplacement AST transform helper
queueReplacement is always called to replace the node that's currently
being visited in the traverser. The currently visited node can be
fetched automatically from the traversal path so it can be removed
from parameters of queueReplacement.
BUG=angleproject:2100
TEST=angle_unittests
Change-Id: I62ab6d1cd9c0d2b4c260af9f7c85bc156fb3f349
Reviewed-on: https://chromium-review.googlesource.com/562336
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
145e3cbb
|
2017-06-29T12:36:21
|
|
Enable Fuchsia in platform-specific headers.
Two simple fixes to make libANGLE compile for Fuchsia:
1. Added stubs typedefs for platform-specific primitives in
EGL/eglplatform.h for Fuchsia.
2. src/common/platform.h updated to define ANGLE_PLATFORM_POSIX on
Fuchsia.
Change-Id: I5f053de46632ac3f12bb93e57eeb94c3a34c867c
Reviewed-on: https://chromium-review.googlesource.com/563758
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
caf20889
|
2017-07-05T15:26:44
|
|
Fix incorrect quality level with depth-stencil buffer and MSAA configs.
Using a depth buffer format requires that the DSV and RTV have equal
quality levels; otherwise, the bound render target will discard writes.
BUG=angleproject:1917
Change-Id: Ife25b0a8958fa2b31b43a0d877d27e440916a9bf
Reviewed-on: https://chromium-review.googlesource.com/560716
Reviewed-by: Bryan Bernhart <bryan.bernhart@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
7ef89a42
|
2017-07-05T14:23:06
|
|
Expose ViewID_OVR impostor in the fragment shader
The OVR_multiview specification states that gl_ViewID_OVR is visible
at each pipeline stage. Previously to this patch the ViewID_OVR
impostor was declared only in the vertex shader and occurrences of
gl_ViewID_OVR in the fragment shader were not being handled. The
patch addresses the issue by declaring the ViewID_OVR variable as
a vertex output in the vertex shader and as a fragment input
in the fragment shader.
BUG=angleproject:2062
TEST=angle_unittests
Change-Id: I895953e81d3632d9bb873e8ac081fdf36f63f6b7
Reviewed-on: https://chromium-review.googlesource.com/559337
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e469de8a
|
2017-07-04T11:58:35
|
|
Refactor translator construction
The patch adds functionality to determine whether compiler output belongs
to the ESSL, GLSL, HLSL or Vulkan output family. The new functions can
be now used in other parts of the compiler in which code paths are
selected based on the compiler output.
BUG=angleproject:2062
TEST=angle_unittests
Change-Id: I45ccf63f0a756c60df47a679c2da9f60856d5918
Reviewed-on: https://chromium-review.googlesource.com/558990
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
cccf2b00
|
2017-07-05T14:50:54
|
|
Reorganize AST traversal utility code
Define TIntermTraverser and TIntermLValueTrackingTraverser in a
separate header file. hash() function is moved out from
TIntermTraverser as it is not related to the core functionality
of traversing and transforming ASTs.
Also reorganize some traversers to follow common conventions:
- Intermediate output is now in OutputTree.h/.cpp
- Max tree depth check is now in IsASTDepthBelowLimit.h/.cpp
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: Id4968aa9d4e24d0c5bac90dc147fc9f310de0184
Reviewed-on: https://chromium-review.googlesource.com/559531
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
a3e1f5f7
|
2017-07-06T13:21:07
|
|
Fix determining max combined uniform blocks
The previous code was using a completely unrelated variable to compute
max combined uniform blocks limit.
BUG=angleproject:2099
Change-Id: I9e56b50a92790f525dda50adca52b6ac5edfc95a
Reviewed-on: https://chromium-review.googlesource.com/562276
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
115fc55e
|
2017-07-05T17:11:06
|
|
Populate gl_InstanceID attribute information explicitly
While compiling ESSL1 shaders, with the compiler having both
SH_INITIALIZE_BUILTINS_FOR_INSTANCED_MULTIVIEW and SH_VARIABLES
set, variable collection terminates with an assertion failure. The reason
behind this is that SH_INITIALIZE_BUILTINS_FOR_INSTANCED_MULTIVIEW
adds gl_InstanceID to the AST to initialize the multiview builtins, but
the variable collection pass cannot find gl_InstanceID information in
the symbol table because the builtin is only available in ESSL 3.00 and
greater.
To address this the patch populates the gl_InstanceID attribute
information explicitly in the variable collection pass instead of
retrieving it from the symbol table.
BUG=angleproject:2062
TEST=angle_unittests
Change-Id: I5ecb9967ebe6658e956d17a2637090f9b685ef33
Reviewed-on: https://chromium-review.googlesource.com/559669
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4dd06d5d
|
2017-07-05T12:41:06
|
|
Set proper symbol ids on temporary symbol nodes
Temporary symbols used to all have symbol id 0. Now they get assigned
unique symbol ids. This makes it possible to keep track of them
according to the symbol id instead of their name, paving way to more
robust AST handling in the future.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I292e2e483cc39173524fd30a30b48c4c808442e5
Reviewed-on: https://chromium-review.googlesource.com/559335
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
69df242c
|
2017-07-05T12:42:31
|
|
Don't validate attribute types match for gl_VertexID and gl_InstanceID.
TEST=conformance2/glsl3/no-attribute-vertex-shader
TEST=deqp/functional/gles3/instancedrendering
BUG=angleproject:2012
Change-Id: I234410fabf6a8fcd87040c8085ca5dce82fa8932
Reviewed-on: https://chromium-review.googlesource.com/559851
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d7cd4ae5
|
2017-07-06T15:52:49
|
|
Check that function declarations don't use a reserved name
Reserved function names are now caught if the function is just
declared without being called in the shader source. Actually, function
calls don't need to be checked for reserved names, since that just
generates a redundant error message if function declarations are being
checked.
Includes some cleanup of ParseContext::checkIsNotReserved. It doesn't
need special handling of built-in symbols, as they are never passed to
the function.
BUG=chromium:739448
TEST=angle_unittests
Change-Id: I7115e1a7509626b5109b5c054c0704b0c3c19c58
Reviewed-on: https://chromium-review.googlesource.com/561457
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
40a1a37c
|
2017-07-05T16:46:21
|
|
Update gl2ext.h.
Also split the ANGLE modifications to the header into a separate
include.
BUG=angleproject:1897
Change-Id: I06cdcc26bab6bfa4b5bcb488c46558583cab5a83
Reviewed-on: https://chromium-review.googlesource.com/560020
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2b853636
|
2017-07-06T09:14:41
|
|
Skip CopyTexImage outside FB test on Win/Intel/GL.
BUG=angleproject:1815
Change-Id: Ia200cfe4ce4e6e3edd9ad2de841acbd1df49eb85
Reviewed-on: https://chromium-review.googlesource.com/561636
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1cbe9203
|
2017-06-15T18:13:31
|
|
Clip TextureGL::copyImage to framebuffer.
Ensure the underlying GL does not modify areas of the texture that
correspond to areas outside the framebuffer, as required for WebGL.
Also zero out the texture in WebGL mode because CopyTexImage must return
zeroes for areas outside the framebuffer.
Enable corresponding test.
BUG=angleproject:1815
Change-Id: I51b1221dbf0dda0952e2ae89ee6ac925b5d1d4a4
Reviewed-on: https://chromium-review.googlesource.com/551535
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
0cdf3683
|
2017-07-05T14:02:08
|
|
Do not propagate OVR_multiview extension directive
The patch fixes the bug of having the OVR_multiview extension directive
being outputted by the ESSL translator whenever the
SH_INITIALIZE_BUILTINS_FOR_INSTANCED_MULTIVIEW option is enabled. The
directive should not be outputted because the extension is emulated
through that option.
BUG=angleproject:2062
TEST=angle_unittests
Change-Id: I95d0a651ace6db42d496de08e774ec7ceca4c197
Reviewed-on: https://chromium-review.googlesource.com/558981
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
88f18d01
|
2017-07-05T14:24:04
|
|
Update eglext.h.
Also move the ANGLE modifications to eglext.h to a separate file
so we can more easily update and maintain the official header.
This is in preparation for adding the new program cache control
extension.
BUG=angleproject:1897
Change-Id: I3546e0c82f6536381301f62a115b42d580747a08
Reviewed-on: https://chromium-review.googlesource.com/559917
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
95ba174e
|
2017-06-22T20:38:04
|
|
Clip TextureD3D_2D::copyImage to framebuffer.
WebGL CopyTexImage needs to zero the part of the texture corresponding
to area outside the framebuffer, so we zero the whole texture then clip
the read area.
The clipping also avoids problems with code lower down that isn't prepared
for read areas not entirely within the framebuffer.
Enable corresponding test.
BUG=angleproject:1815
Change-Id: Ia7e0243ca72fa7c8f5bacda4d2022061d6a6d4f0
Reviewed-on: https://chromium-review.googlesource.com/551056
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
6cad5667
|
2017-06-14T13:25:13
|
|
Improve Debugging Strings
This change replaces common string literals used for
error messages with const string variables mapped in
a new header file.
Additionally, more validation for WebGL naming scenarios
has been added, along with unit tests.
BUG=:angleproject:1644
Change-Id: Icff44a456aa78221c6df12b0454a7cc147a7d26e
Reviewed-on: https://chromium-review.googlesource.com/535974
Commit-Queue: Brandon1 Jones <brandon1.jones@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fa36c330
|
2017-06-09T18:44:45
|
|
Clip FramebufferGL::readPixels to framebuffer.
In GL, ReadPixels() is allowed to modify memory that corresponds to
pixels outside the framebuffer.
In WebGL it must not do that, so clip the read area to the framebuffer.
Enable corresponding test.
BUG=angleproject:1815
Change-Id: I8113ae417dee7834e63498aec8291ce711bd7513
Reviewed-on: https://chromium-review.googlesource.com/536434
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
088031e6
|
2017-07-03T15:59:33
|
|
HLSL: Disambiguate between struct function parameters
Structs with different names but identical members are treated as
ambiguous by the native HLSL compiler when looking up user-defined
functions. Add the struct name to the function name to work around
this limitation.
BUG=chromium:731324
TEST=angle_end2end_tests
Change-Id: Ie80ac0f1374bc5ac05dfebef3f94e2da7cdfc581
Reviewed-on: https://chromium-review.googlesource.com/558929
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
50c562de
|
2017-06-06T14:43:30
|
|
Re-land: Don't expose non-conformant multisampling modes on GL
Re-landing with a fallback for failed internal format queries to work
around issue seen on Shield TV. Also fixed wrong handling of integer
RG formats in isRequiredRenderbufferFormat.
Some NVIDIA GL drivers expose non-conformant multisampling modes. The
conformance of multisampling modes can be queried using the extension
NV_internalformat_sample_query. Use it to filter out the
non-conformant modes from the modes that are exposed by ANGLE.
The MAX_SAMPLES value and other similar values stored in caps also
need to be lowered to match the maximum number of samples exposed
for required formats.
There seems to be an NVIDIA driver bug related to querying
STENCIL_INDEX8 multisample format. Work around this by querying
DEPTH24_STENCIL8 instead.
There's also some confusion around whether RGB9_E5 should be
renderable. Once the floating point texture extensions got rolled
into the core GL spec, it was eventually made clear that RGB9_E5
is intended not to be renderable. The extension specs that predate
float textures in the core spec do suggest that it would be
renderable, but in practice drivers that advertise the extension
strings don't reliably implement RGB9_E5 as renderable. Solve this
by disabling it as a renderable format and adding an explanatory
comment.
BUG=chromium:682815
TEST=angle_end2end_tests,
dEQP-GLES31.functional.state_query.internal_format.renderbuffer.*
Change-Id: I727f03045a1534d6764b571e6d839243705d25b3
Reviewed-on: https://chromium-review.googlesource.com/551957
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a5822b8a
|
2017-06-30T12:55:10
|
|
Temporarily disable the GPU program cache.
We should give the app layer more control over the cache before we
enable it, to save on memory usage in Chrome.
BUG=angleproject:1897
Change-Id: I532c05c3042cb0a2d9c62f362f25d6064042ca2c
Reviewed-on: https://chromium-review.googlesource.com/558370
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
27a60631
|
2017-06-30T15:12:01
|
|
Re-apply UBO binding workaround on program save.
The workaround which was previously defined to only apply on load
also seems to affect save on some AMD drivers.
BUG=angleproject:1637
BUG=angleproject:1897
Change-Id: Ia01a1420a484f3c2682ce97eaab18baccfb66a50
Reviewed-on: https://chromium-review.googlesource.com/558008
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b12040c4
|
2017-06-27T14:20:45
|
|
Clean up redundant initialization of gl_Position
In case gl_Position is statically used in the input shader, setting
the INIT_OUTPUT_VARIABLES flag will initialize gl_Position. Avoid
redundant initialization of gl_Position in this case.
Includes cleaning up memory management in InitOutputVariables_test:
all the pool-allocated variables will be freed at the end of each test
when the memory pool is cleared, so manual memory management is not
needed.
Also includes making the zero node check used in unit tests stricter
so that the tests are more reliable and moving it to
ShaderCompileTreeTest.h so that it can be reused in the future.
BUG=angleproject:2092
TEST=angle_unittests
Change-Id: I323a0a094afa6cea95c8a64e681d9fc485137423
Reviewed-on: https://chromium-review.googlesource.com/549418
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0fb0864e
|
2017-07-04T15:07:23
|
|
Fix inverted validation check for glClearBuffer.
The validation would generate the correct errors to satisfy tests but
would skip clears.
TEST=conformance2/reading/format-r11f-g11f-b10f.html
TEST=conformance2/reading/read-pixels-from-fbo-test.html
TEST=conformance2/rendering/clearbuffer-sub-source.html
TEST=deqp/functional/gles3/fbocolorbuffer/clear.html
TEST=deqp/functional/gles3/fboinvalidate/sub.html
TEST=deqp/functional/gles3/framebufferblit/default_framebuffer_*.html
BUG=angleproject:1954
Change-Id: I0f220d06f98b630be5d27c7ffb1837d4ef29e0ac
Reviewed-on: https://chromium-review.googlesource.com/558786
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
739bd8ba
|
2017-06-19T21:02:27
|
|
Clip FramebufferD3D::readPixels to framebuffer.
In GL, ReadPixels() is allowed to modify memory that corresponds to
pixels outside the framebuffer.
In WebGL it must not do that, so clip the read area to the framebuffer.
Enable corresponding test.
BUG=angleproject:1815
Change-Id: Ie99401a2102c352ffb1193a57aa66a5b96c184aa
Reviewed-on: https://chromium-review.googlesource.com/540556
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
e145def0
|
2017-06-22T12:49:12
|
|
Propagate correct type to the lvalue in an output variable initializer
With the SH_INIT_OUTPUT_VARIABLES option enabled, vertex and fragment
shader outputs get initialized with zeros at the beginning of main.
However, previous to this patch the lvalues in the binary expression did
not receive the correct type. This can lead to incorrect modifications
of the AST in subsequent stages or incorrect output code from the
translator. The patch addresses the issue by copying the type
information from the symbol table.
BUG=angleproject:2081
TEST=angle_unittests
TEST=angle_end2end_tests
Change-Id: I9e062376bcfad7d57b637a5248caebce1c9a0688
Reviewed-on: https://chromium-review.googlesource.com/544982
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ff526f14
|
2017-06-30T12:26:54
|
|
Fix variable vs. function name conflict in HLSL output
GLSL ES spec accepts the case where an initializer of a variable calls
a function with the same name as the variable. The HLSL compiler
doesn't accept that. Work around this limitation in the HLSL compiler
by disambiguating user-defined functions from variables with a
different prefix.
BUG=angleproject:2095
TEST=angle_end2end_test, angle_unittests
Change-Id: I41b32a3fcc6fd4c548e8dc3aa680d1b07fcf8719
Reviewed-on: https://chromium-review.googlesource.com/557872
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
77891c0a
|
2017-06-23T16:30:17
|
|
Fix wrong assignment of maxUniformVectors in GLSL compiler
This patch intends to fix a bug in ANGLE GLSL compiler.
In TCompiler::Init(resources), we should initialize maxUniformVectors by
resource.maxComputeUniformComponents / 4 when we attempt to initialize a
compiler for compute shader instead of resource.maxFragmentUniformVectors.
BUG=angleproject:2083
Change-Id: I4901f71ef5ac4f5770e2d5f8ee21786fcf19fbca
Reviewed-on: https://chromium-review.googlesource.com/545190
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
690057da
|
2017-06-30T14:49:05
|
|
Remove incorrect cast of loop condition in GLSL parsing
Loop condition node may be a declaration node when coming from the
parser, so it shouldn't be casted to TIntermTyped*.
BUG=chromium:738281
TEST=angle_unittests under CFI
Change-Id: Ie98befc4b02b1261949049ddff49404d73db8478
Reviewed-on: https://chromium-review.googlesource.com/558083
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
69056a1e
|
2017-05-18T11:14:50
|
|
Declare and initialize ViewID_OVR and InstanceID
The patch modifies the vertex shader's AST to declare and initialize
the global variables ViewID_OVR and InstanceID. Every occurrence of
gl_ViewID_OVR gets replaced by ViewID_OVR and initialized in main
with a value dependent on gl_InstanceID and the number of views.
To guarantee correct results for instanced rendering, each occurrence
of gl_InstanceID is replaced with InstanceID and initialized similarly.
BUG=angleproject:2062
TEST=angle_unittests
Change-Id: I48be688605b5af869bc370758e70ccc209ea4419
Reviewed-on: https://chromium-review.googlesource.com/548596
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
802a73ba
|
2017-06-29T18:20:25
|
|
[ANGLE] Add missing dependency on exe_and_shlib_deps
BUG=chromium:593874
Change-Id: I025f31e422cf3eb5db1730710cca26587c283839
Reviewed-on: https://chromium-review.googlesource.com/557350
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
8ff73235
|
2017-06-29T19:11:52
|
|
Skip couple UniformBufferTest31 on Linux AMD
Broken by https://chromium-review.googlesource.com/c/522874/
on Linux Release (AMD R7 240) build 2431
BUG=angleproject:1897
TBR=jmadill@chromium.org
Change-Id: I4c1f99a839f215b4c284ae1667d0a3b0774281c7
Reviewed-on: https://chromium-review.googlesource.com/557259
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
834dd263
|
2017-06-29T17:19:37
|
|
Skip WebGLReadOutsideFramebufferTest.CopyTexSubImage2D on Win Intel
Fails on Win10 Intel HD 530 and 630 bots.
BUG=angleproject:1815
TBR=fjhenigman@chromium.org
Change-Id: I27227cfa882f448e8b2de76e16dfe0dfe91703d2
Reviewed-on: https://chromium-review.googlesource.com/556759
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
360daeef
|
2017-06-29T10:36:19
|
|
Add platform hook for program cache updates.
This will need to be matched with a corresponding browser-side CL.
It will enable writing out binary shaders to disk.
BUG=angleproject:1897
Change-Id: I443281086050b9711b92a034cf37f808dd919007
Reviewed-on: https://chromium-review.googlesource.com/542963
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|