|
6163c759
|
2015-12-07T16:32:59
|
|
ES3: Allow floating point blit conversions under extension.
If we support EXT_color_buffer_float, we should also allow blits to
and from float and fixed point data, according to the extension
spec.
BUG=angleproject:1243
TEST=dEQP-GLES3.functional.fbo.blit.*
Change-Id: I0957ac0647c94e38ebd67480c608eeb16c82dbf4
Reviewed-on: https://chromium-review.googlesource.com/316030
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
3d890436
|
2015-12-08T11:47:59
|
|
Load the WGL_NV_DX_interop entry points in FunctionsWGL.
BUG=540829
Change-Id: Iab080789f2a21b900e2641aa97c0e3392d007391
Reviewed-on: https://chromium-review.googlesource.com/316802
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
c5629759
|
2015-12-07T16:29:04
|
|
Implement full program binary support for ES3.
Refactor validation to be used in both the OES and ES3 entry points.
BUG=angleproject:600
BUG=angleproject:1101
Change-Id: I2008c4ea04ce07910f03ae0b997f8a77b66203d8
Reviewed-on: https://chromium-review.googlesource.com/316620
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
36167ab3
|
2015-12-07T10:27:14
|
|
Don't allocate VertexArray or TransformFeedback objects until binding.
Follow the spec more closely and only reserve IDs of vertex arrays and
transform feedback objects before binding. This saves memory and allows
the glIs* calls to succeed.
BUG=angleproject:1218
BUG=angleproject:1101
Change-Id: I0039680c39c66c1c5506f6a1a9121a71791b77e9
Reviewed-on: https://chromium-review.googlesource.com/316591
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
50b3fe89
|
2015-12-08T14:49:12
|
|
Revert "Don't allocate VertexArray or TransformFeedback objects until binding."
This reverts commit 070c0124be642383220ca44f795225b89d56f13b.
Change-Id: I4ffa528f63311615bb4e22593c6e8a0ec424cd2d
Reviewed-on: https://chromium-review.googlesource.com/316780
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
61fea139
|
2015-12-07T14:20:02
|
|
Protect against overflow in BinaryInputStream.
BUG=angleproject:1112
Change-Id: I6d58d9e0db97ec6c67661abd92b57f61f357d6b5
Reviewed-on: https://chromium-review.googlesource.com/316640
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
41a2b8ea
|
2015-12-07T21:44:26
|
|
Revert "Protect against overflow in BinaryInputStream."
This reverts commit dfa2fe31ad66ede57af1c0244ee99b8918eb2d9b.
Change-Id: If4a7eb1876876991c537d0a9077cede52ba40b95
Reviewed-on: https://chromium-review.googlesource.com/316621
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
a5ed56ee
|
2015-12-07T16:32:59
|
|
D3D11: Mask off alpha channel for RGBA->RGB blits.
We emulate RGB8 in D3D11 with RGBA8 textures. Make sure when we blit
that we don't copy the unused texture channel.
BUG=angleproject:1245
TEST=dEQP-GLES3.functional.fbo.blit.*
Change-Id: I805132fda984860a6d84ad4c1fc7169973938df9
Reviewed-on: https://chromium-review.googlesource.com/316010
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
dfa2fe31
|
2015-12-07T14:20:02
|
|
Protect against overflow in BinaryInputStream.
BUG=angleproject:1112
Change-Id: Iedd92ce7a56b20f42e51ef86278eb64fbae3c353
Reviewed-on: https://chromium-review.googlesource.com/316031
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
976489b2
|
2015-12-07T10:27:14
|
|
Don't allocate VertexArray or TransformFeedback objects until binding.
Follow the spec more closely and only reserve IDs of vertex arrays and
transform feedback objects before binding. This saves memory and allows
the glIs* calls to succeed.
BUG=angleproject:1218
BUG=angleproject:1101
Change-Id: I7bf99870a7c93f5545325785cbecd891c6b77f8a
Reviewed-on: https://chromium-review.googlesource.com/316402
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
4028159e
|
2015-11-19T18:24:44
|
|
Using dirty bit notification for D3D11 viewport state
BUG=angleproject:1161
This is a continuation of the dirty bit refactor
Change-Id: I101f415094dd406f6b0a40cb260f1cbbfec7b62c
Reviewed-on: https://chromium-review.googlesource.com/313249
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Dian Xiang <dianx@google.com>
|
|
29a65546
|
2015-11-17T17:15:50
|
|
Using dirty bit notification for D3D11 scissor rectangle state
BUG=angleproject:1161
This is a continuation of the dirty bit refactor
Change-Id: I1a9f297835943eee5f756e4e4721b2db543184ec
Reviewed-on: https://chromium-review.googlesource.com/312987
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Dian Xiang <dianx@google.com>
|
|
2da819e1
|
2015-12-03T15:53:19
|
|
D3D11: Fix blit from out-of-bounds.
Do not copy pixels in a negative read region. Also make sure we clamp
the boundaries so the dEQP tests are mostly pixel-perfect.
We can't yet fix some default framebuffer tests because of issues with
blitting RGBA8 (default FBO) to floating point framebuffers.
BUG=angleproject:1241
TEST=dEQP-GLES3.functional.fbo.blit.*
Change-Id: I16ee264b0b1a7e6b9121dde5ae4f96cfd27ea53e
Reviewed-on: https://chromium-review.googlesource.com/315670
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
063d9e78
|
2015-11-19T17:24:47
|
|
Add support for EGL_EXT_platform_device
This allows an application to use EGLDeviceEXT to initialize EGL.
For example, if an application wants to initialize EGL using an existing D3D11
device (instead of ANGLE creating its D3D device), then the app may create an
EGLDeviceEXT using EGL_ANGLE_device_creation_d3d11, and use this device to
initialize EGL via EGL_EXT_platform_device.
BUG=angleproject:1190
Change-Id: Ife91ce95a63e29eb2b3f05aedfb668e4cac8f5ce
Reviewed-on: https://chromium-review.googlesource.com/313444
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
|
|
fc1a44a1
|
2015-12-02T12:37:10
|
|
Revert "Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]""
This reverts commit dd5c5b79333fdde7858a77d39e91cc3d30b74c9e.
BUG=angleproject:1190
Change-Id: I1bc1b232b6a916da6d18b546baf20e0854a2768f
Reviewed-on: https://chromium-review.googlesource.com/315169
Tested-by: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
15ede106
|
2015-11-26T15:20:34
|
|
D3D11: Disable stencil buffer when not attached.
Similarly to the D24S8 attachment getting confused when we use only
the stencil portion, ANGLE could write to the stencil portion when
we were only using the depth. Fix this by internally disabling stencil
test and writes when using this type of configuration.
BUG=angleproject:1237
Change-Id: Ib7868d5e9f8aea73304a132005541dab947aa619
Reviewed-on: https://chromium-review.googlesource.com/314032
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
0df8fe44
|
2015-11-24T16:10:24
|
|
D3D11: Don't read or write to the unused depth buffer.
When using STENCIL8, we emulate it on D3D11 with D24S8, since there
is no native stencil-only format. However in many places we would
write to the depth part of this format, and confuse the D3D runtime
when it would use the depth test. Fix this by never modifying the
depth portion of the buffer, or reading from it.
BUG=angleproject:1232
Change-Id: Ifd2e54eceae84e8deea85f439c132d07981b2286
Reviewed-on: https://chromium-review.googlesource.com/313996
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
40eefabd
|
2015-11-23T16:58:33
|
|
Rewrite WindowSurfaceCGL to use CAOpenGLLayer
It used to render to IOSurfaces and use setContents to directly give
them to the OSX compositor. This was worth the complexity only because
Chrome going to use that code path. This is no longer the case.
Instead we replace the implementation with one based on CAOpenGLLayer,
that basically gets a "draw" callback every frame. The complexity comes
from the fact that this callback is called from another thread, with
another CGL context.
BUG=angleproject:1233
Change-Id: I1878d0071d057e043e0bb9043d9849f50e00d023
Reviewed-on: https://chromium-review.googlesource.com/314031
Reviewed-by: ccameron chromium <ccameron@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
dd5c5b79
|
2015-12-02T08:41:28
|
|
Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]"
Causes failures on Windows/GN:
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(108)
: error C3861: 'eglCreateDeviceANGLE': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(113)
: error C3861: 'eglQueryDeviceAttribEXT': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(119)
: error C3861: 'eglReleaseDeviceANGLE': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(143)
: error C3861: 'eglQueryDeviceAttribEXT': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(162)
: error C3861: 'eglCreateDeviceANGLE': identifier not found
e:\b\build\slave\win_x64_gn\build\src\third_party\angle\src\tests\egl_tests\egldevicetest.cpp(178)
: error C3861: 'eglCreateDeviceANGLE': identifier not found
This reverts commit 4029ad42d5ffe94a0a744532ab3577b982f847b8.
BUG=angleproject:1190
Change-Id: Ibcdfd8cea7ba275cd67c0220f8d7a1069ec1cf97
Reviewed-on: https://chromium-review.googlesource.com/315480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
3d677ea6
|
2015-11-16T13:38:47
|
|
Implement EGL_ANGLE_x11_visual
Reland with a fixed tests on AMD.
This extension will be used by Chrome to advertise the visual it will
use for its windows. Having ANGLE use the same visual will bring
several benefits:
- A blit will be avoided, and the content of the window might be
rendered on the system framebuffer directly.
- There will be less latency when resizing windows which will make it
much less likely to see a black border when resizing.
BUG=522149
Change-Id: I66004b6ac45453330af7c4c810ddf2c26941be42
Reviewed-on: https://chromium-review.googlesource.com/314661
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
81176780
|
2015-11-24T16:10:23
|
|
Return correct error in Framebuffer::checkStatus.
UNSUPPORTED is a specific error meaning an implementation-specific
incompatibility. For cases where the attachments are invalid according
to the spec, we should be returning INCOMPLETE_ATTACHMENT.
BUG=angleproject:1231
Change-Id: I4b4332ee5661738374e93c825a53d66d7ba1fad5
Reviewed-on: https://chromium-review.googlesource.com/313995
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f06e607f
|
2015-12-01T10:44:16
|
|
Add support for GL_OES_depth32.
This will allow ANGLE to be more conformant when it accepts 32-bit
depth as a Renderbuffer format.
BUG=angleproject:1230
Change-Id: I9336c6f951d280b2332fc3e6d2e640852473aa03
Reviewed-on: https://chromium-review.googlesource.com/313994
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f01ac9fb
|
2015-11-19T15:48:22
|
|
Fix D3D static buffer cache cleanup logic
BUG=angleproject:197
Change-Id: Ia71f4063fa13c72a3a8bd41ec8fe01a762543796
Reviewed-on: https://chromium-review.googlesource.com/313468
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ab831f04
|
2015-12-01T09:39:10
|
|
Add queries for GL_RASTERIZER_DISCARD.
BUG=angleproject:1238
Change-Id: Id3b219dfcc758cf19d61b7dc7eeabd8c2159d212
Reviewed-on: https://chromium-review.googlesource.com/315100
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
2302e69a
|
2015-12-01T12:44:43
|
|
Fixed compilation with mingw.
Change-Id: I8102ce4dd934ac247a29e31140d3a1eca691802f
Reviewed-on: https://chromium-review.googlesource.com/315060
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
0e4c8e73
|
2015-11-16T19:19:34
|
|
Using dirty bit notification for D3D11 rasterizer state
BUG=angleproject:1161
This is a continuation of the dirty bit refactor
Change-Id: I78ab046aaeb7de6dd288433c86e6524dcb2d6a66
Reviewed-on: https://chromium-review.googlesource.com/312837
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Dian Xiang <dianx@google.com>
|
|
83af74f5
|
2015-11-13T16:39:53
|
|
Using dirty bit notification for D3D11 depth stencil state
BUG=angleproject:1161
This is a continuation of the dirty bit refactor
Change-Id: If7d523e6200fef631051cab0bde47fdec8385c17
Reviewed-on: https://chromium-review.googlesource.com/312722
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Dian Xiang <dianx@google.com>
|
|
984ef41a
|
2015-11-24T16:10:21
|
|
Ignore clear commands if rasterizer discard is enabled.
From the 3.0 spec (Section 3.1):
"When enabled, RASTERIZER_DISCARD also causes the Clear and
ClearBuffer* commands to be ignored."
BUG=angleproject:1227
Change-Id: I0316103827927e8af9732d7b4565d787b881ccb8
Reviewed-on: https://chromium-review.googlesource.com/313993
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
8d9f35f1
|
2015-11-24T16:10:20
|
|
Re-land "D3D11: Fix Integer Texture Cube mip mapping."
We were missing both the correct SRV parameter, as well as the full
computation of the mip level in the HLSL.
Re-land makes the mip computation only happen with implicit sampling.
Before it would confuse the LOD0 computation.
BUG=angleproject:1208
TEST=dEQP-GLES3.functional.texture.*
Change-Id: I4b579033afe5cd1aca1f2d017e48a74c7fc324cc
Reviewed-on: https://chromium-review.googlesource.com/314330
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4029ad42
|
2015-10-29T10:14:47
|
|
Add and implement EGL_ANGLE_device_creation[_d3d11]
BUG=angleproject:1190
Change-Id: I248935ef81803062cf9ba5776512cda456331f51
Reviewed-on: https://chromium-review.googlesource.com/309634
Tryjob-Request: Austin Kinross <aukinros@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
5ac60fc2
|
2015-11-27T13:42:02
|
|
Revert "Implement EGL_ANGLE_x11_visual"
Fails on Linux AMD:
http://build.chromium.org/p/chromium.gpu.fyi/builders/Linux%20Release%20%28ATI%29/builds/43819
EGLX11VisualHintTest.InvalidWindowVisualID:
../../third_party/angle/src/tests/egl_tests/EGLX11VisualTest.cpp:183: Failure
Value of: EGL_TRUE == eglInitialize(display, nullptr, nullptr)
Actual: false
Expected: true
BUG=522149
This reverts commit b28e010aa10b3e4aec3207e767be10ee5ffb25fd.
Change-Id: I9a02f2aa3caadd787eb0099c0ddf9d781084fa1c
Reviewed-on: https://chromium-review.googlesource.com/314660
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
b28e010a
|
2015-11-16T13:38:47
|
|
Implement EGL_ANGLE_x11_visual
This extension will be used by Chrome to advertise the visual it will
use for its windows. Having ANGLE use the same visual will bring
several benefits:
- A blit will be avoided, and the content of the window might be
rendered on the system framebuffer directly.
- There will be less latency when resizing windows which will make it
much less likely to see a black border when resizing.
BUG=522149
Change-Id: Icd484c9a948ed5b5b9116247bb50560bffa30667
Reviewed-on: https://chromium-review.googlesource.com/312323
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
aa16dd4a
|
2015-11-25T13:25:29
|
|
Hard-limit the number of uniform vectors in OpenGL.
Using the real limits (usually 4096) can cause the uniforms/gl-uniform-arrays
WebGL test to time out. This limit artificial limit can be lifted once the
test is updated.
BUG=407309
Change-Id: I17a0a963e606800ec4f6f1972c777b597976622f
Reviewed-on: https://chromium-review.googlesource.com/314460
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
b4a3af29
|
2015-11-25T15:02:51
|
|
Remove assertion that OpenGL program linking succeeds.
This assertion is causing problems on the debug bots. While the assertion is
nice for local debugging, causing the entire run of WebGL cts on the trybots
to fail is too big of a drawback.
BUG=angleproject:889
Change-Id: Ie86d2f0e84132bef8fb94a693440af7e9b7fc8e9
Reviewed-on: https://chromium-review.googlesource.com/314480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
6328667d
|
2015-11-24T13:00:08
|
|
Add gl_FragDepth support for D3D11/ES3.
An incorrect check was blocking existing support we added for the
extension.
BUG=angleproject:1226
Change-Id: I335053b1bebb37fd9296b36702031bd34c1bb59e
Reviewed-on: https://chromium-review.googlesource.com/313992
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6b120b9f
|
2015-11-24T13:00:07
|
|
Add checks for FBO attachment layer.
We would allow the app to attach layers that were out-of-bounds. Fix
this by checking against the underlying resource dimensions. Also
rework the code a bit to clean up the texture size query, which is
available from the ImageDesc.
BUG=angleproject:869
Change-Id: I984f1db16daea6ca650d795884d8ec2cb8f05ebb
Reviewed-on: https://chromium-review.googlesource.com/313991
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ee322723
|
2015-11-24T20:42:48
|
|
Revert "D3D11: Fix Integer Texture Cube mip mapping."
2 tests failed:
dEQP_GLES3.Default/functional_shaders_texture_functions_texture_isamplercube_vertex (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234)
dEQP_GLES3.Default/functional_shaders_texture_functions_texture_usamplercube_vertex (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234)
BUG=angleproject:1208
This reverts commit 5778557fe99e300f245a7bfc2200f6b0179e3fbf.
Change-Id: I6f7441bdbfbf937680b0d572645edee8ece649a1
Reviewed-on: https://chromium-review.googlesource.com/314301
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
cc86d64e
|
2015-11-24T13:00:07
|
|
Make Framebuffer size check ES2-only.
This is an ES2-only incompleteness check. We also need to require
matching dimensions in D3D11, but make this an implementation
specific check. Also make all implementation specific errors
'UNSUPPORTED' since that catches all "non-ES" framebuffer
restrictions.
Note that we can't be conformant here in D3D11 currently, since the
spec only makes an exception for mismatching formats for UNSUPPORTED,
not for size checks. However, we don't have an easy solution.
BUG=angleproject:1225
Change-Id: Ic80a04bce397fc12643b010c874f432033babc5d
Reviewed-on: https://chromium-review.googlesource.com/313990
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
5778557f
|
2015-11-23T09:37:44
|
|
D3D11: Fix Integer Texture Cube mip mapping.
We were missing both the correct SRV parameter, as well as the full
computation of the mip level in the HLSL.
BUG=angleproject:1208
Change-Id: I345b1e0895495654de3863c4ebcc395d9b7371b9
Reviewed-on: https://chromium-review.googlesource.com/312060
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
847638a6
|
2015-11-20T13:01:41
|
|
Re-land "D3D: Generate more shader debug info by default."
Re-land with fix for shader size query.
The debug info can be very useful to WebGL developers. Instead of
hiding the feature behind an unsupported and broken flag, always
enable it so that WebGL devs can access the useful translated info.
Change the debug info policy to build the full info (including
generated assembly) in Debug, and all info excepth the assembly
in Release.
BUG=angleproject:1179
Change-Id: I812b2c9ba98cb8c9d5ec95721441c70e8990b626
Reviewed-on: https://chromium-review.googlesource.com/313600
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
451cb838
|
2015-11-11T10:45:57
|
|
Using dirty bit notification for d3d11 blend state
BUG=angleproject:1161
This is a re-land for commit ff2ab57. Dirty bits didn't check for
sampleMask, hence when sampleMask changed and nothing else, d3D
states didn't update. This commit also focuses on blend state for d3d11 to
make the cl change smaller and more manageable.
This commit also some performance regression issues that were occuring in
commit ff2ab57
Change-Id: I866066689911870a84125fa2150f9efbf1405ad0
Reviewed-on: https://chromium-review.googlesource.com/312468
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Dian Xiang <dianx@google.com>
|
|
57d116a4
|
2015-11-20T17:59:18
|
|
Revert "D3D: Generate more shader debug info by default."
Has a bug where we would return the wrong size for the query.
BUG=angleproject:1179
This reverts commit 6de4d49477986339a92b542a18df22c49d10cf14.
Change-Id: Ib58aaf0b58d8f20765f7267b29acd8c62d287525
Reviewed-on: https://chromium-review.googlesource.com/313552
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
6de4d494
|
2015-11-19T14:08:34
|
|
D3D: Generate more shader debug info by default.
The debug info can be very useful to WebGL developers. Instead of
hiding the feature behind an unsupported and broken flag, always
enable it so that WebGL devs can access the useful translated info.
Change the debug info policy to build the full info (including
generated assembly) in Debug, and all info excepth the assembly
in Release.
BUG=angleproject:1179
Change-Id: I25656b76b8437cb2edc9d88cd33f2c4d19b6a3f0
Reviewed-on: https://chromium-review.googlesource.com/313160
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
c22fef94
|
2015-11-19T13:55:27
|
|
D3D11: Fix instancing draw with line loops.
We were missing the implementation for the instanced draw for these.
Implement them in the same way as for triangle fan.
BUG=angleproject:1101
Change-Id: I444f3a23383c63b8df6f9ebe25b255c8890632a1
Reviewed-on: https://chromium-review.googlesource.com/313007
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
a0537333
|
2015-11-19T13:55:26
|
|
D3D: Fix incorrect instanced vertex offsets.
The spec says that DrawElements is equivalent to the instanced
call with an instance ID of zero. This patch fixes a bug in our
VertexDataManager where we would sometimes ignore the attribute divisor
for DrawElements, and stream the wrong amount of data/wrong start
offset.
BUG=angleproject:1213
TEST=dEQP-GLES3.functional.draw.draw_elements.*
TEST=dEQP-GLES3.functional.draw.draw_range_elements.*
TEST=dEQP-GLES3.functional.draw.random.*
Change-Id: I1c430a14ab3be68a24e233e9cdd1e4fd88c920a0
Reviewed-on: https://chromium-review.googlesource.com/312062
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
22581ff1
|
2015-11-06T14:25:54
|
|
Support glGet GL_TRANSFORM_FEEDBACK_BINDING.
BUG=angleproject:1150
Change-Id: If11bb2df6407248812d6dfa415395bbe315fa58c
Reviewed-on: https://chromium-review.googlesource.com/311152
Tryjob-Request: Shannon Woods <shannonwoods@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Frank Henigman <fjhenigman@chromium.org>
|
|
84b0c3b7
|
2015-11-05T15:15:28
|
|
Re-land "In D3D, cache static vertex buffers to prevent wasteful recreation"
BUG=angleproject:197
Changes since first failed patch:
- Optimized BufferD3D::getStaticVertexBuffer()
- Removed loop to commit static buffers
- Out-of-date static buffers (which are much rarer anyway after this patch)
are marked for deletion at the *next* draw call, rather than searched for
before each draw call. That search was expensive.
The change should see a net improvement to DrawCallPerfBenchmark for D3D null.
Change-Id: If4942e0afd9e8fefadce8820a1305e13636547ef
Reviewed-on: https://chromium-review.googlesource.com/311115
Tested-by: Austin Kinross <aukinros@microsoft.com>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
daa8c27f
|
2015-11-18T14:13:55
|
|
Fix a user-after-free in a ValidationES unittest.
The State destructor was trying to unref a Program that had already
been deleted. Fix this by unbinding resources from State before we
exit the test.
BUG=554520
Change-Id: I2215b1e5d27a34a649572c8f81e96dfeef7e983e
Reviewed-on: https://chromium-review.googlesource.com/312977
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
55c25d0c
|
2015-11-18T13:08:08
|
|
D3D11: Fix varying packing with structs.
Previously we would try to pass an entire struct through HLSL's
shader interface. Instead, split this off as if each field was
its own variable, which seems to be spec compliant (see ESSL 3.10).
In the future we may want to fix register packing to use specific
components of float4/int4/uint4 HLSL registers. This could also fix
the remaining bugs in the SM3 packing.
TEST=dEQP-GLES3.functional.shaders.linkage.varying.*
BUG=angleproject:910
BUG=angleproject:1202
Change-Id: I1fd8b4505abc39bd2385ed5c088c316d55d0bc2c
Reviewed-on: https://chromium-review.googlesource.com/311242
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
9fc3682c
|
2015-11-18T13:08:07
|
|
D3D: Rework varying packing code.
In D3D we pack varyings by making a register map, and using the
recommended GLSL ES algorithm to reserve register space. We use
this map to assign row and column slots to each varying and then
produce a semantic index value.
The existing scheme had a number of bugs, and was failing several
angle_end2end_tests. The new design cleans up the code somewhat
and uses a different counting scheme for the semantic indexes:
just sort the varyings in packing order and use a simple
incrementing semantic index per varying. In SM4+, the HLSL compiler
sorts and packs the varyings correctly itself, and in SM3, handle
the cases we don't support by returning an error instead of a D3D
compiler link error.
Also refactor how we store varying information for TF Feedback/
StreamOut. Only store the necessary D3D information, instead of
extra information like the name and type.
This fixes several tests in GLSLTest/*. This also will allow us to
fix interpolation qualifier packing and the structure packing in
HLSL, which seems to work differently than the rest of the varying
types.
BUG=angleproject:1202
TEST=bots,dEQP-GLES3.functional.transform_feedback.*
Change-Id: Ie5bfbb4f71d8bf97f39115fc46d2e61b131df639
Reviewed-on: https://chromium-review.googlesource.com/311241
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
e39a3f0a
|
2015-11-17T20:42:15
|
|
ProgramD3D: Move some common code into a Metadata class.
This metadata class captures some of our commonly referenced but also
complex flats into a shared place. We can then re-use them in the
semantic code, the DynamicHLSL linking code, and the program code.
Refactoring patch only.
BUG=angleproject:1202
Change-Id: I8b6088cfa5488c5173a6f06c15abab5a4ead4cb8
Reviewed-on: https://chromium-review.googlesource.com/311700
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6218c80b
|
2015-11-09T11:14:47
|
|
Revert "Revert "renderergl_utils: Require explicit location qualifier for OpenGLES3""
This reverts commit 45a7d64fd84a7cb292ff71890a61f8d2b7609aa4.
Change-Id: I7f94609fc7cf14220d98c61e73a13311d3cc4ecd
Reviewed-on: https://chromium-review.googlesource.com/311245
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
50ff85e5
|
2015-11-11T14:22:21
|
|
DisplayGLX: add support for complete lack of extensions
We thought we could rely on GLX_create_context_attrib being present but
this is not the case with VM drivers. Instead we fallback to creating
contexts with glXCreateContext that doesn't offer control on which
version and profile the context will have.
Likewise we may not always be able to use the multisample but we can
safely assume that the number of samples and sample buffers are zero in
this case.
BUG=angleproject:1206
Change-Id: I888c69e609764994baf86386c9683b3edeb320f7
Reviewed-on: https://chromium-review.googlesource.com/312230
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
a37c6137
|
2015-11-11T17:06:53
|
|
D3D11: Fix GL_ETC1_RGB8_OES format.
Passes all ETC1 related dEQP tests on Windows.
BUG=angleproject:1212
TEST=dEQP-GLES2.capability.extensions.compressed_texture_formats.GL_OES_compressed_ETC1_RGB8_texture
TEST=dEQP-GLES2.functional.texture.format.*
TEST=dEQP-GLES2.functional.texture.wrap.*
TEST=dEQP-GLES2.functional.texture.filtering.*
TEST=dEQP-GLES3.functional.texture.format.compressed.etc1*
TEST=dEQP-GLES3.functional.texture.filtering.*
Change-Id: I937b039f90161bb5e8777766ea0c032ddfbbf159
Reviewed-on: https://chromium-review.googlesource.com/312416
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Minmin Gong <mgong@microsoft.com>
|
|
65345da4
|
2015-11-13T11:25:23
|
|
Re-land "D3D: Move some varying packing code into a new file."
Re-land with fix for compile errors.
Refactoring patch which moves code only. Work and full description
will follow in a subsequent CL.
BUG=angleproject:1202
Change-Id: Ib7c7dbd32491cdd9512dbecdc0e1e90303d8f28d
Reviewed-on: https://chromium-review.googlesource.com/312481
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
67bc1021
|
2015-11-06T14:30:15
|
|
GLX backend: fallback to lesser swap_control extensions
Re-reland with a warning fix.
We would like to use the EXT_swap_control extension to specify the swap
interval of each drawable independently. However open source drivers do
not expose this extension and instead expose the MESA and SGI versions
that have a global swap interval.
This commit changes the code to use the best swap_control extension it
can, potentially changing the swap interval on each swap buffers on
lesser extensions.
BUG=angleproject:1206
Change-Id: I7ecf1eed6808672f277d0242d65f90d7851d2a32
Reviewed-on: https://chromium-review.googlesource.com/312322
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
2075102d
|
2015-11-13T15:21:30
|
|
Revert "GLX backend: fallback to lesser swap_control extensions"
This reverts commit a1393c59e9466dfe3a3ccaf710c272aa26045b85.
Change-Id: I5da0f740a7073f14ad1ee7e2876a9cc71a706e7f
Reviewed-on: https://chromium-review.googlesource.com/312231
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
a1393c59
|
2015-11-06T14:30:15
|
|
GLX backend: fallback to lesser swap_control extensions
Reland with a compilation fix.
We would like to use the EXT_swap_control extension to specify the swap
interval of each drawable independently. However open source drivers do
not expose this extension and instead expose the MESA and SGI versions
that have a global swap interval.
This commit changes the code to use the best swap_control extension it
can, potentially changing the swap interval on each swap buffers on
lesser extensions.
BUG=angleproject:1206
Change-Id: I6c24217c7cfd5e09f60469cc7d6336cd68bc5c32
Reviewed-on: https://chromium-review.googlesource.com/312270
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
b2b6265b
|
2015-11-09T15:00:39
|
|
Display[GLX|CGL]: correctly set the config conformant bits
Reland with a fix for a compilation that happened because of a bad
rebase.
Previously there was a TODO to check if we supported ES3 before setting
the conformant bitfield. Now it is done.
BUG=angleproject:1188
Change-Id: I3ef2bd2bc71fb61c465085d32cf08a633904caa6
Reviewed-on: https://chromium-review.googlesource.com/312271
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
bbdeeb18
|
2015-11-12T15:42:16
|
|
Revert "D3D: Move some varying packing code into a new file."
Compile error:
c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\libangle\renderer\d3d\dynamichlsl.cpp(508) : error C3861: 'getSemanticInfo': identifier not found
c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\libangle\renderer\d3d\dynamichlsl.cpp(642) : error C3861: 'getSemanticInfo': identifier not found
BUG=angleproject:1202
This reverts commit d992cde27ea6ffd71205399c3ddb88c7085c99b4.
Change-Id: I11f34d2ac4cc047c397e45348cb9502676380be0
Reviewed-on: https://chromium-review.googlesource.com/312480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
d992cde2
|
2015-11-10T14:42:08
|
|
D3D: Move some varying packing code into a new file.
Refactoring patch which moves code only. Work and full description
will follow in a subsequent CL.
BUG=angleproject:1202
Change-Id: I60346c516209a0517fc2bac38e0d04ff56bcbc3c
Reviewed-on: https://chromium-review.googlesource.com/311260
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f0eb5bbb
|
2015-11-12T12:50:32
|
|
Revert "Display[GLX|CGL]: correctly set the config conformant bits"
Fixes build on Linux.
This reverts commit 46439bae5d441e13abf071ac209f310f2b044256.
Change-Id: Ie6da92e3ee6cc535f2c153a12af0aa63f6bea665
Reviewed-on: https://chromium-review.googlesource.com/312442
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
0ed0d8ac
|
2015-11-11T21:24:31
|
|
Revert "GLX backend: fallback to lesser swap_control extensions"
Compile error, whoops
This reverts commit 10ad877c41c05aa0764748844244ead6ebca6c1c.
Change-Id: Ic8c8b7945c7f702b91fc34ab6862e1aadb3e82e7
Reviewed-on: https://chromium-review.googlesource.com/312260
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
10ad877c
|
2015-11-06T14:30:15
|
|
GLX backend: fallback to lesser swap_control extensions
We would like to use the EXT_swap_control extension to specify the swap
interval of each drawable independently. However open source drivers do
not expose this extension and instead expose the MESA and SGI versions
that have a global swap interval.
This commit changes the code to use the best swap_control extension it
can, potentially changing the swap interval on each swap buffers on
lesser extensions.
BUG=angleproject:1206
Change-Id: I48e40e443ff9a258fc33b38efb0acf6b1f3db103
Reviewed-on: https://chromium-review.googlesource.com/311244
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
46439bae
|
2015-11-09T15:00:39
|
|
Display[GLX|CGL]: correctly set the config conformant bits
Previously there was a TODO to check if we supported ES3 before setting
the conformant bitfield. Now it is done.
BUG=angleproject:1188
Change-Id: Iffe30ebb5538e205695acd619ca17918d8550f3c
Reviewed-on: https://chromium-review.googlesource.com/311690
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
28afae5d
|
2015-11-09T15:07:57
|
|
Rename LinkedVarying to D3DVarying.
Also move this type to D3D-only world. It was only used in the D3D
renderer and has specific stuff like register/semantic indexes.
Refactoring patch to clean up further work with Varyings.
BUG=angleproject:1202
Change-Id: I4b1d6899e9eef356efc7d11e9cd6cf88b234aa76
Reviewed-on: https://chromium-review.googlesource.com/311240
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
076ca26f
|
2015-11-06T13:04:15
|
|
D3D11: Implement fixed primitive restart with tri fans.
Similarly to line loops, we fully unpack the index data into a
triangle list.
BUG=angleproject:597
Change-Id: Icf91cb77df0a941640e34a975898543e1dac5752
Reviewed-on: https://chromium-review.googlesource.com/310501
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
a313f7aa
|
2015-10-28T12:58:03
|
|
Refactor EGLDeviceEXT to remove renderer dependency
BUG=angleproject:1190
Change-Id: I38604de469c5f7efaf37bcebf20bc6425df35e62
Reviewed-on: https://chromium-review.googlesource.com/309512
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
|
|
84f505db
|
2015-11-09T13:16:45
|
|
Revert "GLX backend: fallback to lesser swap_control extensions"
This reverts commit 26e3736fe30b9f67ee4b488d8a9d31ded1b679d3.
|
|
0e39f492
|
2015-11-09T13:16:41
|
|
Revert "Revert "Revert "renderergl_utils: Require explicit location qualifier for OpenGLES3"""
This reverts commit 24db86441d148eb6a497b70c015296422ab48470.
|
|
26e3736f
|
2015-11-06T14:30:15
|
|
GLX backend: fallback to lesser swap_control extensions
Ideally we want to use EXT_swap_control as the code currently does as
it allows us to specify the swap interval of each drawable
independently. However open source drivers do not expose this extension
and instead expose the MESA and SGI versions that have a global swap
interval.
This commit changes the code to use the best swap_control extension it
can, potentially changing the swap interval on each swap buffers on
lesser extensions.
BUG=angleproject:1206
Change-Id: I251c6edf400aeeae5359a4370020e74b8e6cae51
|
|
24db8644
|
2015-11-09T11:14:47
|
|
Revert "Revert "renderergl_utils: Require explicit location qualifier for OpenGLES3""
This reverts commit 45a7d64fd84a7cb292ff71890a61f8d2b7609aa4.
Change-Id: I2a8212c7507a7566baca200ed938d9e00f7103c2
|
|
a4ff7f45
|
2015-11-06T10:51:50
|
|
Revert "Revert "DisplayGLX: rework how glXCreateContextAttribsARB is called""
This reverts commit 2df979ed06df3be3785d179f5bbe12f85dee69dc.
Change-Id: Iff4ec858b8f42a4749cfc55749eb8f57b419f98f
Reviewed-on: https://chromium-review.googlesource.com/311271
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
|
|
5576734a
|
2015-11-06T14:43:37
|
|
Remove DynamicHLSL_unittest.cpp
For some reason it cause compile errors with clang on Windows,
potentially with a wrong include order.
BUG=None
Change-Id: I11e9ab4dcc9f601b7d61616c7f61786bec29df91
Reviewed-on: https://chromium-review.googlesource.com/311151
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
0d3537c2
|
2015-11-06T13:04:14
|
|
D3D11: Implement ES3 primitive restart with line loops.
Unpack the index data into line strips, which can result in a
dynamically number of indices. To this end use a scratch vector in
Renderer11 so we don't end up allocating memory every draw call.
BUG=angleproject:597
Change-Id: Id3270611023cb6d163cd024e078d30ba5556e2ad
Reviewed-on: https://chromium-review.googlesource.com/310500
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
4dd1e55f
|
2015-11-06T14:23:24
|
|
D3D11: Implement basic primitive restart.
D3D11 handles primitive restart similarly to OpenGL's fixed index,
with a couple differences. It can't be toggled off, so we need to
restrict the max element index (handled in a prior patch), and
for smaller buffer types we need to rewrite the index data.
BUG=angleproject:597
Change-Id: Ib890ce9b3f5511784138ea3953a384b1c483ca9e
Reviewed-on: https://chromium-review.googlesource.com/309639
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
c4c74422
|
2015-11-04T09:39:47
|
|
ES3: Don't validate precision qualifiers when linking UBOs.
According to the resolution of Khonos bug 10287, we shouldn't be
validating these precisions. Note that this is counter to the
current ESSL spec text, but there's an open action item to change
the spec language.
TEST=dEQP-GLES3.functional.shaders.linkage.uniform.block.differing_precision
BUG=angleproject:1088
Change-Id: Ib05dca792b89e57e90d3a5f9efdb3a202230f585
Reviewed-on: https://chromium-review.googlesource.com/310760
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
63e4e724
|
2015-11-06T19:15:11
|
|
Revert "Using dirty bits notification for blend state"
Failing the dEQP-GLES3 tests:
http://build.chromium.org/p/chromium.gpu.fyi/builders/Win7%20Release%20dEQP%20%28NVIDIA%29/builds/4036/
3 tests failed:
dEQP_GLES3.Default/functional_multisample_fbo_4_samples_sample_coverage_invert (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234)
dEQP_GLES3.Default/functional_multisample_fbo_8_samples_sample_coverage_invert (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234)
dEQP_GLES3.Default/functional_multisample_fbo_max_samples_sample_coverage_invert (c:\b\build\slave\gpu_win_builder\build\src\third_party\angle\src\tests\deqp_support\angle_deqp_gtest.cpp:234)
BUG=angleproject:1161
This reverts commit ff2ab571b00023926ce39a91bfe20e13578d1281.
Change-Id: Ibf61fc2c64ffc31778645bfe0292516b1f107397
Reviewed-on: https://chromium-review.googlesource.com/311243
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
45a7d64f
|
2015-11-06T16:19:21
|
|
Revert "renderergl_utils: Require explicit location qualifier for OpenGLES3"
Causes angle_end2end_tests failures on Mac
This reverts commit d63243f5be2ac7d8dafa6aea5b23e036074af397.
Change-Id: Idf25d7fe9f4162813a4fc67927191747f660fceb
Reviewed-on: https://chromium-review.googlesource.com/311041
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
d63243f5
|
2015-10-29T14:23:37
|
|
renderergl_utils: Require explicit location qualifier for OpenGLES3
BUG=525930
Change-Id: I591308078c5a392a527291419567a11241a8be17
Reviewed-on: https://chromium-review.googlesource.com/309636
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
121ea584
|
2015-11-04T17:00:33
|
|
DisplayGLX: validate configs against the backing context's config
This is a step required before adding an ANGLE extension that will
allow passing the Visual ID to use for the context at display creation
time: the configs will have to be compatible with it even if the visual
has non-standard sizes.
BUG=522149
Change-Id: I85e8ee3b9072934c665bddfa2b461d26f8903ff3
Reviewed-on: https://chromium-review.googlesource.com/311220
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
bf8a72f6
|
2015-11-03T16:34:45
|
|
When doing a LUMA blit, render to an intermediate texture.
Instead of rendering the swizzled result to the destination texture,
render to another intermediate texture and then CopyTexImage it into the
destination texture. Rendering to arbitrary mip levels of the destination
texture is not always supported but CopyTexImage-ing is.
BUG=angleproject:1113
Change-Id: I352a1fcc769ce92268744d3e7a6265dd2bfddb37
Reviewed-on: https://chromium-review.googlesource.com/310570
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
5b58cae2
|
2015-11-05T14:51:47
|
|
Revert "In D3D, cache static vertex buffers to prevent wasteful recreation"
Perf bisect traced performance regression to this CL:
8.1% regression in angle_perftests/DrawCallPerf_d3d9_null/score
6.2% regression in angle_perftests/DrawCallPerf_d3d11_null/score
BUG=angleproject:197
This reverts commit 868651d334d060458af13c7ff9211c2f72be0cad.
Change-Id: Iaba7eb4e574eb886496361e61fd5fe78ca14dcb8
Reviewed-on: https://chromium-review.googlesource.com/311150
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
ff2ab571
|
2015-10-05T16:48:06
|
|
Using dirty bits notification for blend state
BUG=angleproject:1161
Dirty bit notifications are used in GL for state tracking, but not D3D.
Before, D3D would use memcmp to check a change in state for every call.
This showed up as a hot spot in the perf test runs. Hence, switching D3D
over to the dirty bit system similar to GL backend will help.
Change-Id: I482edc852f1dcc888af3038ff3a61916496a02bc
Reviewed-on: https://chromium-review.googlesource.com/305295
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
e79b1e14
|
2015-11-04T16:36:37
|
|
D3D11: Restrict use of MAX_UINT element indexes.
We need to block the app from using MAX_UINT on D3D11 because we can't
disable primitive restart on this platform. Instead generate an
INVALID_OPERATION error, which is spec-compliant in ES3 because the
result is undefined behaviour. This is also compliant with WebGL which
explicitly defines an error here.
BUG=angleproject:597
Change-Id: I7ebc5371b63ff860dc6dddf79939e9629ebb2a3c
Reviewed-on: https://chromium-review.googlesource.com/309638
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
72028778
|
2015-10-30T10:31:54
|
|
DisplayGLX: on mesa only expose configs with the same depth-stencil
BUG=angleproject:1188
Change-Id: I19516cf3d037245144dfbe6fa2eed13a57aa6800
Reviewed-on: https://chromium-review.googlesource.com/309635
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
0b2e7461
|
2015-10-28T17:29:15
|
|
RendererGL: only support ES3 when GLSL packing builtins are available
BUG=angleproject:1188
Change-Id: I07638c52ef09ffc96d91eec25c32dd905207c49f
Reviewed-on: https://chromium-review.googlesource.com/309650
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
f25855c9
|
2015-11-03T11:06:18
|
|
Add a ValidationContext class helper.
This class is a wrapper around gl::Data, aka the metadata describing
a gl::Context. We can use it for unit-testing validation functions
by passing that through the validation methods instead of a Context,
and using mocks to expect certain errors.
BUG=angleproject:747
BUG=angleproject:597
Change-Id: I7bd85c7662860ba9a3a13406579a088d447e5631
Reviewed-on: https://chromium-review.googlesource.com/309637
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f0915a89
|
2015-11-03T11:15:36
|
|
Fix standalone build in MSVS 2013
Range-based for loop saves the end iterator by assigning it to a
variable, so the iterator class needs to have a copy constructor at
least on some C++ compiler implementations.
The issue got introduced by a chain of three commits, so it's better to
just fix the issue rather than revert them all.
TEST=build on Windows
Change-Id: Ib6d8d7e97559838eaac44279454197445535f256
Reviewed-on: https://chromium-review.googlesource.com/309723
Tryjob-Request: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
2df979ed
|
2015-11-02T22:08:57
|
|
Revert "DisplayGLX: rework how glXCreateContextAttribsARB is called"
Breaks dEQP-GLES2.functional.texture.specification.basic_copyteximage2d.2d_alpha
BUG=angleproject:1188
This reverts commit 31e60cf221801a60c052112b5a0bbcfad9b5f705.
Change-Id: Icf1fcd984832a813536fe63e385b3cf9f667d66b
Reviewed-on: https://chromium-review.googlesource.com/309801
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
c7a92fdb
|
2015-10-29T10:08:09
|
|
D3D11: Fix provoking vertex for flat triangle strips.
Triangle strips alternate the provoking vertex based on the
primitive, so use the primitive ID in the GS to determine this.
This might interact poorly with primitive restart, so we might have
to use a slow path for that.
BUG=angleproject:754
Change-Id: I4f6f520887d4c4c52d2ad020e6db148607f68325
Reviewed-on: https://chromium-review.googlesource.com/309156
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
31e60cf2
|
2015-10-28T16:09:03
|
|
DisplayGLX: rework how glXCreateContextAttribsARB is called
This patch adds handling of the EGL ANGLE platform api version display
attributes for better testing.
It makes the code more resilient by ignoring X11 errors that could crash
our program in the call to glXCreateContextAttribsARB.
It also makes sure that we always choose the most recent OpenGL version
available on the system.
BUG=angleproject:1188
Change-Id: I26e1bf6733215db6f5841b54c471f644e2b15e89
Reviewed-on: https://chromium-review.googlesource.com/309633
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
3e14e2b1
|
2015-10-29T14:38:53
|
|
D3D11: Fix basic provoking vertex flat shading cases.
The enables geometry shaders that correct for the flat shading on
provoking vertexes. It does not fix it for triangle strips, or in
conjunction with primitive restart (which is not yet implemented
in D3D11).
Also ensure we do not regress with flat shading enabled and transform
feedback. In cases where we use flat shading, do a double draw call,
first with an untransformed vertex stream, and no geometry shader,
then with the geometry shader enabled.
This also fixes the dEQP fragment output tests with ints.
BUG=angleproject:754
Change-Id: Ib37e8ec32d19db17ea5d4dc88158cdae0c956bfc
Reviewed-on: https://chromium-review.googlesource.com/309155
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
f4b2c4fd
|
2015-10-29T14:38:54
|
|
Refactor DynamicHLSL geometry shader code more.
This refactor adds a typed iterator class for helping to iterate over
varying registers from packed varyings. We use the same iteration
logic in several places and it has a triple loop, so encapsulating
this into an iterator class keeps it cleaner.
The other change is to use std::stringstream in places where we would
return a std::string.
These refactorings will aid in subsequent work to implement provoking
vertex fixes and to refactor our varying packing algorithm.
BUG=angleproject:754
Change-Id: Id44a1f68ccd4edc3458f1cf514f5eab4b8cd4151
Reviewed-on: https://chromium-review.googlesource.com/309811
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
62c49f5d
|
2015-10-30T10:34:17
|
|
PbufferSurfaceGLX: avoid creating (0, 0)-sized pbuffers
It crashes on Mesa.
BUG=angleproject:1188
Change-Id: I1e1e3e696bfda0c127b683a620cbaf302087e43b
Reviewed-on: https://chromium-review.googlesource.com/309630
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4e31ad55
|
2015-10-29T10:32:57
|
|
D3D11: Add dynamic geometry shaders.
The geometry shader we want will depend on our current draw mode, and
if we're using flat shading in the shader. Without flat shading, we'll
still be using them only for point sprites, but for other primitive
types with flat shading enabled, we'll be using them to correct the
provoking vertex order with D3D11.
Note: no new features in this CL, those are turned on in follow-ups.
BUG=angleproject:754
Change-Id: Iabf13ffd582f5a7200ee0df5aa9c3671aa7b6ed4
Reviewed-on: https://chromium-review.googlesource.com/309154
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
76f8fa66
|
2015-10-29T10:32:56
|
|
Refactor Geometry Shader support to enable pass-through.
This should be a refactoring change only. The new code is exercised in
follow-up CLs.
BUG=angleproject:754
Change-Id: I99285e1e7772cae467013102f25c911ebc9f54a9
Reviewed-on: https://chromium-review.googlesource.com/309153
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
1cf66a8d
|
2015-10-28T10:59:50
|
|
platform_glx: Add support for ARB_create_context_profile
BUG=angleproject:1188
Change-Id: I5a72ff3521c01b4da661a90f6d761da61b3aad60
Reviewed-on: https://chromium-review.googlesource.com/309631
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
|
|
868651d3
|
2015-08-31T15:31:18
|
|
In D3D, cache static vertex buffers to prevent wasteful recreation
BUG=angleproject:197
Change-Id: I66cd10609b2edbcf12b99530eafe1727511fe515
Reviewed-on: https://chromium-review.googlesource.com/296503
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
42590dd7
|
2015-10-28T11:16:41
|
|
Fix a typo in DisplayWGL
BUG=None
Change-Id: Ib9d43ced80f38c61f5936fb027433d9f2b4c7f98
Reviewed-on: https://chromium-review.googlesource.com/309632
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|