|
1d2c41d6
|
2016-10-19T16:14:46
|
|
Implement GL_EXT_sRGB_write_control for GL.
BUG=angleproject:1547
BUG=655247
Change-Id: I3f04ddc7032e4a47eb21ff3b8586c5b47415bb64
Reviewed-on: https://chromium-review.googlesource.com/400958
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0e3aee3f
|
2016-10-27T12:56:38
|
|
Check precision qualification for all declarations
Precision qualification is now checked properly also for declarations
that don't have qualifiers.
BUG=angleproject:1574
TEST=angle_unittests
Change-Id: I3d186df0763e071614c1da9a355a6f6fefdc8091
Reviewed-on: https://chromium-review.googlesource.com/403949
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2018c0ba
|
2015-12-08T11:48:51
|
|
Add a EGL_ANGLE_d3d_texture_client_buffer extension.
Allows creation of pbuffers from D3D texture objects.
BUG=540829
BUG=angleproject:1144
Change-Id: If8ea717ef011608cd01357c217837133d726d3ea
Reviewed-on: https://chromium-review.googlesource.com/316804
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9f4583dd
|
2016-10-19T11:19:51
|
|
Add Platform Detection and Tighten the workarounds on Intel GPU
This patch intends to add platform detection to ANGLE and tighten
the driver bug workarounds on Intel GPU.
BUG=angleproject:1548
Change-Id: I1ea57e174f688a175da8b658de4337295037fcab
Reviewed-on: https://chromium-review.googlesource.com/399914
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
13389b66
|
2016-10-16T11:48:18
|
|
Split TIntermDeclaration from TIntermAggregate
The new class TIntermDeclaration is now used for struct, interface
block and variable declarations. TIntermDeclaration nodes do not have
a type - rather the type is stored in each child node. The types may
differ in case the declaration is a series of array declarators with
mismatching sizes.
TIntermAggregate is still used for function calls, function
prototypes, function parameter lists and invariant declarations.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I0457188f354481470855f61ac1c878fc2579b1d1
Reviewed-on: https://chromium-review.googlesource.com/400023
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
3feb3ff5
|
2016-10-26T10:57:45
|
|
Fix handling of null data pointers for robust tex image calls.
BUG=angleproject:1354
Change-Id: I596ebd6d8d4d500942eeb31629113b0686933531
Reviewed-on: https://chromium-review.googlesource.com/403537
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
449a8030
|
2016-10-26T08:05:54
|
|
MacroExpander: bump expansionCount before peeking for "("
BUG=658555
Change-Id: I578b8aff37a116fd7b2b387388311a27bb8a2809
Reviewed-on: https://chromium-review.googlesource.com/403848
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
79a92bea
|
2016-10-25T13:17:18
|
|
Disable the emulateTinyStencilTextures workaround in FL 10.0.
UpdateSubresource and CopySubresource cannot copy to depth stencil textures
in feature level 10.0.
BUG=angleproject:1572
Change-Id: Ic9f8cbfb2c69de8502da7df34f1c5935144a9387
Reviewed-on: https://chromium-review.googlesource.com/402554
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5d0a30bf
|
2016-10-25T18:46:25
|
|
Fix warnings in TransformFeedbackTest.
Introduced in cd2ed608719fbf.
BUG=angleproject:1570
Change-Id: I71ef8a06e379eca853e7729863976e868066df95
Reviewed-on: https://chromium-review.googlesource.com/403313
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
51c4768b
|
2016-10-25T15:50:14
|
|
Fix a couple global variable warnings.
The DynamicHLSL code was using global strings to find stubs.
The math code was also using pow in a global, which can be replaced
with a simple bit shift.
BUG=angleproject:1459
Change-Id: Idb0602ab7640c221843385b0a0a4cfecd5fd3a26
Reviewed-on: https://chromium-review.googlesource.com/403289
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c5fa0ad5
|
2016-10-25T21:36:54
|
|
Revert "Remove invariant qualifier for input in fragment shader"
This reverts commit d842a6b2014447db0676c8a3f5a5e9ae4ce67d9a.
Because of WebglConformance_conformance_glsl_bugs_invariant_does_not_leak_across_shaders failure
BUG=chromium:659326
Change-Id: I0602e24f3d34ccf852cda865f673c5c7634f82a6
Reviewed-on: https://chromium-review.googlesource.com/403230
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
af7f301f
|
2016-10-24T18:29:09
|
|
Handle nullptr mSwapChain in SwapChain11::getSyncValues
There are 6 crashes in SwapChain11::getSyncValues on crash server.
I looked at one of them and it is due to a nullptr mSwapChain
which appears to be a valid state that is handled in other
SwapChain11 methods.
This change adds a similar check / returning an error to
SwapChain11::getSyncValues.
BUG=angleproject:1402
Change-Id: I9c17b884704b8aaaddf2d802911cd0ca961ae0b4
Reviewed-on: https://chromium-review.googlesource.com/402613
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
|
|
81c6b577
|
2016-10-19T14:07:52
|
|
Implement GL_EXT_texture_sRGB_decode for GL.
BUG=angleproject:1383
BUG=655247
Change-Id: I409b12e1ae418530576de5ec9ce26b7be5d91650
Reviewed-on: https://chromium-review.googlesource.com/400807
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
de318b26
|
2016-10-25T16:18:25
|
|
Disallow samplers as ternary operands
Quoting the ESSL 1.00 spec section 4.1.7: "Except for parameters to
texture lookup functions, array indexing, structure field selection,
and parentheses, samplers are not allowed to be operands in
expressions."
ESSL 3.00 has a similar passage related to opaque types.
Validate this correctly. Compatibility risk should be low, since
attempting to use samplers in ternary operators was already failing
before this in most cases.
BUG=angleproject:1551
TEST=angle_unittests
Change-Id: I6cbb536f473ba9674d558b14a458f3799f9c7c9c
Reviewed-on: https://chromium-review.googlesource.com/402694
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d842a6b2
|
2016-08-29T10:05:27
|
|
Remove invariant qualifier for input in fragment shader
ESSL and GLSL are not consistent on invariant matching in vertex shader
and fragment shader. See the following rules:
ESSL 1.00 - input and output must match
ESSL 3.00 - only output, inputs cannot be declared as invariant.
GLSL 1.10.59 - does not exist
GLSL 1.20.8 - input and output must match
GLSL 1.30.10 - input and output must match
GLSL 1.40.8 - input and output must match
GLSL 1.50.11 - input and output must match
GLSL 3.30.6 - input and output must match
GLSL 4.00.9 - input and output must match
GLSL 4.10.6 - input and output must match
GLSL 4.20.11 - input can omit invariant
GLSL 4.30.8 - input can omit invariant
GLSL 4.40.9 - input can omit invariant
GLSL 4.50.5 - input can omit invariant
Since GLSL 4.20, invariant qualifier description were changed to:
"
Only variables output from a shader (including those that are then input
to a subsequent shader) can be candidates for invariance. This includes
user-defined output variables and the built-in output variables. As only
outputs need be declared with invariant, an output from one shader stage
will still match an input of a subsequent stage without the input being
declared as invariant.
"
It's not very clear if input in fragment can be declared as invariant.
Mesa driver disallows use of input declared as invariant in fragment
shader, while other drivers may allow it.
In ESSL 3.00, inputs cannot be declared as invariant. ANGLE should
follow this rule for GLSL >= 4.20.
BUG=chromium:639760
Change-Id: I7f7a07401381ac970488b69752f6d50d4f19d31f
Reviewed-on: https://chromium-review.googlesource.com/400005
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
4c5ff005
|
2016-10-25T09:32:17
|
|
ProgramGL: correctly copy sampler uniforms
BUG=angleproject:1570
Change-Id: Ic39f5f1ff8f565b2876fdfc8d738a50f24b911b6
Reviewed-on: https://chromium-review.googlesource.com/402930
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
cd2ed608
|
2016-10-25T09:44:01
|
|
TransformFeedbackTest: Give enough vertex attributes
BUG=angleproject:1570
Change-Id: I6d148c6ce22f3b8266257b25c7f5b676a13c5c92
Reviewed-on: https://chromium-review.googlesource.com/402931
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
1c2faacb
|
2016-10-25T11:11:34
|
|
OSXWindow: Suppress a flaky crash when running end2end tests
For some reason while running the end2end tests, when the application
gets an NSAppKitDefinedEventType with subtype
NSApplicationActivateEventType (and of course window = 0), a null
dereference happens. The crash seems timing dependent, since the root
cause was not found and this is test code, add an ugly suppression.
BUG=angleproject:1570
Change-Id: I3af2188ddae8ca3c0a4458e15a8af01e66215e3f
Reviewed-on: https://chromium-review.googlesource.com/403049
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
0bdfe4c8
|
2016-10-25T09:52:33
|
|
VertexAttributeTest: don't copy too much data in the buffer
BUG=angleproject:1570
Change-Id: I199bb88042c3926cb05e27494bb6af9b2666cd00
Reviewed-on: https://chromium-review.googlesource.com/402932
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
fb80eaf0
|
2016-07-25T13:39:30
|
|
Enable GenerateMipmapBaseLevel test on NVIDIA
The issue is no longer reproducible on newest drivers.
TEST=angle_end2end_tests
Change-Id: I18728877ed9b936ecb469c44e3dae185ab4f08d3
Reviewed-on: https://chromium-review.googlesource.com/362950
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
2cc85b3b
|
2016-08-05T16:22:53
|
|
Add support for images in the compiler
The patch adds support for GLSL ES 3.1 image types.
Internal format layout qualifiers for images are added.
Support for the readonly and writeonly qualifiers are added. The other
memory qualifiers are omitted as to make the patch simpler.
Tests are added which check for correct and incorrect usage of images,
internal format layout and memory qualifiers.
BUG=angleproject:1442
TEST=angle_unittests
TEST=angle_end2end_tests
Change-Id: Ie4d3acb2a195de11b405ad54110a04c4c1de0b7e
Reviewed-on: https://chromium-review.googlesource.com/378855
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
2a3dc0f0
|
2016-10-24T17:09:40
|
|
Roll buildtools.
This should fix the weird gn problem with git cl format.
BUG=None
Change-Id: I35d4cf110bda302b6336ef412613a80fcde8208b
Reviewed-on: https://chromium-review.googlesource.com/402253
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3b5ffe5c
|
2016-10-24T15:47:16
|
|
Fix ASSERT in Buffer11::PackStorage::copyFromStorage.
This ASSERT was being overly restrictive, when the code would work
correctly when reading from system memory storage as well as staging.
BUG=angleproject:1555
Change-Id: Ib45185d8c127a1fb2ce54db9e96fe41d68d5ff2e
Reviewed-on: https://chromium-review.googlesource.com/402269
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2a1e8b6b
|
2016-10-24T12:21:03
|
|
Add documentation on cherry-picking changes to release branches.
BUG=none
Change-Id: I9ac61281dbfbde6dc285bc687734f6a0fb67034b
Reviewed-on: https://chromium-review.googlesource.com/402230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7efe747c
|
2016-10-07T16:12:46
|
|
D3D11: Fix style in the entire back-end.
BUG=None
Change-Id: I32cbcd4daa1f386654ea5e8f0a25d8635b5df731
Reviewed-on: https://chromium-review.googlesource.com/402016
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a284f2ff
|
2015-08-07T16:49:07
|
|
Add stubs for EGL_EXT_swap_buffers_with_damage.
BUG=512090
Change-Id: I9413d6f5c13b9ea59ab9c923dc6c5d157f344166
Reviewed-on: https://chromium-review.googlesource.com/291652
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f0173153
|
2016-10-17T09:05:03
|
|
Forbid shared and packed layouts in WebGL
WebGL 2.0 spec section 5.25 specifies this.
BUG=angleproject:1542
TEST=WebGL 2 conformance tests
Change-Id: Ic5758bc0e767a8e6dd032e42c0a69bcae06381c4
Reviewed-on: https://chromium-review.googlesource.com/399682
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
250ae902
|
2016-10-20T16:32:03
|
|
Remove unused function getInterpolationString
BUG=
Change-Id: I4135f4ae939043efa8ccab65ef1a5eb441370828
Reviewed-on: https://chromium-review.googlesource.com/401673
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
cf255eac
|
2016-10-20T11:39:09
|
|
Implement robust the GetIntegeri_v entry point.
BUG=angleproject:1354
Change-Id: I408d0e78064aa4e493d6ca66565384ac585040e1
Reviewed-on: https://chromium-review.googlesource.com/401400
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
496c02df
|
2016-10-20T11:38:11
|
|
Implement robust the GetBufferPointerv entry point.
BUG=angleproject:1354
Change-Id: Id7dd8438224adb1e2729bcdc18a306e5dfc83a3b
Reviewed-on: https://chromium-review.googlesource.com/401399
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
0a9661f2
|
2016-10-20T10:59:20
|
|
Implement robust the GetInternalFormativ entry point.
BUG=angleproject:1354
Change-Id: Ib25fe4905fdd6c532c67de1d4ca1ba37932f8e0b
Reviewed-on: https://chromium-review.googlesource.com/401149
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
635671dc
|
2016-10-20T07:57:36
|
|
Fix pruning empty declarations from loop headers
Empty declarations are possible in loop init expressions. Make
PruneEmptyDeclarations take this into account.
BUG=angleproject:1550
TEST=angle_unittests
Change-Id: If407babf9b6f7a26dfcf73ff345493d3e2af3f9a
Reviewed-on: https://chromium-review.googlesource.com/401147
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
14ac0d77
|
2016-10-20T16:17:46
|
|
Remove break after a return in switch block
BUG=
Change-Id: I5f36d5c51aa3eb6d498ff21733e67de418c26386
Reviewed-on: https://chromium-review.googlesource.com/401164
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9e77ce35
|
2016-09-27T17:05:44
|
|
Prevent fallback on default branch for case EbtSamplerCubeShadow
BUG=angleproject:1549
Change-Id: I8f003257b6f39282cb52ccdbacb73860ab37c919
Reviewed-on: https://chromium-review.googlesource.com/390271
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
ebebe1c7
|
2016-10-14T12:01:31
|
|
Implement robust GetBufferParameter entry points.
BUG=angleproject:1354
Change-Id: I979c8768975380dba7f0b256b2729b2147ff7984
Reviewed-on: https://chromium-review.googlesource.com/399042
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
6899b87f
|
2016-10-14T11:30:13
|
|
Implement the robust GetActiveUniformBlockiv entry point.
BUG=angleproject:1354
Change-Id: I2e8051910f50dc040f6be4922142364d36788c4e
Reviewed-on: https://chromium-review.googlesource.com/399041
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c52f6f1a
|
2016-10-14T10:18:00
|
|
Implement remaining robust TexImage entry points.
BUG=angleproject:1354
Change-Id: Ied04fa28387f3bef9f2bead7b60878b1a353c8bd
Reviewed-on: https://chromium-review.googlesource.com/399039
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2186c385
|
2016-10-14T10:54:54
|
|
Implement robust GetQuery entry points.
BUG=angleproject:1354
Change-Id: Ic1aaab56d2313a19fb0362f280dbfbf804fb3fcc
Reviewed-on: https://chromium-review.googlesource.com/399040
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
b2792db1
|
2016-10-07T11:21:09
|
|
translator: Reject invalid combination of compile flags
ADD_AND_TRUE_TO_LOOP_CONDITION breaks loop unrolling because LoopInfo
expects the loop condition to have been validated to be "symbol < constant"
and stayed that way.
BUG=chromium:653454
BUG=chromium:653694
Change-Id: I2057fde3a308623bd2dd7571ee878dd42b1fdac3
Reviewed-on: https://chromium-review.googlesource.com/395306
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
e9e573bd
|
2016-10-14T17:08:57
|
|
Fix typo EGL_PLATFORM_ANGLE_TYPE_NULL_ANGLE vs EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE
Change-Id: I192c4223e3fdefb7cecf96b50bc70529519ca650
Reviewed-on: https://chromium-review.googlesource.com/399678
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
2e43dbb7
|
2016-10-14T12:27:35
|
|
Implement remaining robust Get entry points.
BUG=angleproject:1354
Change-Id: I204962a7178d47a43034d0213c81b82d8f6a25be
Reviewed-on: https://chromium-review.googlesource.com/399043
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c0281d46
|
2016-10-17T15:19:01
|
|
HandleAllocator: make HandleRange inclusive.
Previously part of the code saw it as [begin, end) while others saw it
as [begin, end].
BUG=angleproject:1052
BUG=chromium:656485
Change-Id: Id8e9e26b167e02a07dfc5341569df53a14d0623d
Reviewed-on: https://chromium-review.googlesource.com/399565
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
4db7ded5
|
2016-10-13T12:23:11
|
|
Change comma nodes to TIntermBinary
Comma nodes always have just two parameters. If there's an expression
with several commas in the middle, it's parsed as a tree of comma
operations. It makes more sense to represent it as a binary node
rather than an aggregate node.
After this patch, TIntermAggregate is still used for function
prototypes, function parameter lists, function calls, and variable and
invariant declarations.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: I66be10624bf27bcf25987b4d93958d4a07600771
Reviewed-on: https://chromium-review.googlesource.com/397320
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
13e4d21b
|
2016-10-13T11:50:27
|
|
Add switch and case node support to intermediate output
After this all node types are printed correctly in intermediate
output.
BUG=angleproject:1544
TEST=shader_translator -i
Change-Id: I5c120b0ff69f66b00db88e8423a1c698d339af22
Reviewed-on: https://chromium-review.googlesource.com/397319
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
0b031061
|
2016-10-13T14:30:04
|
|
Implement robust GetVertexAttrib entry points.
BUG=angleproject:1354
Change-Id: Ic71392555ae4212c4144bc67d7c5e53874af4d53
Reviewed-on: https://chromium-review.googlesource.com/398198
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
336b1470
|
2016-10-05T16:37:55
|
|
Split TIntermFunctionDefinition from TIntermAggregate
This makes the code easier to understand. Function definition nodes
always have just two children, the parameters node and the function
body node, so there was no proper reason why they should be aggregate
nodes.
As a part of this change, intermediate output is modified to print
symbol table ids of functions so that debugging function id related
functionality will be easier in the future.
After this patch, TIntermAggregate is still used for function
prototypes, function parameter lists, function calls, variable and
invariant declarations and the comma (sequence) operator.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: Ib88b4ca5d21abd5f126836ca5900d0baecabd19e
Reviewed-on: https://chromium-review.googlesource.com/394707
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
138ec92f
|
2016-10-10T17:38:55
|
|
Fix and re-enable EGLSyncControlTest.SyncValuesTest
It looks like the problem was not making the OS Window visible.
It turned out the previous version of the test succeeded only
when I ran angle_end2end_tests.exe with
--gtest_filter=EGLSyncControlTest.SyncValuesTest and failed
when I ran all tests, especially with --single-process-tests.
I tested the modified version of the test which repeated the
measurement 50 times and couldn't get a reliable test execution
until I figured out that back buffers were queueing and not
swapping successfully with the window being invisible.
This version works reliably when running all angle_end2end_tests.exe
on my workstation and on a test laptop, both running Windows 10,
with or without --single-process-tests.
BUG=angleproject:1402
Change-Id: I97764a86b20119cc586ea2a4fd1d94558c4e737e
Reviewed-on: https://chromium-review.googlesource.com/397739
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
|
|
7835b525
|
2016-10-08T11:20:17
|
|
Reland "Add workaround for unused std140 and shared uniform blocks on MacOS"
On some Mac drivers with shader version 4.1, they will
treat unused std140 and shared uniform blocks' members as inactive. However,
WebGL2.0 based on OpenGL ES3.0.4 requires all members of a named uniform block
declared with a shared or std140 layout qualifier to be considered active.
The uniform block itself is also considered active.
This workaround is to reference all members of unused std140 and shared uniform blocks
at the beginning of the vertex/fragment shader's main().
BUG=chromium:618464
TEST=UniformBufferTest.ActiveUniformBlockNumber
Change-Id: I18da4e2b61b0170068bf5ea38ce54667b0737780
Reviewed-on: https://chromium-review.googlesource.com/395648
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
f7417801
|
2016-10-12T17:59:31
|
|
FramebufferGL: only work around SRGB blits on Desktop GL
BUG=angleproject:1492
Change-Id: I6c210243dffb775efd61c33160dabcbf7406a757
Reviewed-on: https://chromium-review.googlesource.com/397798
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
c1984ed4
|
2016-10-07T12:41:00
|
|
Implement robust TexParameter and SamplerParameter entry points.
BUG=angleproject:1354
Change-Id: I3aa2dcb8603a839f9c07cd9dd41cb695d2e699f2
Reviewed-on: https://chromium-review.googlesource.com/395529
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bd674557
|
2016-10-06T13:28:42
|
|
Separate function info from TIntermAggregate
This change will make it easier to split types of TIntermAggregate
nodes representing functions and function calls into different node
classes.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I730aa7858fe31fda86218fc685980c6ad486f5e0
Reviewed-on: https://chromium-review.googlesource.com/394706
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
bd3f8780
|
2016-10-12T17:05:24
|
|
Fix GCC 5.4 compilation error when parsing the __clang__ macro
The __clang__ macro cannot be directly used with an #if directive if it
has not been defined. This causes a compilation error under GCC 5.4
Linux.
Change-Id: Ieca752cd9f0e90c82febc35e19e1c1f3c6096de1
Reviewed-on: https://chromium-review.googlesource.com/397220
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
476197f9
|
2016-10-11T13:59:08
|
|
Clean up TSymbol initialization
Now TSymbol objects always get their id when they are constructed. The
id cannot be changed after the TSymbol is created.
This makes it simpler to insert both mangled and unmangled versions of
a function to the symbol table. These can now both share the same
TSymbol object, unlike before, when inserting the same symbol twice
would have changed its symbol id.
This requires changes to function definition parsing: function
definition nodes now share any symbol created by previous prototype
declarations of the function. The parameters on the symbol get set to
the parameters in the function definition header.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I8e600e9b5e5de27d64b85c5042cfd23ff02abe63
Reviewed-on: https://chromium-review.googlesource.com/396838
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
0b94528b
|
2016-10-11T08:48:52
|
|
Fix synchronization of workaround dirty bits in TextureGL.
The local dirty bits were sometimes not synced because gl::Texture doesn't
know that they exist. Also fix calculation of when the workaround dirty
bits need to be set.
BUG=angleproject:1386
Change-Id: I3d9d1a01e5441be783190422093c485ea5da7aec
Reviewed-on: https://chromium-review.googlesource.com/396542
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f41d0ee1
|
2016-10-07T13:04:23
|
|
Implement robust GetUniform entry points.
BUG=angleproject:1354
Change-Id: I07dccc470c57aadd41cae8fce327e4aca58a0bea
Reviewed-on: https://chromium-review.googlesource.com/395113
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4310354e
|
2016-10-10T12:28:13
|
|
Handle corner cases of shifting signed integers better
Right-shifting a negative number should sign-extend according to the
ESSL 3.00.6 spec. Implement sign-extending right shift so that it
doesn't hit any undefined behavior in the C++ spec. Negative lhs
operands are now allowed for bit-shift right.
Also implement bit-shift left via conversion to unsigned integer, so
that it does not hit signed integer overflow. Negative lhs operands
are now allowed also for bit-shift left as well.
BUG=chromium:654103
TEST=angle_unittests
Change-Id: Iee241de9fd0d74c2f8a88219bddec690bb8e4db2
Reviewed-on: https://chromium-review.googlesource.com/395688
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
894a6343
|
2016-10-11T14:54:51
|
|
Add missing override identifier for getSequence
Fixed the compiling error in Mac by adding missing override identifier
for getSequence.
BUG=angleproject:1490
TEST=compile on macOS Sierra 10.12
Change-Id: I8f8d556c82885bbee1712e1b6e5f439b67906023
Reviewed-on: https://chromium-review.googlesource.com/396403
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
d7d0ed32
|
2016-10-07T11:33:51
|
|
Implement robust GetShaderiv entry points.
BUG=angleproject:1354
Change-Id: I994b7a596b5b67fadbd91ad0d64054c792523200
Reviewed-on: https://chromium-review.googlesource.com/395111
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f2f6f65f
|
2016-10-05T19:53:23
|
|
Add cross-platform Workarounds to Context.
These are distinct from the renderer-level workarounds.
Add the first workaround, loseContextOnOutOfMemory. This is enabled
when the application enables reset notifications via KHR_robustness,
and is intended for more robust handling of errors in key APIs for
Chromium's correctness (in particular, sync objects).
Change Context::getResetStatus to persistently return the "lost" status
if it was set by calling Context::markContextLost. Previously, if
markContextLost was called but the implementation hadn't actually
received an error like a lost device, the "lost" reset status would be
dropped. Returning it only once to the caller is also fragile. Tested
this by manually injecting a failure in FenceSync11::clientWait and
ensuring that Chromium detected it as expected.
BUG=chromium:650138
Change-Id: Ie53069eacd1754ad5d64936e3fef315af24605fa
Reviewed-on: https://chromium-review.googlesource.com/394233
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f8fd2bd3
|
2016-10-10T14:08:59
|
|
Add missing virtual destructor on TIntermAggregateBase
BUG=angleproject:1490
TEST=build on Linux GCC
Change-Id: I64f53d636d4acee0469b6e9ba1201322087d5f65
Reviewed-on: https://chromium-review.googlesource.com/395732
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6d40bbdd
|
2016-09-30T13:49:38
|
|
Split TIntermBlock from TIntermAggregate
The new TIntermBlock node class replaces TIntermAggregate nodes with
the EOpSequence op. It represents the root node of the tree which is
a list of declarations and function definitions, and any code blocks
that can be denoted by curly braces. These include function and loop
bodies, and if-else branches.
This change enables a bunch of more compile-time type checking, and
makes the AST code easier to understand and less error-prone.
The PostProcess step that used to be done to ensure that the root node
is TIntermAggregate is removed in favor of making sure that the root
node is a TIntermBlock in the glslang.y parsing code.
Intermediate output formatting is improved to print the EOpNull error
in a clearer way.
After this patch, TIntermAggregate is still used for function
definitions, function prototypes, function parameter lists, function
calls, variable and invariant declarations and the comma (sequence)
operator.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: I04044affff979a11577bc1fe75d747e538b799c8
Reviewed-on: https://chromium-review.googlesource.com/393726
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d0694d98
|
2016-10-07T15:47:04
|
|
Add linux_chromium_chromeos_ozone_rel_ng to CQ.
So ANGLE's Ozone backend gets compiled.
BUG=angleproject:1412
Change-Id: Id4b401f59cd9d3f4dd0b945af67ecc0c9e5d68a2
Reviewed-on: https://chromium-review.googlesource.com/395607
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
|
|
a7418361
|
2016-10-08T18:03:26
|
|
Disabling EGLSyncControlTest.SyncValuesTest
Disabling EGLSyncControlTest.SyncValuesTest for now until I can get
it stable on Windows 8.
BUG=angleproject:1402
Change-Id: I21a770e0f8516916c6987ba66ec49762cd99b78a
Reviewed-on: https://chromium-review.googlesource.com/395577
Reviewed-by: Stanislav Chiknavaryan <stanisc@chromium.org>
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
|
|
8234e7b3
|
2016-10-07T15:12:10
|
|
Refactor some errors into ANGLE_TRY macros.
BUG=None
Change-Id: I00ff2523995cb49d1af60cae62c2bba0d020eed4
Reviewed-on: https://chromium-review.googlesource.com/395569
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ef300b15
|
2016-10-07T15:12:09
|
|
Refactor some entry point stuff.
BUG=angleproject:747
Change-Id: I80634b5e6de8bae1433c49a56a92d3b19c24e11d
Reviewed-on: https://chromium-review.googlesource.com/395568
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
740d9020
|
2016-10-07T11:20:52
|
|
Implement robust GetRenderbufferParameteriv entry points.
BUG=angleproject:1354
Change-Id: I073b75d416bd5184402b580bcebfca34f7cd28a8
Reviewed-on: https://chromium-review.googlesource.com/395110
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
62fce5b1
|
2016-09-30T10:46:35
|
|
Implement robust ReadPixels entry points.
BUG=angleproject:1354
Change-Id: I70738d2f00e283ddc52b1545f8efda9022110487
Reviewed-on: https://chromium-review.googlesource.com/391090
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d258ca04
|
2016-10-07T11:19:04
|
|
Fix EGLSyncControlTest.SyncValuesTest timeout on Windowse Server 2012 R2
The test does two buffer swaps and polls sync values waiting for sbc
(swap buffer counter) value to first increase from 0 to 1, then from 1
to 2.
Looking the error log I see that sometimes it fails on the first wait
and sometimes on the second wait. Also the total runtime varies between
1000 and 1600 ms. That makes me think that perhaps test doesn't poll
long enough to run reliably on a test machine.
I've increased the number of poll iteration to 500 and the sleep between
iterations - to 10 ms (I think in reality it was 10 ms already because
the previously used 1 ms is only possible with high resolution system
timer).
BUG=angleproject:1402
Change-Id: I8f6fe209756a1597e2739390352c90d893eaf940
Reviewed-on: https://chromium-review.googlesource.com/395506
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e61d3045
|
2016-10-07T13:20:52
|
|
Don't write to the <length> parameter if an error is generated.
BUG=angleproject:1354
Change-Id: I9ed4a675b2be07b00c29d34e283280dc65238fea
Reviewed-on: https://chromium-review.googlesource.com/395109
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e9e8a899
|
2016-10-07T10:24:52
|
|
D3D11: Fix some format support entries.
On Intel these were seeingly missing or erroneous.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I4410407ce1171f420b275c7662896f5b26a949c2
Reviewed-on: https://chromium-review.googlesource.com/395168
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
08e229e7
|
2016-10-05T17:16:13
|
|
translator: Return null uniform map if no HLSL.
This replaces the global empty map.
BUG=angleproject:1459
Change-Id: If7d824cbf4492e722cbf99d1045402a26535af5c
Reviewed-on: https://chromium-review.googlesource.com/394236
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
76648fe2
|
2016-10-05T17:01:41
|
|
Constexpr-fy the ES3 effective format map.
This removes the global std::vector constructor here.
BUG=angleproject:1459
Change-Id: I407a7bda1f8f8a2dd8d5b0e847573f8594eccf39
Reviewed-on: https://chromium-review.googlesource.com/394235
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
22416868
|
2016-06-08T16:14:36
|
|
Add dirty bits for internal texture state.
Synchronize TextureGL internal state using the dirty bits.
TexturesBenchmark scores:
Before: 5051
After: 7639
Diff: +51.2%
BUG=angleproject:1386
Change-Id: Id04aef778a47175d1a284564495a646045855b4b
Reviewed-on: https://chromium-review.googlesource.com/393866
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
47110bf4
|
2016-04-20T11:13:22
|
|
Implement CHROMIUM_copy_compressed_texture for D3D11.
BUG=angleproject:1356
Change-Id: Id563997d2921cf558c52a781ae66d8bde58d1f2f
Reviewed-on: https://chromium-review.googlesource.com/339847
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
55e98210
|
2016-10-05T16:39:13
|
|
Make global ES3 formats STL map a switch.
This eliminates another global std::map, and replaces it with a json
generated switch. This should be better for threading, better on
memory use, and faster.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I1d289637c00783690ec8ea743ea2aa17b0ab8e50
Reviewed-on: https://chromium-review.googlesource.com/394234
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5878f832
|
2016-10-07T10:14:58
|
|
Fix formatting of OutputHLSL::visitAggregate
Subsequent refactoring of this code will be easier to review if there
won't be unrelated style changes that git cl format insists on doing.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I102fd73bd92317ab438e1676422212f644d2859b
Reviewed-on: https://chromium-review.googlesource.com/394649
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
b7fe49db
|
2016-10-05T16:39:11
|
|
D3D11: Fold mipmap gen caps into the support table.
This change is two-fold: first it allows us to remove the std::map for
D3D11 format info, which was only being used in a single place.
Secondly, it fixed the support table to use the correct 9_3 caps for
texture support, determined by running the D3D11FormatTablesTest.
This should reduce the number of format queries we need to run on 9_3
startup.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I2435a47fc221e73c96337bc7c1c4ed37b527bc1f
Reviewed-on: https://chromium-review.googlesource.com/392210
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e0548ad2
|
2016-10-06T15:55:35
|
|
D3D11: Split off DXGI component type query.
This query is currently a part of a std::map. Split it off to its
own switch using auto-generation based on the format string.
Also introduce a DXGI-to-angle format map. This map is not totally
complete because some more esoteric formats don't have corresponding
ANGLE formats yet. We should add these other formats (EG NV12) if we
need them.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I49e045bdc04a52166299c9e22a4c4d3f24069dbc
Reviewed-on: https://chromium-review.googlesource.com/392209
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
65c79dbc
|
2016-10-06T17:11:28
|
|
Clean up RecordConstantPrecision interaction with switch/case
There were two bugs here that were masking each other:
1. Case nodes were not being added to AST traversal path.
2. RecordConstantPrecision did not check if a constant was a child of
a case node.
Fix these.
BUG=angleproject:1490
TEST=WebGL 2 conformance tests
Change-Id: Ic6cb7942bf57870fa26eb6a011919a2d7951cc85
Reviewed-on: https://chromium-review.googlesource.com/394588
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5d9f5df0
|
2016-09-27T13:28:25
|
|
Implementation of eglGetSyncValuesCHROMIUM extension.
This change adds implementation of eglGetSyncValuesCHROMIUM extension
on D3D11 with Direct Composition. This should work on Windows 8.1 and
above.
The implementation is based on IDXGISwapChain::GetFrameStatistics.
Extension documentation:
https://chromium.googlesource.com/chromium/src/gpu/+/master/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt
BUG=angleproject:1402
Change-Id: I306434dd8d85d618b14edfa38fc2a22e50fddacc
Reviewed-on: https://chromium-review.googlesource.com/390351
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
873d00f4
|
2016-10-06T13:05:57
|
|
Change UNREACHABLE to use ASSERT.
The ASSERT macro is enabled with ANGLE_RELEASE_ASSERT, so we should
use the same behaviour as the normal ASSERT for the other debug
macros.
Also remove UNREACHABLEs in the format validation code that were
being hit silently.
Also make some EGL tests skip instead of fail, since they were hitting
UNIMPLEMENTED.
BUG=angleproject:1332
BUG=angleproject:1540
BUG=angleproject:1340
Change-Id: Ie3347f2bf2459a5831b66827871998d8fbe7d4b2
Reviewed-on: https://chromium-review.googlesource.com/392490
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d569619d
|
2016-10-06T11:09:24
|
|
translator: Fail compilation if precision emu unsupported.
The fuzzer uncovered a case where we were trying to emulate precision
on HLSL 3.0, causing an ASSERT crash.
BUG=chromium:653276
Change-Id: I2e666a1ff4f605541e25f04264146063559cb835
Reviewed-on: https://chromium-review.googlesource.com/394237
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b7d40b3
|
2016-10-06T11:41:02
|
|
translator: Avoid divide-by-zero in error case.
In some code path found by a fuzzer, we would have a zero sized
array, which would trigger a zero divide. I was unable to extract
the failing shader from the fuzzer case trivially.
BUG=chromium:653274
Change-Id: Ia2558ae828fa73615c901fd1cda9ddaa3a72f1a9
Reviewed-on: https://chromium-review.googlesource.com/394238
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
26a717b0
|
2016-09-27T08:45:42
|
|
GL: Emulate SRGB blits where needed.
Desktop OpenGL before 4.4 doesn't handle SRGB blits the same way OpenGL
ES does. Emulate them by drawing a quad.
BUG=angleproject:1492
BUG=chromium:634525
Change-Id: I9f2992d9b373941b10f19f8a51564f0f756cc4df
Reviewed-on: https://chromium-review.googlesource.com/389853
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
b80a5e9c
|
2016-10-05T16:39:09
|
|
Store channel bits info in angle::Format.
This allows us to delete some duplicated code in the D3D11-side.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: Ifdcfcd4a56e06ff2ae8f5ca0bda72281d52c2964
Reviewed-on: https://chromium-review.googlesource.com/392208
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
91db32c5
|
2016-10-06T09:31:53
|
|
Skip TimerQueriesTest.TimeElapsedMulticontextTest on Win/AMD/GL/Debug.
This test appears to be flaky.
BUG=angleproject:1541
Change-Id: I2a91626f6dc309d2dc23098cbaf290adac7f4859
Reviewed-on: https://chromium-review.googlesource.com/394217
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a015f59f
|
2016-10-06T10:19:32
|
|
Skip UniformBufferTest.VeryLarge on Intel D3D11.
This fails because of issues with Intel UBOs and copying.
BUG=chromium:651493
BUG=chromium:593024
Change-Id: Ia4c634ebecd29082927a9a812929c102d0d629b2
Reviewed-on: https://chromium-review.googlesource.com/394131
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
601a0ccc
|
2016-10-06T14:38:43
|
|
Revert "Skip TimerQueriesTest.TimeElapsed on Win/AMD/GL/Debug."
The correct test was the multi-context version.
BUG=angleproject:1541
This reverts commit d0614b852154da7a9968e2f6b1a775fc469dc83b.
Change-Id: I4f4a9e3b1e0301eef34ce8c06cd649bff66fcdb1
Reviewed-on: https://chromium-review.googlesource.com/394216
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d0614b85
|
2016-10-06T09:31:53
|
|
Skip TimerQueriesTest.TimeElapsed on Win/AMD/GL/Debug.
This test appears to be flaky.
BUG=angleproject:1541
Change-Id: I947dbc759e0fef505ce9b11e501f2dbe35ff1e5c
Reviewed-on: https://chromium-review.googlesource.com/394329
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ed4d342e
|
2016-10-03T15:45:35
|
|
Make the "FormatMap" a static switch.
This map lives in formatutils.cpp, and maps from a {format,type} to
an internal format. Convert this into generated code.
BUG=angleproject:1389
Change-Id: Ib12750d83d3f8cf8794d6668874cb025f856b5d4
Reviewed-on: https://chromium-review.googlesource.com/392207
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
168445c2
|
2016-09-23T16:33:22
|
|
Add an extension for requesting a NULL Display.
BUG=angleproject:1468
Change-Id: Ief4b0e7d7a0420e59e547cd24fde53deb3718ccb
Reviewed-on: https://chromium-review.googlesource.com/388845
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d08f3b3d
|
2016-09-23T15:56:30
|
|
Add stubs for a NULL renderer.
BUG=angleproject:1468
Change-Id: I2ed2b65a4b6f6ea3dda61c0467aef95e407cd38c
Reviewed-on: https://chromium-review.googlesource.com/388844
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
32db19b7
|
2016-10-04T14:43:16
|
|
Ensure that if-else branches are always sequence nodes
This mainly affects RewriteElseBlocks, which was the only piece of
code still adding TIntermIfElse nodes directly as children of other
TIntermIfElse nodes.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: I5b25c2fb9c642424417cd6c29e37c20482c6ffaf
Reviewed-on: https://chromium-review.googlesource.com/392847
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
18319182
|
2016-09-28T14:22:27
|
|
Re-land "Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)"
BUG=angleproject:1332
Change-Id: Ie970466c4528cb80b2363d0c0683da2d9c23c4f4
Reviewed-on: https://chromium-review.googlesource.com/392267
Commit-Queue: John Bauman <jbauman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7f9a55f7
|
2016-10-03T14:32:08
|
|
Fix integer math overflows in the preprocessor
Evaluating integer expressions in the ESSL preprocessor may result in
overflowing the signed integer range. Implement wrapping overflow for
preprocessor expressions in a way that doesn't hit any undefined
behavior. In the ESSL spec, preprocessor expressions are defined to
have mostly the same semantics as in C++. Since C++ doesn't define
what happens on signed integer overflow, we choose to make most of the
operators wrap on overflow for backward compatibility and consistency
with the rest of the ESSL spec.
We reuse the existing wrapping overflow helpers that are
used for constant folding. To be able to do this, the type used in the
preprocessor expression parser is changed from 64-bit to 32-bit.
Shifting negative numbers is implemented as a logical shift. This
cannot be disallowed since dEQP requires shaders shifting negative
numbers to pass compilation.
Undefined bitwise shifts where the offset is greater than 31 will now
result in a compile-time error.
A couple of test cases are now covered by the preprocessor tests
rather than full compilation tests. This isolates the tests better and
they run faster.
BUG=chromium:652223
TEST=angle_unittests
Change-Id: I84be40d404c10ecd0846c5d477e626a94a2a8587
Reviewed-on: https://chromium-review.googlesource.com/392146
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4c655248
|
2016-10-04T10:27:21
|
|
D3D11: Fix unreferenced XFB vars getting dropped.
Our for-loop logic was confused so that some unreferenced
transform feedback varyings might get dropped.
BUG=chromium:651493
Change-Id: Id283230da0a47fc647b2a3862da60be5538e439e
Reviewed-on: https://chromium-review.googlesource.com/391945
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0e48719f
|
2016-10-03T16:30:38
|
|
formatutils: allow reusing rowPitch computation for depthPitch
This should fix a null D3D11 backend draw call performance regression.
BUG=651101
Change-Id: I2eb10cddd15f0e7b25b886c89eccd2906e988c72
Reviewed-on: https://chromium-review.googlesource.com/392227
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
2549e74e
|
2016-10-03T10:59:21
|
|
Only expose the EGL robutness extensions when the native GL context has them.
On some drivers, the WGL_ARB_create_context_robustness extension is present but
the created context does not expose the extensions. Be more defensive and only
expose robustness if we're able to create contexts that have it.
BUG=angleproject:1538
Change-Id: I3d02b2071c7b2c576abe66cc283cee467e400fd3
Reviewed-on: https://chromium-review.googlesource.com/391833
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: John Bauman <jbauman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c4431804
|
2016-10-03T15:41:38
|
|
D3D11: Fix Buffer11::copyFromStorage and UBOs.
The change to initialize a constant buffer immediately after
calling BufferData in D3D11 led to a bug where we would map
the UBO for writing with the wrong map bits. Fix this by
using the same map method as the rest of the code.
The D3D11 runtime seems to allow arbitrarily large constant buffers
on Windows 10, but not Windows 7. Thus this CL also fixes a bug in
our constant buffer size clamping to not copy more than the available
buffer size for uniform buffers.
BUG=chromium:651493
Change-Id: I876767691d02db90ecb08a8fa78199f03339a35e
Reviewed-on: https://chromium-review.googlesource.com/391167
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f51fdd2e
|
2016-10-03T10:03:40
|
|
Ensure that all functions have a body node in the AST
Some traversers that insert code to main() assume that the main()
function has a non-null body node in place. This assumption was
previously wrong, since functions could be missing the body node
in case the function body was empty.
Fix possible invalid dereferencing of missing function body nodes by
always adding an empty sequence node to represent the body of
functions that have an empty body in the ESSL source. This also
enables simplifying some tree traversers that used to take the
possibility of missing function body nodes into account.
Also fix AddDefaultReturnStatements to check the last statement inside
the function body for a return statement, instead of checking the
first statement.
BUG=angleproject:1539
TEST=angle_unittests, angle_end2end_tests
Change-Id: I2fbd18c78653fa2f1a96dbd9a619accc4874030d
Reviewed-on: https://chromium-review.googlesource.com/392046
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|