src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp


Log

Author Commit Date CI Message
Austin Kinross ba8a0bf8 2015-05-13T09:48:59 Add plumbing for D3D11 device caps BUG=angleproject:1002 Change-Id: Id24783c75377ea92a73a43f2605693e07f63dc15 Reviewed-on: https://chromium-review.googlesource.com/270545 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Gregoire Payen de La Garanderie 752ce192 2015-04-14T11:11:12 D3D11: Use DX generateMips to generate mipmaps whenever possible. BUG=angleproject:974 Change-Id: I95937fe7a0833de77c52f838ebb3ecba55dfbf8a Reviewed-on: https://chromium-review.googlesource.com/265640 Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f4bf3811 2015-04-01T16:15:32 Use GetAs/GetImplAs whenever possible. This patch cleans up the rest of our custom casting helper functions. Change-Id: I41975c736765fca855c4498acca31116df3e8317 Reviewed-on: https://chromium-review.googlesource.com/263477 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Austin Kinross b8af723d 2015-03-16T22:33:25 Fix and enable warning C4245 (signed/unsigned mismatch) Change-Id: If48043835fcc98341a0626e3ece7d0e3f7958059 Reviewed-on: https://chromium-review.googlesource.com/260630 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cooper Partin <coopp@microsoft.com> Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 74ba76c4 2015-02-09T10:31:23 Move rx::MemoryBuffer to common library. This class is not D3D-specific so can be shared among other back-ends, or other parts of the ANGLE codebase. Change-Id: Ie00760eb5dae4db52e465ee7a2f97789bae8c0b0 Reviewed-on: https://chromium-review.googlesource.com/246500 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Minmin Gong b8aee3bc 2015-01-27T14:42:36 Add UNPACK_ROW_LENGTH support to D3D11 renderer Change-Id: I31ccffddcb04a45f19d3c3eb9a396c30e794b218 Reviewed-on: https://chromium-review.googlesource.com/243951 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Minmin Gong <mgong@microsoft.com>
Gregoire Payen de La Garanderie 88fe1ad7 2015-01-19T15:09:26 Update the texture storage after generateMipmaps and setStorage. Also adds a few assert in SetData and various places to ensure that images are not dirty before modifying the storage. BUG=angle:873 Change-Id: I7cc922b33da0d79a1b5aefe216e9ccfaaf86a306 Reviewed-on: https://chromium-review.googlesource.com/241880 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
Jamie Madill b2d298db 2015-01-29T10:29:51 Fix TextureStorage11::setData for 3D textures. Currently this method doesn't handle partial offsets. Fixes dEQP tests in the texture specification group. BUG=angle:899 Change-Id: I20160e49a46957b4f6cf96f529ab4ea7ddf7b343 Reviewed-on: https://chromium-review.googlesource.com/244091 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Austin Kinross 3ae6465f 2015-01-26T15:51:39 Fix lots of variable shadowing in ANGLE BUG=angle:877 Change-Id: I3df0fffb19f5ecbe439fbc2a8d6d239a5dc6b638 Reviewed-on: https://chromium-review.googlesource.com/243334 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 74cafab1 2015-01-23T23:17:32 Revert "Fix lots of variable shadowing in ANGLE" Caused WebGL CTS failures on the texture-npot test: https://www.khronos.org/registry/webgl/sdk/tests/conformance/textures/texture-npot.html This reverts commit c67e6e9fade44ef8938724e82db11db725e9c8e5. Change-Id: I089e99859231e0d657084ac3647257c650a9da92 Reviewed-on: https://chromium-review.googlesource.com/243041 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Austin Kinross c67e6e9f 2015-01-21T16:01:07 Fix lots of variable shadowing in ANGLE BUG=angle:877 Change-Id: I15168ae32605b26aee08274464ffe68adb5a7e87 Reviewed-on: https://chromium-review.googlesource.com/242351 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Austin Kinross <aukinros@microsoft.com>
Austin Kinross 62815bf4 2015-01-15T16:32:36 Improve D3D11 FL9_3 zero-LOD workaround (e.g. TextureCubes) D3D11 Feature Level 9_3 can't disable mipmaps on a mipmapped texture, and sample from level zero of it. A previous commit added a workaround for this in ANGLE to Texture2Ds. This commit fixes some minor issues in that commit, and extends the workaround to apply to TextureCubes too. Change-Id: Ic97321af6f8bbf7ad5d96e58655c342db3978a6a Reviewed-on: https://chromium-review.googlesource.com/241944 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 051dbc79 2015-01-05T15:48:58 Create a formatutilsD3D and move some functions from formatutils. BUG=angle:681 Change-Id: I694073c50dccd05c3117761e446eba0d15c03293 Reviewed-on: https://chromium-review.googlesource.com/238480 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang c2e75afa 2015-01-05T14: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>
Geoff Lang b4dedf3e 2015-01-05T14: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>
Jamie Madill 155610b9 2015-01-15T16: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>
Austin Kinross 215b37a6 2014-12-22T12: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>
Austin Kinross 049743a9 2014-12-23T13: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>
Bruce Dawson 36e86234 2014-12-01T16: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>
Geoff Lang 2b5420c0 2014-11-19T14:20:15 Merge libGLESv2 and libEGL classes into libANGLE. BUG=angle:733 Change-Id: Ic491c971411fe82c56cd97c5c8325ac14ec218df Reviewed-on: https://chromium-review.googlesource.com/230830 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>