Граф коммитов

4068 Коммитов

Автор SHA1 Сообщение Дата
Jamie Madill 78b3a8b921 Revert "Add a compiler option to prune unused function and prototypes"
Compile error on Mac:

http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder/builds/29051

This reverts commit e423d9ca6e.

Change-Id: Ie08d7f2bf86089a006f3177480aa7491a9405257
Reviewed-on: https://chromium-review.googlesource.com/264585
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-08 16:04:36 +00:00
Corentin Wallez e423d9ca6e Add a compiler option to prune unused function and prototypes
Also adds a simple unit test checking the pruning

BUG=angleproject:937
BUG=395048

Change-Id: I49904c34d1a72949cdc579569967d99c736c7237
Reviewed-on: https://chromium-review.googlesource.com/264415
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-04-08 15:18:03 +00:00
Corentin Wallez 71d147f6b5 Implemented a CallDAG to allow for more AST analysis
The CallDAG preprocesses the AST to construct a DAG of
functions that can be used for several analyses.
Use it to implement check for recursion and max call
depth. It will also be used to limit the usage of
[[flatten]] and [[unroll]].

BUG=angleproject:937
BUG=395048

Change-Id: I8578703f2d49513f315aecccbcff34914562e4ff
Reviewed-on: https://chromium-review.googlesource.com/263774
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <capn@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-04-08 15:17:47 +00:00
Gregoire Payen de La Garanderie 9102e3abdf Add UBO offset emulation for D3D11.0 and below.
BUG=angleproject:507

Change-Id: I6c5028930051a2af0bd6ffa0ee213e692d3892ef
Reviewed-on: https://chromium-review.googlesource.com/261824
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-08 14:51:09 +00:00
Geoff Lang cc6f55dd08 Split Buffer::map into map and mapRange to match the API.
BUG=angleproject:681

Change-Id: Ia4bf2b81134a922265ca762f33ac85d9ddbf1a7c
Reviewed-on: https://chromium-review.googlesource.com/261890
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-08 14:49:48 +00:00
Geoff Lang 8a6f19d7f9 Add support for GL_OES_fbo_render_mipmap with OpenGL.
BUG=angle:905

Change-Id: Idde35172cfa495c8b74b961f4ab8c4e657653074
Reviewed-on: https://chromium-review.googlesource.com/263763
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-08 14:39:47 +00:00
Olli Etuaho 693c9aa06c Replace setArray function in TPublicType with functions from TType
Having only one way of setting or clearing arrayness of types clarifies
code dealing with arrays.

TEST=angle_unittests
BUG=angleproject:941

Change-Id: I98cb7c44fd66440c9de8b4c6c4a02827e9300db7
Reviewed-on: https://chromium-review.googlesource.com/264361
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
2015-04-08 08:20:49 +00:00
Olli Etuaho 93a90fd08c Remove half-baked non-sized array support
ANGLE used to accept shaders with non-sized arrays in initializer lists.
Fix this. Proper support for implicitly sized arrays will be implemented
later for ESSL3.

TEST=angle_unittests
BUG=angleproject:941

Change-Id: I53c5ccf0f7ef09ad30e142f8350812959fc4846c
Reviewed-on: https://chromium-review.googlesource.com/264360
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-08 08:19:09 +00:00
Geoff Lang 5c60031ea1 Temporarily disable TextureTest with OpenGL.
Failures seen on some FYI bots.

Change-Id: I4853438c34ce55a1d803d3a7edf3b3e077905264
Reviewed-on: https://chromium-review.googlesource.com/264462
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-07 21:25:12 +00:00
Geoff Lang bde666a99e Disable all copy image tests on Intel.
Change-Id: I5412daf42777caeac37de4bdc661b01480d887fd
Reviewed-on: https://chromium-review.googlesource.com/264451
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-07 21:20:38 +00:00
Brett Wilson a662abb5e7 Fix GN Windows component build.
The translator_static dependency is missing from libANGLE.
GYP has this dependency.

Change-Id: I30165a041f88f7e3c6f550744d2c7a4103d0f520
Reviewed-on: https://chromium-review.googlesource.com/264425
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-07 20:03:50 +00:00
Geoff Lang 95663914ca Add stubs for GL_OES_fbo_render_mipmap.
BUG=angle:905

Change-Id: Idd4964bd2d9d07cd98137770e1cc57397f1dd3a6
Reviewed-on: https://chromium-review.googlesource.com/263762
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-07 19:53:33 +00:00
Geoff Lang dab84368f5 Add texture format utilities for GL and generate GL texture caps.
BUG=angleproject:884

Change-Id: Ib1b13f59a6b21399c4b35695c704c369f572914e
Reviewed-on: https://chromium-review.googlesource.com/264399
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-04-07 19:35:07 +00:00
Geoff Lang d16daa29d6 Revert "Add texture format utilities for GL and generate GL texture caps."
This reverts commit 69bde01adf.

Change-Id: If21c22e91cf5d72364839bbcc21cb83901a3f2cd
Reviewed-on: https://chromium-review.googlesource.com/264418
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-07 19:28:10 +00:00
Jamie Madill ae2d8a3af2 Add Platform methods for event tracing.
Event tracing requires pulling in timing counters, so we can sync
with Chromium's timestamps. It may require a bit more tricky stuff
to sync ANGLE's GPU timestamps with trace timestamps, but should
allow us to add GPU trace events in the future.

BUG=chromium:436191
BUG=angleproject:966

Change-Id: Ie1dc2981650d96888f988fa74b6fa435fbe8edc2
Reviewed-on: https://chromium-review.googlesource.com/263781
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-07 19:19:46 +00:00
Geoff Lang fbfa47c4ad Implement copyImage and copySubImage in TextureGL.
BUG=angleproject:885
BUG=angleproject:884

Change-Id: I083b72059c55157e2a3ee00ec778f819a100be7b
Reviewed-on: https://chromium-review.googlesource.com/263179
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-07 19:09:09 +00:00
Geoff Lang 69bde01adf Add texture format utilities for GL and generate GL texture caps.
BUG=angleproject:884

Change-Id: Iba0108b22e6a404842ec1013d22c00d206c865d3
Reviewed-on: https://chromium-review.googlesource.com/255512
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-07 19:08:21 +00:00
Jamie Madill 8c25cdecf7 Only check dynamic type in Impl casting helpers.
We can use the Impl casting helper methods to clean up dynamic type
casting.

Change-Id: I5706da74eedd9f3cdc5a728420074a91ad7c95cb
Reviewed-on: https://chromium-review.googlesource.com/263520
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-04-07 18:45:00 +00:00
Jamie Madill f4bf381113 Use GetAs/GetImplAs whenever possible.
This patch cleans up the rest of our custom casting helper
functions.

Change-Id: I41975c736765fca855c4498acca31116df3e8317
Reviewed-on: https://chromium-review.googlesource.com/263477
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
2015-04-07 18:43:58 +00:00
Gregoire Payen de La Garanderie c5b8b59c03 Don't delete sysmem storage if it is the latest storage.
BUG=angleproject:965

Change-Id: I9b4b042e3f9bde3ce713a02aa353b5f3a5cff49e
Reviewed-on: https://chromium-review.googlesource.com/263711
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
2015-04-07 13:51:10 +00:00
Olli Etuaho 9638c35206 Support assigning array constructors in HLSL output
This adds support to the following type of shader code, where an array
constructor is used as a source of assignment:

float a[3];
a = float[3](0.0, 1.0, 2.0);

The assignment gets replaced in the HLSL code by a function call where
the array is an out parameter and the constructor parameters are regular
parameters.

Constructors cannot yet be used in initializers.

With this change in place, some of the relevant dEQP tests start passing.

TEST=dEQP-GLES3.functional.shaders.arrays.constructor.*
BUG=angleproject:941

Change-Id: I13ed603c02a30d9f9950a61c4d562ae9fac058ec
Reviewed-on: https://chromium-review.googlesource.com/263403
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
2015-04-07 12:17:08 +00:00
Olli Etuaho f40319e9d0 Add basic support for array constructors
Add limited support for parsing array constructors and writing them out as
GLSL code.

Still missing from this version: HLSL output, array support in
initializer lists, arrays with implicit size.

BUG=angleproject:941

Change-Id: I7febf80923c4cd0b730399f1f49f9456cf3668e9
Reviewed-on: https://chromium-review.googlesource.com/260572
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
2015-04-07 12:15:08 +00:00
Nico Weber 51a1db16d7 Give Timer a virtual destructor as it's deleted polymorphically.
Found by clang:

..\..\third_party\angle\src\common/angleutils.h(66,5) :  error: delete called on 'Timer' that is abstract but has non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
    delete resource;
    ^
..\..\third_party\angle\src\tests\perf_tests\ANGLEPerfTest.cpp(26,5) :  note: in instantiation of function template specialization 'SafeDelete<Timer>' requested here
    SafeDelete(mTimer);
    ^

BUG=chromium:82385

Change-Id: I69033b1802b5dffbdf2d80889aca7019d710d481
Reviewed-on: https://chromium-review.googlesource.com/264061
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-06 17:35:28 +00:00
Corentin Wallez 711d8663ca Revert "Implement gradient operation AST analysis"
This reverts commit 2fc57a2ace.

Change-Id: I619297090c8441c1b90099437f8764263cdd68cc
Reviewed-on: https://chromium-review.googlesource.com/263728
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-04-02 19:44:31 +00:00
Corentin Wallez c457e7bb33 Revert "Implement discontinuous loops AST analysis"
This reverts commit f30a9ba96b.

Change-Id: I577cfd1e7d5d6138413c29205cbf4d35b6861226
Reviewed-on: https://chromium-review.googlesource.com/263754
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-04-02 19:44:14 +00:00
Geoff Lang 186160b236 Revert "Implemented a CallDAG to allow for more AST analysis"
failures in angle_unittests and compilation failure on clang (see: https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder%20%28dbg%29/builds/30016/steps/compile/logs/stdio) .
This reverts commit b34d1d1296.

Change-Id: Ia995fb2db0e891294f3461de01617cb13e5ae381
Reviewed-on: https://chromium-review.googlesource.com/263727
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-02 19:35:01 +00:00
Jamie Madill 8cf4a39bbf Return a ref for FBO attachment image indexes.
This cleans up the syntax somewhat. Also place some more of the
helper methods in the header.

BUG=angleproject:963

Change-Id: I62419095a7b65486f54d74791027594e8e595e48
Reviewed-on: https://chromium-review.googlesource.com/263629
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-02 18:08:23 +00:00
Jamie Madill 7936a6d3c4 Move the texture index to attachment base.
This will let us squash the attachment types in a follow-up patch.

BUG=angleproject:963

Change-Id: I1efb2e41aa08766189499995b3150aec6fd61c4e
Reviewed-on: https://chromium-review.googlesource.com/263486
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-02 18:07:58 +00:00
Corentin Wallez f30a9ba96b Implement discontinuous loops AST analysis
This will allow narrowing down which usages of
[[flatten]] and [[unroll]] are actually useful.

BUG=angleproject:937
BUG=395048

Change-Id: Icc37abf51a1407c9e7bc708dc08d3ba4050a496a
Reviewed-on: https://chromium-review.googlesource.com/261189
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2015-04-02 18:01:59 +00:00
Corentin Wallez 2fc57a2ace Implement gradient operation AST analysis
This will allow narrowing down which usages of
[[flatten]] and [[unroll]] are actually useful.

BUG=angleproject:937
BUG=395048

Change-Id: Ic31e434c7b5bb6c32eff2336e5949391bfee25a5
Reviewed-on: https://chromium-review.googlesource.com/260930
Reviewed-by: Nicolas Capens <capn@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2015-04-02 18:01:47 +00:00
Corentin Wallez b34d1d1296 Implemented a CallDAG to allow for more AST analysis
The CallDAG preprocesses the AST to construct a DAG of
functions that can be used for several analysis.
Use it to implement check for recursion and max call
depth. It will also be used to limit the usage of
[[flatten]] and [[unroll]].

BUG=angleproject:937
BUG=395048

Change-Id: I643e0ed605ad095e4fd7da4977d842be5e6a12e0
Reviewed-on: https://chromium-review.googlesource.com/229352
Reviewed-by: Nicolas Capens <capn@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2015-04-02 18:00:02 +00:00
Jamie Madill f813eb46e5 Revert "Revert "Move resource storage to attachment base.""
Fix in https://chromium-review.googlesource.com/#/c/263730/

This reverts commit 0d91328b99.

Change-Id: Ibab792001798eff94652345b7c12fb9a42cddb55
Reviewed-on: https://chromium-review.googlesource.com/263740
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-02 17:15:57 +00:00
Jamie Madill 6c7a80d85d Detect RTTI properly on Clang.
This was giving a compile error on OSX. Also update the logic
slightly.

BUG=angleproject:963

Change-Id: I1ac64aa0908a58d9780054084d5c205c61848763
Reviewed-on: https://chromium-review.googlesource.com/263730
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-02 17:15:03 +00:00
Jamie Madill 99f075dade Split DrawCallPerf test from BufferSubData test.
This will give us better dashboard encapsulation when we're
running on the Chromium bots. It also paves the way for more
specialized draw call tests, like for indexed draw, with uniform
updates, instancing, etc.

BUG=angleproject:744

Change-Id: I396de28c027f99da18a0904f959d23b59cac2010
Reviewed-on: https://chromium-review.googlesource.com/263505
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-02 17:07:24 +00:00
Olli Etuaho b2d6a9be28 Stub simplifying array assignment for HLSL output
Add an AST traverser that rejects shaders with expressions that use the return
value of an assignment where an array is assigned to another array. In the
future this should be made into a tool that can simplify these expressions so
that return values of array assignments are not used.

In its current form this code prevents OutputHLSL from producing garbage code
when the original code contains expressions like a = (b = c); where a, b, and c
are all arrays.

BUG=angleproject:960

Change-Id: I11353d7ed7160c853e58a0ef3471ca439cb314c8
Reviewed-on: https://chromium-review.googlesource.com/263070
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-02 16:49:08 +00:00
Olli Etuaho 1269076cbf Add basic support for assigning arrays in HLSL output
Implement support for assignments where the return value of the assignment
is not used in another part of the expression.

TEST=WebGL conformance tests
BUG=angleproject:960

Change-Id: Ibf9d71a75d27d139d2aabb5162ab04a0974321d3
Reviewed-on: https://chromium-review.googlesource.com/263222
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-02 16:46:02 +00:00
Jamie Madill 0d91328b99 Revert "Move resource storage to attachment base."
Giving compile errors on Clang/OSX.

http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder%20%28dbg%29/builds/30008

This reverts commit 7f67b030a8.

Change-Id: I5fb7d237c99ca9f2a8d50538f86dfc334d56ddd9
Reviewed-on: https://chromium-review.googlesource.com/263722
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-02 16:44:39 +00:00
Olli Etuaho f6c694bcea Assign built-in function return type in promote()
This finishes the refactoring of unary math operation handling so that
IntermUnary::promote has the complete code for setting the return type of
the node.

BUG=angleproject:952
TEST=angle_unittests, WebGL conformance tests

Change-Id: I19bd8d53029e24f734c9436eceb446b37e7fcf26
Reviewed-on: https://chromium-review.googlesource.com/262416
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
2015-04-02 15:59:34 +00:00
Olli Etuaho dca3e796d1 Refactor unary math operator handling to clarify responsibilities
Shuffle the code around so that each part has a clear responsibility:
IntermUnary::promote is responsible for setting the return type of the
node, Intermediate::addUnaryMath is responsible for creating the node
object, and ParseContext::createUnaryMath is responsible for validating
the operand type.

This removes duplicated bool type check for logical not.

BUG=angleproject:952
TEST=angle_unittests, WebGL conformance tests

Change-Id: I9f5a0abb6434ad2730441ea9199ec3f5382ebcda
Reviewed-on: https://chromium-review.googlesource.com/262415
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
2015-04-02 15:58:59 +00:00
Jamie Madill 7f67b030a8 Move resource storage to attachment base.
We can use GetAs() to retrieve the corresponding API object.

BUG=angleproject:963

Change-Id: I472e13664e45f9f05621dea3d28135d4e833fb3d
Reviewed-on: https://chromium-review.googlesource.com/263485
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-02 15:37:18 +00:00
Jamie Madill 4ef3c241f2 Remove DefaultAttachment.
This class is no longer necessary or used.

BUG=angleproject:963

Change-Id: I5e6fa64822e637e1cc769be6fe777fa6e13a0d83
Reviewed-on: https://chromium-review.googlesource.com/263484
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-02 15:37:00 +00:00
Olli Etuaho 5321c80889 Add unsigned literal support to GLSL output
BUG=angleproject:964

Change-Id: I8eb3cfd8d49beded4ac55ead97b50c7691e4980a
Reviewed-on: https://chromium-review.googlesource.com/263710
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-02 15:26:38 +00:00
Jamie Madill c46f45d906 Refactor DefaultAttachments.
Instead of using an Impl type for default attachments, store the
egl::Surface pointer where possible.

BUG=angleproject:963

Change-Id: I3e34849e8b1ccae0c91a79617ec6f64aaaab6b10
Reviewed-on: https://chromium-review.googlesource.com/263483
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-02 14:54:44 +00:00
Geoff Lang 2c919145cf Implement flush and finish in RendererGL.
BUG=angleproject:883

Change-Id: Idc474c58d3971c5f7c2c2760cd21aefdf65424b4
Reviewed-on: https://chromium-review.googlesource.com/263502
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-02 14:20:21 +00:00
Geoff Lang 64a7244db4 Only call glInvalidateFramebuffer if it is available.
BUG=angleproject:885

Change-Id: I30a9bcebc80805aea0c12d9c67194b7b0c98200f
Reviewed-on: https://chromium-review.googlesource.com/263475
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-02 14:19:22 +00:00
Jamie Madill 33d12cb929 Add drafts for device query extensions.
These extensions give power apps the ability to query raw device
pointers from the EGL layer. EGL_EXT_device_query is based on
EGL_EXT_device_base, which is being split into device_query and
device_enumerate. We remove the device enumeration logic, and only
allow the app to query the current device from a display, which
matches how ANGLE works internally.

EGL_ANGLE_device_d3d gives the app the ability to query D3D
devices associated with a display.

BUG=angleproject:935

Change-Id: I8079661f00d11717ed0e792c9fe8dc5c26f67dcc
Reviewed-on: https://chromium-review.googlesource.com/252110
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-01 19:18:37 +00:00
Jamie Madill c30c424ff0 Make egl::Surface ref-counted.
This will let us store references to Surface in FBO attachments,
even after the surface is destroyed.

BUG=angleproject:963

Change-Id: I7e1cb161d1e08f78b1c4d730a32ad09ac7e61e30
Reviewed-on: https://chromium-review.googlesource.com/263482
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-01 19:09:51 +00:00
Jamie Madill d1f5ef2e56 Pass gl::Data to Framebuffer::clear.
This allows the implementation object to also check the caps.

BUG=angleproject:930

Change-Id: I5a48ad942eaa5271b60cffd931829296e5d2a767
Reviewed-on: https://chromium-review.googlesource.com/263481
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-01 19:09:38 +00:00
Jamie Madill ed58f066b6 Fix the renderer generation script.
We no longer use the DISALLOW_COPY_AND_ASSIGN macro.

BUG=angleproject:956

Change-Id: I439c4d55612059d6a16ae6351c54c3817be017cf
Reviewed-on: https://chromium-review.googlesource.com/263480
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-01 19:09:26 +00:00
Gregoire Payen de La Garanderie 68694e9941 Add UBO offset support for D3D11.1.
Also fixes the uniform count upper limit in glGetActiveUniformsiv,
as well as an assert hit with used but unbound uniform buffer.

BUG=angleproject:507
BUG=angleproject:962

Change-Id: I096fe1c9b4f0f398f3a638cd8311278987dfb7dc
Reviewed-on: https://chromium-review.googlesource.com/263404
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
2015-04-01 18:52:18 +00:00