|
aadc8f37
|
2017-08-11T17:34:44
|
|
Implement the CPU fallback for CopyTextureCHROMIUM on OpenGL.
BUG=angleproject:1932
Change-Id: Iabc1a3e361d66313dc16bf19b392402b7836f8a5
Reviewed-on: https://chromium-review.googlesource.com/612562
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
79f7104a
|
2017-08-14T16:43:43
|
|
Validate that transform feedback buffers are not mapped.
Mapping a buffer that is bound for active transform feedback or starting
transform feedback on a mapped buffer is undefined behaviour under
section 2.10.3.2 of the ES 3.0 spec "Effects of Mapping Buffers on Other
GL Commands". The spec suggests that an error is generated in this
case.
TEST=ES3MapBufferRangeTest.TransformFeedback
BUG=754000
Change-Id: I613defd07cc1a4348682d992cda61cc898936720
Reviewed-on: https://chromium-review.googlesource.com/614483
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
78ed6cd9
|
2017-08-09T16:19:00
|
|
Rename VariableInfo files to CollectVariables
Files that only have a single function should be named consistently
with the function. Unnecessary include in CallDAG.h is removed.
BUG=angleproject:2068
TEST=angle_unittests
Change-Id: I27d55a766b9eb66fcfd1e0a2341a2843bb9dc5bb
Reviewed-on: https://chromium-review.googlesource.com/608368
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d93cd6c2
|
2017-08-11T16:32:41
|
|
Refactor the CPU copy texture code into a function in renderer utils.
BUG=angleproject:1932
Change-Id: Iab79f2a09c2d8a85d2a9dde34acf4d2151072c2b
Reviewed-on: https://chromium-review.googlesource.com/612561
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d7487b13
|
2017-08-09T15:45:13
|
|
Clean up checking variable packing limits
This encapsulates expanding struct variables inside the VariablePacker
class that packs variables according to the GLSL ES spec.
The variable expansion step is no longer run twice when checking
uniforms against the max uniforms limit.
BUG=angleproject:2068
TEST=angle_unittests
Change-Id: I012ddaa249f71c0a78d937c98007c61352e64888
Reviewed-on: https://chromium-review.googlesource.com/608367
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9b11ea4f
|
2017-07-11T16:50:08
|
|
Gather UniformBlock and ShaderStorageBlock separately
Refactor InterfaceBlocks since it only stands for UniformBlock before
ES31. But for ES31, uniform block and shader storage block both belong
to interface block.
This CL will add GetUniformBlocks and GetShaderStorageBlocks in
ShaderLang.h. Meanwhile, keep GetInterfaceBlocks which can return all
the interface blocks together.
BUG=angleproject:1951
Change-Id: I3036e201aadfbd490575ed03538c81bcc3793ff3
Reviewed-on: https://chromium-review.googlesource.com/582546
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0d671c9a
|
2017-08-10T16:41:52
|
|
Verify occlusion query correctness in a multi-view context
The patch adds tests to verify that an occlusion query correctly tracks
whether any fragments pass the depth test for any of the views as
according to the ANGLE_multiview extension.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ia85bac4935192554a337c27fad110fbb7f56cf8a
Reviewed-on: https://chromium-review.googlesource.com/609961
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
82ef774b
|
2017-08-08T17:44:58
|
|
Save layered multiview end-point's arguments into attachment's state
Handle glFramebufferTextureMultiviewLayeredANGLE calls by saving the
arguments into the attachment's state.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I9d7c0e00fe9e917ad2f9d903a39f30b2546dc7a3
Reviewed-on: https://chromium-review.googlesource.com/609960
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
5116d687
|
2017-08-02T12:39:44
|
|
ES31: Add missing initialization of MAX_*_SAMPLES on D3D
This patch intends to add missing initialization of MAX_INTEGER_SAMPLES,
MAX_DEPTH_TEXTURE_SAMPLES and MAX_COLOR_TEXTURE_SAMPLES required for
multisampled textures on D3D backends.
Since MAX_*_SAMPLES cannot be queried directly from D3D APIs, these
values are initially assigned a large value in renderer11.cpp and
re-calculated in context::updateCaps().
This patch also adds tests to ensure these values are greater than 1
as required in OpenGL ES3.1 spec.
BUG=angleproject:1592
TEST=angle_end2end_tests
Change-Id: Iba586e311d40d2da4569816902f96e40bbd6935b
Reviewed-on: https://chromium-review.googlesource.com/597411
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
936ea325
|
2017-08-04T20:58:06
|
|
Clip to framebuffer when copying to cube map.
In D3D cube map textures use different code paths than regular 2D
textures. Add outside-the-framebuffer handling to those paths, same as
was added the other paths earlier.
Change-Id: I51896a07f73ae8d761cd9d7b18c68076f38d32a3
Reviewed-on: https://chromium-review.googlesource.com/603050
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c2157a09
|
2017-08-09T18:52:59
|
|
HLSL: Fix handling nested structs in interface blocks
Make sure that the type definitions for nested structs get added to
the HLSL header, and that the std140 padding information gets
recorded. Prior to this trying to use nested structs in interface
blocks crashed.
BUG=angleproject:2084
TEST=angle_end2end_tests
Change-Id: If57870285c6feaf0c2e462f98f50f20730dd6470
Reviewed-on: https://chromium-review.googlesource.com/608449
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
d23bcd8e
|
2017-08-01T23:40:17
|
|
Add cube map to read-outside-framebuffer tests.
Cube maps go through a separate path on D3D so we need to test them.
BUG=angleproject:1815
Change-Id: Ifb7a85d7e2750f25bce382fdd7a00062d23b3573
Reviewed-on: https://chromium-review.googlesource.com/597213
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ed049ab4
|
2017-06-30T17:38:33
|
|
HLSL: Fix handling arrays of structs in interface blocks
In HLSL output, structs in interface blocks are not accessed directly.
Rather they get copied from the D3D constant buffer to static structs
in the shader header. Fix generating the copy/init code in the header
to handle arrays of structs correctly.
BUG=angleproject:2084
TEST=angle_end2end_tests
Change-Id: If66bd5be3f3570ba591b8b62c5284c06fc83dd45
Reviewed-on: https://chromium-review.googlesource.com/608448
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
47bb4933
|
2017-08-03T11:52:13
|
|
Implement CopyTexture functions for uint texture formats.
BUG=angleproject:1932
Change-Id: I6474237cbb82b59a0bd40c1b9b9e2455952d3755
Reviewed-on: https://chromium-review.googlesource.com/600510
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
553590a5
|
2017-07-31T16:40:39
|
|
Modify attribute divisor for multiview instanced rendering
If the ANGLE_multiview extension is used in a program, the number
of geometry instances is the number of instances passed to
glDraw*Instanced times the number of views in the program. The attribute
divisor has to be multiplied by the number of views so that the correct
attributes are gathered in the input assembly stage.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I960d6313c02e3eb83f7a07e72b9bcac072c736f4
Reviewed-on: https://chromium-review.googlesource.com/593953
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0f7714ec
|
2017-08-07T15:13:42
|
|
Refactor FramebufferMultiviewTest.cpp
The patch refactors the tests to use the GL RAII objects from
gl_raii.h. It also specifies a correct internal format for a texture 2D
array object in one of the tests so that the texture is
color-renderable.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ie536ffeb5b2f2594f5273b795fe786a5042f63d4
Reviewed-on: https://chromium-review.googlesource.com/603610
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
85d624a5
|
2017-08-07T13:42:33
|
|
Fix null pointer dereference in redeclaration error message
When a function parameter name conflicts with another, the pointer
returned to ParseContext will be null.
BUG=chromium:745242
TEST=angle_unittests
Change-Id: Ie53bb06b0c6660e382d85aeda41f3a1b7df5a917
Reviewed-on: https://chromium-review.googlesource.com/603368
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
6a6199b4
|
2017-06-05T17:30:55
|
|
Add multiview performance tests
The patch adds two tests to measure the performance of the
ANGLE_multiview extension implementation:
1) The first test renders onto two views by issuing thousands of state
changes and draw calls. The aim of the test is to stress the CPU.
2) The second test renders onto two views by drawing with one draw call
half a million quads with multiple attributes per vertex. The attributes
are passed to the fragment shader where they are used for computing the
color. The aim of the test is to stress the GPU's memory system.
The patch also extends the ANGLEPerfTest's functionality to only run
the benchmark if the necessary extensions are available.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ic63d54a69fdddb72439eeeb1951a500fb1247e95
Reviewed-on: https://chromium-review.googlesource.com/597630
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
a438f4e7
|
2017-08-04T13:42:39
|
|
Fix some style issues
BUG=angleproject:2123
Change-Id: Ic3c70c7148297662d4fd9e08edcd208f5a1cc885
Reviewed-on: https://chromium-review.googlesource.com/601370
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
880683b1
|
2017-04-12T16:21:55
|
|
ES31: Add glGetProgramResourceiv API
Add API entry and validation checks(GLES 3.1 section 7.3).
Add the first 2 interfaces(PROGRAM_INPUT and PROGRAM_OUTPUT) implementation.
BUG=angleproject:1920
TEST=angle_end2end_tests:ProgramInterfaceTestES31.*
Change-Id: I50057f7b99f4dc7c23ca87fa9b797ca424f66e3d
Reviewed-on: https://chromium-review.googlesource.com/475075
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ccb9fad3
|
2017-07-28T15:54:09
|
|
Initialize ANGLE_multiview in the D3D11 renderer
The patch enables the ANGLE_multiview extension in the D3D11 renderer
and determines the maximum number of available views.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I56e434a14c61df3d6ab66c2863ce783fcdcc5a93
Reviewed-on: https://chromium-review.googlesource.com/595507
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
3c76d59f
|
2017-08-03T08:47:56
|
|
Check GCC for __has_attribute
The __has_attribute macro was one of improvements in GCC 5 release.
See https://gcc.gnu.org/gcc-5/changes.html.
This checks to make it work with older GCC.
BUG=angleproject:2119
Change-Id: I751249b9d028d1322829bebc1ca8d423edf27057
Reviewed-on: https://chromium-review.googlesource.com/599152
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
188fd5f6
|
2017-08-04T20:44:08
|
|
Skip TimerQueriesTest.TimeElapsedMulticontextTest on all AMD
Was skipped on Windows and Mac before, now seen flaky also on Linux.
BUG=angleproject:1541
Change-Id: Ic993eeadb104989416607271ce100b02aea7cecc
Reviewed-on: https://chromium-review.googlesource.com/603087
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
90d874fc
|
2017-08-04T17:33:35
|
|
Skip couple TextureRectangleTest tests on Window NVIDIA OpenGL
TextureRectangleTest.TexStorage2D and TextureRectangleTest.TexImage2D
failed on NVIDIA Quadro P400, previously disabled on Linux.
BUG=angleproject:2122
TBR=cwallez@chromium.org
Change-Id: I471dc040ed51a0e4588cfaab7d1c4c46e69932d5
Reviewed-on: https://chromium-review.googlesource.com/602779
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
53440f39
|
2017-08-03T20:01:26
|
|
Skip couple TextureRectangleTest tests on Linux NVIDIA OpenGL
TextureRectangleTest.TexStorage2D and TextureRectangleTest.TexImage2D
failed on NVIDIA Quadro P400.
BUG=angleproject:2122
TBR=cwallez@chromium.org
Change-Id: I72d1755881cb06ef4363266b368ada5ca954f6dd
Reviewed-on: https://chromium-review.googlesource.com/601348
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
13c0dd46
|
2017-07-04T18:27:01
|
|
Add texture rectangle extension.
This is needed to support binding IOSurfaces to textures on OSX. This
commit adds support in the API and tests, but didn't need to implement
compiler changes as it already supported ARB_texture_rectangle.
Implementation of CHROMIUM_opy_texture for rectangle texture and the
spec are left for follow-up commits.
Change-Id: I45c66be763a9d3f6f619640f9f95f39b05c70867
Reviewed-on: https://chromium-review.googlesource.com/559106
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
acd20b1f
|
2017-08-02T16:39:27
|
|
Refactor BlitGL to potentially hold multiple blit shader types.
BUG=angleproject:1932
Change-Id: I4d19892852540797c765916131498c96511b4f55
Reviewed-on: https://chromium-review.googlesource.com/600509
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
d2d0b30e
|
2017-08-03T12:27:28
|
|
angle: Fix chrome/win-on-linux build after https://chromium-review.googlesource.com/466106.
Bug: 495204
Change-Id: I6d460a9e6d110be4697e3cc1685e16395276dd42
Reviewed-on: https://chromium-review.googlesource.com/600258
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a0bcc50b
|
2017-08-02T14:45:58
|
|
TextureD3D: Mark images clean after binding a surface.
By marking the images as dirty after binding a surface, the surface would
be cleared when it was first read or written to.
BUG=750813
BUG=angleproject:1635
Change-Id: Ic0d1c985151d55a0f1a1af67bb1edc4b0e8f2063
Reviewed-on: https://chromium-review.googlesource.com/598731
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
38abd6c9
|
2017-08-02T13:27:45
|
|
Skip all EGLContextCompatibilityTest tests on debug builds.
BUG=angleproject:2121
Change-Id: Ie7d09aca453753577dd26dcd35b1c743dbfcfce2
Reviewed-on: https://chromium-review.googlesource.com/598495
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
6c58b062
|
2017-08-01T13:44:25
|
|
Add histograms for the program cache.
Also includes some tracking of if a cache hit comes from a binary
inserted after a Link call, or sourced from the external disk cache.
Chromium-side CL: https://chromium-review.googlesource.com/c/592151/
BUG=angleproject:2118
Change-Id: I80eefd203d8ce31d1ac03dd1a36459d3581128f5
Reviewed-on: https://chromium-review.googlesource.com/590689
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c2493e38
|
2017-06-20T17:16:25
|
|
Add DrawElementsPerf test
This is a follow-up CL for
https://chromium-review.googlesource.com/c/544634/.
In this commit, we add drawElements perf test for d3d9, d3d11 and
OpenGL. Specially, we test DrawElements with unchanged index buffer
every frame and changed index buffer every frame. This is also a
preparation for further remove IndexRange in validation.
Paste a set of data (repeated 30) for reference on Intel skylake
Win10 desktop.
DrawElementsPerfBenchmark.Run/d3d11:
mean: 13186.1666667, stddev: 200.479605502,
truncated mean: 13192.5416667, stddev: 156.284190704
DrawElementsPerfBenchmark.Run/d3d11_index_buffer_changed:
mean: 43.6, stddev: 4.02160830183,
truncated mean: 43.5833333333, stddev: 2.97092391166
BUG=angleproject:1393
TEST=angle_perftests
Change-Id: I94bd181aa2b4515df1affc79f591f5db399feac3
Reviewed-on: https://chromium-review.googlesource.com/585981
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8f276e25
|
2017-05-30T12:05:52
|
|
Handle multiview Draw* calls
Because the ANGLE_multiview extension uses instancing to multiply
geometry for each view, Draw* calls with an active multiview program
have to be handled in the follwing way:
1) Convert non-instanced Draw calls to their instanced versions.
2) Multiply the number of instances in an instanced Draw call by the
number of views.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I19119e8178f70336e5dbb1e5eed0658b5b9f43d7
Reviewed-on: https://chromium-review.googlesource.com/593657
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Martin Radev <mradev@nvidia.com>
|
|
df7d7c9e
|
2017-07-31T09:34:04
|
|
Split varyings into input and output varyings in compiler
This patch intends to split all vector<Varying> into two vectors
to store input and output varyings separately in the compiler.
This patch is a base of implementing the built-ins, inputs and
outputs of a geometry shader to ANGLE GLSL compiler. Unlike the
vertex shaders (their outputs are varyings) and fragment shaders
(their inputs are varyings), the inputs and outputs of geometry
shaders are all varyings, so we need two vector<Varying> to store
them correctly.
BUG=angleproject:1941
Change-Id: I9e8cc16045d5e29e9a80a09dc31b33a7ae39b345
Reviewed-on: https://chromium-review.googlesource.com/593347
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b0761934
|
2017-07-25T17:42:25
|
|
Handle Clear* commands for side-by-side framebuffers
Clear* commands for side-by-side framebuffers require special handling
because only the scissor rectangle of the first viewport is used in the
scissor test as defined in the OpenGL 4.1+ specs.
To enable clearing of each view of a side-by-side framebuffer all views
are iterated over, the corresponding scissor rectangle is set as first,
and a Clear* call is made to the driver. Afterwards the scissor state is
restored.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I138663ea61b4f0c9302872108e7dfbadf451b3ec
Reviewed-on: https://chromium-review.googlesource.com/590233
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
44183cce
|
2017-08-01T12:48:34
|
|
Micro-optimizations to draw call entry point.
Thanks to Markus from NVIDIA. This inlines some methods and optimizes
the check if a uniform is a bool type.
BUG=angleproject:2119
Change-Id: I6f2c2d22c577458b39de600d3c56ec8e1a456a7a
Reviewed-on: https://chromium-review.googlesource.com/591699
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
5788d24b
|
2017-07-10T11:13:36
|
|
D3D11: Support stencil-only EGL configs.
WebGL can request contexts with a stencil buffer but no depth buffer.
BUG=angleproject:2075
Change-Id: I46b272089e44d5f1725fa6252b68d34c9e9f37f6
Reviewed-on: https://chromium-review.googlesource.com/565052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
23176cea
|
2017-07-31T14:14:33
|
|
Fix performance regression in stream init.
Regressed: https://chromium-review.googlesource.com/531798
This was because the std::stringstream constructor was being called
every draw call, for the InfoLog of the dynamically recompiled
shaders in the D3D back-ends. The constructor was allocating memory
and freeing it on destruction. Instead use a lazy init for the
std::stringstream in InfoLog like we do for Error.
BUG=chromium:750685
Change-Id: I9cd429ae4e1439ae504943a9cad31cbbed17ef32
Reviewed-on: https://chromium-review.googlesource.com/594629
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
878c8b1e
|
2017-07-28T09:51:04
|
|
Handle viewport and scissor state changes for side-by-side framebuffers
Side-by-side framebuffers have viewport offsets as part of their state
which have to be applied to the viewport and scissor rectangles to
generate the final viewport and scissor rectangles of each view.
Whenever there is a transition to or from a side-by-side framebuffer,
viewport and scissor state has to be synced. Also, because rendering is
done on the same 2D texture the scissor test has to be always enabled to
guarantee that no fragments leak to a neighboring view.
The patch addresses this by extending the viewport and scissor state
in StateManagerGL to be a vector of rectangles instead of a single
rectangle. Two new dirty bits are added to cover changes in the viewport
offsets and whether the framebuffer has a side-by-side layout.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I8107d7ba97d06b20cf24358f19963fa494844592
Reviewed-on: https://chromium-review.googlesource.com/585012
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ffe754b7
|
2017-07-31T10:38:07
|
|
Disallow timer queries with multi-view draw framebuffers
According to the ANGLE_multiview spec Draw* commands should generate
an INVALID_OPERATION error if there is an active query object for
target TIME_ELAPSED_EXT and the number of views in the active draw
framebuffer is greater than 1.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I8a4434784ecec753a39c5ef82fa3ee46255a0851
Reviewed-on: https://chromium-review.googlesource.com/593315
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Martin Radev <mradev@nvidia.com>
|
|
2803168e
|
2017-07-28T14:47:56
|
|
Disallow glReadPixels with multi-view read framebuffers
According to the ANGLE_multiview spec, glReadPixels must generate an
INVALID_FRAMEBUFFER_OPERATION error if the active read framebuffer has
a multi-view layout.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ia5311ff7a62c5ff732491eb80befd32de57b9d44
Reviewed-on: https://chromium-review.googlesource.com/591368
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2bde9199
|
2017-07-28T14:15:01
|
|
Extend suppression for new test that fails on AMD Linux too
BUG=angleproject:1987
Change-Id: Iebf9aeba61bfaa300de3ed50d7d57c61996f67dc
Reviewed-on: https://chromium-review.googlesource.com/592139
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
05c31dae
|
2017-07-18T16:11:39
|
|
ES31: Enable atomic counter for GL backend
This simply translates the offset qualifier and synchronizes
the buffer binding state for GL translator and renderer.
BUG=angleproject:1729
TEST=angle_end2end_tests:AtomicCounterBufferTest31
Change-Id: Ib8424918478ae4c47049d5856ea20ef022f12913
Reviewed-on: https://chromium-review.googlesource.com/575913
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a3ed4576
|
2017-07-27T18:29:37
|
|
Disallow glBlitFramebuffer for multi-view framebuffers
According to the ANGLE_multiview spec, glBlitFramebuffer must
generate an INVALID_FRAMEBUFFER_OPERATION error if either the active read
framebuffer, or active draw framebuffer has a multi-view layout.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I885bdc970c9606cfad882f31759f5780c65d15e5
Reviewed-on: https://chromium-review.googlesource.com/590237
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
04e2c3bc
|
2017-07-27T16:54:35
|
|
Disallow glCopyTex* with multi-view read framebuffers
According to the ANGLE_multiview spec, glCopyTex* functions must
generate an INVALID_FRAMEBUFFER_OPERATION error if the active read
framebuffer has a multi-view layout.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Icadc4ac79843986076594da25a90ba807e511d1e
Reviewed-on: https://chromium-review.googlesource.com/589447
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Martin Radev <mradev@nvidia.com>
|
|
7e69f76a
|
2017-07-27T14:54:13
|
|
Disallow active transform feedback with a multi-view draw framebuffer
According to the ANGLE_multiview spec Draw* commands should generate
an INVALID_OPERATION error if there is an active transform feedback
object and the number of views in the active draw framebuffer is greater
than 1. The patch addresses this by extending the base draw call
validation.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I67221cb2cfee6febae8d97697b234aeffff313de
Reviewed-on: https://chromium-review.googlesource.com/589268
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7cf6166a
|
2017-07-26T17:10:53
|
|
Generate error on program-framebuffer num views mismatch
According to the ANGLE_multiview spec Draw* commands should generate
an INVALID_OPERATION error if the program uses the multiview extension
and the number of views in the active draw framebuffer and active
program differs. The patch addresses this by extending the base draw
call validation.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: I369070beb5ccb17211dbe61ebec40bfcbcf5bc4e
Reviewed-on: https://chromium-review.googlesource.com/586605
Commit-Queue: Martin Radev <mradev@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
6938285b
|
2017-07-21T16:38:44
|
|
Fix BlitFramebuffer validation for BGRA sources and targets.
It is legal to blit between GL_RGBA8 and GL_BGRA8 sources and
destinations when resolving multisampled renderbuffers. Expand
BlitFramebuffer's validation to handle this case.
Query GL_MAX_VERTEX_OUTPUT_COMPONENTS on the Core Profile to work
around an error generated on macOS when querying
GL_MAX_VARYING_COMPONENTS.
Expand the BlitFramebuffer tests to cover these cases and start
running them on the OpenGL backend.
Fix detectition of multisampled D3D11 rendertargets when the sample count
is 1.
BUG=angleproject:891
Change-Id: Ief5531756651caa66f612e647d3d5c05c8c51ff5
Reviewed-on: https://chromium-review.googlesource.com/587459
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
40ac783b
|
2017-07-26T14:38:46
|
|
Implement remaining eglQuerySurface and eglSurfaceAttrib enums.
BUG=angleproject:2075
Change-Id: I3b500fe80512e7a3e3a9ae9a9724015952c9cbc8
Reviewed-on: https://chromium-review.googlesource.com/587299
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0328b575
|
2017-06-26T15:51:36
|
|
Bind all elements of unbound image arrays to unit zero
Spec GLSL ES 3.10, section 4.4.5, Any uniform sampler, image or atomic
counter variable declared without a binding qualifier is initially bound
to unit zero. If the binding qualifier is used with an array, the first
element of the array takes the specified unit and each subsequent element
takes the next consecutive unit.
BUG=angleproject:1987
TEST=angle_end2end_tests:ComputeShaderTest
Change-Id: I6a8188449a91bf3e8ded37e067205dcae4e47fa7
Reviewed-on: https://chromium-review.googlesource.com/547977
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
31ecbd70
|
2017-07-26T13:01:27
|
|
Refactor eglQuerySurface and eglSurfaceAttrib.
BUG=angleproject:2075
Change-Id: I6911a2a1e665237e1d262c06f3ccf2d84cc09669
Reviewed-on: https://chromium-review.googlesource.com/586860
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5505bdc7
|
2017-07-26T14:39:27
|
|
Fix Win32Window::takeScreenshot.
Several parts of this function were incorrectly checking for errors or
passing the wrong parameters. If screenshotting fails, throw an exception
in dEQP so that it is converted to a test failure instead of hanging the
test.
BUG=angleproject:2075
Change-Id: I19b55b273d0d3f1b47c1dac6affca69de8db21e0
Reviewed-on: https://chromium-review.googlesource.com/587300
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
b5cc1198
|
2017-07-06T10:47:20
|
|
ES31: Add Geometry Shader layout qualifiers in GLSL compiler
This patch intends to implement Geometry Shader layout qualifiers
required in OpenGL ES 3.1 extension GL_OES_geometry_shader in ANGLE
GLSL compiler.
1. Add support to the shader type GL_GEOMETRY_SHADER_OES.
2. Implement Geometry Shader layout qualifiers in the GLSL compiler:
(1) Add support to OpenGL ES 3.1 extension "GL_OES_geometry_shader".
(2) Add validations of the input and output primitive declarations
in the Geometry Shader layout declarations.
(3) Add 'invocations' and 'max_vertices' support in the Geometry
Shader layout declarations
3. Add unit tests to cover all the new features added in this patch.
BUG=angleproject:1941
TEST=angle_unittests
Change-Id: Ie693e11f8a00dab3552626ed63e9336c7fbd3cb8
Reviewed-on: https://chromium-review.googlesource.com/560647
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
4c19a8a8
|
2017-07-24T11:46:06
|
|
D3D11: Update cached dynamically recompiled programs.
This change makes it so that when we need to recompile a program on a
draw call, we also update the cache. It also streamlines the internal
queries of the dynamic vertex and fragment shaders such that we only
update the input and output signatures a single time per draw. This
should also facilitate dirty bit implementations for the D3D11 back-
end.
BUG=angleproject:2116
Change-Id: Iccb0501b700bc894f40a8c68d7f297ff0c8f46bd
Reviewed-on: https://chromium-review.googlesource.com/531798
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b6664925
|
2017-07-25T12:55:04
|
|
Add error handling macro to Context.
This is a small specialized macro to remove all the redundant
handleError calls and return value checking.
Also add a Context::prepareForDraw member that will be used in
follow-up patches to do necessary work prior to a draw call.
BUG=angleproject:2107
BUG=angleproject:2116
Change-Id: I8a32d2206c218fcca5236abfd3f2ce370296ca99
Reviewed-on: https://chromium-review.googlesource.com/585288
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
14a26aea
|
2017-07-24T15:56:29
|
|
Disallow indirect draw calls for multi-view framebuffers
According to the ANGLE_multiview spec indirect draw calls
must generate an INVALID_OPERATION error if the number of
views in the active draw framebuffer is greater than 1.
The patch addresses this by extending the indirect draw call
validation.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ic30ef9a0eabba454aeea6176df1be8bd2ccd9783
Reviewed-on: https://chromium-review.googlesource.com/583027
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Martin Radev <mradev@nvidia.com>
|
|
4c56c607
|
2017-07-25T13:22:58
|
|
D3D: Make draw call translation check non-virtual.
We don't support this call in D3D9, so need for it to be in
RendererD3D. In general we want to have as few virtual calls in the
hot draw call path as possible. Also rename it to
'drawCallNeedsTranslation' (with inverted condition checks).
BUG=angleproject:1393
Change-Id: Ib212ec35aca4b5d45579acec65c20691b5853230
Reviewed-on: https://chromium-review.googlesource.com/584826
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6caf405c
|
2017-07-26T07:50:08
|
|
StateManager11: Fix casing of include
BUG=
Change-Id: Ib237ce44644dba72bd55487756e0e69b724d30a3
Reviewed-on: https://chromium-review.googlesource.com/586429
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
26cf35a8
|
2017-07-26T11:01:02
|
|
Revert "Fix BlitFramebuffer validation for BGRA sources and targets."
This reverts commit 17d270311efcd8c72f251a67e726518278e81c26.
Reason for revert:
- New test fails on NVIDIA and AMD on Windows when using the backbuffer FAST_PATH.
- SetUp code ASSERT_GL_NO_ERROR (line 269) but a GL error happens on all Windows and Linux Intel OpenGL.
Original change's description:
> Fix BlitFramebuffer validation for BGRA sources and targets.
>
> It is legal to blit between GL_RGBA8 and GL_BGRA8 sources and
> destinations when resolving multisampled renderbuffers. Expand
> BlitFramebuffer's validation to handle this case.
>
> Work around a bug in macOS' OpenGL driver querying the number of
> samples for GL_BGRA8.
>
> Query GL_MAX_VERTEX_OUTPUT_COMPONENTS on the Core Profile to work
> around an error generated on macOS when querying
> GL_MAX_VARYING_COMPONENTS.
>
> Expand the BlitFramebuffer tests to cover these cases and start
> running them on the OpenGL backend.
>
> BUG=angleproject:891
>
> Change-Id: I4829585d2b6428ce0bc7509c4734d33709a0930b
> Reviewed-on: https://chromium-review.googlesource.com/582268
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,kbr@chromium.org
Change-Id: I220bc482194cf7fad5e7e732a6d043ce0d504d79
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:891
Reviewed-on: https://chromium-review.googlesource.com/586428
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
17d27031
|
2017-07-21T16:38:44
|
|
Fix BlitFramebuffer validation for BGRA sources and targets.
It is legal to blit between GL_RGBA8 and GL_BGRA8 sources and
destinations when resolving multisampled renderbuffers. Expand
BlitFramebuffer's validation to handle this case.
Work around a bug in macOS' OpenGL driver querying the number of
samples for GL_BGRA8.
Query GL_MAX_VERTEX_OUTPUT_COMPONENTS on the Core Profile to work
around an error generated on macOS when querying
GL_MAX_VARYING_COMPONENTS.
Expand the BlitFramebuffer tests to cover these cases and start
running them on the OpenGL backend.
BUG=angleproject:891
Change-Id: I4829585d2b6428ce0bc7509c4734d33709a0930b
Reviewed-on: https://chromium-review.googlesource.com/582268
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1da00653
|
2017-06-20T17:16:25
|
|
Remove IndexRange in DrawElements functions
This change will remove IndexRange parameter in DrawElements functions.
And calculate it until we truly need it. Meanwhile we add direct
drawing path to avoid retrieving index range for DrawElements*
functions in D3D11 backend. This change may not bring much performance
improvement since we still need to retrieve index range in validation
at the beginning of every DrawElements* call entry point.
BUG=angleproject:1393
Change-Id: I86a8739c0893954c94eb398db62820ced7871565
Reviewed-on: https://chromium-review.googlesource.com/544634
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a779b610
|
2017-07-24T11:46:05
|
|
Smart caching of VAO input layout.
Don't recompute the cached attribute layout for a program if the
vertex array info hasn't changed. We can use the Serial class to
know when a vertex array has identical state.
BUG=angleproject:1156
Change-Id: Ia11f6ac268f63c3299f6d6d80c2866009cb8429c
Reviewed-on: https://chromium-review.googlesource.com/529768
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cab92ee4
|
2017-07-19T17:32:07
|
|
Fix WebGL validation of characters in shader source strings.
Shader source strings are allowed invalid ESSL characters when they are in
comments. Added a simple comment parser to determine which characters
should be validated.
BUG=angleproject:2093
Change-Id: If78a4ecbd61f1700fc18dcb844f3de03314a6a39
Reviewed-on: https://chromium-review.googlesource.com/578567
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9bc9a321
|
2017-07-21T14:28:17
|
|
Integrate multiview state in FBO completeness check
The patch extends the FBO completeness validation to include the
multiview state members according to the ANGLE_multiview specification.
It also changes the numViews in FramebufferAttachment to be consistently
of type GLsizei instead of GLint.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ibe550ba03204d808d96a4edf4807c68421aa1158
Reviewed-on: https://chromium-review.googlesource.com/581193
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
7c5f5268
|
2017-07-05T12:20:19
|
|
Assign symbol ids in ArrayReturnValueToOutParameter
Assign symbol ids to out parameter symbol nodes that get created in
ArrayReturnValueToOutParameter. Also assign the EvqOut qualifier to
references to the out parameter - this is in line with what happens
normally in ParseContext.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: Ib1e8303e3ef09f2e0d24524277199785d6f47b53
Reviewed-on: https://chromium-review.googlesource.com/559533
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5aca1939
|
2017-07-21T12:22:01
|
|
Framebuffer: Fix enabled draw buffers bitset.
This would start off the zeroth element as enabled even if there was
no attachment. If we remove the extra set, then we no longer have to
check if the attachment is valid when iterating over the enabled
bitset.
BUG=angleproject:2107
Change-Id: I679f66156ced09d42add9e302ac974166713e0d5
Reviewed-on: https://chromium-review.googlesource.com/581884
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9603a956
|
2017-07-20T17:24:02
|
|
D3D11: Move applyShaders to StateManager11.
This also moves the shader application to happen before any of the
other state sync work. In order to do this, we must split off the
uniform application to happen after the viewport sync, because the
driver uniforms for the viewport size can change.
This prepares the D3D11 back-end for updating the programs before
a draw call, including refreshing binary cache entries.
BUG=angleproject:1156
Change-Id: Ie491e8ddb69ff44ebe076c56ebd39c4b46a4d2b2
Reviewed-on: https://chromium-review.googlesource.com/531797
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
253daa56
|
2017-07-20T17:24:01
|
|
D3D: Split applyTextures into each back-end.
This paves the way for a dirty bits implementation for Textures, and
also will allow more precise ordering of the state update in D3D11.
The latter becomes important when moving the shader application.
Because the texture update can affect the built-in driver uniforms,
we neeed to update textures before we update the uniforms.
BUG=angleproject:1156
BUG=angleproject:1387
Change-Id: I995e095517c598d8672c6400d08a430da0e8339b
Reviewed-on: https://chromium-review.googlesource.com/580361
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
590f6235
|
2017-07-21T11:10:26
|
|
Fix getting temporary id in RewriteDoWhile
There's been a long-standing bug in RewriteDoWhile where it would only
call nextTemporaryId() after it had created the temporary variable.
This escalated into a null pointer dereference in the recent symbol
table refactoring, and initializing the traverser with the symbol
table was also missing.
BUG=chromium:747244
TEST=angle_unittests
Change-Id: I8987a609bb5d7d49e3c3e284fc42a2e53e38dafa
Reviewed-on: https://chromium-review.googlesource.com/580887
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d2391983
|
2017-07-20T16:26:01
|
|
Skip the RGBTextureTest.SRGB[A]Validation test on Ozone.
Many of the other tests in this file are already skipped on this platform but
now that GL driver errors cause tests to fail, these tests that previously
did not verify their results started to fail.
Change-Id: I0d5c88289de42464ae56ac7238c26b384819fe02
Reviewed-on: https://chromium-review.googlesource.com/580255
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b9c53d8d
|
2017-07-19T18:55:16
|
|
Remove FormatString
And the global static it uses.
BUG=angleproject:1644
Change-Id: I6c8b186ef0dce83fe64620729af4d87ea81c77f5
Reviewed-on: https://chromium-review.googlesource.com/577922
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0d2ecb4e
|
2017-07-20T17:41:09
|
|
Output mapped name of shader variables in shader_translator
This makes understanding and debugging the mapped names in the
translator interface easier.
TEST=shader_translator -u
Change-Id: I2457142a6f0a8baa623e80b00cc86c8df90e6718
Reviewed-on: https://chromium-review.googlesource.com/579968
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0ca93f26
|
2017-07-17T15:13:36
|
|
eglplatform: add Wayland version of native EGL types
BUG=angleproject:2105
Change-Id: I46e5f4458be830e27345fc04ad4c9fd6e98aa946
Reviewed-on: https://chromium-review.googlesource.com/575200
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
34d2007f
|
2017-07-18T20:07:18
|
|
Fix exposing internal shader interface variables
Don't expose internal variables in the shader translator interface.
This affects the ViewID_OVR varying needed for instanced multiview,
which is so far the only variable of this kind.
This fixes the translator trying to add initialization for internal
variables in initializeOutputVariables. Since they are variables added
by ANGLE, they should never need extra initialization.
BUG=angleproject:2112
TEST=angle_unittests
Change-Id: I93ee2956c8180053806ce450d93f162f78a45d8f
Reviewed-on: https://chromium-review.googlesource.com/579050
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5dae57b0
|
2017-07-14T16:15:55
|
|
Save side-by-side function arguments into attachment's state
Handle glFramebufferTextureMultiviewSideBySideANGLE calls by saving the
arguments into the attachment's state.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Idc5441d673b48640f47415b07b2854fbdf566c8d
Reviewed-on: https://chromium-review.googlesource.com/574915
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
|
|
137032d9
|
2017-07-13T10:11:12
|
|
Validate ANGLE_multiview end-points
The patch adds validation for the ANGLE_multiview end-points
and propagates the calls to the unimplemented stubs in Context.
The patch also removes the
glFramebufferTextureMultiviewSideBySideRobustANGLE end-point
because the size of the viewport offsets buffer can trivially
be computed from the number of views.
BUG=angleproject:2062
Change-Id: I9a10bc00c19825e586d3df2750fabea4daf5ef8f
Reviewed-on: https://chromium-review.googlesource.com/573861
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
222c517f
|
2017-07-19T16:15:42
|
|
Control Debug layers in ANGLE_platform_angle.
Debug layers seem to be a universal thing among functional back-ends.
D3D, OpenGL and Vulkan all need some kind of controls for debugging,
so it seems to make sense to make this control part of the base
extension.
Default the extension to EGL_DONT_CARE, which allows the back-end to
have a lot of flexibility in terms of implementation.
Also enable the extension in the D3D11 and OpenGL back-ends, and set
the extension to enabled for angle_end2end_tests.
Remove EGLVulkanEXTTest since it no longer tests anything not tested
in the base ANGLETest class.
BUG=angleproject:2086
Change-Id: I52d8170effd1846b9afbe6e4052c699fe5cb0de8
Reviewed-on: https://chromium-review.googlesource.com/578369
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
a59a1c1e
|
2017-07-12T15:46:26
|
|
D3D11: Consolidate shader state application.
This consolidates all the state changes for shaders into
StateManager11.
BUG=angleproject:2052
Change-Id: I64dc3af5b0f1459442369e09f93a9ca8ce3232b3
Reviewed-on: https://chromium-review.googlesource.com/531796
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
95107bc8
|
2017-07-12T15:46:25
|
|
D3D11: Consolidate primitive topology application.
BUG=angleproject:2045
Change-Id: Ie1deac50a534ee748518d9ec5e6f749f3c78b53d
Reviewed-on: https://chromium-review.googlesource.com/531795
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6dd06eac
|
2017-07-19T13:47:55
|
|
Give StateManager11 internal dirty bits.
Intead of checking a series of bools and special variables, organize
the state application into a switch with internal dirty bits. This
should be faster for no-op, and makes it clear where we have to
further optimize the state update to pre-compute certain values.
BUG=angleproject:1156
Change-Id: I8eca8716340499085afa170ff45f7788e84fecab
Reviewed-on: https://chromium-review.googlesource.com/531794
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
298a35f0
|
2017-07-19T15:07:41
|
|
Rename EGL platform extension text files.
This makes the naming more consistent with the rest of the EGL
extensions.
BUG=angleproject:2086
Change-Id: If08e7a550d6b99fb5a3a2138b0c94afc82b2b417
Reviewed-on: https://chromium-review.googlesource.com/578368
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b3f26b9e
|
2017-07-19T15:07:41
|
|
Add a zero-filled scratch buffer to Context.
We need this in a few places for handling resource init.
Centralize this in the context so we don't have to recreate
and re-fill a large zero buffer.
BUG=angleproject:2107
Change-Id: Icf9ce417e7ee3498f03e47741dfff89e81b49519
Reviewed-on: https://chromium-review.googlesource.com/576057
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ab918821
|
2017-07-14T17:03:42
|
|
Clamp point size to maximum point size from the API on NVIDIA
NVIDIA OpenGL drivers have a bug where the point size range is being
reported incorrectly - it appears the core GL driver incorrectly gives
the range for smooth points, when it should be giving the range for
aliased points. Clamp the actual point size to the maximum point size
reported from the API so that the GLES spec is followed.
The same workaround seems to be necessary also on Android. The issue
was revealed by the trybots, and has not been fully diagnosed though.
The newly added test fails on AMD OpenGL.
As a part of this change, the existing tests in PointSpritesTest are
refactored to use gl_raii.
BUG=chromium:740560
TEST=angle_end2end_tests
Change-Id: Ic4a66c9ea16f5ae76beb3bb6577716d10c3b226e
Reviewed-on: https://chromium-review.googlesource.com/574598
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3860b6c0
|
2017-07-19T16:17:24
|
|
Fix arrays of structs containing samplers as parameters on HLSL
In HLSL output, samplers are never passed to functions as arrays, but
rather sampler array arguments are expanded into single sampler and/or
texture arguments. This applies also when the samplers were inside
arrays of structs in the original source.
BUG=angleproject:2103
TEST=angle_end2end_tests
Change-Id: Ib1fcba0c0ab3da592d15272eb56a03c3e536f349
Reviewed-on: https://chromium-review.googlesource.com/576041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
191381fd
|
2017-04-11T13:59:04
|
|
ES31: Add glGetProgramResourceLocation API
Add API entry and validation checks(GLES 3.1 section 7.3).
Add the first 2 interfaces(PROGRAM_INPUT and PROGRAM_OUTPUT) implementation.
BUG=angleproject:1920
TEST=angle_end2end_tests:ProgramInterfaceTestES31.*
Change-Id: I5128cda43b0d9176c910b036cdc76bf37757670e
Reviewed-on: https://chromium-review.googlesource.com/474212
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
24fe74c1
|
2017-07-06T16:56:50
|
|
ES31: Query multisampled texture binding id
Add GL_TEXTURE_BINDING_2D_MULTISAMPLE option to State.cpp to
query binding id of GL_TEXTURE_2D_MULTISAMPLE.
BUG=angleproject:1590
TEST=angle_deqp_gles31_tests.exe --deqp-case=dEQP-GLES31.functional.state_query.integer.texture_binding_2d_multisample_*
Change-Id: I86b24f00ac4e75eb0e2986f7cf2eb108aae14674
Reviewed-on: https://chromium-review.googlesource.com/561196
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a5e693af
|
2017-07-13T16:07:26
|
|
Make unique id counter a member of TSymbolTable
This makes unique id counting thread-safe.
BUG=angleproject:624
TEST=angle_unittests
Change-Id: Ie0f2c7e574470b39750d37d2181c790bc874b275
Reviewed-on: https://chromium-review.googlesource.com/570419
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e5285d29
|
2017-07-14T16:23:53
|
|
Handle ANGLE_multiview state queries
The patch extends glGetIntegerv and glGetFramebufferAttachmentParameteriv
logic to handle the new tokens from the ANGLE_multiview extension.
BUG=angleproject:2062
TEST=angle_end2end_tests
Change-Id: Ide145279cd7b58cd03502458d7d3a1a0f5e9e86d
Reviewed-on: https://chromium-review.googlesource.com/573780
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6170bef8
|
2017-07-18T15:51:14
|
|
Fix validation of querying GL_FRAGMENT_SHADER_DERIVATIVE_HINT.
This enum is queryable in ES3 or with the GL_OES_standard_derivatives
extension.
BUG=2110
Change-Id: I688777bcc65468d796333a24223d24cc66170788
Reviewed-on: https://chromium-review.googlesource.com/576156
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
9c335865
|
2017-07-18T11:51:38
|
|
Refactor StateManager11 for dirty bits.
This will make iterating over an internal set of dirty bits simpler.
This also reorganizes the framebuffer invalidation logic a bit,
including how the sample count is pulled from the Framebuffer.
BUG=angleproject:1156
Change-Id: I79dbcd11704ab52568c587d836af9c1bff1d2d1f
Reviewed-on: https://chromium-review.googlesource.com/529708
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ab4be84f
|
2017-07-18T11:23:07
|
|
Add newlines when writing original shader source to shader debug output.
Previously, the entire original shader would end up being written to a single
line, not very readable.
Change-Id: I8cdfd498bb47395da2bd11c3d3b2eecf266c914e
Reviewed-on: https://chromium-review.googlesource.com/576064
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
282847e9
|
2017-07-12T14:11:01
|
|
Clean up recording declarations in OutputHLSL
Relying on the AST conforming to known limitations makes the code for
recording referenced varyings easier to understand.
BUG=angleproject:2104
TEST=angle_end2end_tests
Change-Id: Icdcd7602f6ed54fa439f989bf256e261627d11f5
Reviewed-on: https://chromium-review.googlesource.com/568018
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
dde78e8c
|
2017-05-22T14:13:27
|
|
ES31: Implement Vertex Attrib Binding on OpenGL
This patch intends to implement Vertex Attrib Binding on OpenGL
back-ends:
1. Add supports for updating vertex attributes by Vertex Attrib
Binding APIs.
2. Refactor the process of updating vertex attribtues in class
VertexArray to make it easier to implement this feature.
BUG=angleproject:1593
TEST=dEQP-GLES31.functional.vertex_attribute_binding.*
Change-Id: I800e61518c552b94b84c415895ad31668b0a84b2
Reviewed-on: https://chromium-review.googlesource.com/510251
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ffb35f64
|
2017-07-14T18:01:07
|
|
Fix broadcasting gl_FragColor at the end of main
Previously, the broadcast step would not get run in case the main()
function returned before reaching its end. Now the broadcast step is
put in a separate function that wraps main() if needed, so that it
gets run even if the main() function in the original shader source
returns in the middle.
DrawBuffersTest is refactored to use ANGLETest::drawQuad() instead of
calling glDrawArrays directly.
BUG=angleproject:2109
TEST=WebGL conformance tests, angle_end2end_tests
Change-Id: Id5f05094e816df03bc9c8ca62b60de914072682c
Reviewed-on: https://chromium-review.googlesource.com/574597
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
3e5695d1
|
2017-07-17T15:21:14
|
|
Fix standalone OSX warnings
BUG=
Change-Id: I447900488559622108c0da12a352c88218f9ddc6
Reviewed-on: https://chromium-review.googlesource.com/575201
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d2e87929
|
2017-07-12T15:42:34
|
|
Enable Haiku in platform-specific headers.
1. src/common/platform.h updated to define ANGLE_PLATFORM_POSIX on Haiku.
2. include/EGL/eglplatform.h updated to add stubs typedefs for
platform-specific primitives for Haiku.
Change-Id: I28775e909ad9cabec1c474ff4fe0a241eb05d6a1
Reviewed-on: https://chromium-review.googlesource.com/573022
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
cf42a7e8
|
2017-07-12T16:49:58
|
|
Add ANGLE_multiview end-points and tokens
The patch adds the new end-points and tokens introduced
by ANGLE_multiview without implementing them.
BUG=angleproject:2062
Change-Id: I9be175263ab54b4f6d7537f05505b87ad763ee2d
Reviewed-on: https://chromium-review.googlesource.com/570051
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
4cff8d62
|
2017-07-06T14:54:09
|
|
ES31: TexParameter{if} validation for TEXTURE_2D_MULTISAMPLE on OpenGL
When setting parameters by TexParameter{if} for TEXTURE_2D_MULTISAMPLE,
an INVALID_ENUM error is generated if target is TEXTURE_2D_MULTISAMPLE,
and pname is any sampler state from table 20.11. An INVALID_OPERATION
error is generated if target is TEXTURE_2D_MULTISAMPLE, and pname
TEXTURE_BASE_LEVEL is set to a value other than zero.
BUG=angleproject:1590
TEST=angle_deqp_gles31_tests.exe --deqp-case=dEQP-GLES31.functional.texture.multisample.negative.texture*
Change-Id: I5d71731c11fb6e114a57e753e439e180695a7c79
Reviewed-on: https://chromium-review.googlesource.com/560607
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yunchao He <yunchao.he@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f68463f
|
2017-07-13T12:42:15
|
|
Clean up inserting variables to symbol table
This makes the TSymbolTable interface cleaner and prepares for making
unique id counting thread-safe.
BUG=angleproject:624
TEST=angle_unittests
Change-Id: Ief99c9fc777603de28ba1517e351bc8a00633590
Reviewed-on: https://chromium-review.googlesource.com/570418
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
daaff1cc
|
2017-07-05T18:03:26
|
|
Set correct symbol ids when referring to GLSL built-ins
The symbol ids are fetched from the symbol table. A new utility
function is added to make this more convenient.
BUG=angleproject:1490
TEST=angle_unittests, angle_end2end_tests
Change-Id: I780430e3386f6599503d8290c568ca9bc9cad147
Reviewed-on: https://chromium-review.googlesource.com/559535
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|