src/libGLESv2


Log

Author Commit Date CI Message
Jamie Madill 865d1451 2014-07-02T15:31:20 Consolidate varying packing sort order methods. We were using the same list in the shader varying sorting as well as in the varying packing validation in the translator. BUG=angle:466 Change-Id: Ic11758288e7a522d7c18a293de9e137e487e3978 Reviewed-on: https://chromium-review.googlesource.com/205595 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 183bde55 2014-07-02T15:31:19 Return shader variable information using GLenum values. Instead of duplicating GL header define values, explictly return GLenum for variable queries in the shader inspection API. This reduces the duplicate defines in the shader compiler header. BUG=angle:466 Change-Id: Iddaaff597b188251fa2e546f352bf77ab3ac43bc Reviewed-on: https://chromium-review.googlesource.com/205860 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Shannon Woods e8cda371 2014-07-01T16:13:18 Revert "Move more draw call validation to the API." BUG=390412 This reverts commit 9efa581d0e8f251b88f5a2f432ddb20655036c77. Conflicts: src/libGLESv2/validationES.cpp Change-Id: I78457e1dfec8b75fecef8dc40c549adbde680a2a Reviewed-on: https://chromium-review.googlesource.com/206340 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill ce505553 2014-06-26T14:56:33 Revert "Return variable type queries using GLenum values." Breaks the FYI bots until we get Chromium patched. BUG=angle:466 This reverts commit 53221f5a0382887155d90f7f286e41190d4f5bfb. Change-Id: Ib28548df5c10a6f76f46e4cf8f2013dca5cf0ee2 Reviewed-on: https://chromium-review.googlesource.com/205850 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 53221f5a 2014-06-25T16:04:59 Return variable type queries using GLenum values. Instead of duplicating GL header define values, explictly return GLenum for variable queries in the shader inspection API. This reduces the duplicate defines in the shader compiler header. BUG=angle:466 Change-Id: If631b20ce68747297a946e1371def7709027a613 Reviewed-on: https://chromium-review.googlesource.com/204937 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Shannon Woods 6dc7f360 2014-06-25T21:12:02 Fix null pointer dereference in glGetBufferPointerv BUG=angle:687 Change-Id: If8f215d4a86332b9e6e791263bdeeb44b23a42a2 Reviewed-on: https://chromium-review.googlesource.com/205711 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 28bedaf8 2014-06-26T13:17:22 Fix double delete in Framebuffer.cpp. Depth-stencil buffers were using the same pointer for both attachments, which was causing a double-delete in the Framebuffer destructor. BUG=angle:686 Change-Id: I8b263e5a084c33b495ce18ef2a2a810918ef6540 Reviewed-on: https://chromium-review.googlesource.com/205639 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones d38f926a 2014-06-18T16:26:45 Refactoring Buffers BUG=angle:681 Change-Id: I6c3809e0b9468dfe38465c55759c2572c21485da Reviewed-on: https://chromium-review.googlesource.com/204896 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang e4a492be 2014-06-19T14:14:41 Remove the clientVersion parameter from the format utils. clientVersion was only useful for intitial validation of formats and not required for queries. Only use the client version and caps structure to validate if a format is available and then trust that it is supported past the validation layer. Fixed some inconsistancies between tables such as missing formats or incorrect load functions in the ES3 tables. BUG=angle:659 Change-Id: I8d33c902156ee6fb41efe937d93b0586191726e5 Reviewed-on: https://chromium-review.googlesource.com/201167 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f51639a4 2014-06-25T16:04:57 Use a common include for GL headers. A common place to define required GL includes gives us a nice point to centralize GL customizations. In the header currently are the basic GLES headers with extensions, and a define carried over from desktop GL. BUG=angle:466 Change-Id: I6fc61947b4514654ec21355a786904eac04656c0 Reviewed-on: https://chromium-review.googlesource.com/204936 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill f2575989 2014-06-25T16:04:54 Use the sh namespace for shader variables. Since these types originate from the translator, use an appropriate namespace. Also rename some of the gl helper functions to be more specific to their functionality. BUG=angle:466 Change-Id: Idc29987b2053b3c40748dd46b581f3dbd8a6fd61 Reviewed-on: https://chromium-review.googlesource.com/204680 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill bb94f341 2014-06-23T15:23:02 Remove gl::IsInternalTextureTarget. This function was a duplicate of ValidTexture2DDestinationTarget. Also clean up a bit of the code in Framebuffer::completeness. BUG=angle:660 Change-Id: Iee8d011274bfb2e426346e3ccdde7342fbb7ef44 Reviewed-on: https://chromium-review.googlesource.com/202595 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e261b44a 2014-06-25T12:42:21 Remove obsolete Renderbuffer types. RenderbufferProxySet and FramebufferTextureBindingPointer aren't necessary any more with our refactored renderbuffer classes and ownership of attachments by the Framebuffer. We can also consolidate the FramebufferAttachment and implementation to a single class, and no longer need to store ref counted objects in the Framebuffer class directly. BUG=angle:660 Change-Id: Idcc06dfb42b47242b33494e797a0ba06d6669511 Reviewed-on: https://chromium-review.googlesource.com/201838 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones c7a41049 2014-06-23T12:03:25 Moved D3D specific files and folders under the D3D folder. Change-Id: I8afd67e08ee558fe94532c377d079673357a7192 Reviewed-on: https://chromium-review.googlesource.com/205229 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 4fd75c1c 2014-06-23T10:53:54 Fix npot Texture level 0 validation. We were rejecting npot textures for level 0, even though it is valid in GLES 2 for non-mipped textures to have npot size. BUG=381495 Change-Id: Iacc3ab50d6487ecba804fd8963aa0a2ada2f1cae Reviewed-on: https://chromium-review.googlesource.com/205220 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Geoff Lang 2b31af29 2014-05-23T14:45:40 Remove the ES version check for buffer to texture copies in D3D11. With PBOs being exposed through an extension in ES2 now, this check is uneccessary. Change-Id: I609a4bcd944194d104e0774e5f6ea34e072c8d9c Reviewed-on: https://chromium-review.googlesource.com/201320 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 13f7d7dc 2014-06-20T13:21:27 Move FBO check from applyRenderTarget to the API. We would traverse the applyRenderTarget path from several entry points, which could then trigger a GL error. In-line with our validation refactoring, move all error checks prior to executing any state logic. BUG=angle:571 Change-Id: I51f5bcfa41be7cdba7771eb87d5a831fa622f984 Reviewed-on: https://chromium-review.googlesource.com/203772 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 1aeb1314 2014-06-20T13:21:25 Move draw call primitive type check to the API. A part of a larger refactoring to clean up the draw call validation. BUG=angle:571 Change-Id: I0b220d68c04524a81ca11dc58e10c90e458cabde Reviewed-on: https://chromium-review.googlesource.com/203771 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 9efa581d 2014-06-20T13:21:24 Move more draw call validation to the API. The GL expects us to reject invalid draw calls before we start doing any work, so we can prevent internal unnecessary state changes. BUG=angle:571 Change-Id: Ic71218b3c2d5dc310280d3738bb1387753a10e03 Reviewed-on: https://chromium-review.googlesource.com/203770 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill ac528015 2014-06-20T13:21:23 Move stencil mask validation to before the draw. ANGLE (and WebGL) restrict the back and front stencil masks on draw, due to D3D restrictions. We would previously only validate this if the stencil was enabled in D3D9. In D3D11 we would validate the stencil masks even if the stencil is disabled, which is the behaviour the spec suggests. Moving the error check to before the draw also prevents any issue with interrupting a draw call mid-way through. BUG=angle:571 BUG=378754 Change-Id: If7651c2be559eef64a872082e144dafa3b2c524b Reviewed-on: https://chromium-review.googlesource.com/203299 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill febb7adc 2014-06-18T13:50:51 Refactor and unify HLSL varying signatures. We would use different code for all of our input and ouput stages in HLSL (vertex output, GS input, GS output, PS input). This was causing an HLSL error and some bugs in certain transform feedback instances. Fix this by using a helper method to use compatible code for each of the stages. BUG=angle:667 Change-Id: Idada969a775eccb5788723e0c7fa3ade9cb2d9ec Reviewed-on: https://chromium-review.googlesource.com/203778 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Geoff Lang 4ace423c 2014-06-18T19:12:48 Disable dynamic pixel shader generation. Always generate the same pixel shader no matter what framebuffer is bound. BUG=angle:670 Change-Id: I3fa91ff43363d49b38a19d3815ea523946c675d5 Reviewed-on: https://chromium-review.googlesource.com/204573 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 033dae67 2014-06-18T12:56:28 Move OutputHLSL utility methods to other files. OutputHLSL was become a large, unweildy file. Some were also useful to other classes, even on the GL back-end, but were inacessible. Refactoring patch only. BUG=angle:466 Change-Id: Id216147122ca105c6ccdf0ba0c5f6c5038726965 Reviewed-on: https://chromium-review.googlesource.com/203459 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 05b05028 2014-06-11T15:31:45 Add support for EXT_sRGB. BUG=angle:672 Change-Id: I001ff3dde7a39e545a535a399c02f3a6d91634c8 Reviewed-on: https://chromium-review.googlesource.com/203460 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 66aaf723 2014-06-05T12:42:07 Always store GL_DEPTH_COMPONENT32_OES as a 24-bit depth format. Greatly simplifies the format utils by not having any internal format <-> DXGI format conversions depend on the client version. 32 bit floats and 24bit integers have very close precision in the [0,1] range so there should be no precision issues. BUG=angle:659 Change-Id: Ife64445ef35f77283fc4c70c98754f5e87b6fb19 Reviewed-on: https://chromium-review.googlesource.com/202507 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang cbb8412a 2014-06-11T15:30:32 Fix validation of LUMA formats in glGenerateMipmap. BUG=angle:673 Change-Id: I6c106962d8a50ed8f69d208c537166a30e4f92c6 Reviewed-on: https://chromium-review.googlesource.com/203292 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 6195ef87 2014-06-18T10:09:43 Fix transform feedback type. We were using the wrong enum for the varying type, as well as using the row count of the type. We should be using the column count, but for matrices we treat them as transposed. BUG=angle:679 Change-Id: I0eb7f68f629a4372c6822f65b2de51ecc88a03ed Reviewed-on: https://chromium-review.googlesource.com/204520 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill afa40f7d 2014-06-18T10:09:42 Fix buffer bugs affecting transform feedback. Running dEQP-GLES3.functional.transform_feedback would trigger a few assertion failures because of some regressions that crept into our code. Among the regressions is assuming we can't map a buffer that has no underlying storage object. This is valid since we sometimes allow setData without creating a native storage. Additionally we should free our existing data store on a new call to SetData, to prevent old but "new" data revisions from complicating our storage. BUG=angle:679 Change-Id: Icd96a8a55a2b957d29382d8b8bbd7e8a7ab0cf65 Reviewed-on: https://chromium-review.googlesource.com/204342 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 9c074a39 2014-06-16T10:34:02 Add queries for level and layer to FBO attachments. BUG=angle:660 Change-Id: I03e76dd7743267dc0b57cf53a4d27cd75a5d5adf Reviewed-on: https://chromium-review.googlesource.com/201837 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 218b6ede 2014-06-16T10:34:01 Add queries for object id and type to FBO attachments. BUG=angle:660 Change-Id: Id91f6f2ae84eaefd59f9d568736bd99e3a27ef5d Reviewed-on: https://chromium-review.googlesource.com/201836 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 2bf8b372 2014-06-16T17:18:51 Fix link error when using varyings with "dx_". Varyings beginning with "dx_" would not get decorated properly, or at all, which could cause potential internal variables and certainly caused link errors. Fix this by no longer treating the "dx_" prefix differently. Also fix our naming of "dx_Position" to be consistent with our other internal types. BUG=angle:678 Change-Id: I03da0494a3d934d82ae7b3f8f12a576ff9bc3869 Reviewed-on: https://chromium-review.googlesource.com/203777 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill bae30a00 2014-06-17T10:45:02 Add a macro for unused trace variables. This fixes the standalone 64-bit Debug build. Change-Id: I348b71a96ada435867367e565bc84b570d2bfb67 Reviewed-on: https://chromium-review.googlesource.com/204292 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1d4e38d3 2014-06-17T10:23:54 Fix compile warnings with attributes. BUG=angle:676 Change-Id: I291c0b618854179f726cb4c969fb65182d3b591e Reviewed-on: https://chromium-review.googlesource.com/204340 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Brandon Jones 5bf98290 2014-06-06T17:19:38 Refactoring VertexArrays BUG=angle:676 Change-Id: If17b05ab667d79adcaacfbd1811ed92c0ce47fff Reviewed-on: https://chromium-review.googlesource.com/203294 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1e3fa74d 2014-06-16T10:34:00 Remove Renderer pointer from FBO attachments. Removing the Renderer pointer is one step towards making FBO attachments a minimal state object. Eventually we will be able to store them as arrays instead of arrays of pointers. BUG=angle:660 Change-Id: Idce34e06c339ecb18c60fef12d2ed911d0c4e0f6 Reviewed-on: https://chromium-review.googlesource.com/201835 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 6c7b4ada 2014-06-16T10:33:59 Add new ref-counted Renderbuffer class. Renderbuffers are a clear object type in GL, and this patch adds a more consistent state representation for them. They're managed by the ResourceManager, and have a storage implementation similar to Textures, but much simpler. BUG=angle:660 Change-Id: Ia17199bb8cb570d48db42e1f28ccbcc12a902fcf Reviewed-on: https://chromium-review.googlesource.com/201834 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 4d632d8e 2014-06-16T13:20:17 Fix buffer overflow error on buffer resize. We were using the new, larger size for our buffer data copy step, instead of the old, smaller size. This bug was causing a crash on older nVidia drivers during normal browser usage. Reproducible with the index-validation-large-buffer WebGL test. BUG=angle:667 BUG=384420 Change-Id: I98ee893e0d8ba0bfc9adfe5a338da9b940248879 Reviewed-on: https://chromium-review.googlesource.com/203776 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods fb839475 2014-06-16T13:21:41 Fix ifdef complaints in clang BUG=angle:677 Change-Id: Iee457dfc0990e5ffd61932b1f286f3c0208568bc Reviewed-on: https://chromium-review.googlesource.com/203427 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang a0dc219e 2014-06-09T15:37:55 Re-enable MRT on D3D 10 and 10.1 cards. BUG=angle:670 Change-Id: I88b4823f25ec28fa52831d856ff9fb836fdfc533 Reviewed-on: https://chromium-review.googlesource.com/203120 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 04fb89ad 2014-06-09T15:05:36 Generate pixel shader output to match the bound framebuffer. Only generate pixel shader output variables for render targets that are currently bound. Fixes some performance issues with D3D10 cards that were slow to discard unused outputs. Fixed memory leaks in ProgramBinary by refactoring the freeing of the current state into a reset function. BUG=angle:670 Change-Id: I40f83e15724fb9a1a9ae61363a056999f1fa26d2 Reviewed-on: https://chromium-review.googlesource.com/202977 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill fd716586 2014-06-06T17:09:04 Refactor draw validation functions. We use a significant amount of code duplication in our draw validation, that we can consolidate. BUG=angle:571 Change-Id: I96787cbddf00d9289e368456fb85079d8acec513 Reviewed-on: https://chromium-review.googlesource.com/202975 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 250d33fb 2014-06-06T17:09:03 Move draw call validation to new functions. Separate draw call validation functions will give us a flexible base for refactoring and cleaning up all draw call validation. BUG=angle:571 Change-Id: Ia8e3c83cfe48fedb8f2c7aef1fb282f646c66e82 Reviewed-on: https://chromium-review.googlesource.com/202974 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang cec3590a 2014-04-16T10:52:36 Use a Caps structure to store extension and texture format support. Removes support for fallbacks in D3D9 texture formats. The fallback formats did not work properly anyways. BUG=angle:658 Change-Id: Idfa5183bf71fd8ebf4608f940f9d93177b9eff08 Reviewed-on: https://chromium-review.googlesource.com/200813 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9c4b24a5 2014-06-12T13:41:17 Use commit_id.py on Windows, and handle missing git. This allows us to delete the Windows batch file. Changes the commit_id script to take the working directory so that it can be called from a different working directory than the angle repository is in. Renames the generated commit header to angle_commit.h. This is being written to the shared generated code directory for the entire build, and "commit.h" is insufficiently unique. BUG=angle:669 Change-Id: I35e80411a7e8ba1e02ce3f6a4fc54ed4dbc918f3 Reviewed-on: https://chromium-review.googlesource.com/202048 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill e09f1c82 2014-06-12T11:10:12 Fix crash on zero size but non-NULL bufferData. Could cause a crash when running the WebGL CTS with Firefox. BUG=angle:675 Change-Id: I58bf9eed622660d4702b775f368ff9cbd693197a Reviewed-on: https://chromium-review.googlesource.com/203456 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Geoff Lang 44fa7594 2014-05-30T11:50:07 Refactor platform related functionality into platform.h and tls.h. Since libGLESv2 and libEGL will eventually be cross platform, it will be useful to have platform defines and TLS functions that work everywhere. BUG=angle:664 Change-Id: Ia357925a0992d82e8b446d88d32a1984d319e6e8 Reviewed-on: https://chromium-review.googlesource.com/202133 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang b6a673a0 2014-06-05T14:19:16 Report zero bit sizes for channels that shouldn't exist. If the actual format has more channels than the internal format of a framebuffer, bits counts greater than zero will be returned for channels that should not exist. While it is not against the spec to return more bits than exist in the format, it can be confusing for users or break tests. get*Bits will now only return greater than zero bit counts when the format should have the given channel. Since this is the only location that we return information about the "real" internal format we're using, it's safe to only make the modifications here. BUG=angle:653 Change-Id: I43ef4c6290c8c70737d579d7e9a2dd30d653330b Reviewed-on: https://chromium-review.googlesource.com/202594 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods afeeda93 2014-06-06T13:39:12 Prevents multisample depthstencil from being bound as an SRV BUG=381413 Multisample textures can only be bound as both depth stencil views and shader resource views at feature level 10_1 and above. We don't need to bind textures as SRVs if they're multisample depth targets, so we should avoid the SRV flag in that case. Change-Id: I28ca98bdc4a86eb5442b39ea3cf2b42aa9216aab Reviewed-on: https://chromium-review.googlesource.com/202921 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill afc21c06 2014-06-04T15:29:47 Move FBO attachment code to new source file. Since FBO attachments and Renderbuffers are semantically distinct, make a new location for attachments to live. BUG=angle:660 Change-Id: I51753f8a814e89641637c5d8293f7e9a573a7ba5 Reviewed-on: https://chromium-review.googlesource.com/201833 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3c7fa226 2014-06-05T13:08:51 Rename Renderbuffer to FramebufferAttachment. Part of the refactoring effort to clean up our classes for FBO attachments and Renderbuffers. BUG=angle:660 Change-Id: Id23df904f56499568159611b66c8922b9dce6a3d Reviewed-on: https://chromium-review.googlesource.com/201832 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6f38f823 2014-06-06T17:12:20 Fix up some validation bugs in Texture functions. In several places we weren't handling certain errors, or were returning the wrong error code. Several dEQP negative API tests are affected in functional.negative_api.texture. BUG=angle:571 Change-Id: I19d7250aab2c15d709fd591b8df90ce883f9ac60 Reviewed-on: https://chromium-review.googlesource.com/201250 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 04c68600 2014-06-05T09:59:52 Fix unused variable in validationES.cpp. Broken in 560a8d889b6866d7d29d. BUG=angle:571 Change-Id: Idb2414e11ad397cc45c2bdf5f357fd1b8e7fe6c2 Reviewed-on: https://chromium-review.googlesource.com/202602 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 560a8d88 2014-05-21T13:06:20 Refactor CopyTexImage validation. Move the common validation code to a shared base function. BUG=angle:571 Change-Id: Id70b413b408a21f0a8933cfd4a09e261e637bae1 Reviewed-on: https://chromium-review.googlesource.com/200559 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang d7e7d735 2014-05-27T16:10:46 Move the GL_APICALL and similar defines to the project level. BUG=angle:658 Change-Id: Ib4fa10bb89a6658efbc20d5a763d8ec9c3a5506f Reviewed-on: https://chromium-review.googlesource.com/201465 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a5c9a144 2014-05-26T16:39:33 Fix uniform bug from duplicate D3D9 shader pointers. In D3D9, sometimes the compiler would return the same shader pointer on different calls to compile, if the programs were similar. Work around this quirk by storing an applied serial for the program, so we know when to refresh uniform data. BUG=angle:661 Change-Id: I9750ee2298701dbe3f121dac6626198d24a2d1b2 Reviewed-on: https://chromium-review.googlesource.com/201562 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 673e680c 2014-05-28T10:28:33 Don't allocate unused swap chain buffers According to msdn.microsoft.com/en-us/library/windows/desktop/bb173075(v=vs.85).aspx the front buffer is the desktop and is not a dedicated part of the swap chain. Thus we should only need 1 swap chain buffer instead of the currently allocated 2. Samples in the DirectX SDK also only allocate just one. BUG=angle:662 Change-Id: If88eeab1954cbc92b39ac7cf42f924515c4b77f9 Reviewed-on: https://chromium-review.googlesource.com/201860 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 9cd1915c 2014-05-28T15:54:34 Fix warnings about unreferenced local variables. BUG=skia:2272 Change-Id: Ibf03efedc662fea2a389ad2dc5af5b7b014181a8 Reviewed-on: https://chromium-review.googlesource.com/201900 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Vladimir Vukicevic 24d8d675 2014-05-27T12:07:51 Fix register packing for structs in d3d9. Fixes WebGL test misc/shader-with-array-of-structs-uniform BUG=angle:656 Change-Id: If79a19db4d40bab9110422f7876de32e7f85e506 Reviewed-on: https://chromium-review.googlesource.com/200620 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill 68fe74aa 2014-05-27T12:56:01 Add a compiler query for the translator output type. This is useful for determining if we are compiling to a D3D9 or D3D11 shader outside of the internal translator classes. BUG=angle:656 Change-Id: Ib1c1d3de569edaa2b65c24c09d05aa4dd229d3e4 Reviewed-on: https://chromium-review.googlesource.com/201564 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 893ab087 2014-05-16T16:56:10 Move state query validation out of Context. Generate all GL errors in the validation helper functions, instead of within the state manipulation logic and internals of Context. BUG=angle:571 Change-Id: I7a3f540e2ae0f5f8c7126e2593717cc3200dd7e5 Reviewed-on: https://chromium-review.googlesource.com/200551 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c600c8c3 2014-05-16T11:22:21 Fix arrays-of-struct and nested struct uniforms. Our computation of register offsets had a few errors that messed up nested structs and arrays of structs. This fixes a WebGL test, as well as several dEQP tests. BUG=angle:505 TEST=WebGL CTS 1.0.3, dEQP-GELS3.functional.uniform-api Change-Id: Id5a0f39481e079fe5ef5ef856943dc1f91ee3639 Reviewed-on: https://chromium-review.googlesource.com/200045 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3639892d 2014-05-20T14:51:53 Move all uniform validation from ProgramBinary to API layer. This will have the contract of having a successful API call once we call into the ANGLE internals, having successfully passed valiation. BUG=angle:571 Change-Id: Ia8d6eccc1e42bdf9e9cc5c10094a08729b42778a Reviewed-on: https://chromium-review.googlesource.com/200075 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill aa981bd7 2014-05-20T10:55:55 Refactor Uniform validation to validationES.cpp. This patch also incidentally fixes some bugged validation in the new ES3 unsigned int uniform API entry points. BUG=angle:571 Change-Id: I89bd909467bd9418fe5ce3f246561765cf27a5e9 Reviewed-on: https://chromium-review.googlesource.com/200074 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill d7c7bb27 2014-05-20T10:55:54 Refactor UniformMatrix validation. Move the shared validation logic to validationES.cpp. BUG=angle:571 Change-Id: I2fb06a012703c647de2176914238b48665145c6f Reviewed-on: https://chromium-review.googlesource.com/200073 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 82b42271 2014-05-20T15:38:22 Fix build warnings in x64. A std::min/max with size_t and unsigned int. Popped up in f98e63a54b8a2. BUG= Change-Id: I25f26ddbe7fb333f895be8a8dce3d3d73044c3f9 Reviewed-on: https://chromium-review.googlesource.com/200484 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill fc2521e1 2014-05-16T16:21:57 Fix build on Windows 8.1 SDK. The Windows 8.1 SDK includes a new DLL compiler DLL, and is useful to test against, so we should fix the few deprecated functions and warnings. BUG=angle:649 Change-Id: I28bcf49564f3f7d7403d939d61dd78d3972281ba Reviewed-on: https://chromium-review.googlesource.com/199341 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 0e3efa51 2014-05-16T16:54:23 Explicitly set the swap effect. swapChainDesc.SwapEffect wasn't being set. The whole structure was initialized to 0 and DXGI_SWAP_EFFECT_DISCARD has value 0 so this should have no effect. Also sorted the field initialization in the order they're declared. BUG=373360 Change-Id: If0113e7468c0bad024a07fec6ad9e223e19494b5 Reviewed-on: https://chromium-review.googlesource.com/200046 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Geoff Lang 784371d0 2014-05-16T12:39:04 Don't discard serials of zero from the set of bound framebuffer serials. A serial of zero is a valid texture serial but it was used by RenderbufferStorage to denote a non-texture binding. Added a isTexture method to Renderbuffers and RenderbufferStorage has been updated to return -1 as the current texture serial to avoid collisions. BUG=angle:633 Change-Id: Ie27e4b185ac09b48b593ae0dea02aeff5950a44f Reviewed-on: https://chromium-review.googlesource.com/200123 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1b2a8f96 2014-05-14T13:09:39 Fix binary serialization to use explicit size and type. Loading program binaries across different architectures would cause runtime errors due to use of size_t. Also fix the ANGLE major and minor version that were clobbered in an earlier commit. BUG=angle:647 BUG=371435 Change-Id: I9473cc7e119592fce336aa47881839543e337b69 Reviewed-on: https://chromium-review.googlesource.com/199633 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 43b00426 2014-05-12T16:28:07 Optimize texture application in draw calls. Gather all bound textures and samplers first and then pass them to generateSwizzles and applyTextures to reduce redundant get calls. BUG=260069 Change-Id: I5b10dddb01a6bfd756c58b76218838cfc1fd59b6 Reviewed-on: https://chromium-review.googlesource.com/199343 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 45c785d3 2014-05-13T14:09:34 Move validation of EndQuery out of gl::Context. BUG=angle:571 Change-Id: I8913eb1b565a4282d9d84d06933e8b854453f17d Reviewed-on: https://chromium-review.googlesource.com/199349 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill db2f14c0 2014-05-13T13:56:30 Refactor BeginQuery validation out of gl::Context. Part of our effort to relocate all validation logic to a preliminary pass outside of our state tracking or rendering layers. BUG=angle:571 Change-Id: I5241daef6249910a781e78fd066debe0ab1d3f2b Reviewed-on: https://chromium-review.googlesource.com/199348 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Vladimir Vukicevic 2e660d56 2014-05-12T16:43:19 Use lowercase d3d header includes to fix ANGLE compilation on case sensitive OSes The actual D3D header filenames are all lowercase. Change-Id: I8f78d618d44360d34b5b01eb5a1972b35f2f15b7 Reviewed-on: https://chromium-review.googlesource.com/199692 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Vladimir Vukicevic 1e514358 2014-05-13T15:53:06 Add READ/DRAW_FRAMEBUFFER_BINDING_ANGLE to getQueryParameterInfo Change-Id: I3e7f5cb0b4d2829eef86b878ffede0ac86279f57 Reviewed-on: https://chromium-review.googlesource.com/199684 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ae1990c8 2014-05-12T16:57:14 Track if uniform data has been updated to avoid extra Map calls. Compare all uniform data to the values currently stored in the uniform and only mark the uniform as dirty if the data is new. This saves lots of buffer map calls when the same data is set on a uniform many times. BUG=260069 Change-Id: Ic4df8a276a81b074211712ff50e5cc4d0d9bb612 Reviewed-on: https://chromium-review.googlesource.com/199346 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 64c83249 2014-05-06T10:49:24 Remove references to software rendering in Renderer9. BUG=angle:641 Change-Id: I3724c2504d43eae0528e8c72eb51e96c9d7c7a71 Reviewed-on: https://chromium-review.googlesource.com/198377 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang f98e63a5 2014-05-12T16:45:12 Minimize the API calls done by InputLayoutCache::applyVertexBuffers. Reduce the number of IASetInputLayout calls to 1 in all cases and set the fewest number of buffers at once. BUG=260069 Change-Id: I059337fc6601ecefd801ef37546935becaa0d355 Reviewed-on: https://chromium-review.googlesource.com/199345 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 946b948d 2014-05-12T16:37:25 Optimize Texture*::updateStorage by iterating over fewer levels. Only update the storage on levels that exist. Especially helps for cube maps which have 90 images that would be iterated over in all cases. Added an additional early-out check if the image is dirty for cube maps to match the other texture types. BUG=260069 Change-Id: I3d298f4f9ebdc23136a31138a3ef8364667fa78c Reviewed-on: https://chromium-review.googlesource.com/199344 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ff0d2ba6 2014-05-14T13:49:10 Split register allocation of varyings from the translator. The translator gl::Varying struct does not need to know about register allocation. We can put that entirely in the API library. This makes exposing Varying variables with the new translator types cleaner. BUG=angle:466 Change-Id: Ib85ac27de003913a01f76d5f4dc52454530859e6 Reviewed-on: https://chromium-review.googlesource.com/199736 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4f8fcc24 2014-05-14T13:49:09 Remove gl::Varying::elementIndex. We only assigned to elementIndex, and never referenced the value at any point in our code. BUG=angle:466 Change-Id: I541a353110bcd1863b07b21bcf21fad38be19ca1 Reviewed-on: https://chromium-review.googlesource.com/199735 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 11c3b30f 2014-05-13T22:33:31 Revert "Fix binary serialization to use explicit size and type." This reverts commit 261988513e89479a0d121d045a8d89b64dc68214. Change-Id: I959ca14fcbb257f12005f7f0b64a600e906a118c Reviewed-on: https://chromium-review.googlesource.com/199630 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 26198851 2014-05-12T15:49:38 Fix binary serialization to use explicit size and type. Loading program binaries across different architectures would cause runtime errors due to use of size_t. Also fix the ANGLE major and minor version that were clobbered in an earlier commit. BUG=angle:647 BUG=371435 Change-Id: If2ad4c8fc246cc9ff0b4d95ba87b7d1ed109a064 Reviewed-on: https://chromium-review.googlesource.com/199102 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 2c27db6f 2014-05-10T12:21:11 Attempt skipping D3D11 shader optimization if compilation fails. BUG=angle:648,chromium:371868 Change-Id: I1de854aad6e002bd1349f08eb8d6b597c535c90b Reviewed-on: https://chromium-review.googlesource.com/199312 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Brandon Jones <bajones@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 1408bae6 2014-05-10T12:18:42 Attempt skipping validation if D3D11 shader compilation fails. Some shaders fail to compile with validation error messages that make no sense. BUG=angle:648,chromium:372016 Change-Id: Ief0e28efa6bc7eaa483c95f45c00ce4f9f20e541 Reviewed-on: https://chromium-review.googlesource.com/199311 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 93faad9f 2014-05-10T12:14:13 Refactor attempting shader compilation with different flags. BUG=angle:648 Change-Id: Ie340eaa708820cc13be6d1f5ba04555b6c1918ea Reviewed-on: https://chromium-review.googlesource.com/199310 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens aea8e947 2014-05-09T19:14:08 Fix D3D11 'units' polygon offset bias. D3D11 DepthBias is an integer corresponding directly to GL polygon offset units. BUG=371604 Change-Id: I20a126bd9c6298efff95f3edbf1babc0dd495b18 Reviewed-on: https://chromium-review.googlesource.com/199200 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens 5075e13b 2014-05-09T14:40:29 Fix D3D11 polygon offset. We were not taking the state of GL_POLYGON_OFFSET_FILL into account. BUG=371604 Change-Id: I9b490ed043faeece86665acaef0b865bf1f7b60d Reviewed-on: https://chromium-review.googlesource.com/199121 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Geoff Lang 7b827596 2014-05-08T11:12:26 Fix BufferStorage11::getLatestStorage not finding the latest buffer. If there are only buffers with data revision 0, getLatestStorage will skip over them. Fixed the if statement so that it will always find a buffer if one exists. BUG=angle:644 Change-Id: I24fc426383c9ae18b7ccf2f8937a9daa7a071ebe Reviewed-on: https://chromium-review.googlesource.com/198826 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang d3ff9009 2014-05-08T11:19:27 Add support for querying GL_MAX_VARYING_COMPONENTS. BUG=angle:645 Change-Id: I2e33798bd7fe6cabb1237224aeb9e59cdf03f73c Reviewed-on: https://chromium-review.googlesource.com/198836 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5fedd017 2014-05-08T10:19:36 Implement copies from pack buffers to native buffers. Full support for using pack buffers as vertex buffers or other binding points requires us to copy through the staging buffer. BUG=angle:511 Change-Id: Ife0f5390a1a83dfbe0fa0b19db72f3a8b82b6b83 Reviewed-on: https://chromium-review.googlesource.com/198435 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 14764a09 2014-05-08T10:19:20 Implement internal copies from pack buffers. Pack buffers used in different binding points when combined with other buffer operations require us to be able to read from the pack buffer then write to the native buffer. BUG=angle:511 Change-Id: I2e859695235eb649ddd5dfc1332ecb19b57c1933 Reviewed-on: https://chromium-review.googlesource.com/198434 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 235a6ab5 2014-05-08T10:44:20 Fix regression with BufferStorage11 and latest storage. With our fix to huge buffer allocations, an extra check was preventing pixel pack from running on the first try. BUG=angle:511 Change-Id: Idabafe4e204ad3b7bf2010595dc455affe93dae0 Reviewed-on: https://chromium-review.googlesource.com/198825 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang b69d39ba 2014-05-06T11:49:22 Add a DXGI format for GL_LUMINANCE16F_EXT in ES3. BUG=angle:642 Change-Id: I41eb64b8e9963cfe33e4c127f84a16eef9b118d3 Reviewed-on: https://chromium-review.googlesource.com/198379 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 07d68856 2014-05-06T16:31:14 Move the implementations of shader var init to the header. Making the contructors for shader variables inline saves us from exporting them across DLL boundaries. This makes it easier to use them in the translator when building the translator as a DLL. BUG=angle:466 Change-Id: Iee0556e06dc1f9e98fe9eea6577819305de0dd0b Reviewed-on: https://chromium-review.googlesource.com/198555 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods 6667f76b 2014-05-06T17:12:19 Advertises the NV_pixel_buffer_object extension BUG=angle:581 Change-Id: I1e55582e94a36e56ef3e0f53ff9233c1a31408f5 Reviewed-on: https://chromium-review.googlesource.com/198238 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 158c4384 2014-05-06T13:00:07 Adds PBO buffer targets when extension is present BUG=angle:581 Change-Id: I125cdd995e538db4a275657770149071406a6ad1 Reviewed-on: https://chromium-review.googlesource.com/198237 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 334f19b7 2014-05-06T15:39:11 Adds conversion for USHORT2N decltype BUG=angle:643 Change-Id: I90a5e5c91351b9dd43a841cc5612f3f3656dc5b1 Reviewed-on: https://chromium-review.googlesource.com/198233 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 80b9528d 2014-05-06T13:57:43 Handle buffer memory allocation failures gracefully. When we would allocate huge buffers, we would not always gracefully fail and return a GL error back to the application. We should be able to better handle buffer allocation failures with this patch. BUG=angle:634 Change-Id: Ic3edce6d22b731ec52666a2a0e82f9a4fbbb23ae Reviewed-on: https://chromium-review.googlesource.com/197994 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2b5c9cbc 2014-04-29T16:17:22 Store current pack operation as a queued command. The pack pixels operation is split in two halves: a GPU copy then a CPU readback. We defer the CPU readback until we can't wait any longer. That is, we do the readback when the user maps the buffer, or there's another readback or internal operation. This offers the benefits of doing as much GPU work as asynchronously as possible, and only doing the readback work on related API calls (map or subsequent pack calls). BUG=angle:511 Change-Id: I95a01da2b0e842438b180e8cdbb382c9a46ae210 Reviewed-on: https://chromium-review.googlesource.com/197836 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 7a29e4ae 2014-05-02T10:41:48 Stop generating duplicate vertex binaries. We would generate multiple vertex binaries that result in the same HLSL code, eg for vec2 and vec3 vertex attributes. Eliminate duplicates by using the converted attribute type for testing for matching binaries. BUG=angle:599 Change-Id: I061588164577ff9fa69ebb7d8a3f2bf6bb6fe013 Reviewed-on: https://chromium-review.googlesource.com/197830 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>