|
5a53d54e
|
2017-02-16T21:24:10
|
|
Remove unneeded ContextImpl::syncState parameter.
The 'state' parameter passed to ContextImpl::syncState() is already
available in ContextImpl as mState.getState().
BUG=none
Change-Id: I13283664579fa04ae67b1d1bbc0cb4426a950b97
Reviewed-on: https://chromium-review.googlesource.com/444099
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1b60d8d2
|
2017-02-10T14:56:55
|
|
Add artificial limits to the total memory allocated by the NULL backend.
Fuzzer tests were capable of allocating very large chunks of memory by
calling glBufferData with a null pointer. This sets a limit before the
NULL backend starts returning out of memory GL errors.
BUG=602737
Change-Id: Ic53ebcf999f951b96c1df82e4db57e949d03c908
Reviewed-on: https://chromium-review.googlesource.com/441184
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
1e031b27
|
2017-02-10T15:01:28
|
|
Expose the CHROMIUM copy texture extensions on the NULL backend.
These extensions are required by the passthrough command decoder.
BUG=602737
Change-Id: Ifd04fca27ae35b30e4c8ab458904530e3dd44377
Reviewed-on: https://chromium-review.googlesource.com/441204
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8897afa1
|
2017-02-06T17:17:23
|
|
Pass Context around to Texture::copyImage.
Passing this through the chain will allow us to have access to the
platform methods, as well as be useful in the future for Vulkan.
BUG=angleproject:1660
Change-Id: I819984fceeb5a2a299aa54e59ef3b428f5f9c91f
Reviewed-on: https://chromium-review.googlesource.com/438684
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5f56ddb9
|
2017-01-13T17:29:55
|
|
Buffer: Pass Context to all impl methods.
This allows us to retrieve Device handles for Vulkan, and could allow
us to avoid storing some pointers for other back-ends.
BUG=angleproject:1684
Change-Id: Iccd5b97cf1c3a332d62a38ad0fcf21c352270439
Reviewed-on: https://chromium-review.googlesource.com/426400
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
8ecf7f9b
|
2017-01-13T17:29:52
|
|
Vulkan: Implement shader compilation.
This hooks up the Vulkan GLSL, decorated with locations, to glslang,
and then pipes the SPIRV back to the Program implementation for later
use when making pipelines to run draw calls.
The program compilation tests work now, but don't really test
anything other than not generating Vulkan validation layer errors
during compilation and shader object generation.
BUG=angleproject:1576
Change-Id: I625e42219f4b4d1433dd3109b94e1a2f666ba4bd
Reviewed-on: https://chromium-review.googlesource.com/408519
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b8353b01
|
2017-01-25T12:57:21
|
|
Vulkan: Simple buffer creation.
This is necessary to initialize vertex arrays.
BUG=angleproject:1579
Change-Id: Ic5a232d5cdfaa75b41241901de842e62ff3b173f
Reviewed-on: https://chromium-review.googlesource.com/406645
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
bddc46b4
|
2016-12-09T09:50:51
|
|
ES31: Implement multisampled Textures.
Implement TexStorage2DMultisample and getMultisamplefv entry point.
Also modify sample state for Textures and Framebuffers.
BUG=angleproject:1590
TEST=angle_unittests
TEST=angle_end2end_tests
TEST=dEQP-GLES31.functional.texture.multisample.samples_*.sample_position
TEST=dEQP-GLES31.functional.texture.multisample.samples_*.use_texture_color_2d
TEST=dEQP-GLES31.functional.texture.multisample.samples_*.use_texture_depth_2d
TEST=dEQP-GLES31.functional.texture.multisample.negative.fbo_attach_different_sample_count_tex_tex
TEST=dEQP-GLES31.functional.texture.multisample.negative.fbo_attach_different_sample_count_tex_rbo
TEST=dEQP-GLES31.functional.texture.multisample.negative.fbo_attach_non_zero_level
TEST=dEQP-GLES31.functional.texture.multisample.negative.texture_high_sample_count
TEST=dEQP-GLES31.functional.texture.multisample.negative.texture_zero_sample_count
TEST=dEQP-GLES31.functional.shaders.builtin_functions.texture_size.samples_1_texture_2d
TEST=dEQP-GLES31.functional.shaders.builtin_functions.texture_size.samples_4_texture_2d
Change-Id: I8fa7bd4e73b95745858a3e16b1b92004b4a18712
Reviewed-on: https://chromium-review.googlesource.com/414309
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3311d474
|
2017-01-02T17:55:02
|
|
Display: Add a shared state object.
This will allow us to manage the SurfaceSet in the GL layer.
BUG=angleproject:1684
Change-Id: Iab8243157710beab2667ef10275571078ce9ae8e
Reviewed-on: https://chromium-review.googlesource.com/424228
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
192745a7
|
2016-12-22T15:58:21
|
|
Add varying packing validation for WebGL.
This CL moves the varying packing from the D3D layer up to Program.
This is necessary for WebGL validation, and gives us consistency
for the various back-ends. There may be some additional cleanup work
on the VaryingPacking class, because it does some work that is D3D-
specific.
WebGL requires strict varying packing. Instead of allowing success
unconditionally, it's an explicit error to succeed to pack a set of
varyings that the sample algorithm would fail to pack.
Introduce a new packing mode option to the varying packing class to
handle this different packing style, while keeping our old more
relaxed packing method for ES code.
BUG=angleproject:1675
Change-Id: I674ae685ba573cc2ad7d9dfb7441efa8cb2d55fc
Reviewed-on: https://chromium-review.googlesource.com/423254
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
a26c6b7c
|
2016-12-15T11:27:50
|
|
Surface: Make the egl::Config part of SurfaceState.
This will be accessible to the Impl, so they won't have to store a
copy of the pointer.
BUG=angleproject:1319
Change-Id: I298a11a243d3d32f4c885273e55162e6862f3e16
Reviewed-on: https://chromium-review.googlesource.com/419697
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
95401dbb
|
2016-12-15T11:27:48
|
|
Surface: Pass DisplayImpl to initialize and swap.
In new back-ends (Vulkan) this will allow us to avoid storing a ref
to the Renderer in the Surface class.
BUG=angleproject:1319
Change-Id: I3b3f50893070d2993e4e91dd82ee539a083b3727
Reviewed-on: https://chromium-review.googlesource.com/419837
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: 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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
22416868
|
2016-06-08T16:14:36
|
|
Add dirty bits for internal texture state.
Synchronize TextureGL internal state using the dirty bits.
TexturesBenchmark scores:
Before: 5051
After: 7639
Diff: +51.2%
BUG=angleproject:1386
Change-Id: Id04aef778a47175d1a284564495a646045855b4b
Reviewed-on: https://chromium-review.googlesource.com/393866
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d08f3b3d
|
2016-09-23T15:56:30
|
|
Add stubs for a NULL renderer.
BUG=angleproject:1468
Change-Id: I2ed2b65a4b6f6ea3dda61c0467aef95e407cd38c
Reviewed-on: https://chromium-review.googlesource.com/388844
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|