src


Log

Author Commit Date CI Message
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>
Jamie Madill 5ca41055 2014-10-23T13:02:55 Remove build_angle.gyp. This file is a duplicate of angle.gyp, and we can remove it now that Chrome and Blink are finished with it. BUG=angle:460 Change-Id: Ida68c8343921ebe9a37b5bcd982e114c91febc3d Reviewed-on: https://chromium-review.googlesource.com/225053 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@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>
Zhenyao Mo b5e17750 2014-10-22T10:57:10 Get rid of use of "static const std::string". BUG=angle:807 TEST=angle_unittests Change-Id: Ifa4d713deeb25d52a7aafc362a7e4630024fd511 Reviewed-on: https://chromium-review.googlesource.com/225004 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 0783efd8 2014-10-21T15:51:59 Fix initialization sequence translation bug. BUG=angle:805 TEST=https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/misc/expression-list-in-declarator-initializer.html Change-Id: I94fbdd0824dbe73034f8bf022aa53627582ad48b Reviewed-on: https://chromium-review.googlesource.com/224813 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill 70a0b2a1 2014-10-21T11:48:39 Fix varying interpolation parsing. This was broken sometime in the CollectVariables refactor. BUG=angle:803 Change-Id: Iaa09449f02290c4547f87c1560465dc8998d957c Reviewed-on: https://chromium-review.googlesource.com/224104 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@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>
Olli Etuaho f9004131 2014-10-20T18:26:48 Always include precision in interm output if it's available This helps with debugging precision propagation issues. BUG=angle:787 Change-Id: Ia969481c8d933455cdafef4ae25c6ab3946bc1c2 Reviewed-on: https://chromium-review.googlesource.com/224281 Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang d2f756be 2014-10-21T17:24:11 Use windows_sdk_path for the 8.0 SDK path and windows_8_1_sdk_path for 8.1. Change-Id: I0cb4262552852ccbc772ca828a0faa7d3e63784b Reviewed-on: https://chromium-review.googlesource.com/224483 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen 7c1cfd61 2014-10-15T14:59:57 Make ShBuiltInResources comparable with memcmp Chromium builds a std::map with ShBuiltInResources as part of the key. Comparator for == and < are needed for the map implementation. Currently Chromium uses memcmp as the comparator. Padding in ShBuiltInResources causes uninitialized reads. Fix this by clearing the padding with memset during ShBuiltInResources initialization. Change-Id: I78aa3c59ce165503831aa2a67c96cf8af316c152 Reviewed-on: https://chromium-review.googlesource.com/223431 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@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>
Geoff Lang 4a20480e 2014-10-21T15:10:29 Fix missing include of common_defines.gypi. Change-Id: I308956a700df4d440573fbae89e67cab0f2cf482 Reviewed-on: https://chromium-review.googlesource.com/224653 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo 94ac7b78 2014-10-15T18:22:08 Invariant related processing. * Fix a bug in PreProcessor for STDGL pragma. * Record all invariant settings and set them in ShaderVariable. * Write #pragma STDGL invariant(all) in GL BUG=angle:776 TEST=https://www.khronos.org/registry/webgl/sdk/tests/conformance/glsl/misc/shaders-with-invariance.html Change-Id: Ie28b75480deed79f0c9f26e3b98f1778d1290182 Reviewed-on: https://chromium-review.googlesource.com/223610 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@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>
Gus Fernandez 964df49d 2014-10-13T11:54:39 Fix a crash with the WebGL conformance test suite. Undefined behavior caused by an overflowed enum was causing the translator symbol table stack to not get popped correctly when the compiler completed, causing dangling symbols who's storage was reclaimed and reused when the allocation pool was popped. The error occurred in the "shader-with-reserved-words" test, which passes when the compiler fails due to the use of reserved words as identifiers. As such, this test would pass even if the GPU process crashes but further tests in the test suite would fail. BUG=angle::785, 786 Change-Id: I365cb55f962f8dfe409f40532effeb10b8189432 Reviewed-on: https://chromium-review.googlesource.com/223093 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Gus Fernandez <gusfernandez@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>
Zhenyao Mo de1e00e1 2014-10-09T16:55:32 Implement support of unary operator "+" in translator. BUG=angle:779 TEST=conformance/glsl/misc/struct-unary-operators.html Change-Id: Ia827e07dcfc8ad3bbbc078e54336815be9027945 Reviewed-on: https://chromium-review.googlesource.com/222720 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Zhenyao Mo <zmo@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>
Kenneth Russell 1ce845d7 2014-10-06T16:10:36 Refactor libGLESv2.gypi to allow libANGLE to be built on all platforms. Required pulling angle_enable_d3d{9,11} into angle.gypi and definition of angle_libangle_win_sources. Pull in those sources in BUILD.gn. Tested with local GYP build on Windows. Did not test GN build yet. BUG=angleproject:773 Change-Id: Ia3703fe4fa2bc8a1682c1fa1667ca36268b36cc7 Reviewed-on: https://chromium-review.googlesource.com/221785 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@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>
Nicolas Capens fa41aa08 2014-10-06T17:40:13 Perform short-circuit unfolding on separate declarations. BUG=415694 Change-Id: I812abb21d2ab4af0b63631a23026d5860df61672 Reviewed-on: https://chromium-review.googlesource.com/221945 Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Nicolas Capens d974db43 2014-10-07T10:50:19 Split combined declarations into separate statements. BUG=415694 Change-Id: I7afb08a8a5ed10bbc6f7d23638daca6982f7c88b Reviewed-on: https://chromium-review.googlesource.com/221455 Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@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>
Zhenyao Mo ed13636a 2014-10-03T13:23:01 Add type comparison, type retrieval, original name retrieval to ShaderVariable. This is needed to effectively use the new APIs to get shader variable info. BUG=angle::770 TEST=ShaderVariableTest Change-Id: Ia591eb567868ebe898f4a7449c64167ad212f59b Reviewed-on: https://chromium-review.googlesource.com/221388 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@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>
Olli Etuaho e61209af 2014-09-26T12:01:17 Add option to support EXT_draw_buffers with NV_draw_buffers After this patch, it is possible to set a flag to change EXT_draw_buffers extension directives to NV_draw_buffers in ESSL. This enables users of ANGLE to emulate EXT_draw_buffers by using NV_draw_buffers in combination with GLES3.0. Change-Id: I5dacdbd6cd0d0362424ea3791557342c42efd4bd Reviewed-on: https://chromium-review.googlesource.com/219941 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Tested-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@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>
Olli Etuaho 86ffde57 2014-10-03T14:51:54 Fix building angleutils.cpp on Linux vsnprintf is defined in stdio.h according to the standard. It was not in the include chain of angleutils.cpp, which broke the build on Linux on some configurations. Seems like other toolchains include the function in some non-standard way. BUG=angle:761 Change-Id: Idcd75776e8a9b83dad182d1b4bac0beac006c6ac Reviewed-on: https://chromium-review.googlesource.com/221053 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-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>
Jamie Madill 5a0c45e1 2014-10-02T11:10:36 Accept RenderTargets as parameters to Image::copy. This gives us the flexibility to use copy internally for Textures as well as FBO attachments. This will be useful for the TexSubImage performance workaround. BUG=angle:729 Change-Id: I4df8ef3a5a928d44ef84100cd96a5d35f12b47fa Reviewed-on: https://chromium-review.googlesource.com/219863 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jacek Caban a5521de2 2014-10-01T17:23:46 Fixed mingw compilation. Change-Id: I8ae33c752feb19e291e4a3b128d21a0ced883c90 Reviewed-on: https://chromium-review.googlesource.com/220761 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Tibor den Ouden ac7556f6 2014-09-25T17:15:11 Freed temporary info log buffer and removed explicit destruction of char[] BUG=angle:758 Removed explicit destruction of char[] by using std::vector<char> object. Added Borbitsoft to AUTHORS and Tibor den Ouden to CONTRIBUTORS Change-Id: I9c4017eb81ce3fab8b7fb4a5b4ad52a758d14a2d Reviewed-on: https://chromium-review.googlesource.com/219940 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang ff39bd87 2014-10-01T13:17:39 Add check for size before setting buffer data. If data is non-null and size is zero, the memory buffer may have a NULL pointer. BUG=angle:765 Change-Id: I4cb8f54ec85fea886e37ee2d4469d26e651a916b Reviewed-on: https://chromium-review.googlesource.com/220801 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill b4fd0c96 2014-10-01T17:40:24 Replace usages of std::vector::data in most cases. In some parts of ANGLE code, we were using std::vector::data to get a pointer to the first element. Sadly, this is c++11 only, which isn't currently supported on Chromium. This was causing a breakage on Android. We should probably refrain from using data except on D3D-only code, which we know will be Visual Studio. BUG=angle:767 Change-Id: Ibc10577368435a13f62d74d77c95076482cd8f82 Reviewed-on: https://chromium-review.googlesource.com/220920 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 3269bcb4 2014-09-30T16:33:52 More TextureD3D cleanups. The getLayers method was redundant, and the getBaseLevelImage method we can replace with a shared TextureD3D method rather than a specialized method for each type. BUG=angle:729 Change-Id: I80c94a765dbc369fb0bb60ec8273e9e3ba6ffeed Reviewed-on: https://chromium-review.googlesource.com/219862 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 135570a4 2014-09-30T16:33:51 Clean up ensureRenderTarget(). We can use the same code for this method, with the only difference being in when we determine a texture image holds no pixels. BUG=angle:729 Change-Id: I3356f5deb900c24b1a5c739ce8de99e9ce1371c0 Reviewed-on: https://chromium-review.googlesource.com/219861 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 716915d7 2014-09-30T16:33:50 Fix d3d9 copyToStorage dirty flag. This flag wasn't being set in the 2D version of this method. The bug would only cause a performance penalty on Windows XP machines. BUG=angle:729 Change-Id: I516206740becc90438d613ae9abb3ac550733aed Reviewed-on: https://chromium-review.googlesource.com/219860 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 98553e37 2014-09-30T16:33:50 Remove copyToRenderTarget methods. These Renderer methods can be replaced with virtual TextureStorage methods, now that we do not have TextureStorageInterface to complicate matters. This reduces the number of stubs in Renderer as well as allowing cleaner code re-use. BUG=angle:729 Change-Id: I6d2004d4f1abdb1041420144cee1c173e5ab199e Reviewed-on: https://chromium-review.googlesource.com/219839 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 3a612876 2014-09-29T11:08:17 Moved the responsibility for releasing the dest surface out of copyToSurface. BUG=angle:520 Change-Id: I4c6c39462b43eeb0a202f731c4a54007ef16445c Reviewed-on: https://chromium-review.googlesource.com/219866 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang b5348331 2014-09-02T13:16:34 Refactor Texture::compressed*Image methods to use gl::Error objects. BUG=angle:520 Change-Id: I8fd7ebf3edb3edef06e77b79776c363672931a61 Reviewed-on: https://chromium-review.googlesource.com/216646 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 8376ceae 2014-09-02T11:47:07 Merge the various TextureCube::setImage* methods. BUG=angle:520 Change-Id: I4e8191dd827744ef380348a31dce7181d99fbf30 Reviewed-on: https://chromium-review.googlesource.com/216645 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1ba6b8db 2014-08-28T10:57:31 Refactor Texture::setImage and subImage to use gl::Error objects. BUG=angle:520 Change-Id: Ib43ace0fbdab59086ae4314cce139636d9045e65 Reviewed-on: https://chromium-review.googlesource.com/216644 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill b60fe31f 2014-09-26T14:56:41 Fix the ANGLE_ENABLE_TRACE build. We needed to include angleutils.cpp in libtranslator for this to compile. Also allow the event helpers to record API calls even if ANGLE_ENABLE_PERF is off. BUG=angle:513 Change-Id: I2646d5ebeae536a4a7f1cd7ecaf0ce019ce5ff76 Reviewed-on: https://chromium-review.googlesource.com/219756 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang ae5122c4 2014-08-27T14:08:43 Updated the PixelTransfer class to use Error objects. BUG=angle:520 Change-Id: I7e21acbfd5726607ea62c8fcf64d76bbf5877860 Reviewed-on: https://chromium-review.googlesource.com/216643 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 7acae0a1 2014-09-24T17:10:51 Add a centralized workarounds module. This is a temporary home for the various workarounds we use for performance or to solve driver issues. Eventually we will want a standalone library we can use as part of Chromium or in ANGLE standalone. Re-land with member variable initialized. BUG=angle:729 Change-Id: If7f8f9596a39b2855366d9a67caebf6dd4197b55 Reviewed-on: https://chromium-review.googlesource.com/219868 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 57f20894 2014-09-29T23:05:36 Revert "Add a centralized workarounds module." Was missing an initialization in Renderer.cpp. This reverts commit 815a1dc3710c48ecc84539b7ffb15860f6738f6c. Change-Id: Ia4666911c2ff58660e0ab5c7cec4431b1c30a1e1 Reviewed-on: https://chromium-review.googlesource.com/220420 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 815a1dc3 2014-09-24T17:10:51 Add a centralized workarounds module. This is a temporary home for the various workarounds we use for performance or to solve driver issues. Eventually we will want a standalone library we can use as part of Chromium or in ANGLE standalone. BUG=angle:729 Change-Id: Ib0254262cad9f8fb779886dacb967be646ea96ae Reviewed-on: https://chromium-review.googlesource.com/219838 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4aa79e11 2014-09-29T10:46:14 Reduce code duplication in generateMipmap. Using the newly introduced image index struct, we can simplify our code somewhat in TextureStorage. BUG=angle:729 Change-Id: Iff274fd1df7a0dc36dd34e0cb31ad42831b4f5d5 Reviewed-on: https://chromium-review.googlesource.com/219836 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill cb83dc16 2014-09-29T10:46:12 Add TextureD3D::getIndex. This is a simple virtual method which gives an ImageIndex at a particular level and layer. It's useful for handling all the texture types uniformly, which all treat levels and layers differently. BUG=angle:729 Change-Id: I72db560287272c195b1ff8555f99ab2258ac7e6d Reviewed-on: https://chromium-review.googlesource.com/219835 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>