src/libGLESv2/renderer


Log

Author Commit Date CI Message
Jamie Madill aff8084b 2014-08-04T10:47:56 Fix VertexBuffer11::getSpaceRequired for instanced attribs. The computation could copy more data than needed. Although benign it could cause performance degredation compared to the D3D9 back end. Change-Id: I3cf1dc79085c33d44040fd55153e63a4e5e63cb1 Reviewed-on: https://chromium-review.googlesource.com/210640 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang 5d601382 2014-07-22T15:14:06 Simplify formatutils.h by exposing the info structures. Removed all the separate query functions and simply expose the internal info structures. This reduces the number of std::map/std::set operations that were hidden behind the API. Moved the validation tables for ES3 format combinations and effective internal formats into validationES3.cpp so that formatutils.h only has generic GL format queries. BUG=angle:658 Change-Id: Ieb60d42b8eafcdb4f21dcbec130b39478ce5f7c5 Reviewed-on: https://chromium-review.googlesource.com/206835 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5c1e58d0 2014-08-04T10:47:58 Add missing cache clears to D3D buffer classes. BUG=angle:709 Change-Id: I93f92b916a0da26975cd459399cc2873cb4ab9f0 Reviewed-on: https://chromium-review.googlesource.com/210642 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill cfaaf72f 2014-07-31T10:47:54 Fix CopyBufferSubData. We were passing the arguments from the gl::Buffer stub to the implementation class, which was breaking the call. Also clean up a few comments. BUG=angle:709 Change-Id: Ib92a36d1c52d60d8929f567d0daf54e9d6a2d127 Reviewed-on: https://chromium-review.googlesource.com/210641 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill f8bdfebc 2014-07-31T18:31:28 Revert "Unifying the various texture interfaces where possible" This reverts commit 8c9038d6f57a4b53c97c4fb803259e7a50ab4cea. Change-Id: I29c25121870e6f8d12144d235029f46fff90be7c Reviewed-on: https://chromium-review.googlesource.com/210651 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 8c9038d6 2014-07-21T09:43:22 Unifying the various texture interfaces where possible BUG=angle:688 Change-Id: I43be738e0a42f7a7e1448e1d9300b30d4bc54125 Reviewed-on: https://chromium-review.googlesource.com/209343 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 4fbd36ec 2014-07-29T15:20:48 Add a test for multisampled PBOs. We don't allow ReadPixels from multisampled targets in GL. Also update the assertions in Buffer11 to reflect our expectations. BUG=angle:511 Change-Id: Ia3d5f796f5405fbae1187f3d45b0080d7f24b6d9 Reviewed-on: https://chromium-review.googlesource.com/210053 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Geoff Lang 5f4c4636 2014-07-03T13:46:52 Use the FormatCaps for multisample validation and queries. BUG=angle:658 Change-Id: Ic9fa53fb62d7eff62f07b68d7ddada461ecad859 Reviewed-on: https://chromium-review.googlesource.com/206832 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 8d62bcc4 2014-07-25T15:08:21 Avoid D3D11 primitive restart index using 32-bit indices D3D11 interprets an index value of 0xFFFF in a 16-bit index buffer as a primitive restart marker. This behavior can't be toggled off. http://msdn.microsoft.com/en-us/library/windows/desktop/bb205124(v=vs.85).aspx We work around it by converting to 32-bit indices. BUG=angle:708 Change-Id: Ibc92d6ba98e5f11a98d76cae14f90ca050a19964 Reviewed-on: https://chromium-review.googlesource.com/209883 Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Jones 6b19b002 2014-07-16T14:32:05 Removing D3D-isms from gl::Texture BUG=angle:688 Change-Id: I0cdc758000993f2d54240c69a84f5ae149306d9e Reviewed-on: https://chromium-review.googlesource.com/209332 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 07d49ef5 2014-07-25T11:52:38 Fix Clang warning with preloaded D3DCompiler string. Clang was complaining that we were casting a char* to a wchar_t*. BUG=angle:707 Change-Id: I063165e9add4e9b57d131181da30c05e5abbc1c2 Reviewed-on: https://chromium-review.googlesource.com/209618 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a09403c0 2014-07-21T10:03:36 Fix masked ClearBuffer. We were not properly setting the masked channels for these APIs. Since we use a std::vector for tracking the render targets for a particular ClearBuffer call, we lose the indexing into the clear parameters. Fix this by storing the information in the std::vector along with the Render Target. BUG=angle:702 Change-Id: Ie3b1e870aa04054411c4f155682b86a340ec00cf Reviewed-on: https://chromium-review.googlesource.com/209103 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill cafa2102 2014-07-23T16:43:22 Fix Clang warnings. MSVC's more permissing validator missed a dependent typename, and deleting a void pointer. BUG=angle:703,704 Change-Id: I227b94c9c1590973d7b11b0ed0bfda32f2a71cec Reviewed-on: https://chromium-review.googlesource.com/209613 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5063f55a 2014-07-23T16:27:31 Add a MemoryBuffer type to safely allocate large user data buffers. MemoryBuffer has a similar interface to std::vector but returns a bool on resize to do error checking. BUG=angle:700 Change-Id: Ib201eeb91b07f5b7f970e153f5d1e110f9b2fa55 Reviewed-on: https://chromium-review.googlesource.com/209612 Reviewed-by: Nico Weber <thakis@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 142ec426 2014-07-16T10:31:30 Refactored Texture2DArray, separated out D3D logic BUG=angle:688 Change-Id: Ie3e5ac2bedcffb816ef1537575f09afb3f5e7a35 Reviewed-on: https://chromium-review.googlesource.com/208381 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Brandon Jones 18fe4294 2014-07-22T13:03:06 Added virtual destructors to VertexArrayImpl and BufferImpl Change-Id: Ib9d8b2fc85b63f0cd52a2b19129a88ba7acbc017 Reviewed-on: https://chromium-review.googlesource.com/209380 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Tested-by: Nico Weber <thakis@chromium.org>
Geoff Lang 6cf8e1b9 2014-07-03T13:03:57 Reduce the number of TextureFormatCaps members. Since GL has no notion of texture formats that can be used for different types of textures, merge the TextureFormatCaps texture support members. Also merge the various renderability members since the texture type is enough to determine what type of renderable a format is. BUG=angle:658 Change-Id: I7cba50b147fcca8f3880d65c06c57df9c65ed19c Reviewed-on: https://chromium-review.googlesource.com/206830 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 591e6afe 2014-06-18T18:08:57 Add support for ANGLE_platform_angle. BUG=angle:490 Change-Id: If3c897a9ae3d27b96e4b9bf9475a9ac23a1090ba Reviewed-on: https://chromium-review.googlesource.com/185396 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 78b1acdb 2014-07-15T15:33:07 Refactored Texture3D, separated out D3D logic BUG=angle:688 Change-Id: I6cda73c2e4c8a026b8c5222bc40cea93ad4e0ba3 Reviewed-on: https://chromium-review.googlesource.com/208102 Tested-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Jones 0511e808 2014-07-14T16:27:26 Refactored TextureCubeMap, separated out D3D logic BUG=angle:688 Change-Id: I2300aaad4fab25df484e0bc3613ac3b176addc93 Reviewed-on: https://chromium-review.googlesource.com/208191 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Andrew Knight 75ec7c5b 2014-07-17T15:00:38 Fix "error: extra qualification 'rx::ImageD3D::' on member 'makeImageD3D'" As reported by GCC 4.8.1/MinGW. Change-Id: If62d234074a0a9180f1f3c3619dbb2dd8047d0f3 Reviewed-on: https://chromium-review.googlesource.com/208670 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Andrew Knight <andrew.knight@digia.com>
Brandon Jones f47bebc4 2014-07-09T14:28:42 Refactored Texture2D, separated out D3D logic BUG=angle:688 Change-Id: I93c2ff0b125278234d61324844b79cc58135d4d8 Reviewed-on: https://chromium-review.googlesource.com/207675 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Shannon Woods 53a94a82 2014-06-24T15:20:36 Refactors State to be a fully-qualified class BUG=angle:685 Change-Id: I36cff2da985a12c7180fe2850ccd471f4cebbaad Reviewed-on: https://chromium-review.googlesource.com/206634 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Jones 6518fe24 2014-07-08T15:16:52 Moved TextureStorage and Image into d3d BUG=angle:688 Change-Id: I98ffa1082340a829a77fe5082958898b9c6ab1a2 Reviewed-on: https://chromium-review.googlesource.com/207054 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Geoff Lang 0b7e5d8c 2014-07-11T16:33:09 Fix 64-bit warnings. BUG=angle:631 Change-Id: I76439ca2549916d594a54a4a9a35387d80b023ba Reviewed-on: https://chromium-review.googlesource.com/207441 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c0b9ef4b 2014-07-02T10:02:37 Split Caps into Caps, Extensions and TextureFormatCaps. Context now holds it's own Caps, Extensions and TextureFormat caps so that it can modify them based on client version or work-arounds. BUG=angle:658 Change-Id: Id71b6c89b7aa36e1f3dc42b0e4720eaed1851fb9 Reviewed-on: https://chromium-review.googlesource.com/206480 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 57f9b6d5 2014-06-04T16:46:37 Clean up generatemip.h. * Move "private" functions into generatemip.inl. * Use size_t for all dimensions. * Use uint8_t pointers instead of unsigned char pointers. BUG=angle:666 Change-Id: I8a1324802e4d670c042e0961c2b6f6fd53f4ebc7 Reviewed-on: https://chromium-review.googlesource.com/202503 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 86846e24 2014-06-03T15:48:54 Clean up the functions in loadimage.h/cpp. * Capitalize the function names to fit the style guide. * Use explicit sizes in the function names to avoid any confusion about input or output sizes. * Use explicit sized types in the functions to avoid potential issues on new platforms since a lot of bit-twiddling is used. * Use size_t for all sizes. * Use uint8_t for all binary data for input and output data so that pointer arithmetic is much easier. * Move templated function definitions into an .inl file so that loadimage.h looks as clean as possible. BUG=angle:665 Change-Id: Id7173ed66d9e1b7ee3261eea11e77d838cbd2951 Reviewed-on: https://chromium-review.googlesource.com/202590 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e92a3546 2014-07-03T10:38:58 Remove redundant FBO query methods. Several query methods simply wrapped a NULL check with a default return value. Most of these safety checks were unnecessary. BUG=angle:660 Change-Id: I0ac6897f06be082c8efab8721920d1b51ba999ee Reviewed-on: https://chromium-review.googlesource.com/205606 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang aae65a4e 2014-05-26T12:43:44 Add caps for texture size limits and other caps in the 6.28 table. BUG=angle:658 Change-Id: Ia265fe1d3713db7701b41e8430d6d186f352ab4a Reviewed-on: https://chromium-review.googlesource.com/201363 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones b23375fe 2014-07-08T10:49:39 Fixed an issue with Streaming Vertex data overflowing it's buffer. Bug=angle:689 Change-Id: Ia0ee6f951822901560888ea300a3889601fa1d89 Reviewed-on: https://chromium-review.googlesource.com/207010 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Brandon Jones a328d569 2014-07-01T13:52:40 Removed sampler state getters and setters from gl::Texture BUG=angle:688 Change-Id: I3f203e4d10059c12a0c00e967ad6c7d3b3a18074 Reviewed-on: https://chromium-review.googlesource.com/206335 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Brandon Jones <bajones@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 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>
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 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 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>
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>
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>
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 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>
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 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>
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 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 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>
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>
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>
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>
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>
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>
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 1ef6fe77 2014-05-01T14:51:05 Enable PBO asynchronous readback in Renderer11. BUG=angle:511 Change-Id: Id795a85ec1daa396fc51f021c37fe23df3ecc065 Reviewed-on: https://chromium-review.googlesource.com/197702 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 19811d0b 2014-05-01T14:51:04 Keep persistent pack buffer memory storage. Keeping a persistent storage allows us to treat the memory buffer as the canonical copy of the pack buffer data, and simplifies corner cases. BUG=angle:511 Change-Id: Ied4dcb2edce2b85f68645f5a65603cbf18ad5a16 Reviewed-on: https://chromium-review.googlesource.com/197701 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 876dc724 2014-05-01T17:10:24 Fix 64-bit build failures. Update the BufferStorage classes to use size_t for all sizes and offsets. BufferStorage9 now uses a std::vector to manage its memory. BUG=angle:631 Change-Id: Iea4e7b33ede59a5b9c6a1245690c4b7865096fc3 Reviewed-on: https://chromium-review.googlesource.com/197819 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Nicolas Capens 25bf006a 2014-04-22T15:10:22 Optimize alignment and conversion test for float attribute types. The generic alignment and conversion test to check for the possibility of using direct storage is relatively expensive. Float types can be tested more quickly. BUG=angle:613 Change-Id: I5ab008ce82c8b652f0392c20a80a5b198b2437a5 Reviewed-on: https://chromium-review.googlesource.com/197721 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Nicolas Capens b05e3495 2014-04-22T15:48:00 Refactor setting the input layout and vertex buffers separately. BUG=angle:613 Change-Id: Id2ecfc215ef65164cb9ee8bfbad168e9af658386 Reviewed-on: https://chromium-review.googlesource.com/197722 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens aa2f00af 2014-04-22T13:49:59 Early out when direct binding not supported. BUG=angle:613 Change-Id: I488dca027e3f6d23cda546ca44af54dcc3338047 Reviewed-on: https://chromium-review.googlesource.com/197720 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens 69d8b7cf 2014-04-30T12:16:48 Remove unused mWriteUsageCount. BUG=angle:613 Change-Id: Ia0d9f4ff3b4ace57532b061f5729fa82f49c4497 Reviewed-on: https://chromium-review.googlesource.com/197710 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens 3b35e4da 2014-04-22T11:34:31 Fix a performance regression. "Refactor BufferStorage11" caused a performance regression by dropping the line which sets mReadUsageCount to 0. This causes markBufferUsage() to clear mResovedData which then has to be restored on the next getData() call. BUG=angle:613 Change-Id: I61c4b4960305a69b315c20ced66265a770002338 Reviewed-on: https://chromium-review.googlesource.com/197503 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e7a453a5 2014-04-24T14:50:57 Lazy creation of the BufferStorage staging buffer. Only creating the staging buffer on use saves us from allocating a D3D11 staging buffer for pack buffers. This saves some memory and time when we're only using a buffer object for asynchronous readback. BUG=angle:511 Change-Id: I97b37cc27aba4a4526025815b5935b9e74abae2e Reviewed-on: https://chromium-review.googlesource.com/195367 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> (cherry picked from commit ebf396c1dd243223240bac6ea7f01a23893f9a28) Reviewed-on: https://chromium-review.googlesource.com/197281
Jamie Madill 73571e66 2014-04-24T14:50:56 Implementation of buffer map for pack buffers. Internally pack buffers are CPU pointers, with an associated staging texture. In the map call we copy the data out of the staging memory to CPU memory, and return a pointer to the CPU buffer. BUG=angle:511 Change-Id: I2a82addd2f21241d8d49554b2fc71d890a166386 Reviewed-on: https://chromium-review.googlesource.com/195366 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> (cherry picked from commit 0b44a455b5a81b84662e57f30348f4e791f62358) Reviewed-on: https://chromium-review.googlesource.com/197272
Geoff Lang c41e42d4 2014-04-28T10:58:16 Early-out of *TexSubImage* calls when the width, height or depth is zero. BUG=angle:622 Change-Id: I74ef5b684151895b24a15fa8f799a633174622c2 Reviewed-on: https://chromium-review.googlesource.com/197270 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill bde4c2f7 2014-03-21T10:42:10 Force a compiler release when we terminate the Renderer. Forcing the release ensures we always manually deallocate resources, and allows us to compile for different shader model versions after releasing the renderer. BUG=angle:619 Change-Id: I0c9d68a454c7779a024f4fcc4f4987c2abe12e60 Reviewed-on: https://chromium-review.googlesource.com/196820 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 6cec8509 2014-04-19T12:39:25 Re-enable RTTI and fix compilation errors. BUG=angle:616 Change-Id: I964ddc4a3d51d5f202608e3162edb684290cbc6a Reviewed-on: https://chromium-review.googlesource.com/195731 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Nicolas Capens fbcc6345 2014-04-17T10:38:38 Report unknown swap error as EGL_BAD_MATCH. EGL_BAD_NATIVE_WINDOW is exclusively for indicating that the native window handle is invalid. Since we're seeing this error on switches between full-screen and windowed, EGL_BAD_MATCH seems like a better fit. BUG=361553 Change-Id: If0e2c4e5efd90838629b2769f20fcffdad4c30a9 Reviewed-on: https://chromium-review.googlesource.com/195363 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill c9fa6ed1 2014-04-17T11:53:40 Implement asynchronous readback with PBOs. This patch covers the basic implementation in the buffer storage. BUG=angle:511 Change-Id: Ie7dcb11e42e568115521cc3e4ed479d3486ac957 Reviewed-on: https://chromium-review.googlesource.com/193621 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7538f7fa 2014-04-17T11:53:39 Refactor Renderer11 to accomodate pixel pack. Splitting the readTextureData call allow a pack buffer read to return asynchronously after the D3D11 CopySubresource call. Refactoring patch only. BUG=angle:511 Change-Id: I3459ddfa7b48497b25fb2f4890e1cc1341e2cf75 Reviewed-on: https://chromium-review.googlesource.com/193620 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4305fea1 2014-04-16T15:12:35 Add a pack buffer storage to BufferStorage11. This new storage implementation uses CPU memory to read back pixel data from a texture. We use this class to implement pack buffers for asynchronous pixel readback. BUG=angle:511 Change-Id: Ifebd242047291af6b34c981231b69987b87d290d Reviewed-on: https://chromium-review.googlesource.com/193243 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 834e8b77 2014-04-11T13:33:58 Move ShaderVariables to common shared source. Also move the block layout encoding utilities to the common folder. The combined changes allow us to include the shader and block code into both libGLESv2 and the translator separately. This in turn fixes the Chromium component build, where we were calling internal translator functions directly from libGLESv2. BUG=angle:568 Change-Id: Ibcfa2c936a7c737ad515c10bd24061ff39ee5747 Reviewed-on: https://chromium-review.googlesource.com/192891 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 35adc099 2014-04-11T17:49:31 Implement BASE/MAX_LEVEL, and MIN/MAX_LOD functionality. BUG=angle:596 Change-Id: I0c818fdc1575be1ee16966acf7b6daa067a24282 Reviewed-on: https://chromium-review.googlesource.com/193236 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>