|
89c21ea8
|
2016-12-13T17:03:43
|
|
InstancingTest: fix a stack overflow.
BUG=angleproject:1661
Change-Id: Iac7af4aed2782ab839922281d29f1a9861a334e3
Reviewed-on: https://chromium-review.googlesource.com/419758
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
a7d12dc7
|
2016-12-13T15:08:19
|
|
Store uniform block bindings in program binaries.
This affects all back-ends - we weren't saving this. Note that
bindings can only be set after program linking. The spec is fairly
clear in that any programs saved must be loadable and runnable under
the same set of state, which would include block bindings.
Also add validation for zero binary formats in GetProgramBinary.
Also add a workaround for AMD where the block bindings were not
applied properly after link, similarly to our original bug.
This CL also includes a few fixups for GLProgram (raii).
BUG=angleproject:1637
Change-Id: Iae068eb4e1e4c763aa9f9332c033e38708026c8f
Reviewed-on: https://chromium-review.googlesource.com/418393
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e1faacb1
|
2016-12-13T12:42:14
|
|
Don't use logging macros in end2end_tests.
Macros like ASSERT and UNREACHABLE call gl::trace, which at some
point we might want to use to call the angle Platform logging code.
Standalone tests won't easily have access to the platform, so for
now just log errors in other ways.
This also corrects some logic in GLSLTest which was calling
internal methods in libANGLE when it didn't have to.
BUG=angleproject:1660
Change-Id: Idecbd97f2de7916b35bd78f5b7cd02b156ea100d
Reviewed-on: https://chromium-review.googlesource.com/419134
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
da9fb093
|
2016-12-09T17:32:29
|
|
Work around atan(y, x) bug on NVIDIA
atan(y, x) is not always returning expected results on NVIDIA OpenGL
drivers between versions 367 and 375. Work around this by emulating
atan(y, x) using the regular atan(x) function. A fix to the driver is
expected in a future release.
It is most convenient to implement the vector atan(y, x) functions by
using the scalar atan(y, x) function. Support for simple dependencies
between emulated functions is added to BuiltInFunctionEmulator. In the
current implementation one function is allowed to have at most one
other function as its dependency.
BUG=chromium:672380
TEST=angle_end2end_tests
Change-Id: I9eba8b0b7979c7c7eaed353b264932e41830beb1
Reviewed-on: https://chromium-review.googlesource.com/419016
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
36fd100d
|
2016-12-08T11:30:44
|
|
GLSLTest: test interaction of declaration splitting with other passes
In TranslatorHLSL a number of AST simplifications are done, that must
happen in a precise order for things to be correct:
- First for-loops must be split
- Then multideclarations must be split
- Finally comma operators must be split
This adds tests for interaction between this passes to make sure they
are done in the right order.
BUG=668028
Change-Id: I306915b51011bb5467d117352becfd60cbe77be4
Reviewed-on: https://chromium-review.googlesource.com/417989
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
327411e8
|
2016-12-09T11:09:17
|
|
WebGL_compatibility: disallow client-side arrays
BUG=angleproject:1523
Change-Id: Icd207b2d94c1375c6f3189af42d55eac52b99603
Reviewed-on: https://chromium-review.googlesource.com/418398
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a2c74985
|
2016-12-12T11:20:42
|
|
Don't load binaries across client versions.
BUG=angleproject:523
Change-Id: Id54033dce15f01a0f2891533172acd8b99896e12
Reviewed-on: https://chromium-review.googlesource.com/418240
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f52fe93d
|
2016-12-07T13:39:15
|
|
Work around unary minus operator float issue on Intel Mac 10.11
Result of -float is wrong on Intel Mac 10.11 drivers. Replace -float
with 0.0 - float to work around this issue.
BUG=308366
BUG=672380
Change-Id: I53bc2eda7259fff5805bec39896fc7b7a6eaf665
Reviewed-on: https://chromium-review.googlesource.com/417169
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
56a2f95f
|
2016-12-08T12:16:27
|
|
Output infinity and NaN literals correctly in shaders
Previously infinity and NaN resulting from constant folding would be
clamped to finite 32-bit float range when they were written in shader
output. Now they are written as a bit pattern in case the shader
version allows it.
This does not guarantee that NaNs work, but this is fine, since ESSL
3.00.6 spec has very loose requirements when it comes to NaNs.
BUG=angleproject:1654
TEST=angle_end2end_tests
Change-Id: I9997000beeaa8ed22523c22d5cf6929cdfc93f60
Reviewed-on: https://chromium-review.googlesource.com/417301
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2ad1c490
|
2016-12-07T14:46:18
|
|
D3D: Fix overflow in varying packing.
Also add a more robust set of unit tests for this internal class.
Because the GL spec allows for succeess when packing any set of
varyings, it's impossible to write negative end to end tests. This CL
also rewrites our disabled varying packing GLSL tests as unit tests.
BUG=angleproject:1296
BUG=angleproject:1638
Change-Id: I78153742517d5c72ddb13ff59dc44ddc4af42fc2
Reviewed-on: https://chromium-review.googlesource.com/415555
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
922cbfcb
|
2016-11-25T16:23:18
|
|
common: Add a vector arithmetic helper classes
Change-Id: I2f96baedf10d346eaa150bab04f8f6ca3ba573b9
Reviewed-on: https://chromium-review.googlesource.com/414272
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f2a6aecf
|
2016-12-01T19:48:25
|
|
Suppress flaky TransformFeedbackTest.MultiContext on Intel OSX.
BUG=angleproject:1645
Change-Id: If35d277705ce9f2882d9ba059bd56e494ca9d123
Reviewed-on: https://chromium-review.googlesource.com/415613
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
cfb85358
|
2016-12-01T12:39:31
|
|
Suppress flaky test on Intel D3D Windows.
PointSpritesTest.PointWithoutAttributesCompliance:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Debug%20%28New%20Intel%29/builds/1741
Showing as failed now that flaky tests are not retried.
BUG=angleproject:1346
Change-Id: Ic0fce361f37394da8771fa82288b0a9206d3a347
Reviewed-on: https://chromium-review.googlesource.com/415448
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c339c4e5
|
2016-11-29T10:37:36
|
|
Split WebGL compatibility into two extensions.
The mechanism for requesting extensions is now a separate extension.
Added a way to query the extensions that support enabling.
BUG=angleproject:1523
Change-Id: I2efaa9f6d67b12ecae325f455404e34ba04d0e7c
Reviewed-on: https://chromium-review.googlesource.com/414529
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
51f75c5d
|
2016-11-28T18:35:50
|
|
Suppress flaky Win/AMD/GL end2end tests.
These tests became flaky when google test retries are turned off.
BUG=chromium:669196
BUG=angleproject:1643
BUG=angleproject:1541
Change-Id: I7cc10f532662928e5436a4e88a42fc109c00bfe8
Reviewed-on: https://chromium-review.googlesource.com/414216
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
57ce9ea2
|
2016-11-24T12:03:14
|
|
Implement EXT_discard_framebuffer for the GL backend.
BUG=angleproject:1634
Change-Id: I3822b99b59d4653e4d9a2c1d3dd16734f2050fae
Reviewed-on: https://chromium-review.googlesource.com/414437
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e018e98c
|
2016-11-24T17:25:39
|
|
Add test for large UBO readback.
BUG=chromium:660670
Change-Id: I51c7e93f071041663f6b9a39ee75c0cca2264015
Reviewed-on: https://chromium-review.googlesource.com/414447
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
133a2ecb
|
2016-11-17T16:28:03
|
|
Implement CHROMIUM_copy_texture for OpenGL.
This also makes BlitGL work correctly on OpenGL ES (provided vertex
arrays are available)
BUG=angleproject:1356
Change-Id: Icb7cef35bebfe6672220aa0b312ab89187dbf585
Reviewed-on: https://chromium-review.googlesource.com/412452
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
76cdbd51
|
2016-09-23T16:51:04
|
|
Add basic initialization code for ContextNULL so it can run some tests.
BUG=angleproject:1468
Change-Id: I8dfc9a3c71e5638de22bc9d9a5dadfb495ef23a7
Reviewed-on: https://chromium-review.googlesource.com/388846
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
555009ce
|
2016-11-16T11:51:01
|
|
Buffer11: Intel workaround for constant buffers.
This workaround avoids using inter-buffer copies involving constant
buffers. Instead of copying from a staging storage to a constant
buffer (or vice-versa), the Buffer memory managment will keep the
system memory storage around permanently. This uses a bit more memory
but should fix all the problematic cases where we have the canonical
version of the buffer data inside GPU memory.
BUG=chromium:593024
Change-Id: I2ce0cfd22784aa43e819ce2df2d0da540d0a0cfe
Reviewed-on: https://chromium-review.googlesource.com/412140
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8b7d8144
|
2016-11-15T13:40:37
|
|
Clamp "count" in glUniform* before passing to the backend
The OpenGL spec allows "count" to overflow safely implemented but some
drivers like the Intel Windows OpenGL driver don't handle this
correctly and crash on overflow tests.
BUG=661413
Change-Id: I10de9292c75daa375f002850900bb5e1cbfce3b6
Reviewed-on: https://chromium-review.googlesource.com/411387
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
15ac534a
|
2016-11-03T17:06:39
|
|
Program: clamp the number of uniforms to be copied
Reland with a temporary test suppression.
BUG=661413
Change-Id: I552b64de754b326dcd499b84d9f337b9d015dc8e
Reviewed-on: https://chromium-review.googlesource.com/411473
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
c51642b4
|
2016-11-14T16:18:26
|
|
Validate level exists for TexSubImage calls.
Before validating the texture format, verify that the texture level already
exists in glTexSubImage calls.
BUG=602737
Change-Id: I0d83c7d43c7b358abdb59583dc83265df70c13b5
Reviewed-on: https://chromium-review.googlesource.com/411361
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
399d1a17
|
2016-11-15T14:55:06
|
|
Revert "Program: clamp the number of uniforms to be copied"
This reverts commit 9863a3ef180edb17307665e0cc65a16603222103.
Change-Id: I840a735b49bc4f2319c8af5f620d7f52bb7eecf1
Reviewed-on: https://chromium-review.googlesource.com/411470
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9863a3ef
|
2016-11-03T17:06:39
|
|
Program: clamp the number of uniforms to be copied
BUG=661413
Change-Id: I1a146dae0d01edeb272a58610355261b0e23dec1
Reviewed-on: https://chromium-review.googlesource.com/406745
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
7bb45988
|
2016-11-11T09:17:20
|
|
Return a lift of a angle_end2end_tests on AMD.
BUG=angleproject:1622
TEST=angle_end2end_tests
TBR=jmadill@chromium.org
Change-Id: Icd1f5fecc36621d70822c738da39d39d3bdb3ff6
Reviewed-on: https://chromium-review.googlesource.com/410037
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
d7490967
|
2016-11-09T15:49:51
|
|
Fix linkage.html failures on Mac.
The failure is due to when we initialize variables to 0, we re-create
the struct TType, and it contains a different unique id from the
original struct TType, thus leading to a different hashed name.
BUG=chromium:641129
TEST=webgl_conformance,webgl2_conformance
Change-Id: I267b97fa496f55ea59dacee93af8f6a90f3e66cb
Reviewed-on: https://chromium-review.googlesource.com/409602
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4b97d504
|
2016-11-09T06:45:32
|
|
Fixed incorrect multisample rendering when enable SAMPLE_COVERAGE on Win
In RendererD3D::createRenderTarget, we use getNearestSamples(samples)'s
result to assign D3D11_TEXTURE2D_DESC.SampleDesc.Count. However, in
renderer11::updateState, we used the original samples to calculate mask
by GetBlendSampleMask not the supported nearest samples. It would result
that multisample rendering result was incorrect when enable
AMPLE_COVERAGE and the samples is not in the suported list but less than
max samples. At least, on Intel Win platform, we can reproduce it.
The fixing is to use same samples in these two places.
BUG=angleproject:1610
TEST=MultisampleCompatibilityTest.DrawCoverageAndResolve
Change-Id: I255b12d1032317145adfcee94e65e88ae5307113
Reviewed-on: https://chromium-review.googlesource.com/408516
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f097e238
|
2016-11-05T00:44:15
|
|
D3D11: Fix 3D texture redefinition bug.
We would incorrectly check the storage type after we had redefined it.
Thus we would allow old storages to persist for some cases of 3D
texture. This bug did not affect 2D textures.
See WebGL 2 test: conformance2/misc/views-with-offsets.html
BUG=angleproject:1609
Change-Id: I7a04ff498740bb5d7daf2cee174c336f97a44c01
Reviewed-on: https://chromium-review.googlesource.com/408417
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0350a64c
|
2016-11-01T17:01:51
|
|
Fixed the bug using uniform block array
At the beginning of Program::defineUniformBlock, getUniformBlockSize will call
getUniformBlockIndex on MacOS to check if the block is an active block with
giving blockName. However, it didn't distinguish array and non-array situations
and unified to use interfaceBlock.name as the blockName to call
getUniformBlockIndex. It would result that INVALID_INDEX was returned when
it's a block array. For example, using 'blockName' not 'blockName[0]'.
In OpenGL 4.3 spec, section 7.3.1, there are following descriptions:
If name exactly matches the name string of one of the active resources for
programInterface, the index of the matched resource is returned. Additionally, if
name would exactly match the name string of an active resource if "[0]" were
appended to name, the index of the matched resource is returned. Otherwise, name
is considered not to be the name of an active resource, and INVALID_INDEX is
returned.
So, for array block case, we use blockName appending [0] to check the activity.
BUG=angleproject:1543
Change-Id: I8189b62066b779f7d392a7dba1cf5cb02a31936d
Reviewed-on: https://chromium-review.googlesource.com/405830
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8f775607
|
2016-11-03T16:45:34
|
|
Introduce a gl::BufferState class.
This state can share vital pieces of information with the impl.
The most elementary state is the buffer size, which then the
impl doesn't need to replicate.
BUG=angleproject:1579
Change-Id: I341393c64a6e49de65c1d53b1bad2fa143209862
Reviewed-on: https://chromium-review.googlesource.com/406644
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
87c182e1
|
2016-11-02T11:23:22
|
|
Enable shader validation with WebGL compatibility extension.
The change configures shaders to be of a compatible spec upon creation.
BUG=angleproject:1523
Change-Id: Id345d0b8f0abad8ed3c4fb3117d0fdfeab9fea53
Reviewed-on: https://chromium-review.googlesource.com/405778
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d2f0c74c
|
2016-11-02T10:34:41
|
|
Use safe math in ValidateCopyBufferSubData.
This should fix any potential out of bounds reads/writes.
BUG=chromium:660854
Change-Id: Iffa00e4551d7362115cbf023a09b1d0e15f724c8
Reviewed-on: https://chromium-review.googlesource.com/405816
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
d89792f4
|
2016-10-30T22:41:53
|
|
Buffer11: Keep system memory storage for large UBOs.
The system memory storage is needed to back UBOs larger than the max
constant buffer size in D3D11 Windows 7. Because readback from UBOs
can be tricky, the system memory storage keeps the canonical copy of
the data in this case.
We can also extend this to add a workaround to fix the outstanding
failure cases of UBOs on Intel.
BUG=chromium:660670
Change-Id: Ia3119d3064d10c4262def4c5a967972b4de2d10f
Reviewed-on: https://chromium-review.googlesource.com/405367
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
77c13aaf
|
2016-10-27T22:06:51
|
|
Disable D3DTextureTest on Windows Intel OpenGL
BUG=angleproject:1585
Change-Id: I550750e0e94bd15c0b076f911d05f8dd92e4a202
Reviewed-on: https://chromium-review.googlesource.com/404499
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
c9e6026c
|
2016-09-30T17:15:07
|
|
Revert "Add workaround for unused std140 and shared uniform blocks on MacOS"
This reverts commit 9aa83fe302578d226f195fff5fb3f0e2fb723a4c.
The new test UniformBufferTest.ActiveUniformNumberAndName/ES3_OPENGL is failing on multiple platforms. Examples:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%2010.10%20Release%20%28ATI%29/builds/12285
https://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20(ATI)
Change-Id: I78b1a4d58e9a291e40ad304eb32f990e0518f7ee
Reviewed-on: https://chromium-review.googlesource.com/391049
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
5dc37d05
|
2016-10-01T00:00:19
|
|
Revert "Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)"
This reverts commit ca40662aa81f7735d3510fa52e55d28503c7f9ec.
https://chromium.googlesource.com/angle/angle/+/ca40662aa81f7735d3510fa52e55d28503c7f9ec broke angle_end2end_tests on the Win Debug bots. Examples:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Debug%20%28NVIDIA%29/builds/18718
https://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Debug%20%28NVIDIA%29/builds/15905
Tests failing:
Texture2DTest.QueryBinding/ES2_D3D11
Texture2DTest.QueryBinding/ES2_D3D9
Texture2DTest.QueryBinding/ES2_D3D11_9_3
Change-Id: If9da864f49e0de3a134d43ae36c2a99e9b5a2a53
Reviewed-on: https://chromium-review.googlesource.com/391130
Reviewed-by: John Bauman <jbauman@chromium.org>
|
|
389dc9d4
|
2016-09-08T09:34:58
|
|
Test filling small mips of ETC textures.
BUG=angleproject:1510
Change-Id: I9ed7c877767909ba93e2ea5ef09c4735b0d0bcc7
Reviewed-on: https://chromium-review.googlesource.com/382652
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ca40662a
|
2016-09-28T14:22:27
|
|
Fix glGetIntegerv(GL_TEXTURE_BINDING_EXTERNAL_OES, ...)
BUG=angleproject:1332
Change-Id: I591b9520bc1122eb6232803ac86b6d0322f8c349
Reviewed-on: https://chromium-review.googlesource.com/390323
Commit-Queue: John Bauman <jbauman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ff5b2d51
|
2016-09-07T11:32:23
|
|
Add a GL_ANGLE_robust_client_memory extension.
This allows specifying data size to all GL functions that provide a pointer to
client memory and a length parameter for all functions in which the driver
writes to client memory.
BUG=angleproject:1354
Change-Id: Ia68be1576b957cb529c87b5e0d1bd638c7dbd371
Reviewed-on: https://chromium-review.googlesource.com/382012
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9aa83fe3
|
2016-09-29T08:42:42
|
|
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: I1d2c5e3e8da04786ac6a37fd26f7bb9c14cd76ed
Reviewed-on: https://chromium-review.googlesource.com/387169
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1be4d493
|
2016-09-27T11:15:38
|
|
Fix handling integer overflow in constant folding
Integer operations that overflow are defined to wrap in the ESSL
3.00.6 spec. Constant folding that happens inside the shader
translator should also follow the wrapping rules.
The new implementations of wrapping integer addition and subtraction
use unsigned integers to perform calculations. Unsigned integers are
defined to implement arithmetic in modulo 2^n in the C++ spec. This
behavior is also leveraged to implement wrapping unsigned integer
multiplication.
The implementation of wrapping signed integer multiplication is
slightly trickier. The operands are casted to a wider type to perform
the multiplication in a way that doesn't overflow, and then the result
is truncated and casted back to the narrower integer type.
Incorrect tests that expected errors to be generated from integer
overflow in constant folding are removed.
BUG=chromium:637050
TEST=angle_unittests
Change-Id: I0de7e25881d254803455fbf22907c192f49d09ff
Reviewed-on: https://chromium-review.googlesource.com/390252
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ece7c5a8
|
2016-09-21T15:28:23
|
|
Add validation for the pack buffer in ReadPixels
BUG=angleproject:1512
Change-Id: Ia6bac628c35f04bc5d3adfde1569902475519698
Reviewed-on: https://chromium-review.googlesource.com/387668
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
054f7ed0
|
2016-09-20T17:15:59
|
|
preprocessor: Miscellaneous cleanups
- Use full header paths in includes
- Use ASSERT instead of assert
- Use angle::NonCopyable instead of PP_DISALLOW_COPY_AND_ASSIGN
- Use range-for in a couple places
- Remove pp_utils.h
BUG=angleproject:1522
Change-Id: If107fef89e8465bca65cf664926d1051c5d1e232
Reviewed-on: https://chromium-review.googlesource.com/387212
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
00ff1194
|
2016-09-23T18:25:47
|
|
Disable DrawBuffersTest.Gaps on Windows AMD OpenGL
Fails on Win7 Release (AMD R7 240) bot
BUG=angleproject:1535
Change-Id: I5e8d0552867bfe0d81f3e189536c50b36f530089
Reviewed-on: https://chromium-review.googlesource.com/389233
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
28a97ee1
|
2016-09-22T13:01:26
|
|
Generate unique HLSL texture function names for external textures.
Because 2D and external textures have the same HLSL texture type, they were
generating texture functions with the same name. This causes conflicts when
both 2D and external textures are used in the same shader.
BUG=angleproject:1534
BUG=645532
Change-Id: I4b324014b7d9b4851d358730cf4e31fc8461584c
Reviewed-on: https://chromium-review.googlesource.com/388551
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f41a7151
|
2016-09-19T15:11:17
|
|
Add an extension to disable resource generation on bind.
BUG=angleproject:1518
Change-Id: I662f7b07da5c97831496f2617b0adadf9858bdc9
Reviewed-on: https://chromium-review.googlesource.com/386799
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
44ebf6b4
|
2016-09-22T13:00:02
|
|
ConstantUnion: Error on undefined shift.
BUG=chromium:648135
Change-Id: I41581f63af650564a0f61c1baeeb38017c8513ed
Reviewed-on: https://chromium-review.googlesource.com/387470
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
f607c60a
|
2016-09-21T11:46:48
|
|
Fix validation of ReadPixels format and type.
The validation for ReadPixels allows for two combations of format/type:
1. Based on the current framebuffer's component type.
* GL_RGBA/GL_UNSIGNED_BYTE if the framebuffer is a normalized (signed
or unsigned).
* GL_RGBA_INTEGER/GL_INTEGER if the framebuffer is an
integer format.
* GL_RGBA_INTEGER/GL_UNSIGNED_INTEGER if the framebuffer is an
unsigned integer format.
* GL_RGBA/GL_FLOAT if the framebuffer is any type of float
framebuffer (added in EXT_color_buffer_float).
* These combations are detailed in the ES2 spec on pg 105 or ES3 on pg
193.
2. The implementation read format/type returned from glGetIntegerv.
* These formats are added by specs, OES_texture_float, EXT_texture_rg,
EXT_read_format_bgra, etc.
Update the GL and D3D backends to perform the conversion from GL_HALF_FLOAT
to GL_HALF_FLOAT_OES.
Continue allowing reading as BGRA_EXT to support Skia. Should be removed in
the future.
BUG=607283
BUG=angleproject:1478
Change-Id: I0312cad4d5f138ab036f383d221f8ccd19a77f6d
Reviewed-on: https://chromium-review.googlesource.com/346232
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
44d0a736
|
2016-09-21T16:19:50
|
|
Disable some DrawBuffersTest on Windows AMD OpenGL
DrawBuffersTest.FirstAndLast/ES2_OPENGL
DrawBuffersTest.FirstHalfNULL/ES2_OPENGL
Hang on Win7 Release (ATI) and Win7 Debug (ATI) bots.
BUG=angleproject:1533
Change-Id: I6e37893fbcdbcc7a2a76c1cab6e8ef1f7ebaec19
Reviewed-on: https://chromium-review.googlesource.com/387714
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
c287ea6e
|
2016-09-16T14:46:51
|
|
Add WebGL validation extensions to ANGLE.
BUG=angleproject:1523
Change-Id: I6fecb5055ed8087665aeee34b3a066ea8f38d51b
Reviewed-on: https://chromium-review.googlesource.com/386281
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
e292e902
|
2016-09-07T10:49:01
|
|
Workaround the unary minus operator issue on Intel
On some Intel D3D drivers, evaluating unary minor operator on an
integer variable may get wrong answer in vertex shader.
This patch works around this bug by replacing -(int) with ~(int)+1
on Windows Intel.
BUG=chromium:644033
Change-Id: I0af719e84d618a33f25bcb33bde0c381fb462a31
Reviewed-on: https://chromium-review.googlesource.com/381675
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5db69f57
|
2016-09-15T12:47:32
|
|
Add robust math to constant folding.
Previously our multiplication and other operators could
do overflows, which can lead to security bugs.
BUG=chromium:637050
Change-Id: Icee22a87909e205b71bda1c5bc1627fcf5e26e90
Reviewed-on: https://chromium-review.googlesource.com/382678
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2e60034b
|
2016-09-19T13:56:40
|
|
D3D11: Store Buffer SRVs in native storage.
This allows us to not store std::pairs to identify SRVs. Instead
we can release the cached SRVs directly when we re-create the
native buffer.
BUG=angleproject:1513
Change-Id: I6f6d5edc659aa843c9439b97661073415f1a772b
Reviewed-on: https://chromium-review.googlesource.com/385818
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8fcdf6ee
|
2016-09-16T10:45:30
|
|
Supress failures in end2end tests for new Intel OpenGL driver.
Change-Id: I442eac44212406b0fd9fb64b2e4e914bf61f8503
Reviewed-on: https://chromium-review.googlesource.com/386280
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7ffdda9a
|
2016-09-08T13:26:51
|
|
D3D11: Don't allow fast unpack from GL_ALPHA8.
This format is one that doesn't support buffer SRV creation. It seems
like there is no equivalent dEQP test for this format.
BUG=angleproject:1503
Change-Id: I9ecdb9406ca0b62dd54b450d2b50341d76584b2b
Reviewed-on: https://chromium-review.googlesource.com/381435
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
e731d8aa
|
2016-09-07T10:56:25
|
|
TextureTest: suppress failure for newly added test.
BUG=angleproject:1493
BUG=chromium:638323
Change-Id: I5cab149c735158fe810f002e47cc3c5c75bc503b
Reviewed-on: https://chromium-review.googlesource.com/381951
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
14718767
|
2016-09-06T15:56:54
|
|
Remove usage of std::log2 in tests.
For some reason, this was giving a link error on Android.
Change it to use the mathutil version to be sure.
BUG=angleproject:1493
BUG=chromium:638323
Change-Id: I454ba4609d7818f50c668bb7c1a3b684f9ca8444
Reviewed-on: https://chromium-review.googlesource.com/381671
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
509e4560
|
2016-08-25T14:55:44
|
|
compiler: Work around a HLSL compiler aliasing opt bug.
BUG=angleproject:1448
Change-Id: I7d5bcbd100069152cea0cb03bc4fa6af1044460b
Reviewed-on: https://chromium-review.googlesource.com/376020
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9e3d7aa0
|
2016-09-02T15:19:43
|
|
D3D11: Work around small mipped stencil textures.
AMD has a bug with 2x2 and 1x1 mips of depth/stencil textures. Formats
D24S8 and D32FS8 both seem to render black for the very small mips.
We can work around this by selectively caching a copy of the texture
data that only has depth information, since stencil isn't filterable
in OpenGL ES.
BUG=angleproject:1493
BUG=chromium:638323
Change-Id: Iebef42c4680018d9854dbe789d677823167213dd
Reviewed-on: https://chromium-review.googlesource.com/380037
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3af2b3b0
|
2016-09-06T09:47:56
|
|
UniformBufferTest: add back suppressions for failing tests
296398571213608b99d12266d0ba218f99c87abf fixes most but not all
UniformBuffer Wintel failures of the waterfall, add back suppressions
needed to make the waterfall green.
BUG=chromium:593024
Change-Id: I124666853e9943bcb71083e5563d02e65551f916
Reviewed-on: https://chromium-review.googlesource.com/381451
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
29639857
|
2016-09-02T15:00:09
|
|
D3D11: Work around Intel uniform buffers bug.
When copying from a staging buffer to a uniform buffer, the first
upload would be incorrect. Work around this by trying to upload
directly to a uniform buffer on the first BufferSubData call.
BUG=chromium:593024
Change-Id: I0df3a1422b962bf3ece5d445f435df01e3544b67
Reviewed-on: https://chromium-review.googlesource.com/368774
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5b46a680
|
2016-09-01T15:22:06
|
|
Clear the swizzle cache in TextureStorage11::setData.
BUG=angleproject:1494
Change-Id: I67471e4b961b3d8374c2da84394ead743939c225
Reviewed-on: https://chromium-review.googlesource.com/380095
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9ddfa060
|
2016-08-29T13:56:39
|
|
Disable compute shader tests on Intel
The compute shader tests in angle_end2end_tests fail on Intel Linux.
The patch disables the tests for Intel.
TEST=angle_end2end_tests
BUG=angleproject:1483
Change-Id: I303f0852ea3ccb65c1dd96a196a640c76cc519e4
Reviewed-on: https://chromium-review.googlesource.com/377318
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ab481645
|
2016-08-26T12:09:10
|
|
Fix splitting nested sequence operators
Make sure that only one sequence operator is split on one iteration
of SplitSequenceOperator. This prevents multiple successive PostVisit
calls to nested sequence operator nodes from adding duplicate nodes
to the AST. The sequence operators are split starting from the
outermost one to preserve execution order.
Note that the shader translator somewhat unexpectedly generates nested
sequence operators in the AST when there is a sequence operator with
more than two operands, so this bug ended up affecting shaders in the
wild. The code around parsing sequence operators could be clarified
separately.
BUG=638313
TEST=angle_end2end_tests
Change-Id: Ic6400a484ceff0c790c2290f7b4b80980f87cd88
Reviewed-on: https://chromium-review.googlesource.com/376678
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4c4c8e72
|
2016-08-04T12:25:34
|
|
Add compute program compilation and linking support
Compute shaders can be now compiled and linked to create programs.
Some tests are added to verify successful and unsuccessful compute
shader linking.
The patch also replaces std::array<int, 3> with a custom struct
WorkGroupSize.
BUG=angleproject:1442
TEST=angle_end2end_tests
TEST=angle_unittests
Change-Id: I4ab0ac05755d0167a6d2a798f8d7f1516cf54d84
Reviewed-on: https://chromium-review.googlesource.com/366740
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
666f65a1
|
2016-08-26T01:34:37
|
|
Revert "Revert "Cover vector dynamic indexing case in SplitSequenceOperator""
This reverts commit d2f59bb6dda4f3548e158a09540829f9ff56bba4.
Change-Id: If2842bce17a0c085e2bc913ff120083fbe90497c
Reviewed-on: https://chromium-review.googlesource.com/376189
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d2f59bb6
|
2016-08-17T11:50:52
|
|
Revert "Cover vector dynamic indexing case in SplitSequenceOperator"
This CL was causing inverted rendering in a WebGL application.
This reverts commit 7da9850643f55335a13a4663d226c73d0ac4d3b1.
Vectors or matrices that are dynamically indexed as a part of an
l-value generate new statements in the RemoveDynamicIndexing AST
transformation step. SplitSequenceOperator needs to detect this case
and split the sequence operator before statements are generated from
its operands to ensure the correct order of execution.
BUG=angleproject:1341
TEST=angle_end2end_tests
Change-Id: I854f8cce2d46107afa62f48edf3d32c6d5c97eda
Reviewed-on: https://chromium-review.googlesource.com/371643
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6c9503ec
|
2016-08-16T14:06:32
|
|
D3D11: Improve integer pow workaround.
A slight bug in the problem case detection applied the workaround
overly-broadly. Also included a much more thorough test.
BUG=angleproject:851
Change-Id: I5c09d67eee3622c144401769af85958f23b60c57
Reviewed-on: https://chromium-review.googlesource.com/371380
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1200c41b
|
2016-08-16T14:09:14
|
|
Suppress two new AMD failures.
These failures were exposed with the new R7 240 card.
BUG=chromium:637037
Change-Id: I1fe5add2fc08d5c93e338250efb2af62712d0e53
Reviewed-on: https://chromium-review.googlesource.com/371318
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8cf70d55
|
2016-08-09T11:10:35
|
|
D3D11: Rename ANGLEFormatSet to Format.
BUG=angleproject:1455
Change-Id: I896b3ed2d5e4ff3ad72de9a3a4b554841129e4e9
Reviewed-on: https://chromium-review.googlesource.com/367093
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c98cd326
|
2016-08-09T11:10:33
|
|
D3D11: Merge d3d11::TextureFormat and ANGLEFormatSet.
BUG=angleproject:1455
Change-Id: I7fc2640ec9d73528feb526b4d8b89cabccda4d17
Reviewed-on: https://chromium-review.googlesource.com/367092
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
17b10a9a
|
2016-08-03T14:10:06
|
|
D3D11: Store more format info by-reference.
This CL stores the d3d11::TextureFormat by reference in the texture
storage. Adding the internalFormat to the TextureFormat allows us
to store a single ref instead of three per TextureStorage11.
Also store the format sets in a d3d11::TextureFormat by-ref instead
of by-pointer, making the code a bit cleaner.
BUG=angleproject:1455
Change-Id: I3c0e966d948c694435577d7d45dc0cd156480cdb
Reviewed-on: https://chromium-review.googlesource.com/365412
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
509a1d46
|
2016-07-18T10:10:29
|
|
GN: Enable more MSVS warnings.
Some warnings were enabled only in standalone builds. Enabling them in
the GN config will prevent standalone build breakage and also make
some potentially harmful warnings more visible to non-Windows devs.
BUG=angleproject:1449
Change-Id: I11fe9bac957864d37af37b3860a22fcbd91946ac
Reviewed-on: https://chromium-review.googlesource.com/360961
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
97073d12
|
2016-04-20T10:42:34
|
|
Implement CHROMIUM_copy_texture for D3D11.
BUG=angleproject:1356
Change-Id: I70246762411dbeeb3e291e317854139a68d80070
Reviewed-on: https://chromium-review.googlesource.com/339434
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5655b849
|
2016-08-02T11:00:07
|
|
D3D11: Fix integer pow workaround for nested pows.
For some nested pow expressions, queueing two node replacements in the
same tree traversal would mangle tree, resulting in invalid code. Fix
this by iterating over the tree until no replacements are found, and
doing one replacement each iteration.
BUG=angleproject:851
Change-Id: Ie08ab23f4bfe3d5f32726856afc61ff1f3d6c789
Reviewed-on: https://chromium-review.googlesource.com/365400
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1e0ea4f5
|
2016-07-22T13:07:24
|
|
Add a workaround for NVIDIA drivers with repeated transform feedback.
BUG=angleproject:1298
Change-Id: Ibfbad8eb8ec824e377d8c1746a6691d6b689f498
Reviewed-on: https://chromium-review.googlesource.com/362601
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c9bde926
|
2016-07-24T17:58:50
|
|
D3D11: Allow gl_PointCoord when not rendering points.
ANGLE D3D11 uses a geometry shader to expand points into quads.
This led to an edge case with gl_PointCoord. When the user references
gl_PointCoord in the fragment shader but renders with GL_TRIANGLES or
other non-point primitives, gl_PointCoord is undefined, but ANGLE
would produce a link error. This would break some very odd edge-case
shaders (e.g. a shader that is used with both points and triangles).
We can fix this by simply adding a dummy PointCoord value to our
vertex shader is all cases. If the user renders points, we ignore the
PointCoord value passed to the geometry shader. If they render tris
or lines and use PointCoord, the shader signatures will match, and
PointCoord will even have a sane value of (0.5, 0.5).
BUG=angleproject:1380
Change-Id: I322155cd3801d0241cabc9bb639a5aaa502831b3
Reviewed-on: https://chromium-review.googlesource.com/362779
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
1048e43f
|
2016-07-23T18:51:28
|
|
D3D: Work around HLSL integer pow folding bug.
BUG=angleproject:851
Change-Id: I68a47b8343a29e42c0a69ca3f2a6cb5054d03782
Reviewed-on: https://chromium-review.googlesource.com/362775
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a3944d4f
|
2016-07-22T22:13:26
|
|
Add gl::Format to represent a texture/rb/surface format.
This has a few advantages: it preserves all the information of the
internal format, such as if it is sized or unsized. It also saves
looking up the format multiple times in the table, which should
improve speed in some cases.
The extra sized-ness information will allow us to perform the
correct validation in CopyTexSubImage calls.
BUG=angleproject:1228
Change-Id: I42954771b0a9a968f5d787b8cf6e0af721791855
Reviewed-on: https://chromium-review.googlesource.com/362626
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|