src/libGLESv2


Log

Author Commit Date CI Message
Jamie Madill b38f2e5d 2014-11-13T10:03:31 Remove the unused Renderer client version methods. Previous patches enable us to get rid of this workaround. We should in subsequent patches also try to clean up code that uses the internal Renderer-only version of the context caps. BUG=angle:789 Change-Id: Ic054090303cdc3f7ee8e45e4577c157559955472 Reviewed-on: https://chromium-review.googlesource.com/227714 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 245d3602 2014-11-13T10:03:30 Pass GL context data into shader creation. This allows us to remove the hack where we store the current GL client version in the Renderer. BUG=angle:789 Change-Id: I6526f11eaa922325a9a41df0df48b2152e022e26 Reviewed-on: https://chromium-review.googlesource.com/227713 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 560eef16 2014-11-11T15:06:39 Fix ProgramBinary being disabled when it should be enabled. Change-Id: I6a21bca32ae5bf1e0e638c0cf46102bd964cd066 Reviewed-on: https://chromium-review.googlesource.com/229064 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ab75a056 2014-10-15T12:56:37 Refactor Framebuffer attachment application. Instead of passing texture and renderbufer IDs which requires a call to gl::getNonLostContext to resolve the objects, pass the Texture and Renderbuffer objects directly. BUG=angleproject:733 Change-Id: Ia500a781643e43a17c8e9cea9f95847a7ff7b25d Reviewed-on: https://chromium-review.googlesource.com/228280 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill de8892b4 2014-11-11T13:00:22 Pass GL caps and version to compiler. This allows us to get rid of some of the reliance on storing the current context client version in the Renderer. A subsequent patch will allow us to remove the client version ugly hack. BUG=angle:789 Change-Id: I139e0f66e1d39e5cd41a484c841a7101b1f29540 Reviewed-on: https://chromium-review.googlesource.com/227712 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 87f6da1f 2014-11-11T13:00:20 Move the Context ReadPixels logic into RendererD3D. BUG=angle:789 Change-Id: I0a678f8fe31a3e7ddd9a675a0e3cb0342299b0e3 Reviewed-on: https://chromium-review.googlesource.com/226064 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a93bef2e 2014-11-11T13:00:19 Move BlitFramebuffer logic into RendererD3D. BUG=angle:789 Change-Id: Ib3f830ba2f915a5fa4fa552dccc13c24575aa843 Reviewed-on: https://chromium-review.googlesource.com/226063 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1bd642c5 2014-11-04T17:05:00 Split the RenderTarget classes based on if they are backing a SwapChain. bug=angle:824 Change-Id: I89e475d4065102dbaa7fa1f1bfd02c7207def75c Reviewed-on: https://chromium-review.googlesource.com/227600 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 23419d56 2014-11-07T15:21:14 Pass 0 for the sample count to RenderTarget when there is no multisampling. BUG=angle:520 Change-Id: Idc9a19ece620d107b87110dac8e1ef7a24f565cc Reviewed-on: https://chromium-review.googlesource.com/228551 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a153d4b0 2014-11-06T15:27:28 Move Clear logic into RendererD3D. BUG=angle:789 Change-Id: I56d4398e4c49fe980f649327b105cdba9d944a00 Reviewed-on: https://chromium-review.googlesource.com/226062 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill d9e58303 2014-11-06T15:27:26 Move Context draw call logic into RendererD3D. Also move a lot of supporting code. BUG=angle:789 Change-Id: I098bf7d072ece1f414605783c32ec5354ba63e19 Reviewed-on: https://chromium-review.googlesource.com/226061 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Shannon Woods 4de4fd6e 2014-11-07T16:22:02 Fixes a bug in program ID validation for GetUniform* calls. BUG=angle:571 Change-Id: I7080f0f7ea0def29d1b67c9d954ee5d9d41fb348 Reviewed-on: https://chromium-review.googlesource.com/228560 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 93e13fbf 2014-11-06T15:27:25 MANGLE the ANGLE Renderer class. BUG=angle:789 Change-Id: Ib6d9d47a9353ea3c1a931b793baba85a2698b659 Reviewed-on: https://chromium-review.googlesource.com/225472 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e6382c3b 2014-11-07T15:05:26 Fix zero texture application. Patch https://chromium-review.googlesource.com/#/c/227711/ would allow NULL Textures sometimes from State::getSamplerTexture. Fix this by always setting the zero "Default" textures instead of NULL in the State. This was breaking the ES2-CTS test 'framebuffer_objects' on Windows. BUG=angle:826 Change-Id: Ie08a89cff0555f21c769759e0c0ed73456a2f91c Reviewed-on: https://chromium-review.googlesource.com/228275 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang b28126ef 2014-10-03T15:51:38 Remove the gl::error function. BUG=angle:520 Change-Id: Iefd4345aa347041143d5452cc2fcf48c071d494b Reviewed-on: https://chromium-review.googlesource.com/222839 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang bafefdf3 2014-10-10T14:26:35 Add error handling to RenderTarget creation. * RenderTarget9/11 don't create any resources themselves anymore. * Pass the real internal format to RenderTarget creation so that it is not lost by converting to D3D formats and back. BUG=angle:520 Change-Id: If420970d42f0bf6ce392d64f9cb7efa4df0b8f8e Reviewed-on: https://chromium-review.googlesource.com/222838 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ad65a13c 2014-11-06T15:27:23 Add RendererD3D as a layer between GL and Renderer9/11. BUG=angle:789 Change-Id: I6107e6cbdeb5e3466f96a4bdf98181b8e5a25467 Reviewed-on: https://chromium-review.googlesource.com/225471 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 48faf80a 2014-11-06T15:27:22 Use Context caps in Framebuffer completeness check. This frees the Framebuffer from any dependency on the Renderer. BUG=angle:789 Change-Id: I0e9ae0edf93674e32ae4f6538a934cddbdc804d5 Reviewed-on: https://chromium-review.googlesource.com/225470 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1e9ae079 2014-11-06T15:27:21 Add a base for GL essential data. The data holds the GL state, caps, extensions, texture caps, and current client version. BUG=angle:789 Change-Id: Icd15d806e14490f39041dea663ab2461a6a76090 Reviewed-on: https://chromium-review.googlesource.com/226060 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill dedd7b95 2014-11-05T16:30:36 Merge zero textures into the state texture map. We can treat these textures the same as the rest, saving a bit of code and complexity cost. BUG=angle:789 Change-Id: I14b426c817cbe3c5bb737410378b6a80e274689b Reviewed-on: https://chromium-review.googlesource.com/227711 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Zhenyao Mo 0bdc0f3e 2014-11-04T15:26:10 Switch to new APIs in samples/translator/translator.cpp Also, fix a few issuse for ninja build "all" to finish. BUG=angle:775 TEST=translator.cc compiles OK Change-Id: I6507e9143882a628a7737dd139efb6d8d358b0db Reviewed-on: https://chromium-review.googlesource.com/227490 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0af0b38e 2014-11-05T14:09:18 Use an ES3 shader spec for ES3 contexts. BUG=angle:823 Change-Id: I377b4483b3835660e7fd45d923bf7f560cf2e5f6 Reviewed-on: https://chromium-review.googlesource.com/227593 Tested-by: Geoff Lang <geofflang@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jacek Caban a22cd47e 2014-11-05T11:20:45 Fixed a typo in generatePointSpriteHLSL. Change-Id: I104bbca6442835ab5e8e78580c6cbbb58d32a9b2 Reviewed-on: https://chromium-review.googlesource.com/227570 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods e2632d24 2014-10-17T13:08:51 Changes gl::RenderbufferStorage to rx::RenderbufferImpl BUG=angle:782 Also eliminates Colorbuffer/DepthStencilBuffer and related friends and adds the RenderbufferD3D implementation of RenderbufferImpl. This version fixes problems with the prior CL's handling of render target serial issuance. Change-Id: I7ddfbec1097723d7ea6ce93a9c034f941349108a Reviewed-on: https://chromium-review.googlesource.com/227195 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 0d3683c4 2014-10-23T11:08:16 Update ANGLE_platform_angle to allow requesting of Renderer versions. Added enums to allow users to request major and minor versions of the underlying API and if a WARP device is used. BUG=angle:490 Change-Id: I0bfb2ac8d327da28a47cc8e6346300e47ab9538c Reviewed-on: https://chromium-review.googlesource.com/225081 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 4de44cb6 2014-10-29T18:03:46 Change ShaderLang APIs from c style to c++ style. BUG=angle:816 TEST=gpu_unittests,angle_unittests,webgl_conformance Change-Id: I0b46c11f6055a82511bb946a6dc491360835526e Reviewed-on: https://chromium-review.googlesource.com/226410 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Shannon Woods f108df24 2014-10-30T18:53:29 Revert "Changes gl::RenderbufferStorage to rx::RenderbufferImpl" This reverts commit 9fc51d90176dcf4273cd6689968e1ca5d1c9fe16. Change-Id: I4134ebe5ef6b8f509f4cc5cc22a2d526ec43ef6d Reviewed-on: https://chromium-review.googlesource.com/226374 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Brandon Jones 091540d3 2014-10-29T11:32:04 Changed feature macros to reduce accidental enabling/disabling Change-Id: Ieb1a0c55f412f2a1bb858522b2dfaa7a60aa7ddb Reviewed-on: https://chromium-review.googlesource.com/226304 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Shannon Woods 9fc51d90 2014-10-17T13:08:51 Changes gl::RenderbufferStorage to rx::RenderbufferImpl BUG=angle:782 Also eliminates Colorbuffer/DepthStencilBuffer and related friends and adds the RenderbufferD3D implementation of RenderbufferImpl. Change-Id: Ibe72c9589b3c238b952744e7cfd70d97ec898eb9 Reviewed-on: https://chromium-review.googlesource.com/222925 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang ede18442 2014-09-29T14:05:22 Updated Image9 to use gl::Errors for staging texture manipulation. BUG=angle:520 Change-Id: I527a2bcadbf1abb05bd461d35ddbd7e28d487639 Reviewed-on: https://chromium-review.googlesource.com/221396 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross 922a9fb3 2014-10-21T14:26:33 Use D3D11 Debug Annotations when D3D9 is unavailable Change-Id: I37ac5fe7f0b2fe5e71bd7f0afca55e9894f3463c Reviewed-on: https://chromium-review.googlesource.com/224512 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 1a8a7e3b 2014-10-01T12:49:30 Moving Uniform handling into ProgramD3D. Moves the last references to HLSLBlockEncoder out of ProgramBinary. Only one reference to ShaderD3D remains. BUG=angle:731 Change-Id: Ie23e24e09fbed4c8c5fab3bab814b7092a383c7f Reviewed-on: https://chromium-review.googlesource.com/220940 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Geoff Lang 8becd0cb 2014-09-26T14:21:54 Updated Image11 to use gl::Errors for staging texture manipulation. BUG=angle:520 Change-Id: I5792b139ddd69c2cabc3b901a7067438c1ee363b Reviewed-on: https://chromium-review.googlesource.com/221395 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 06ecf3dd 2014-09-23T16:39:50 Updated mipmap generation to return Error objects. BUG=angle:520 Change-Id: Ic4e57148d031d6c452b3054efad98f6e730c7691 Reviewed-on: https://chromium-review.googlesource.com/221394 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Cooper Partin 73b8de78 2014-10-28T08:34:30 Fixed D3DDisassemble function dynamic GetProcAddress failure on WinRT Change-Id: I32a345803c9183e0b9b77d529027711f8c8e1ad8 Reviewed-on: https://chromium-review.googlesource.com/225847 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 84bcabe3 2014-10-28T10:52:24 Fix build failure on WinRT due to missing Sleep definition. Change-Id: I9032484dde6e690fcd175d6d76192724e5bc0357 Reviewed-on: https://chromium-review.googlesource.com/225893 Reviewed-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 9ae396bb 2014-10-21T17:46:30 Remove getData from BufferImpl. We only ever call this method inside the D3D Renderer, so we can downcast to BufferD3D and call getData on the D3D-specific type. Leave a FIXME for handling index range validation, which will need a CPU-side data cache. Change-Id: Iaf71bc8055869a8561777b6b36f67e376a1d0b81 Reviewed-on: https://chromium-review.googlesource.com/224654 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill c751d1e5 2014-10-21T17:46:29 Support compressed textures with unpack buffers. BUG=angle:792 Change-Id: I32f32422232bd4cb04c8a70005cb51482224bf3e Reviewed-on: https://chromium-review.googlesource.com/224655 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 55d611e7 2014-10-24T16:28:14 Fix ASSERT failure in XFB test. With the invariant handling changes, we're also exporting gl_Position and other builtin variables from the translator where we were not previously. This was causing an assert in the XFB code, where we would inadvertently assign a register to gl_Position, and trip up logic further in the varying handling logic. BUG=angle:808 Change-Id: I674902da75c572e969f9516033a85c7a7170d7d1 Reviewed-on: https://chromium-review.googlesource.com/225261 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 39eab03f 2014-10-22T16:57:15 Add robust D3D11 SRV state tracking. This will ensure our currently set pixel and vertex SRVs match with the underlying D3D state, and reduce the need for resetting them as often. BUG=angle:756 BUG=417424 Change-Id: I42e9e25182b279871ac4cdf8da5e2ab62c8cf71f Reviewed-on: https://chromium-review.googlesource.com/225052 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 2f1cd4a3 2014-09-23T10:40:29 Defer the creation of textures in TextureStorage9 and use Error objects. BUG=angle:520 Change-Id: I5db70189d95babef14d48548054af4c7ff2bfc47 Reviewed-on: https://chromium-review.googlesource.com/219334 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 553c6bee 2014-09-22T15:21:39 Defer the creation of textures in TextureStorage11. BUG=angle:520 Change-Id: If1c1f7519a84900f594701b6298b64ebf8798073 Reviewed-on: https://chromium-review.googlesource.com/219333 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Tibor den Ouden 2221f47b 2014-10-22T15:07:05 Compiler flags and macros added to shader debug report The list of D3D compiler flags and macros used if compilation of a shader succeeds is added to the shader debug output. BUG=angle:751 Change-Id: Ie84a586010787fe8d9c0dedfe9208f881058a588 Reviewed-on: https://chromium-review.googlesource.com/224970 Tested-by: Tibor Ouden, den <tibordenouden@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang fc532b9a 2014-10-21T10:24:16 Delete the ShaderImpl on gl::Shader object destruction. BUG=angleproject:804 Change-Id: I4d68f9283299e9fb6b907a6406c37f92f8b08dbe Reviewed-on: https://chromium-review.googlesource.com/224106 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c8d297a4 2014-09-19T11:09:08 Remove last uses of gl::error in the Buffer classes. BUG=angle:520 Change-Id: Id18e93b440da64360a6845a42a2664ae531b06f9 Reviewed-on: https://chromium-review.googlesource.com/218769 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 710e5775 2014-10-20T17:13:53 Make commitRegion a base method of TextureD3D. Use a helper method isValidIndex to preserve ASSERT checks. Refactoring patch only. BUG=angle:741 Change-Id: Ie19fa21db51cd0239a3b391de362584a9fbab2df Reviewed-on: https://chromium-review.googlesource.com/222268 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e76bdda2 2014-10-20T17:13:52 Restrict use of TexStorage more in CopyImage. We were being too permissive in some copyImage methods when checking if we can create a render target or not. This would lead us to trying to use an inconsistent TexStorage in some cases. Note that we do need to create inconsistent TexStorage in cases where we are doing a FBO copy *from* a mipmap-incomplete texture attachment. BUG=angle:780 Change-Id: I5a849b5d8c53713e38cb5f5052a8bb88b3f56260 Reviewed-on: https://chromium-review.googlesource.com/224480 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill f99b0cff 2014-10-20T17:04:36 Remove getNativeTexture from TextureImpl. We can stop exposing this method on the GL-side, now that we only use it on the D3D back-end. BUG=angle:781 Change-Id: I3a9ecc277dcd21147881b8780849782f68b3e62e Reviewed-on: https://chromium-review.googlesource.com/222924 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill dd3bf52e 2014-10-20T17:04:35 Remove getSamplerStateWithNativeOffset. This method returned a sampler state as normal, with the base level automatically offset by the one or two levels we use in the D3D workaround for small compressed textures. Since this is D3D-only, we can move all of the logic into the D3D classes themselves. BUG=angle:781 Change-Id: Ie0a60877efebb41f02f4e57625a44e5fb5cce074 Reviewed-on: https://chromium-review.googlesource.com/222923 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 10ef2156 2014-10-20T17:04:34 Move Texture Serials to the base class. It's reasonable to use the serial logic on both the GL and all other translated Renderers, since we check the logic on the GL-side. Serials give us a way to identify Textures that aren't raw pointers and aren't "id". "id" has issues when Textures are deleted, then re-allocated with the same value. BUG=angle:781 Change-Id: I1a2a8b6f4ea3db915574c957c143a81e0210ec7d Reviewed-on: https://chromium-review.googlesource.com/222922 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 6948e301 2014-10-20T17:04:33 Use immutable level count in gl::Texture. Instead of storing a binary flag indicating if we've created immutable storage, store a level count. This indicates if or if not we've created immutable storage, as well as avoiding the call to the native storage to return the level count. BUG=angle:781 Change-Id: I08a6bd086d00ddf3255262a7711628be5212b4b7 Reviewed-on: https://chromium-review.googlesource.com/222921 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Cooper Partin 88d3b8cb 2014-10-08T10:41:56 Added IInspectable EGLNativeWindowType and ICoreWindow support Change-Id: I6dd7fef72a73572d4a3deda7ce36a11da3a75c81 Reviewed-on: https://chromium-review.googlesource.com/224366 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 63837d51 2014-09-18T13:23:18 Defer the creation of Blit9's geometry and return Errors if it fails. BUG=angle:520 Change-Id: I5e51fec38c513419beea5ff612a6ec2fb0e81a26 Reviewed-on: https://chromium-review.googlesource.com/218768 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang cbc7f050 2014-10-15T13:17:00 Use a constant for the number of faces in a cube map. BUG=angle:520 Change-Id: Ia35103059526aff2fc1b29a160d8471f4b5cbd42 Reviewed-on: https://chromium-review.googlesource.com/223107 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Tibor den Ouden 739f8ec3 2014-10-17T21:04:53 Removed declaration of getAttachedShaders() without implementation. Found while working on BUG=angle:751 BUG=angle:751 Change-Id: I8a5c5383f88ecb379395d1a23e36148145ebe34d Reviewed-on: https://chromium-review.googlesource.com/224090 Tested-by: Tibor Ouden, den <tibordenouden@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 64f23f65 2014-09-10T14:40:12 Update the getRenderTarget functions to return gl::Error objects. BUG=angle:520 Change-Id: If1f4f71972b669704eff70b5f60927d8e6ac07b3 Reviewed-on: https://chromium-review.googlesource.com/218767 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 433bfd38 2014-10-20T12:07:36 Merge the copyToStorage methods. BUG=angle:741 Change-Id: I67380748ee875cc2dea61eb82a9b0d600144dc85 Reviewed-on: https://chromium-review.googlesource.com/222267 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e020bed5 2014-10-20T16:16:46 Revert "Added IInspectable EGLNativeWindowType and ICoreWindow support" Causing regressions in the build: http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder/builds/20182 This reverts commit 756aebfc7afa6d0de14e96637ef396dd7b290c2d. Change-Id: I2f4bdb5aeb429c9bbc5e655a1761704f33737841 Reviewed-on: https://chromium-review.googlesource.com/224221 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Cooper Partin 756aebfc 2014-10-08T10:41:56 Added IInspectable EGLNativeWindowType and ICoreWindow support Change-Id: I34e443b1e194800460e441ac6cee42cf68430564 Reviewed-on: https://chromium-review.googlesource.com/224302 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ec6de4ec 2014-10-20T10:59:56 Fix TextureD3D::setData for depth-stencil textures. D3D11 requires us to NULL the update region parameter when updating depth stencil textures. For these textures, we can't always use the subdata workaround, so disable it entirely for these textures. BUG=angle:729 BUG=365078 Change-Id: I44258dd1b8937b1aebcb3a73de835698805537e0 Reviewed-on: https://chromium-review.googlesource.com/222911 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 24e83192 2014-10-20T11:00:53 Fix CopyBufferSubData validation. We were checking readTarget twice, instead of both read and write. BUG=angle:800 Change-Id: I4096a9c4e0fdec9c77bfc25250923c188d2b43db Reviewed-on: https://chromium-review.googlesource.com/224102 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Shannon Woods 8e929230 2014-10-17T18:45:20 We managed to disable NPOT textures on AMD. Reenable them. BUG=angle:799 Change-Id: Iaa8aee1f09c8c2ac3669d6709572f76f40f21847 Reviewed-on: https://chromium-review.googlesource.com/224042 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 8858cf0a 2014-10-17T20:53:32 Revert "Added IInspectable EGLNativeWindowType and ICoreWindow support" due to build failures on Chromium FYI bots. This reverts commit 406a3be91cc8175df95bd390425e35830778f2d5. Change-Id: Ica2abd2e557a4fd9852d85b7fc018e3d272b6edf Reviewed-on: https://chromium-review.googlesource.com/224051 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Cooper Partin 406a3be9 2014-10-08T10:41:56 Added IInspectable EGLNativeWindowType and ICoreWindow support Change-Id: I9ad82b7819bcca1c05e7aa60dc2baec4a7bc403c Reviewed-on: https://chromium-review.googlesource.com/222360 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tibor den Ouden 97049c6a 2014-10-06T21:39:16 Enhance shader debug output glGetTranslatedShaderSourceANGLE() returns the glsl code, the initial translated hlsl code, the final translated hlsl code and the disassembly of the generated binary with the compiler configuration. This enhancement is only available if the define ANGLE_GENERATE_SHADER_DEBUG_INFO exists. This define is set in the debug configurations for the Windows platform. BUG=angle:751 Change-Id: I8b15e8b25fbb0c0575a73cc876bf8f1fa7ed142a Reviewed-on: https://chromium-review.googlesource.com/221059 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Nicolas Capens 5e0c80ad 2014-10-10T10:11:54 Use attributes to avoid unrolling and flatten conditionals. [loop] and [flatten] help avoid unrolling make more shaders compile successfully. When unrolling has to happen, an error X3531 is generated so we have to try compiling again without these attributes. BUG=395048,395286 Change-Id: I91ea8ac3a822ab1f1ac24907d42326e3c6c9d9af Reviewed-on: https://chromium-review.googlesource.com/222810 Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 24d4a3c1 2014-10-09T14:11:21 Update Renderer11::packPixels to return Error objects. BUG=angle:520 BUG=394361 Change-Id: I95f2f806210ac7aea8b0c57bece610eb22d018ed Reviewed-on: https://chromium-review.googlesource.com/222481 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Kenneth Russell 9d6d498c 2014-10-10T19:47:34 Refactor TLS management. Use cross-platform APIs and constants, and conditionally compile the Windows-specific DllMain. BUG=angleproject:783 Change-Id: I8fd2708ab0925cb3207010eb0e759cfc055183ab Reviewed-on: https://chromium-review.googlesource.com/222955 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Kenneth Russell <kbr@chromium.org>
Kenneth Russell caa549c0 2014-10-10T17:52:59 Split FenceImpl into FenceNVImpl and FenceSyncImpl, and refactor. Move Windows-specific code out of Fence.cpp. Split FenceImpl based on suggestions on previous review https://chromium-review.googlesource.com/221805/ . Refactored further based on code review feedback and added first unit tests. BUG=angleproject:774 Change-Id: I630034e1788e48ddb7722016ca22da474e785798 Reviewed-on: https://chromium-review.googlesource.com/222954 Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Kenneth Russell <kbr@chromium.org>
Geoff Lang 7c9e2167 2014-10-15T13:21:04 Fix compile error on 32-bit builds. BUG=angle:520 Change-Id: Ibd3f46ca565ddd96820ef52b140f7e99cf28a5c2 Reviewed-on: https://chromium-review.googlesource.com/223168 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5dce5e29 2014-09-10T11:37:17 Updated TextureStorage11 to use Error objects for D3D11 object creation. BUG=angle:520 Change-Id: I2b4d3d2be99d4185ff1ff1c6521fbd66a1e771ae Reviewed-on: https://chromium-review.googlesource.com/217337 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang edbeae5f 2014-09-10T11:35:09 Update the TextureStorage calls to associate textures to use Errors objects. BUG=angle:520 Change-Id: Ied81c25a04d7239985cc83bb20493ce0bfd372d3 Reviewed-on: https://chromium-review.googlesource.com/217336 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 2a895637 2014-10-10T13:02:17 Fix PBO missing unmap in some edge cases. We had missed a few unmap calls in NativeBuffer11::copyFromStoage. This method is only called when PBOs are used in conjunction with SubData updates or when drawing with PBOs. BUG=angle:667 Change-Id: I04a2b78e830edb9439e25661a2676af374df439e Reviewed-on: https://chromium-review.googlesource.com/222920 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 7865b70c 2014-10-10T11:13:00 Fix D3D11 Hazard warnings in Debug. BUG=angle:756 BUG=417424 Change-Id: I827f1db6bb0a3ba33f116e4cfbf8556da0e884d1 Reviewed-on: https://chromium-review.googlesource.com/221220 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 9ad2ab33 2014-09-09T16:59:34 Improve the TextureStorage11 SRV cache. * Use a std::map instead of std::vector for logarithmic search time. * Reduce the number of structs and make them private instead of protected since they arn't used outside of the base class. * Fix the SRV cache member name. BUG=angle:520 Change-Id: I5158c1d46523f46158c51cd68044f7c915a3de03 Reviewed-on: https://chromium-review.googlesource.com/217335 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1f8532bd 2014-09-05T09:46:13 Refactor Texture::storage methods to use gl::Error objects. BUG=angle:520 Change-Id: I33bc8479815a587749bddc722ac9fe5a85f554cb Reviewed-on: https://chromium-review.googlesource.com/216648 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ef7b016a 2014-09-04T13:29:23 Refactor Texture::copy*Image methods to use gl::Error objects. BUG=angle:520 Change-Id: I8b6bf5d50ee0d1f796eff52919ee65823fdee6cb Reviewed-on: https://chromium-review.googlesource.com/216647 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Kenneth Russell 67ea190d 2014-10-06T16:44:50 Use GL_APIENTRY and EGLAPIENTRY instead of __stdcall directly. BUG=angleproject:773 Change-Id: Iab098f787b966bf3999c22687af113cc9909593b Reviewed-on: https://chromium-review.googlesource.com/221796 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Kenneth Russell <kbr@chromium.org>
Geoff Lang 2629856f 2014-10-01T10:49:03 Updated Renderer::sync to return Error objects. BUG=angle:520 Change-Id: I8f1f095977bab3848b9215cda1127a71982858b8 Reviewed-on: https://chromium-review.googlesource.com/220800 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 882033e7 2014-09-30T11:26:07 Updated the FenceSync and FenceNV objects to use Error objects. BUG=angle:520 Change-Id: I1e49b35905d8916baadb129c8aa58a11bd721500 Reviewed-on: https://chromium-review.googlesource.com/220781 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 9aca059f 2014-10-06T16:26:59 Enable TexSubImage workaround on D3D11. This workaround uses UpdateResource instead of staging buffers for texture data updates. It improves performance for highly dynamic textures, especially in some benchmarks, eg the turbulenz particle demo. Re-land, with fix to the issue with glGenerateMipmaps. BUG=angle:729 BUG=365078 Change-Id: I4c9398e0645176c296bf95e35eab97a44eae4319 Reviewed-on: https://chromium-review.googlesource.com/221493 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6b51c1a0 2014-10-06T16:31:21 Use ImageIndex in copyToStorage. Also change the image association methods in TexStorage to use ImageIndex, for consistency and compatibility. BUG=angle:729 Change-Id: I05afa803735c9b93ae7d623fee5e6899c9ccec28 Reviewed-on: https://chromium-review.googlesource.com/221722 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c8d13843 2014-10-06T16:32:39 Use mTopLevel in getSubresourceIndex. We need to include this in every call, so might as well handle it automatically. BUG=angle:729 Change-Id: I5c230408a9eb80c8cfcc3f0d3a4ea531fa173aed Reviewed-on: https://chromium-review.googlesource.com/221760 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill ba6bc95e 2014-10-06T10:56:22 Use ImageIndex as a parameter to TextureD3D::setImage. This will allow us to call the TexureStorage::setData easily. BUG=angle:729 Change-Id: I16ada583894c8c427c78de5050f7f462c96d1fd1 Reviewed-on: https://chromium-review.googlesource.com/221492 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f8f18f05 2014-10-02T10:44:17 Make blit extension check for internal format mismatch. The extension spec dictates a format mismatch generates invalid operation. Since we can't have the same internal format map to different actual/native formats, this check is more strict and we can replace the previous one. BUG=angle:769 Change-Id: Ic1b5c335ba38a4f2feaffa1478a65e7fcf7f75ea Reviewed-on: https://chromium-review.googlesource.com/221065 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill dcd8f13d 2014-10-03T19:54:50 Revert "Enable TexSubImage workaround on D3D11." Probably causing WebGL CTS failures: http://build.chromium.org/p/chromium.gpu.fyi/builders/Win8%20Release%20%28NVIDIA%29/builds/6148 This reverts commit 2d337ce0503db5f91fcf0a11591cd436dfb32cd7. Change-Id: Ic032640f44adf337c4b3eedd4d7f3551d565a5cb Reviewed-on: https://chromium-review.googlesource.com/221397 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2d337ce0 2014-10-03T11:50:56 Enable TexSubImage workaround on D3D11. This workaround uses UpdateResource instead of staging buffers for texture data updates. It improves performance for highly dynamic textures, especially in some benchmarks, eg the turbulenz particle demo. BUG=angle:729 BUG=365078 Change-Id: Idd82c27845a772199caef3695111c96735e8843e Reviewed-on: https://chromium-review.googlesource.com/219864 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 468b26bb 2014-10-03T11:50:54 Use COM object dynamic cast for RT resource queries. BUG=angle:729 Change-Id: I55af209211329a7a71728e3c6d55d87154cfb45e Reviewed-on: https://chromium-review.googlesource.com/221269 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 82bf0c5a 2014-10-03T11:50:53 Use gl::Rectangle as a param to Image::copy. BUG=angle:729 Change-Id: I13194760df35cb18db6ac43d567e6b393e838d56 Reviewed-on: https://chromium-review.googlesource.com/221268 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang b543afff 2014-09-30T14:52:54 Update Program, ProgramBinary and HLSLCompiler to use Error objects. BUG=angle:520 Change-Id: Ibbe8c95780fecfb68f4558e99e3a761107da6aee Reviewed-on: https://chromium-review.googlesource.com/220790 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 955f5c05 2014-10-02T11:03:12 Add TextureStorage::setData. Usually we copy data from the Image classes into the Storage. This method, which will only apply to D3D11, is useful for our SubData performance workaround. BUG=angle:729 Change-Id: I50ca8158ee9e0638f59f617b9e6170b508eaeb44 Reviewed-on: https://chromium-review.googlesource.com/219837 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill e6b6da03 2014-10-02T11:03:14 Use the virtual commitRegion in TextureD3D::subData. This allows us remove the duplicated code in the various typed methods that checks for an error before committing. BUG=angle:729 Change-Id: Icd0ad2be55ac423baec3855e05c53f4b624b6764 Reviewed-on: https://chromium-review.googlesource.com/220275 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 7cb2b9d7 2014-10-02T11:03:13 Introduce new method commitRegion to TextureD3D. Replacing commitRect with commitRegion, which takes generic parameter types, will allow us to call it directly from the base class TextureD3D. This will be useful in subsequent patches that introduce the SubData performance workaround. BUG=angle:729 Change-Id: I37bf12f847b43f7c961b403321de19f547258b01 Reviewed-on: https://chromium-review.googlesource.com/220274 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods d8111baf 2014-09-26T18:59:13 Fix typos in caps generation method names. Change-Id: I7efa752b2276cb92b4ca12ffaf7aa37c514525f0 Reviewed-on: https://chromium-review.googlesource.com/219807 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods 8299bb0f 2014-09-26T18:55:43 Store XFB buffers in a vector in State. BUG=angle:685 Change-Id: I4bff717f716ba21633c59244560fd56f41f587ed Reviewed-on: https://chromium-review.googlesource.com/219806 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods f3acaf9e 2014-09-23T18:07:11 Use a caps-dependent sized vector to store Uniform Buffers BUG=angle:685 Change-Id: I3f2e9fcccf27aebbb4ec5485286eec9828851887 Reviewed-on: https://chromium-review.googlesource.com/219805 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods 23e0500d 2014-09-22T19:07:27 Change mVertexAttribCurrentValues from fixed-size array to STL container. BUG=angle:685 Change-Id: I42fc6c919f42cd6ab1c11531742f9a2c5ad0cd3d Reviewed-on: https://chromium-review.googlesource.com/219353 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 1a965480 2014-09-22T18:00:32 Vertex management functions can take a State reference instead of pointers to attrib data. BUG=angle:685 Change-Id: I0bfc26c53eb1358a023ac5d4ec20be06f9c90f4a Reviewed-on: https://chromium-review.googlesource.com/219352 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 2df6a601 2014-09-26T16:12:07 Remove context pointer from State BUG=angle:685 State needs only to track a few variables from Context's caps, so store those instead of a pointer to Context. Change-Id: I36d448dcaccf9780d6df2cfc82ef975b2ba0346f Reviewed-on: https://chromium-review.googlesource.com/219804 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill aabecf8e 2014-10-02T10:44:14 Fix D3D9 varyings limits. We were off by one varying, since D3D9 treats PSIZE specially. BUG=angle:769 Change-Id: Id5242d12c3ca42da3f3f528ff4a21445dba89701 Reviewed-on: https://chromium-review.googlesource.com/221062 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>