Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 04185ac7 | 2015-01-05 14:58:09 | Move GenerateMip to the D3D folder. BUG=angle:681 Change-Id: Icdffe7eb8f975ee0966e9fb241835ac541eb39f0 Reviewed-on: https://chromium-review.googlesource.com/238477 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 34cc136a | 2015-01-05 14:55:44 | Move copyvertex to the d3d11 folder. BUG=angle:681 Change-Id: Id37ed1ca617f1d2b6c1bd4a86fc8fcd28b933e8f Reviewed-on: https://chromium-review.googlesource.com/238476 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 59c4debe | 2015-01-05 14:49:56 | Move copyimage to the D3D folder. BUG=angle:681 Change-Id: I2ce237281cc75fdae11b5ddb4eca52058c395e7a Reviewed-on: https://chromium-review.googlesource.com/238475 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 6f5dc074 | 2015-01-05 14:46:20 | Move vertexconversion.h to the d3d9 folder. BUG=angle:681 Change-Id: I87ef6856040978a9a6045d1df20fe3117def35a3 Reviewed-on: https://chromium-review.googlesource.com/238474 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 359ef269 | 2015-01-05 14:42:29 | Rename ShaderExecutable to ShaderExecutableD3D and move it to the D3D folder. BUG=angle:681 Change-Id: I097d6591be4e873c9a6f210cc91e3f4eb60f036b Reviewed-on: https://chromium-review.googlesource.com/238473 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 2dc4639f | 2015-01-05 14:33:58 | Rename SwapChain to SwapChainD3D and move it to the D3D folder. BUG=angle:681 Change-Id: Idcf24556e590e07cc0b6cf640d4701353a0cda5e Reviewed-on: https://chromium-review.googlesource.com/238472 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| c2e75afa | 2015-01-05 14:26:24 | Rename RenderTarget to RenderTargetD3D and move it into the d3d folder. BUG=angle:681 Change-Id: I1946e01ce09d99405c318723c254fe300cc5ac53 Reviewed-on: https://chromium-review.googlesource.com/238471 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| b4dedf3e | 2015-01-05 14:08:53 | Merge the Image class into ImageD3D. BUG=angle:681 Change-Id: I0c0d41fb3ff9592b08ede58a8c2ec2bd2d94a0b2 Reviewed-on: https://chromium-review.googlesource.com/238470 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 909b90ce | 2015-01-12 14:07:26 | Use the ImageIndex class for indexing the Texture size information. BUG=angle:681 Change-Id: I0c8d1c04ca8eefb9b618ee6635c0643d162c0cc1 Reviewed-on: https://chromium-review.googlesource.com/240241 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 155610b9 | 2015-01-15 16:37:17 | Fix off-by-one max mip levels in getSRV. We would try to create SRVs with zero mip levels, when we should be asking for a single mip level. This would happen when the base level is equal to the max level. See the dEQP test: texture.mipmap.2d.max_level.linear_nearest Change-Id: I3f231f159dbdecbf7c2e61b373bfc3545875f36e Reviewed-on: https://chromium-review.googlesource.com/240762 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 3c9db122 | 2015-01-15 16:36:55 | Fix pixel unpack buffers for some formats. The renderability test got flipped in 6cf8e1b906ebfc. See dEQP test: texture.specification.teximage2d_pbo.rgba8_snorm_2d Note: this test still fails due to a bug in isMipmapComplete, which has a fix in a subsequent patch. Change-Id: Ied8ad7712bbb844132b6ac37426716780c9801c9 Reviewed-on: https://chromium-review.googlesource.com/240761 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 215b37a6 | 2014-12-22 12:56:07 | Work around zero-LOD mipmap issue on D3D11 Feature Level 9_3 In OpenGL ES, it is possible to sample from level 0 of a mipmapped texture by setting GL_TEXTURE_MIN_FILTER to GL_NEAREST. This is possible in D3D9 and D3D11 Feature Level 10_0+ via various methods. It's not possible in D3D11 Feature Level 9_3, though. This change works around this restriction by creating two copies of each texture on 9_3. The textures are identical, except one has mipmaps and one doesn't. The D3D11 renderer figures out which texture to use at the right time, and keeps the textures in sync with each other as necessary. Note: each texture is only created when it's needed. It's possible that only one (or even neither) D3D texture will be created for a given GL texture. Change-Id: I3c17137b4f63b9158b3abf067ad8e5d5c49d2191 Reviewed-on: https://chromium-review.googlesource.com/234522 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| be0facc6 | 2015-01-07 16:22:29 | Reduce calls to ID3D11DeviceContext::Map() in VertexBuffer11.cpp This change moves VertexBuffer11::storeVertexAttributes()'s call to Map() outside a for-loop, eliminating unnecessary calls to Map(). Since Map() is a relatively expensive operation (even when using NO_OVERWRITE) this change gives a noticeable performance boost in some scenarios. Change-Id: I320111b32f2bb9eed92efbd240206e12aaa9964e Reviewed-on: https://chromium-review.googlesource.com/240181 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> | ||
| 691e58cd | 2014-12-19 17:03:25 | Merge all gl::Texture* classes. The validation for sampler completeness had a lot of duplicated code. The special cases have been merged into the base class by checking mTarget. BUG=angle:681 Change-Id: I11d94c1432f8fc70a1edaaf8228bbc43c3c8fff3 Reviewed-on: https://chromium-review.googlesource.com/236932 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| dd806c2b | 2015-01-14 14:26:35 | Use emmintrin.h for SSE includes. This header should work on all available platforms, instead of the platform-specific intrin.h or x86intrin.h. BUG=angle:773 Change-Id: Ia012053064838f9893aa647d872e136a47cfad1a Reviewed-on: https://chromium-review.googlesource.com/240552 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 129753af | 2015-01-09 16:52:09 | Split the flush and finish commands into separate methods. Improves the readability of the implementations and more closely mirrors the GL commands. Change-Id: Ifa7bc55751d50271eb01fd87e4efdc69f00c2c48 Reviewed-on: https://chromium-review.googlesource.com/239845 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 7c973eaa | 2014-12-19 15:58:28 | Move egl texture binding to the base texture class. It's still only valid to bind a 2D texture but the validation layer verifies that. BUG=angle:681 Change-Id: I744dc32f9bd0f69b1e1235b8feef7e796167d033 Reviewed-on: https://chromium-review.googlesource.com/236931 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| d03e10e2 | 2014-12-18 17:46:58 | Remove references to the Image class from gl::Texture and rx::TextureImpl. BUG=angle:681 Change-Id: I83659f47cbe9f22ff5ad0cf54471544bd14775aa Reviewed-on: https://chromium-review.googlesource.com/236690 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| a9be0dc6 | 2014-12-17 12:34:40 | Refactor Texture to track image information for size and format queries. BUG=angle:681 Change-Id: Ifb3f52d6348e4479181e66f1c39578f49e9dcf76 Reviewed-on: https://chromium-review.googlesource.com/235613 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 9e0478f6 | 2015-01-13 11:13:54 | Move the block layout code to translator. This code is easily accessible from the translator, with the proper export calls. This facilitates adding a common static library, since this code calls some methods in translator. BUG=angle:773 Change-Id: I0c50098ec3f67c2df7749b3c2518be0a9fd939e2 Reviewed-on: https://chromium-review.googlesource.com/240093 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 2c7ea058 | 2015-01-07 12:47:35 | Implement support for ES 3.0 instanced arrays BUG=angle:863 Change-Id: I3918c478b33b26b2b179a7f8dd6e4210ecb0cf5c Reviewed-on: https://chromium-review.googlesource.com/239170 Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 0875f85d | 2015-01-12 16:27:11 | Don't use SSE functions on Android. These methods are unavailable on ARM platforms. Also fix a sequencing bug that caused us to incorrectly define the Android platform as Linux. BUG=angle:773 Change-Id: Id2b47acdd5b574c618ac86641a1a8238fbb4a2c3 Reviewed-on: https://chromium-review.googlesource.com/240095 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| ce4c0001 | 2015-01-12 14:46:11 | Don't use std::is_fundamental on Android. This method is unavailable due to being c++11. BUG=angle:773 Change-Id: I995e03c26b5d3103fab963d8fb1eddc5050cf5b5 Reviewed-on: https://chromium-review.googlesource.com/240096 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 5864ac26 | 2015-01-12 14:43:07 | Avoid using std::map::at. This c++11 method call is unavailable on Android. BUG=angle:773 Change-Id: I08064c3f18e387a2ed2496a3fb2912486546843f Reviewed-on: https://chromium-review.googlesource.com/240094 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| b4463148 | 2014-12-19 14:56:54 | Allow zero output variable ES3 shaders. We were assuming at least one variable, when some shaders could legitimately use zero. This was causing assertions in the dEQP shader.function tests. BUG=angle:855 Change-Id: I7e4aa52a1c6ba98d4a396f4c642816ff95115fd5 Reviewed-on: https://chromium-review.googlesource.com/240144 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> | ||
| d4b55a00 | 2015-01-09 14:21:49 | Fix "start" vertex being applied for instanced buffers. In GLES, the start vertex only applies to non-instanced vertex attributes. BUG=angle:864 BUG=447140 Change-Id: Idd2afbfbd4c2e76e06b2704cc002fae26b353109 Reviewed-on: https://chromium-review.googlesource.com/239843 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 8fed1f71 | 2015-01-09 11:09:33 | Fix signed/unsigned missmatch on 32-bit builds. BUG=angle:681 Change-Id: I6144359acd1611a13b0a582d3a31019138bb941c Reviewed-on: https://chromium-review.googlesource.com/239844 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 0a4f1e27 | 2014-12-17 12:33:26 | Merge the Texture set*Image methods and use objects for sizes and offsets. BUG=angle:681 Change-Id: If2e981c522ca5ba3eab4484594cb41aa23800ec4 Reviewed-on: https://chromium-review.googlesource.com/236261 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 40856813 | 2014-12-11 11:37:35 | Add EGL extensions structs. BUG=angle:658 Change-Id: Iffb26caf16416313abc114ba779e6311f2c00848 Reviewed-on: https://chromium-review.googlesource.com/234760 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| d2cf3ad3 | 2015-01-07 14:00:30 | Fix multisample framebuffer validation ASSERT Change-Id: I1b02ed7209f30549c17f46aeb3726ba1254df3ea Reviewed-on: https://chromium-review.googlesource.com/239270 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| cf4432c3 | 2015-01-07 14:05:47 | Disable some extensions on D3D11 Feature Level 9_3 which aren't supported BUG=angle:858 Change-Id: Ib2b2b2b54ba25654ea80b5cb1c59b74ed0379b68 Reviewed-on: https://chromium-review.googlesource.com/239271 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| ab989891 | 2015-01-07 14:15:18 | Disable shared texture support on D3D11 FL9_3 BUG=angle:858 Change-Id: I0fe3baf811d561584f7d24f6da665c6934e32b2a Reviewed-on: https://chromium-review.googlesource.com/239272 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| ce5d66e8 | 2015-01-07 14:06:12 | Remove an unused mRenderer member from Program and initialize TF members. BUG=angle:731 Change-Id: Ie11c80ce1f3a8c3d08145dfb4a075ac0e022ae38 Reviewed-on: https://chromium-review.googlesource.com/239218 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 054369e3 | 2015-01-07 10:57:08 | Allow the special format BGR5_A1 in CopyTexImage. We use this format as a backbuffer texture for the EGL surface in some configs. Thus, the app needs to be able to use it, since they don't know when they are secretly using BGRA instead of RGBA, similar to our existing logic which allows BGRA in CopyTexImage. BUG=angle:811 Change-Id: I3748d38b3b085aa4ccaae67ce88711b13eb2c98e Reviewed-on: https://chromium-review.googlesource.com/239192 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| f4134d20 | 2014-12-15 10:29:47 | Use gl::Data as a parameter to Texture::isSamplerComplete. BUG=angle:861 Change-Id: I3fadf954e6d28dd82e361ceac4ba1967dbd7e8bf Reviewed-on: https://chromium-review.googlesource.com/235612 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| d8a2258c | 2014-12-17 15:28:23 | Remove all uses of "actual" formats. BUG=angle:861 Change-Id: I7cd2d1a56772fdf18bcf926456399322d13e7a4f Reviewed-on: https://chromium-review.googlesource.com/236305 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 8cb85c44 | 2015-01-07 13:23:26 | Fix missing "!" in cube map render target serial check. BUG=angle:849 Change-Id: I9e4cb31bdc82a1c556908571355387a9698c7528 Reviewed-on: https://chromium-review.googlesource.com/239230 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 2676fac9 | 2015-01-06 15:03:47 | Fixed invalid IsWindow( ) call for WinRT Windows Store applications. Change-Id: Ic5f2aca0100a842be193cec9e89872187742f2c6 Reviewed-on: https://chromium-review.googlesource.com/238821 Tested-by: Cooper Partin <coopp@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| cd1db9e6 | 2015-01-05 16:09:05 | Avoid using std::unordered_map on OSX. This c++11 standard library class isn't available on Chromium/OSX. For now we can replace it with std::map. BUG=angle:773 Change-Id: I0b8ab0de5192a23408755d03df2b9f738f28d762 Reviewed-on: https://chromium-review.googlesource.com/238445 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| b78b42dd | 2015-01-07 15:47:42 | Remove "mDeviceLost" member from Renderer9 and Renderer11 These classes has base RendererD3D which already have "mDeviceLost". This can lead to errors because this variable is used in the methods from RendererD3D and his derived classes Change-Id: Ie0814bd1fd604a2f26693a705d127345ba8f77b5 Reviewed-on: https://chromium-review.googlesource.com/239171 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| e1728549 | 2015-01-07 11:31:54 | Unwritten shader output variables should not crash. BUG=angle:862 Change-Id: I8e7fa9b0d00bb1b2a32a8d60d8ceda998cea8e8c Reviewed-on: https://chromium-review.googlesource.com/239160 Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| edd84e41 | 2015-01-05 15:50:47 | Fix assertion in D3D11 Feature Level 9_3 instancing implementation BUG=angle:858 Change-Id: I6197d0f86536cb4613aa1aeb2d73a8173b4e4631 Reviewed-on: https://chromium-review.googlesource.com/238530 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 3b9bb72b | 2015-01-05 16:17:02 | Add a cross-platform rotl implementation. The _rotl method is unavailable on any platform but Windows, so we can implement the method ourselves. BUG=angle:773 Change-Id: I1342f4cf8a996daf11a36553c3bf7a01a2b182b3 Reviewed-on: https://chromium-review.googlesource.com/238500 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| dff56337 | 2015-01-05 16:17:00 | Ensure all source files end in a newline. This fixes compile errors on OSX. BUG=angle:773 Change-Id: I11ce9fd470a54b08656a62afc50586e5d2f987d8 Reviewed-on: https://chromium-review.googlesource.com/238446 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 72468834 | 2015-01-05 15:03:18 | Move getData from the D3D to the Impl. We will need this functionality for index validation, so we likely can assume an implemenation will need to support such a call. We might redesign this requirement, but for now we can't call though to BufferD3D on OSX. BUG=angle:773 Change-Id: I16187c78ff62471fdf7221a11b9956560e617a14 Reviewed-on: https://chromium-review.googlesource.com/238450 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 5ffa95da | 2015-01-05 13:15:20 | Don't call std::is_fundamental on OSX. We can't use this method on OSX due to missing c++11 STL support. Instead use a helper function to replace it. BUG=angle:773 Change-Id: Iddcd2705792217e6356f51e4bb9dce248d7c3be2 Reviewed-on: https://chromium-review.googlesource.com/238447 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 5fd0b2d9 | 2015-01-05 13:38:44 | Fix iterator comparison in Context.cpp. In deleteTransformFeedback, we were using a const iterator, in a non-const method. Fix the comparison by using auto, which delegates more work to the compiler's static type checking. BUG=angle:773 Change-Id: Ibc362fe49629331811a5302df1b68269dfa128a6 Reviewed-on: https://chromium-review.googlesource.com/238444 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 3897cd17 | 2015-01-05 13:15:15 | Don't use std::tuple in IndexRangeCache. std::tuple currently isn't available on Chromium/OSX. BUG=angle:773 Change-Id: I9f9efc88dcfe904e98a76df8b04086b88f724424 Reviewed-on: https://chromium-review.googlesource.com/238442 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 47e156c0 | 2015-01-05 13:15:13 | Use #include <stdint.h> instead of <cstdint>. This fixes the compile on OSX. BUG=angle:773 Change-Id: I68111e178986bb78b73006a1559ba26120275599 Reviewed-on: https://chromium-review.googlesource.com/238441 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 2bd2a42d | 2015-01-05 13:26:05 | Don't assume c++11 std::map::erase in invalidateRange. We were using the c++11 iterator return value from std::map::erase. Instead use the post-increment operator to keep a valid iterator after the call to erase, even on older stl. BUG=angle:773 Change-Id: Ieaa21a2b5a3fcd5ca229a31d40bdf9b8f3283a3c Reviewed-on: https://chromium-review.googlesource.com/238440 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 22bcf7cf | 2014-12-30 16:02:46 | Implement KHR_create_context. We need the functionality of this extension to support dEQP. Likely we only needed the minor version enum to not generate an error, but we can take the time to implement the few cases for the other enums as well. We don't support any debug context functionality currently, but we may want to support it in the future. BUG=angle:501 Change-Id: Ib74cd2e4581e054f8153bb358824d9296b9f8a1c Reviewed-on: https://chromium-review.googlesource.com/238083 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 2445143a | 2014-12-30 14:53:16 | Advertise EGL_EXT_platform_base. We were not advertising the extension, though we require it for ANGLE_platform_angle. This was blocking dEQP functionality. Change-Id: I8781867e772b4b1af62f1387faa863f8ce21de76 Reviewed-on: https://chromium-review.googlesource.com/238082 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| e65d145b | 2014-12-30 15:35:39 | Accept no attributes in GetPlatformDisplayEXT. It is quite valid for the app to pass in NULL for the attribs list. In this case we currently crash. We could trigger this error using dEQP. Change-Id: I64aba1077f9095bd099c6b60f789ec076cb3d385 Reviewed-on: https://chromium-review.googlesource.com/238081 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 049743a9 | 2014-12-23 13:05:11 | Restrict depth buffer formats on D3D11 Feature Level 9_3 *_TYPELESS formats weren't supported in D3D10Level9 until Windows 8. Some Win8 D3D9 drivers don't support them either. To workaround this, we avoid _TYPELESS formats on D3D11 FL9_3. BUG=angle:856 BUG=435726 Change-Id: I280dc7f87e3a2c737c14284ebb744188e7f10616 Reviewed-on: https://chromium-review.googlesource.com/237292 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 4fd18b1b | 2014-12-22 12:32:05 | Emulate large and negative viewports on D3D11 Feature Level 9_3 Like D3D9, D3D11 Feature Level 9_3 doesn't support large or negative viewports. We have to emulate these in the vertex shader. BUG=angle:858 Change-Id: I2bd53e3921dc3590cc7193164d73596deafca9ea Reviewed-on: https://chromium-review.googlesource.com/236040 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 324bcc46 | 2014-12-22 13:43:02 | Fix instancing on D3D11 9_3, by ensuring slot zero contains non-instanced data D3D11 Feature Level 9_3 supports instancing, but slot 0 in the input layout must not be instanced. D3D9 has a similar restriction, where stream 0 must not be instanced. This restriction can be worked around by remapping any non-instanced slot to slot 0. This works because HLSL uses shader semantics to match the vertex inputs to the elements in the input layout, rather than the slots. BUG=angle:858 Change-Id: I67b2be9095afc206a4b9f107ed61356820551afe Reviewed-on: https://chromium-review.googlesource.com/237270 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 5b072780 | 2014-12-11 13:52:38 | Fix DisplayD3D not initializing mRenderer. BUG=angle:658 Change-Id: If865910d52154f574f4d488d4c45fcac9a87b050 Reviewed-on: https://chromium-review.googlesource.com/234761 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 932b465b | 2014-12-17 15:25:31 | Add format size information for DXGI_FORMATs. Change-Id: I14d0b8ebd631e5c9c3c3b63c047c9ef7c11bf310 Reviewed-on: https://chromium-review.googlesource.com/236304 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| eca8561e | 2014-12-17 15:24:38 | Add format size information for D3DFORMATs. Change-Id: Id8d884df31726546e871d75a719bc419dd767d6b Reviewed-on: https://chromium-review.googlesource.com/236303 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 97399235 | 2014-12-23 12:31:15 | Enable conditional InfoLog for HLSL link failures. We don't always have an InfoLog available for dynamic shaders, but we can still capture data in some cases for default shaders. Change-Id: Iccd022f24d5c2b8922e9254580705675cd4e405f Reviewed-on: https://chromium-review.googlesource.com/237328 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| d5663b1c | 2014-12-22 12:24:06 | Support remaining vertex attrib formats on D3D11 9_3 Change-Id: Id0d3ad6ec7764ed84ec504ad92eca81dff29aac8 Reviewed-on: https://chromium-review.googlesource.com/236043 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> | ||
| 366db7cd | 2014-12-16 13:15:14 | Prevent usage of GSSetConstantBuffers on D3D11 Feature Level 9_3 Calling GSSetConstantBuffers with real data causes a device removed error on 9_3. We therefore ensure that ANGLE doesn't call it on 9_3. Change-Id: I151a74ee7ea81fc4b795d8bf10d5e5c42bfe7c86 Reviewed-on: https://chromium-review.googlesource.com/236042 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 54bd5a46 | 2014-12-01 12:51:04 | Move blit to the Framebuffer object and Impl. BUG=angle:841 Change-Id: I482e53a90606d9d6b105c7006234215d51ab1a6b Reviewed-on: https://chromium-review.googlesource.com/232692 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| bce529e4 | 2014-12-01 12:48:41 | Move ReadPixels to the Framebuffer object and Impl. BUG=angle:841 Change-Id: I71deac9e755b5dfa010596cd1f8a213c24d895bf Reviewed-on: https://chromium-review.googlesource.com/232691 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| b04dc82e | 2014-12-01 12:02:02 | Move Framebuffer clearing from Renderer to the Framebuffer object. BUG=angle:841 Change-Id: I95c9cbdc2d1c99731e19c48e18117358d22b9e94 Reviewed-on: https://chromium-review.googlesource.com/232690 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| c9878cb1 | 2014-12-11 10:43:48 | Fix normalized GL_BYTE vertex attributes on D3D11 9_3 Feature Level 9_3 doesn't support as many formats for Input Layouts as 10_0+. On 9_3, we have to make sure that GL vertex attributes are converted into formats that 9_3 supports. Change-Id: I27b9a85a6eb21a37bd36e60bf011b83fce743fd0 Reviewed-on: https://chromium-review.googlesource.com/234523 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 44b422c1 | 2014-12-09 15:42:01 | Unify duplicated code for both depth and stencil buffer in ValidateBlitFramebufferParameters() Tested with angle_*_tests and WebGL CTS in Chrome Canary on Windows. Passed with no regressions. Change-Id: Ied0a32ea75565ef19b8e87bed8bdd555b74edee3 Reviewed-on: https://chromium-review.googlesource.com/234110 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Dongseong Hwang <dongseong.hwang@intel.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| 588434c4 | 2014-12-10 10:41:45 | Prevent D3D11 Feature Level 9_3 from sampling from SV_Position in Pixel Shaders D3D11 FL9_3, like Shader Model 2.0 in D3D9, doesn't support reading from SV_Position in the pixel shader. We have to reconstruct gl_FragCoord using dx_ViewCoords instead. Change-Id: I7e898038d210d73a9d224dcc18b033e5cd4a56f5 Reviewed-on: https://chromium-review.googlesource.com/234277 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| 492a7e43 | 2014-11-05 13:27:06 | Encapulate the ESSL compiler into a GL object that is per-context. * Allows for multiple contexts have to have different client versions, caps and extensions without causing shader compilation failures. BUG=angle:823 Change-Id: I523679e90be031b0b7fa385d46d6839b1cf3029f Reviewed-on: https://chromium-review.googlesource.com/227710 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 797ff4c0 | 2014-12-11 12:01:45 | Move some structs and enums from Renderer.h to RendererD3D.h Change-Id: Ib334d2506031466a73f1a233ee68c1658841a882 Reviewed-on: https://chromium-review.googlesource.com/234720 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 62588f5b | 2014-12-10 10:27:35 | Remove D3D11_BIND_STREAM_OUTPUT usage on D3D11 Feature Level 9_3 Change-Id: Ib9d2d155a6e062488ff5bb5ce578036b6187ca70 Reviewed-on: https://chromium-review.googlesource.com/234276 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 53c1a456 | 2014-12-05 13:24:42 | In Clear11, use ID3D11DeviceContext1::ClearView when appropriate Change-Id: I8d9054b5582cfe78beaff07146adc73b4716eaf9 Reviewed-on: https://chromium-review.googlesource.com/233680 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| eb32a2e9 | 2014-12-10 14:27:53 | Fix cube map rendertargets. We were using the entire level parameter of the cube map, instead of using the helper functions for cube map ImageIndexes, which set the layer corresponding to the cube map face. BUG=angle:849 BUG=440701 Change-Id: Id78db5c8281b6b644392bb961d69a7f869755a34 Reviewed-on: https://chromium-review.googlesource.com/234380 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> | ||
| b1237ed7 | 2014-12-08 09:37:42 | On D3D11 Feature Level 9, use IDXGIAdapter2::GetDesc2. On Feature Level 9_3, GetDesc() returns "Software Adapter" in the hardware description string, instead of a description of the actual GPU. As a result, glGetString(GL_RENDERER) on 9_3 wouldn't return any useful info about the current hardware. Change-Id: Ie4d329a08a03ee044fc0b594308aaf0bf235c74e Reviewed-on: https://chromium-review.googlesource.com/233663 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> | ||
| 0dbda057 | 2014-12-04 18:13:04 | Add basic D3D11 Feature Level 9.3 support Change-Id: I660c74791ddb9917bd4796bb652eefab2a3e4863 Reviewed-on: https://chromium-review.googlesource.com/233660 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com> | ||
| 748f74ef | 2014-12-01 11:25:34 | Rename Framebuffer::completeness to checkStatus and add an Impl method. BUG=angle:841 Change-Id: I04b4ffd086424569a15aa21447dd552e0a898928 Reviewed-on: https://chromium-review.googlesource.com/232394 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 9dd95808 | 2014-12-01 11:12:59 | Add set*Attachment methods to FramebufferImpl. BUG=angle:841 Change-Id: Ie819c253a900d105d768aee168a6a2de89754ccc Reviewed-on: https://chromium-review.googlesource.com/232393 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| f1b85f31 | 2014-12-08 14:14:13 | Update generated D3D shaders. We neglected to regenerate with our switch to the 8.1 SDK. Change-Id: Idd67dce1147ad0acec9bf933a0fd01f421c784ef Reviewed-on: https://chromium-review.googlesource.com/233844 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 62a4be24 | 2014-12-05 15:02:06 | Move the Image::copy implementation to ImageD3D. This method uses rx::RenderTarget, which is D3D-only. BUG=angle:773 Change-Id: I2cb523fa98bda96661260d37a8c69c2ed8e7aa84 Reviewed-on: https://chromium-review.googlesource.com/233441 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| b5d8f23e | 2014-12-04 15:43:01 | Move GetAttachmentRenderTarget and GetAttachmentSerial to FramebufferD3D.h. BUG=angle:841 Change-Id: Ic341239e848f1daf7cf38f233d79a58f221780f4 Reviewed-on: https://chromium-review.googlesource.com/232969 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 437d2662 | 2014-12-05 14:23:35 | Move some D3D-specific stuff into ProgramD3D. BUG=angle:773 Change-Id: I48b42e7a3e82a43d3dde16a8d1016d28280eae39 Reviewed-on: https://chromium-review.googlesource.com/232968 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> | ||
| 8e7c8a13 | 2014-12-04 16:16:32 | Fix texture format support queries on AMD-D3D9. We were allowing calls to the device to check support for D3DFMT_NULL, which AMD reports as a usable texture type. This was causing crashes with the WebGL CTS and angle_end2end_tests, when the user tries to use an sRGB or other type, which we incorrectly reported as available. BUG=angle:839 Change-Id: I4941baac6a2b14a09c0ad2c924f29189ccfc6a07 Reviewed-on: https://chromium-review.googlesource.com/232728 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| 68439854 | 2014-12-04 14:40:16 | Fix ASSERT not covering full range of drawbuffer counts. BUG=angle:841 Change-Id: I59cc281e4848572010cbba3d45382a98063e8db2 Reviewed-on: https://chromium-review.googlesource.com/233210 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 9ad4bda0 | 2014-12-01 11:03:09 | Move Framebuffer invalidation into the impl. BUG=angle:841 Change-Id: Ibcf58c4f676491f3b2582198c6cf9fd4a7a38b42 Reviewed-on: https://chromium-review.googlesource.com/232392 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 164d54eb | 2014-12-01 10:55:33 | Set all the drawbuffer state at once instead of one buffer per call. BUG=angle:841 Change-Id: I988c7c0cd45317c78b8fd16df8324028ff1cb25d Reviewed-on: https://chromium-review.googlesource.com/232391 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 4eae6dfa | 2014-12-04 13:48:45 | Move native display check to the DisplayImpl. This fixes another Linux compile error in the EGL layer. BUG=angle:773 Change-Id: Iba643a72fb7b0d5994fe69e46184256e07aa3aad Reviewed-on: https://chromium-review.googlesource.com/232945 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> | ||
| dae55f64 | 2014-12-04 11:36:30 | Remove polymorphism of egl::Display. This was causing a warning on GCC, and is no longer necessary. BUG=angle:773 Change-Id: I6cb09e79bff9035e3e38966dcad2cc7ba74701a1 Reviewed-on: https://chromium-review.googlesource.com/232944 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| 5d94a2b1 | 2014-12-04 11:16:00 | Move native window check to the DisplayImpl. This hides the D3D-specific methods from the EGL side of things. BUG=angle:773 Change-Id: I5a1c2bbff865e02bc1a07b3295347469ef9792e3 Reviewed-on: https://chromium-review.googlesource.com/232943 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| a0c18434 | 2014-12-04 10:27:25 | Fix stray ANGLE_EXPORT. BUG=angle:733 Change-Id: Ia4a84bea483ac11a2326d2402649affe10d661c9 Reviewed-on: https://chromium-review.googlesource.com/232942 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 9d9132df | 2014-12-03 14:46:48 | Remove support for compiling libANGLE as a dynamic library. BUG=angle:733 Change-Id: Iacef45b89f234091eb5df505437adabece1e564b Reviewed-on: https://chromium-review.googlesource.com/232961 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 2ec386bb | 2014-12-03 14:44:38 | Rename IsSampler to IsSamplerType. BUG=angle:733 Change-Id: I62aece16c11aefdbf13c0b5faf83040fdb8555e6 Reviewed-on: https://chromium-review.googlesource.com/232960 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 59723541 | 2014-11-26 15:30:16 | Disable support for shader model 2 in Renderer9. Change-Id: I2fc6e1b440cbdd72c99971d355637819a13951be Reviewed-on: https://chromium-review.googlesource.com/232091 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> | ||
| 528ce3c1 | 2014-12-01 10:44:07 | Merge some special cases of the default framebuffer into the Framebuffer class. BUG=angle:841 Change-Id: Id4b5ac38926bc90fa015584d966aaef3a7101849 Reviewed-on: https://chromium-review.googlesource.com/232390 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> | ||
| 36e86234 | 2014-12-01 16:48:23 | Improve image update perf by re-using a MemoryBuffer. Instead of allocating a new MemoryBuffer every frame, we can store one scratch buffer in the Renderer, and occasionally re-create it to ensure we aren't stuck using the maximum amount of memory. BUG=angle:842 Change-Id: Id7c1912921ed8f84b151413453c3268d853352db Reviewed-on: https://chromium-review.googlesource.com/230861 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Bruce Dawson <brucedawson@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> | ||
| e7cfb3dd | 2014-12-03 10:58:56 | Do not use std::strlen. GCC doesn't use the std:: namespace for these methods. BUG=angle:773 Change-Id: I0d887f103298cdd184b3f7825c5e44363edb9b92 Reviewed-on: https://chromium-review.googlesource.com/232697 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| 2db1fbbc | 2014-12-03 10:58:55 | Make compile optimization level hidden outside D3D. BUG=angle:773 Change-Id: Ia6f16d2e4644c02d94cf99b73f70d05486886925 Reviewed-on: https://chromium-review.googlesource.com/232696 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> | ||
| 27839c6d | 2014-12-03 10:58:53 | Remove unrefed texture validation variables. These were causing unused variable warnings in Linux GCC builds. BUG=angle:773 Change-Id: I860d425a1caef07a58f6ff1b6c113ad7b63283dc Reviewed-on: https://chromium-review.googlesource.com/231856 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| e69a3f28 | 2014-12-03 10:58:53 | Add missing cstring include to Uniform.cpp. This file was missing on GCC builds. BUG=angle:773 Change-Id: I6222b5ee563d64967d878c422abd464c8c92e646 Reviewed-on: https://chromium-review.googlesource.com/231855 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> | ||
| 639db12e | 2014-12-03 11:36:43 | Use memset to zero out ClearParameters. Using the C struct initialization syntax was giving errors on Linux. BUG=angle:773 Change-Id: I298c851df7246eeb1772837c5678f3c578483b63 Reviewed-on: https://chromium-review.googlesource.com/231854 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> | ||
| d98bbc39 | 2014-12-03 11:36:42 | Remove RendererD3D header from Renderbuffer.cpp. BUG=angle:773 Change-Id: Idb9f840c0a83550bd9a58c3c4599c65ee916fa3c Reviewed-on: https://chromium-review.googlesource.com/231853 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> |