src/libGLESv2/Context.cpp


Log

Author Commit Date CI Message
Jamie Madill d9ba4f73 2014-08-04T10:47:59 Move implementation of hasMappedBuffer to State. Refactoring patch only. BUG=angle:571 Change-Id: Ib9f3145eaa457d94e488fd42eb4c4b9133768996 Reviewed-on: https://chromium-review.googlesource.com/210643 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@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>
Geoff Lang 8e8bf555 2014-07-03T13:50:40 Remove the MajorShaderModel member from Context. BUG=angle:658 Change-Id: Iab7906309f6603d5364d891bb332af8c3bf457fe Reviewed-on: https://chromium-review.googlesource.com/206834 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@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>
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>
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>
Geoff Lang 493daf5a 2014-07-03T13:38:44 Update the format table to check support for filtering and rendering. Since filerability and renderability may depend on separate extensions, use functions to determine their support. Context now uses these functions to fill it's own TextureFormatCaps. BUG=angle:658 Change-Id: Ib4dc877ba7c24f84a3823fd5aa2e01a3b3621705 Reviewed-on: https://chromium-review.googlesource.com/206831 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@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>
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>
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>
Shannon Woods 1da3cf63 2014-06-27T15:32:23 Removes sub-entry-point Framebuffer validations BUG=angle:685 Change-Id: I2d630396a5971972f858cca9c39ceb6509492aa4 Reviewed-on: https://chromium-review.googlesource.com/205836 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods aa2ab7d8 2014-06-24T17:51:51 Cache bound FBO and VAO objects themselves in State BUG=angle:685 Change-Id: I19ae6752d1a7490122dd9ca076efb08564e1901d Reviewed-on: https://chromium-review.googlesource.com/205835 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill d4cfa57d 2014-07-08T10:00:32 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. Also update the program binary's cached sampler data when we validate. The previous patch was breaking draw calls in Google Earth WebGL. BUG=angle:571 BUG=390412 Change-Id: I1c4e204ae2467afc36b76af975a3a49e26349639 Reviewed-on: https://chromium-review.googlesource.com/206482 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-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>
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>
Jamie Madill 570f7c84 2014-07-03T10:38:54 Add helper methods for FBO attachment validation. Subsequent refactoring will eliminate duplicate code. BUG=angle:571 Change-Id: I086320beb5c432c326d29d047931575e6f2a1d64 Reviewed-on: https://chromium-review.googlesource.com/205603 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@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>
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>
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>
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 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>
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>
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 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 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>
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>
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 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 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>
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>
Geoff Lang cdacacdd 2014-04-24T12:01:56 Add validation for unsized BGRA texture formats. BUG=angle:620 Change-Id: I956b7fc4ed0be99239e4ed1c63b51732727cc87f Reviewed-on: https://chromium-review.googlesource.com/196840 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens 46485086 2014-04-15T13:12:50 Implement EXT_shader_texture_lod BUG=angle:551 Change-Id: I81d7574a15861f1b24ddf6147cf71adbf20e10f3 Reviewed-on: https://chromium-review.googlesource.com/194960 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang cebb5aa0 2014-04-07T14:13:40 Fix warnings about unreferenced local variables. BUG=angleproject:602 Change-Id: I2eb04fe6eed60b3877b14628e81c0b1fe3b68647 Reviewed-on: https://chromium-review.googlesource.com/193431 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill eb9baabb 2014-03-24T13:19:43 Pass pack state arguments instead of split parameters. Similar to unpack state, the PixelPackState struct encapsulates all the parameters related to pixel pack buffers. Passing the packstate makes functions more consise. BUG=angle:511 Change-Id: If6954a5085e9b8f828cfc8892a73e7c7514b0c8a Reviewed-on: https://chromium-review.googlesource.com/191032 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 4c5c6bbb 2014-02-05T16:32:46 Add support for drawing with transform feedback. BUG=angle:495 Change-Id: Ib9c19130dfbc44a99998c5d6d8160bfc2b683eb9 Reviewed-on: https://chromium-review.googlesource.com/185037 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 916e769a 2014-03-27T16:58:22 Adds support for EXT_map_buffer_range BUG=angle:581 Change-Id: I0ab637db35afd51ff4c516bb97e954f4f2cdad3d Reviewed-on: https://chromium-review.googlesource.com/191710 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods b3801744 2014-03-27T14:59:19 Adds support for OES_mapbuffer BUG=angle:581 Change-Id: I05824051789a77c8169ec5830731e6155c507fc4 Reviewed-on: https://chromium-review.googlesource.com/191650 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 48dcae7b 2014-02-05T16:28:24 Added transform feedback shader generation. BUG=angle:495 Change-Id: I41a0177fd3eb43c9f4ab9e54faeadac3eb483c2c Reviewed-on: https://chromium-review.googlesource.com/185035 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1b6edcb6 2014-02-03T14:27:56 Add remaining transform feedback queries. BUG=angle:493 Change-Id: I8841af50dcb90e7fb8a811b95d015bfdd2c5d226 Reviewed-on: https://chromium-review.googlesource.com/191035 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1e40d1c9 2014-03-18T22:41:22 Revert "Add remaining transform feedback queries." This reverts commit 4251b75830f91df68df80a096a0713830c73b1cc. Change-Id: I95afebcaf91ee38a121df20f403eb06f19b2510a Reviewed-on: https://chromium-review.googlesource.com/190560 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 4251b758 2014-02-03T14:27:56 Add remaining transform feedback queries. BUG=angle:493 Change-Id: Ibeae41da2b83ab63d237912602ba5d2aad0bbec2 Reviewed-on: https://chromium-review.googlesource.com/185036 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 26e9195f 2014-03-05T15:01:27 Refactor ReadPixels validation. Move ReadPixels error generation out of the implementation and into the API level. BUG=angle:571 Change-Id: I0b32294f359fedd13d1af2c95baf37a3e5ac1d5b Reviewed-on: https://chromium-review.googlesource.com/188014 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7a5f738b 2014-03-05T15:01:24 Implement buffer map related entry points and errors. BUG=angle:565 Change-Id: I14cee4eec032d4b6b8d9479da4234b81e4ec6bec Reviewed-on: https://chromium-review.googlesource.com/188202 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8c96d58a 2014-03-05T15:01:23 Add helper methods for buffer enum tagets. A query helper method in Context and a validation helper method reduce code redundancy quite a bit. BUG=angle:565 Change-Id: I96b9ecc4614e7e31240e31594223e8b9636d22c2 Reviewed-on: https://chromium-review.googlesource.com/188201 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang eeba6e1e 2014-02-03T13:12:30 Added methods for applying the current transform feedback buffers. BUG=angle:495 Change-Id: I2d9fbf9c245bc519b8c5a724ca3912aaa7a23d97 Reviewed-on: https://chromium-review.googlesource.com/185034 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang c8058451 2014-02-03T12:04:11 Add functionality to create and destroy TransformFeedback objects. BUG=angle:491 Change-Id: I3ee3c2aec1878ad656a8f522943a29fea6f7e215 Reviewed-on: https://chromium-review.googlesource.com/185033 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 496123fd 2014-02-12T11:33:51 Implement EXT_blend_minmax. BUG=angle:555 Change-Id: I1ae6a9783e718d16ee08bda5463f11cd52ad0967 Reviewed-on: https://chromium-review.googlesource.com/186123 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill c5a83000 2014-02-14T16:41:25 Store multiple vertex executables in the program binary. With dynamic vertex conversion the GPU, we will have different input layouts resulting in different executables. This patch adds a way of mapping the input layouts to vertex executables. BUG=angle:560 Change-Id: Ie36f2f8ac2dfcb96f562af577d31f57d6d89b447 Reviewed-on: https://chromium-review.googlesource.com/185192 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 37dde692 2014-01-31T16:34:54 Add support for transform feedback queries. Change-Id: I0aab43b146f87259898db57acb9f74fdbfdb1b96 Reviewed-on: https://chromium-review.googlesource.com/184580 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0550d038 2014-01-30T11:29:07 Implement GL_RASTERIZER_DISCARD. BUG=angle:498 Change-Id: Ib60c39e206003ae67c93769e35f7f9ef790ce9f4 Reviewed-on: https://chromium-review.googlesource.com/184396 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1fc7e2c5 2014-01-21T16:47:10 Refactor validation of FramebufferRenderbuffer. Consolidate a lot of duplicated code into helper methods. Also move GetTargetTexture to the context class. Change-Id: I8e3990a5e3c1976cb533941d0a0946466accec30 Reviewed-on: https://chromium-review.googlesource.com/181556 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b155bbcb 2014-01-13T09:51:03 Properly clamp stencil mask query values to max int. We could overflow when casting from max unsigned int to integer, and return a negative mask. See dEQP functional.state_query.stencil_value_mask_getfloat Change-Id: I59189a40b662ad9d8ded79cdfeded923b98f0b85 Reviewed-on: https://chromium-review.googlesource.com/181780 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2e503557 2013-12-19T13:48:34 Add in fixes for dEQP state reset. dEQP relies on a couple specific enums to reset state (see the prerequisites test) which we don't currently implement. Prior changes require us to implement a few query parameter to allow dEQP to work. BUG=angle:540 Change-Id: Ibd7caa08ffb821ea2de120717beedb2f82428da2 Reviewed-on: https://chromium-review.googlesource.com/180981 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill 13a2f85b 2013-12-11T16:35:08 Implement max elements indices and vertices. ES3 has integer queries for the maximum recommended number of vertices and indices per draw call. These are roughly correlated to D3D's resource limits -- however, while ES3 has recommended limits D3D has hard limits. Change-Id: Ib653bc27e61607c78d0c5e70b0d97fea7af6464f Reviewed-on: https://chromium-review.googlesource.com/179670 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Geoff Lang c142e9da 2013-09-30T15:19:47 Renderer classes now set their blend states to mask out channels that do not exist in the render target. Change-Id: Ia49bf8de07bbdfa31275ec9835de28adc3717485 Reviewed-on: https://chromium-review.googlesource.com/176855 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang e2e0ce0c 2013-09-17T17:05:08 Context now detects if a texture needs to be swizzled and calls Renderer::generateSwizzles. Change-Id: I89f30e028b1d6ec384536cdbeedd91bb98359e8f Reviewed-on: https://chromium-review.googlesource.com/178440 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill c6a2dcf8 2013-10-31T13:54:01 Fix improper getSamplerState in Context::applyTextures. Introduced in cdf22f94acaf86. R=geofflang@chromium.org BUG= Review URL: https://codereview.appspot.com/20320043
Geoff Lang cdf22f94 2013-10-31T10:38:23 Don't apply textures that are currently bound to the framebuffer. BUG=496 Review URL: https://codereview.appspot.com/18450045
Geoff Lang 1ec57f80 2013-10-16T11:43:23 Add support for GL_EXT_color_buffer_float. TRAC #23794 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang 632192dd 2013-10-04T13:40:46 Added support for EXT_texture_rg in D3D9 and D3D11. TRAC #22423 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang 005df41f 2013-10-16T14:12:50 Use GLenum instead of GLint to store internal format variables. TRAC #23785 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Jamie Madill ee7010d4 2013-10-17T10:45:47 Add support for querying major and minor GL version in ES3 contexts. TRAC #23989 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Geoff Lang ce635695 2013-09-24T13:56:32 Context now returns maximum texture levels per texture type, updated validation to validate mip level based on the texture target. TRAC #23630 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Jamie Madill 88f18f45 2013-09-18T14:36:19 Use the context's PixelUnpackState as an argument to Texture's implementation of setImage and subImage. We need to access the current unpack buffer for our implementation of PBOs. TRAC #23840 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill 950a775e 2013-09-18T14:36:18 Move the pixel pack and unpack related state into separate structs, for easy parameter passing. TRAC #23840 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Geoff Lang 125deab6 2013-08-09T13:34:16 Moved the clipping of blit rectangles to bounds or scissors into the Renderers since rounding to integers can cause errors when stretching in ES3. TRAC #23650 Author: Geoff Lang Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang c832516a 2013-08-09T13:26:56 Added a Context::getScissorParams method. TRAC #23650 Author: Geoff Lang Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang 42359ca9 2013-08-21T13:25:17 Implemented glClearBuffer* TRAC #23475 Author: Geoff Lang Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang 0b83323d 2013-08-21T10:13:29 Perform validation of glClear parameters at the API level. TRAC #23475 Author: Geoff Lang Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang da507fea 2013-08-20T12:01:42 Refactored the ClearParameters type and moved Renderer11's clear logic into a Clear11 helper class. TRAC #23475 Author: Geoff Lang Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Shannon Woods 1b2fb853 2013-08-19T14:28:48 Implements indexed query functionality TRAC #23468 Author: Shannon Woods Signed-off-by: Jamie Madill Signed-off-by: Nicolas Capens
Geoff Lang 23c8169f 2013-08-12T10:46:58 Add support for GL_NUM_EXTENSIONS. TRAC #23704 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Geoff Lang
Geoff Lang 7dca1866 2013-07-30T16:30:46 Initialize the vertex current value data. TRAC #23619 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Author: Geoff Lang
Jamie Madill 5215e1a1 2013-07-26T11:55:19 Implement the API entry points for fence sync objects in GLES 3. TRAC #23446 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill cd055f81 2013-07-26T11:55:15 Add state for the new fence sync objects in ES3. TRAC #23446 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill 33dc8439 2013-07-26T11:55:05 Rename the old Fence class and associated methods to show an NV suffix, for differentiation with ES3 fences sync objects. ES3 fences are shared across contexts, while NV fences are not. TRAC #23446 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill 9675b808 2013-07-19T16:36:59 Add internal accessor functions for querying sampler object parameters. TRAC #23454 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill a85f6f13 2013-07-19T16:36:59 Use the currently bound sampler object combined with the internal texture state to determine the current filtering and address modes at draw time. TRAC #23453 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill f898990d 2013-07-19T16:36:58 Pass a SamplerState as a parameter to Texture::isSamplerComplete, instead of using the internal SamplerState. TRAC #23453 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill e29d1672 2013-07-19T16:36:57 Add mutator methods for modifying sampler object parameters. TRAC #23453 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill dc35604b 2013-07-19T16:36:57 Add state for sampler objects. TRAC #23453 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill 1caff076 2013-07-19T16:36:56 Align the vertical whitespace in the big switch in Context::getIntegerv. TRAC #23082 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang Authored-by: Jamie Madill
Jamie Madill 38850df8 2013-07-19T16:36:55 Add new GLES 3 enum cases. TRAC #23082 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill 0fda9868 2013-07-19T16:36:55 Added Context::getInteger64v for 64-bit integer state queries. TRAC #23082 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods Authored-by: Jamie Madill
Jamie Madill 2aeb26a4 2013-07-08T14:02:55 Added support for EXT_frag_depth This change also required that support be added for associating built-in variables with an extension, similar to how functions could be associated with extensions previously. R=alokp@chromium.org Review URL: https://codereview.appspot.com/9827044 git-svn-id: https://angleproject.googlecode.com/svn/trunk@2248 736b8ea6-26fd-11df-bfd4-992fa37f6226 TRAC #23333 Authored-by: bajones@chromium.org Signed-off-by: Shannon Woods Signed-off-by Nicolas Capens Merged-by: Jamie Madill
Shannon Woods 52f1e7ef 2013-07-08T10:32:17 Implements queriability for internal format sample counts. TRAC #23273 Authored-by: Shannon Woods Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens
Jamie Madill d8db866a 2013-07-02T11:57:04 Handle the new error case with VAOs introduced in GLES 3 involving a user VAO and non-null data pointers. TRAC #23392 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang Authored-by: Jamie Madill