|
4336798e
|
2016-12-14T16:48:12
|
|
Fix UBO binding workaround bug ID.
BUG=angleproject:1637
Change-Id: I411252fa719f79c26795522ea5f1504ef460c6c0
Reviewed-on: https://chromium-review.googlesource.com/420306
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
081b6e2b
|
2016-12-14T10:53:20
|
|
Extend UBO binding workaround to Android.
This seems to fail on the Nexus 6P, and possibly 5X. Does not
seem to affect some other devices.
BUG=angleproject:1660
Change-Id: I1d456b2033fb6b2a664ac24ea0a3f7ff160922ab
Reviewed-on: https://chromium-review.googlesource.com/419856
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d9671226
|
2016-11-29T16:30:31
|
|
Implement ES3.1 glDraw*Indirect entry points for OpenGL
BUG=angleproject:1595
TEST=dEQP-GLES31.functional.draw_indirect.*
Change-Id: I82f5d0864e70d6e7abdccf5f10330ddfa099ec62
Reviewed-on: https://chromium-review.googlesource.com/417250
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: 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>
|
|
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>
|
|
cc507aa0
|
2016-12-12T10:09:52
|
|
Make the NPOT extension requestable. Fix NPOT validation in CopyTexImage.
BUG=angleproject:1523
BUG=668223
TEST=conformance/more/functions/copyTexImage2DBadArgs.html
Change-Id: I5fbf4f99fa941c356ecb57d67dd47a33741ce189
Reviewed-on: https://chromium-review.googlesource.com/418944
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
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>
|
|
92db6947
|
2016-12-09T13:10:36
|
|
Tighten the validation for staying in array buffer bounds
BUG=angleproject:1523
Change-Id: I685a9b884e5de73b94900c5b6016ce914b9bfe7f
Reviewed-on: https://chromium-review.googlesource.com/418458
Commit-Queue: Corentin Wallez <cwallez@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>
|
|
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>
|
|
120040e2
|
2016-12-07T14:46:16
|
|
D3D: Move some HLSL-specific code to a new folder.
This code doesn't actually call any D3D runtime methods, so it can be
included in our cross platform unit tests. Just include the varying
packing code for now.
BUG=angleproject:1296
BUG=angleproject:1638
Change-Id: I5c0ccccb00e1c13ca98448256be048f7cd0968ce
Reviewed-on: https://chromium-review.googlesource.com/417116
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9d7d0b14
|
2016-11-29T16:30:31
|
|
Add support for GL_DRAW_INDIRECT_BUFFER_BINDING binding point
BUG=angleproject:1595
TEST=dEQP-GLES31.functional.state_query.integer.draw_indirect_buffer_binding*
Change-Id: Ib8f712fdf10411ef0b7b63742d17c3caca99137b
Reviewed-on: https://chromium-review.googlesource.com/416193
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
47c48080
|
2016-12-07T15:38:13
|
|
Validate that line width is not NaN.
BUG=668223
Change-Id: I2f38b358dd4a6b9327562704dacce37f2b16acaa
Reviewed-on: https://chromium-review.googlesource.com/417192
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b5e997fb
|
2016-12-06T10:55:34
|
|
Update ES 3.1 expectations from SKIP to FAIL.
Change "DEBUG RELEASE" modifier to "OPENGL D3D11" to be more specific.
Add D3D11 expectations.
BUG=angleproject:1442
Change-Id: If3a9704e7f16cc473fd6ea410d10eb01ae1a8008
Reviewed-on: https://chromium-review.googlesource.com/416960
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
729a9c97
|
2016-12-05T14:22:47
|
|
Don't require GL_ARB_gpu_shader5 in order to support ES 3.0.
ES 3.0 doesn't require non-constant sampler array indexing, and we
can't require it for ES 2 without breaking WebGL for some users.
BUG=671280
Change-Id: Ib04446284acc92410a90c683a3d222871de554a8
Reviewed-on: https://chromium-review.googlesource.com/416195
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
a20fc005
|
2016-08-08T15:19:56
|
|
Implement GL_CHROMIUM_sync_query for GL.
BUG=angleproject:1366
Change-Id: I9e44679754eb704b390191c28206dedc3dc7cc4f
Reviewed-on: https://chromium-review.googlesource.com/367082
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
9f09037b
|
2016-12-02T10:20:43
|
|
Change dEQP ES 3.1 expectations from FAIL to SKIP.
UNIMPLEMENTED debug spam was causing the tests time time out. We can mark them
as FAIL again once the dEQP test setup/tear down code doesn't emmit so many
messages.
Implement a couple validation cases for ES 3.1 to greatly reduce the spam.
BUG=angleproject:1647
BUG=angleproject:1442
Change-Id: Ie7b4ac8737a2df1c0ada6ad53154ddf2f37d9c3c
Reviewed-on: https://chromium-review.googlesource.com/415520
Commit-Queue: Geoff Lang <geofflang@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>
|
|
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>
|
|
2ec65dc8
|
2016-11-30T16:28:58
|
|
Handle GL_READ_BUFFER being GL_NONE in getReadAttachment()
Change-Id: If3883de8f49a3fb33ecc598ba0b86c658cd3f0ca
Reviewed-on: https://chromium-review.googlesource.com/415565
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
47c0e048
|
2016-11-30T13:44:45
|
|
Use ComPtr references for D3D objects.
This is an work-in-progress CL to prototype using ComPtr.
It also has a new design for internal errors that doesn't use
FormatString, preferring a stream-based approach.
One thing to be aware of is that the address operator does not
behave as expected with ComPtr - we should use ::AddressOf.
BUG=angleproject:530
BUG=angleproject:1644
Change-Id: If5643e9e5726fd9aa5cbd422fca12ae169eb5b1f
Reviewed-on: https://chromium-review.googlesource.com/415027
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
ced53ae2
|
2016-11-29T15:00:51
|
|
Fix the coding style issue for validation code
Change-Id: I63aa1c1b3bbc52b0b522e4a703e6d20574eb21ad
Reviewed-on: https://chromium-review.googlesource.com/414588
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e157e5a9
|
2016-11-29T13:55:56
|
|
Fix missing virtual destructor warning on OSX standalone
BUG=angleproject:422
Change-Id: I1a1c4551f2fc55b74afd66e7f18ea61e77250eb6
Reviewed-on: https://chromium-review.googlesource.com/414634
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ee9f08c0
|
2016-11-16T10:06:10
|
|
Implement ES3.1 glProgramUniform* entry points
BUG=angleproject:1589
TEST=dEQP-GLES31.functional.program_uniform.*
Change-Id: I27fffa755fd277ed918746259cac88ab9e349c41
Reviewed-on: https://chromium-review.googlesource.com/412193
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
01074255
|
2016-11-28T15:55:51
|
|
D3D: Implement multi-thread shader compilation.
Choose to use std::async for now to implement multi-threaded compiles.
This should work across platforms and also be usable for other
threading tasks. Note that std::async does not have a good way to
wait for multiple std::futures. Also the Linux compile of std::async
is broken due to a bug in an old STL version, so disable it on this
platform.
The implementation uses a static polymorphism approach, which should
have very good performance (no virtual calls).
This design leaves the door open for other future implementations,
such as a Win32 thread pool, or one based on angle::Platform.
BUG=angleproject:422
Change-Id: Ia2f13c3af0339efaca1d19b40b3e08ecca61b8e8
Reviewed-on: https://chromium-review.googlesource.com/413712
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@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>
|
|
c0312721
|
2016-11-24T14:53:11
|
|
Add ES 3.1 version and enum to support dEQP ES 3.1 tests on Win
Change supported ES version to 3.1 on win.
Without GL_TEXTURE_2D_MULTISAMPLE enum, it will reach UNREACHABLE()
when running dEQP ES 3.1 tests on Win.
BUG=angleproject:1442
Change-Id: I55114854c4e9cba1caac10d3da5b416ef66a0d3e
Reviewed-on: https://chromium-review.googlesource.com/414606
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@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>
|
|
6c1cbf51
|
2016-11-23T12:44:35
|
|
ProgramGL: don't bindAttribLocation builtin attributes
BUG=angleproject:1636
Change-Id: Idea0e4f4a4415351b83e8f1a39b697139ff9ebe6
Reviewed-on: https://chromium-review.googlesource.com/414205
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
82d3e03d
|
2016-11-23T13:15:52
|
|
Set the return value in FenceSyncNULL::clientWait.
BUG=angleproject:1468
Change-Id: I3cf0d0a9486778b1d4384e00359034e08e425191
Reviewed-on: https://chromium-review.googlesource.com/414284
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
3b573612
|
2016-10-31T14:08:10
|
|
Add enough ES 3.1 enums to support initializing the dEQP ES 3.1 tests.
BUG=angleproject:1442
Change-Id: Iece3efb272fdcbe004d4136129ba7bfe74ba5265
Reviewed-on: https://chromium-review.googlesource.com/405530
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3a7cdb82
|
2016-11-21T16:53:40
|
|
"Implement" more NULL backend objects.
BUG=angleproject:1468
Change-Id: I3c42872ba13dbf346722bc34b9415a4e79c9f82c
Reviewed-on: https://chromium-review.googlesource.com/413328
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a96afb68
|
2016-11-21T16:52:58
|
|
Initialize the default aliased line width ranges.
BUG=angleproject:1468
Change-Id: I1908821fc560bed0cb5427a23739d11b17fea227
Reviewed-on: https://chromium-review.googlesource.com/413327
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
55482a11
|
2016-11-21T16:54:01
|
|
Don't require npot extensions in ES3 contexts.
BUG=angleproject:1468
Change-Id: I106f765e59b18de0659c85f31ce3fbac8016de95
Reviewed-on: https://chromium-review.googlesource.com/413329
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4dc3af09
|
2016-11-18T14:09:27
|
|
Set the right size on the uniform bindings array.
BUG=angleproject:1468
Change-Id: I3d75a03fcf624fe7f9510e76edc4a8298d8c5a72
Reviewed-on: https://chromium-review.googlesource.com/412860
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
437cca5a
|
2016-04-20T14:21:17
|
|
Add support for CHROMIUM_copy_texture with D3D9.
BUG=angleproject:1356
Change-Id: If63779e39609083deb6bb72dc8c29eaaa90c698c
Reviewed-on: https://chromium-review.googlesource.com/339813
Commit-Queue: Geoff Lang <geofflang@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>
|
|
e85587ac
|
2016-11-17T16:25:44
|
|
BlitGL: add a ScopedGLState to separate our state from the app's
BUG=angleproject:1356
Change-Id: I19ec4efa37d142ac7370815b078f4ba79caa0bea
Reviewed-on: https://chromium-review.googlesource.com/412451
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2291c935
|
2016-11-18T14:10:17
|
|
"Implement" FramebufferNULL::getImplementationColorRead*
BUG=angleproject:1468
Change-Id: I2727602e66a4f4f2ca166948eebd9c975e315fe7
Reviewed-on: https://chromium-review.googlesource.com/412861
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5437006c
|
2016-11-18T14:11:37
|
|
"Implement" TransformFeedbackNULL.
BUG=angleproject:1468
Change-Id: I1452b7d0f98d2e936ad16350a7ef5b01c45e76e9
Reviewed-on: https://chromium-review.googlesource.com/412862
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
44f26482
|
2016-11-18T12:49:15
|
|
Framebuffer: Fix getDepthStencilAttachment check.
The check should be using the newer operator== to check if attachments
are the same - the id() method will hit an UNREACHABLE if it's called
on a Surface attachment.
I noticed this when using this method in the Vulkan RenderPass
implementation.
BUG=angleproject:1583
Change-Id: I387b35805893d04003b22a1c7c9c12fc41c726ce
Reviewed-on: https://chromium-review.googlesource.com/412801
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
861ebb3b
|
2016-11-17T16:40:22
|
|
Use ShaderVars instead of ShaderLang in headers.
We only need the typed variable information in our header files.
The entry point and other enum info can be encapsulated better
in the cpp files that call through to the translator. The only
tricky one is the compile options, which we return from our
implementation - put the typedef for these in the ShaderVars
header to fix this.
This should partially work around the problem of shaderlang
for Vulkan and ANGLE's translator (also ShaderLang) using some
identifiers with the same names.
BUG=angleproject:1576
Change-Id: I43c530486498c210796b9e197a6780bf2f7b3afb
Reviewed-on: https://chromium-review.googlesource.com/412423
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3377f51e
|
2016-11-17T14:56:09
|
|
TextureGL: track the currently applied state.
Use it to implement lazy state setting methods for texture filters and
swizzle that will be used in subsequent workarounds.
BUG=angleproject:1356
Change-Id: Ia58267c4f125262cf57fbd98438a6d8eb8a04b33
Reviewed-on: https://chromium-review.googlesource.com/412404
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
41f9f673
|
2016-11-16T17:04:36
|
|
Remove invariant qualifier for ESSL 3.0 on AMD driver
AMD driver in Linux requires invariant qualifier to match between
shaders even for GLSL >= 4.2. This conflicts with ESSL 3.0 which
disallows invariant qualifier in fragment shader. Remove invariant
qualifier in vertex shader to workaround AMD driver bug.
BUG=chromium:639760
TEST=webgl2_conformance
Change-Id: Id5adf7e7032105486df90a1f200471ea81ee5c36
Reviewed-on: https://chromium-review.googlesource.com/411917
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
|
|
edc89d62
|
2016-11-17T16:40:20
|
|
Fix missing file license in HLSLCompiler.h.
BUG=angleproject:1576
Change-Id: I9fdd7a27944880383df53aa8468884ea2e99e670
Reviewed-on: https://chromium-review.googlesource.com/412422
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eb979bfd
|
2016-11-15T12:28:46
|
|
Program: Small cleanup to linkAttributes.
The comment here was incorrect, and the signature passed some
redundant arguments.
Noticed this when I was looking at the code for Vulkan/glslang.
BUG=angleproject:1576
Change-Id: Ie9e7eb7cbe4b65503901b2550e95cd818b7c28c0
Reviewed-on: https://chromium-review.googlesource.com/412324
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
dd9e6396
|
2016-11-16T13:27:56
|
|
BlitGL: handle copyTexImage3D for the luma workaround
BUG=angleproject:1492
Change-Id: Ica9a7c72f0e463850dd93f4a15d9b572fb10a1f6
Reviewed-on: https://chromium-review.googlesource.com/412054
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: 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>
|
|
96ed3527
|
2016-11-16T11:27:43
|
|
Buffer11: Slight cleanup in copyFromStorage.
We can call setData internally to re-use the same code.
BUG=chromium:593024
Change-Id: I9f53bef1e86a11fc23799123937c354bf45de014
Reviewed-on: https://chromium-review.googlesource.com/411919
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>
|
|
3ae14613
|
2016-11-16T11:18:44
|
|
Buffer11: Refactor constant buffer range getter.
This getter will now return the offset to bind along with the
ID3D11Buffer pointer. This encapsulates the logic of the emulation
so that we only actually check the capabilities of the driver in
a single place. This solves the issue of needing to edit the code
in multiple places when trying to force the caps for debugging,
and also encapsulates the offset calculation in the Buffer11 class.
BUG=chromium:593024
Change-Id: Idb09d560868ae12b98bcaf4ea031c4e0b6c82b4a
Reviewed-on: https://chromium-review.googlesource.com/411918
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>
|
|
94177fba
|
2016-11-14T16:12:26
|
|
Length returned from glGetUniform*RobustANGLE should be in values, not bytes.
BUG=angleproject:1354
Change-Id: I805499c3514a8b323e9864b7cf9100814f3d5cc5
Reviewed-on: https://chromium-review.googlesource.com/411420
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b0a838bf
|
2016-11-13T20:02:12
|
|
Program: Make LinkResult use gl::ErrorOrResult.
This simplifies the error handling code, and allows the use of the
ANGLE_TRY macro (and friends).
BUG=angleproject:1576
Change-Id: I3142388b10d0dd67a7f49a5c8c3d11102996be93
Reviewed-on: https://chromium-review.googlesource.com/411201
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
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>
|
|
8a9e4bcf
|
2016-11-13T20:02:12
|
|
Refactor GLES2 Blend entry points.
BUG=angleproject:747
Change-Id: I775265a7494aedd19ca4f18019e3b3181bfb12e9
Reviewed-on: https://chromium-review.googlesource.com/410135
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6898b358
|
2016-11-10T11:41:15
|
|
FramebufferGL: Fix blit workaround corner case
The SRGB blit workaround had to wrong assumptions:
- SRGB blits can have a multisample source.
- The woarkound is needed even when the filter is GL_LINEAR in the
case where we are doing a RGB -> SRGB or RGB -> SRGB blit.
BUG=angleproject:1492
BUG=chromium:658898
Change-Id: I1d89572565a4e23c1c97bdf985bb21a445e898b7
Reviewed-on: https://chromium-review.googlesource.com/409540
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
619c833b
|
2016-11-09T11:11:41
|
|
Add default compiler options to WebGL shaders.
Enforces default compiler options when compiling WebGL compatible shaders.
BUG=angleproject:1616
Change-Id: I18490db68b29981fab4817bdd61727752cf50997
Reviewed-on: https://chromium-review.googlesource.com/409016
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7b8f3c9b
|
2016-11-10T10:42:48
|
|
Encapsulate the thread local storage into an egl::Thread class.
Instead of having separate GetGlobal* functions, interact with the global
objects through a single Thread object. This reduces the number of TLS
lookups in many EGL functions and allows the Thread object to be passed
down to other objects if needed.
BUG=angleproject:1618
Change-Id: I1f9a89e8899d637633f4e91fda0e38ac308dd020
Reviewed-on: https://chromium-review.googlesource.com/409637
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
89dd8f37
|
2016-11-09T12:59:30
|
|
Remove invariant declaration in vertex shader for translation from ESSL 3.00 to GLSL <= 4.1
This is a follow-up patch of
https://chromium-review.googlesource.com/408569. This CL removes
invariant declaration in ESSL 3.00 vertex shader, such like:
"
out vec4 foo;
invariant foo;
"
This CL also adds the workarounds in libANGLE.
BUG=chromium:639760
TEST=webgl2_conformance
Change-Id: I568ab51a9a2f5da10d1aff0b63aae8805097e081
Reviewed-on: https://chromium-review.googlesource.com/409157
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
20c97cac
|
2016-11-04T18:27:56
|
|
Squashed commit of the following:
commit 0146dfeefa47b520e71f0e74230abd7dac163a79
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date: Fri Nov 4 17:43:03 2016 -0700
Revert "Implementation of eglGetSyncValuesCHROMIUM extension."
This reverts commit 5d9f5df01ac5a384d9b7cbb49d9f98a76b62c7ad.
commit 0d920fe27bd8e73d831a9002548bde00fea78709
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date: Fri Nov 4 17:23:11 2016 -0700
Revert "Fix EGLSyncControlTest.SyncValuesTest timeout on Windowse Server 2012 R2"
This reverts commit d258ca045f31eb43ec01b5501c84e9afd8e82cd6.
commit bde8defe53741855bb71fbf27bcb0a91cfafbd01
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date: Fri Nov 4 17:22:58 2016 -0700
Revert "Disabling EGLSyncControlTest.SyncValuesTest"
This reverts commit a74183613955bd891f56f6a979a5391c16c64138.
commit f78e4b7e97b9d1259878f6902bb6ddeb0aeded87
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date: Fri Nov 4 17:22:36 2016 -0700
Revert "Fix and re-enable EGLSyncControlTest.SyncValuesTest"
This reverts commit 138ec92f52da7c0fc8e6df08ac4e4e572bbf6b39.
commit f3933e6a04bd23473077d2fd74616023db3c9601
Author: Stanislav Chiknavaryan <stanisc@chromium.org>
Date: Fri Nov 4 17:20:26 2016 -0700
Revert "Handle nullptr mSwapChain in SwapChain11::getSyncValues"
This reverts commit af7f301f6ba9e5f31d1511142a936a9ba84169d0.
BUG=angleproject:1402
Change-Id: I99969e906e316574e9f739141de0e360d1edebd9
Reviewed-on: https://chromium-review.googlesource.com/408752
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Stanislav Chiknavaryan <stanisc@chromium.org>
|
|
acb4b81a
|
2016-11-07T13:50:29
|
|
translator: Put ShaderLang APIs in "sh" namespace.
Working with glslang in Vulkan means we are static linking libANGLE
with functions that have the same name as our translator APIs. We
can fix this by scoping our APIs. We don't need to scope the types
of the file, since they don't conflict.
This will require a follow-up patch to remove the unscoped APIs
once we switch over Chromium.
We also scope TCompiler and some related classes to avoid multiply
defined link errors with glslang.
BUG=angleproject:1576
Change-Id: I729b19467d2ff7d374a82044b16dbebdf2dc8f16
Reviewed-on: https://chromium-review.googlesource.com/408337
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
01a80eeb
|
2016-11-07T12:06:18
|
|
Refactor all the Bind* GLES 2.0 entry points.
This requires storing a reference the the Context's Framebuffer map
in the ValidationContext. Likely we'll need to do this as well for
the other non-shared object types.
BUG=angleproject:747
Change-Id: I73ee8b0be3c3b9e54b7e48e49d6f738cf1d926dd
Reviewed-on: https://chromium-review.googlesource.com/407843
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
62a90cf6
|
2016-11-07T08:01:17
|
|
Don't use the bind SRV flag for MS textures in D3D11 FL 10.0.
With the latest Windows SDKs, it is an error to create a multisampled
texture with both bind SRV and DSV flags in feature level 10.0. The
error:
D3D11 ERROR: ID3D11Device::CreateTexture2D: If the feature level is less
than D3D_FEATURE_LEVEL_10_1, a Texture2D with sample count > 1 cannot have
both D3D11_BIND_DEPTH_STENCIL and D3D11_BIND_SHADER_RESOURCE. This call may
appear to incorrectly return success on older/current D3D runtimes due to
missing validation, despite this debug layer message.
[STATE_CREATION ERROR #99: CREATETEXTURE2D_INVALIDBINDFLAGS]
BUG=656989
Change-Id: Iedce65f6c877786e28b96c159abd7a5b2a32cfd5
Reviewed-on: https://chromium-review.googlesource.com/408339
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>
|
|
077f20ae
|
2016-11-01T10:08:02
|
|
Properly check for debug and robust access context creation flags.
These flags can come from both attributes and bitfield flags.
Also move the robust access check to an UNIMPLEMENTED in Context, dEQP ES 3.1
tests attempt to use this flag and it's convenient to be able test by disabling
UNIMPLEMENTED assertions.
BUG=angleproject:1442
Change-Id: I1641fdb3afee308235351ebd60be680765b16b3b
Reviewed-on: https://chromium-review.googlesource.com/405774
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
2f6435e0
|
2016-11-02T10:43:21
|
|
Change UNIMPLEMENTED to not assert by default.
It is not feasible to run dEQP against ES 3.1 on the bots without removing this
assertion. Messages will still be logged and UNREACHABLE will still generate
assertion failures when the behaviour is needed. This matches the behaviour
of Chromium's NOTIMPLEMENTED macro.
Remove the ANGLE_TEST_CONFIG macro, it was not doing anything useful anymore.
BUG=angleproject:1442
Change-Id: I76376817a87e1a75ad1a938e1db1d7763e094372
Reviewed-on: https://chromium-review.googlesource.com/406928
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
21b786b1
|
2016-11-01T17:41:31
|
|
ES3: Make copy conversion set a static switch.
This removes the global std::set initialization.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I6a7f4211905ea4a83e0e2337977e2f6fb375a7dd
Reviewed-on: https://chromium-review.googlesource.com/405368
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b0817d17
|
2016-11-01T15:48:31
|
|
Refactor CopyBufferSubData entry point.
This brings it in line with the new style.
BUG=angleproject:747
Change-Id: Ie4b223d018999be18c3b19fae9cc825a78de09a9
Reviewed-on: https://chromium-review.googlesource.com/405815
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eb66a6e2
|
2016-10-31T13:06:12
|
|
Replace the GLVersion class with gl::Version.
Update code to use gl::Version in as many places as possible to ease ES 3.1
support.
BUG=angleproject:1588
Change-Id: I3490b53a81027cf849dac551a9cc66ce04506144
Reviewed-on: https://chromium-review.googlesource.com/404946
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9fdc2c67
|
2016-11-01T10:45:13
|
|
Fix incorrect assertion in SwapChain11.cpp.
BUG=angleproject:1144
Change-Id: I6186381d1aad13bbb07af47b3cf94d6ec7cbb566
Reviewed-on: https://chromium-review.googlesource.com/405693
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
032e3702
|
2016-10-31T16:14:14
|
|
D3D9: Make GetD3DFormatInfo constexpr.
This removes another static global map initializer.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I302f349ea4e95d079077866a07b0d57758c40892
Reviewed-on: https://chromium-review.googlesource.com/405488
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
9cec39f6
|
2016-10-31T16:14:14
|
|
D3D11: Convert the FL 9_3 vertex format table to constexpr.
This removes a static global map initialization.
BUG=angleproject:1389
BUG=angleproject:1459
Change-Id: I6eb19f6649280e72682c6806ea0bf6eb70173984
Reviewed-on: https://chromium-review.googlesource.com/405487
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
60e6edfa
|
2016-10-31T12:17:19
|
|
Make ASSERT reference the conditional expression.
This should prevent further unexpected bot breakage due to
unreferenced variables in the ASSERT expression.
Also remove the no longer needed variable referencing macro.
BUG=angleproject:1586
Change-Id: I127695165bdfe39c51fe8d17e00daf6bf2fa8252
Reviewed-on: https://chromium-review.googlesource.com/404948
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
b0e6e412
|
2016-10-14T15:59:47
|
|
Workaround clear issue on Intel Skylake D3D driver
On some Intel D3D drivers on Skylake, calling clear may take no effect.
To work around this bug, we call clear() twice when we attempt to do clear
on these platforms.
BUG=chromium:655534
Change-Id: I3b05892e80e5797d268861e8f52e080f5175855b
Reviewed-on: https://chromium-review.googlesource.com/398522
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
705a9194
|
2016-08-29T10:05:27
|
|
Reland "Remove invariant qualifier for input in fragment shader"
This relands https://chromium-review.googlesource.com/#/c/400005/.
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. This CL removes invariant
declaration for input in fragment shader except AMD driver in Linux.
AMD's driver obviously contradicts the spec by forcing invariance to
match between vertex and fragment shaders.
BUG=chromium:639760, chromium:659326
TEST=conformance/glsl/misc/shaders-with-invariance.html and
conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html
Change-Id: I0aa9be14f0cee7a11a249c91fba27c570c52ca1b
Reviewed-on: https://chromium-review.googlesource.com/404228
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
5677e4d1
|
2016-10-28T15:27:07
|
|
Buffer11: Ensure we don't overflow on setData.
When mapping uniform buffers for very large buffers, we could end
up copying past buffer bounds. This would trigger crashes on some
configs. We can fix this by clamping the copy size correctly.
BUG=chromium:659892
Change-Id: I9d1af984da34867692d4c7b8908c016ebec7a63b
Reviewed-on: https://chromium-review.googlesource.com/404931
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2bfc4119
|
2016-10-28T11:48:54
|
|
Put angle::Format table in a cpp file.
The best practice is to expose a non-constexpr query function and
hide the constexpr table in a cpp, so it won't be included verbatim
in multiple other source files.
BUG=angleproject:1389
Change-Id: Ic4e19d14c832643be1552c5a14e441826c41970f
Reviewed-on: https://chromium-review.googlesource.com/404478
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bc78fc61
|
2016-10-28T11:21:37
|
|
Fix a compile error in SwapChain11.cpp
In function resetOffscreenColorBuffer, the local variable 'result'
is never used in its scope, so when attempting to build a release
version of Chromium with latest ANGLE on Windows, ninja will report
a compile warning and stop the compilation: 'result': local variable
is initialized but not referenced.
The build failure starts at:
https://chromium-review.googlesource.com/#/c/316804/
Change-Id: I29c05653f0d2e4f34c2e0402848f403ec2af8e5a
Reviewed-on: https://chromium-review.googlesource.com/404515
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
4f57e5f9
|
2016-10-27T17:36:53
|
|
D3D11: Make several format tables constexpr.
This should guarantee the best memory access patterns.
It introduces some indirections for some format queries,
but most of these should be direct array lookups, or used
infrequently. We can optimize this later if necessary.
BUG=angleproject:1389
Change-Id: I5e2c8c530a07798494afd3ea36b6164d7564c02c
Reviewed-on: https://chromium-review.googlesource.com/403314
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: 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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|