Commit c7ba85c9 by Geoff Lang Committed by Commit Bot

TexutreD3D: Only update storage level if it exists.

This was causing an assertion failure in updateStorageLevel when the storage didn't contain the requested level. Gate the call behind an isValidLevel check. TEST=conformance/misc/type-conversion-test.html BUG=angleproject:1815 Change-Id: Iadf46d232d5a117ae1ae74c6e71677b1e06a5321 Reviewed-on: https://chromium-review.googlesource.com/572705Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent a0016b7f
...@@ -917,10 +917,10 @@ gl::Error TextureD3D_2D::copyImage(const gl::Context *context, ...@@ -917,10 +917,10 @@ gl::Error TextureD3D_2D::copyImage(const gl::Context *context,
else else
{ {
ANGLE_TRY(ensureRenderTarget(context)); ANGLE_TRY(ensureRenderTarget(context));
ANGLE_TRY(updateStorageLevel(context, level));
if (sourceArea.width != 0 && sourceArea.height != 0 && isValidLevel(level)) if (sourceArea.width != 0 && sourceArea.height != 0 && isValidLevel(level))
{ {
ANGLE_TRY(updateStorageLevel(context, level));
ANGLE_TRY(mRenderer->copyImage2D(context, source, sourceArea, internalFormat, ANGLE_TRY(mRenderer->copyImage2D(context, source, sourceArea, internalFormat,
destOffset, mTexStorage, level)); destOffset, mTexStorage, level));
} }
...@@ -1647,12 +1647,12 @@ gl::Error TextureD3D_Cube::copyImage(const gl::Context *context, ...@@ -1647,12 +1647,12 @@ gl::Error TextureD3D_Cube::copyImage(const gl::Context *context,
else else
{ {
ANGLE_TRY(ensureRenderTarget(context)); ANGLE_TRY(ensureRenderTarget(context));
ANGLE_TRY(updateStorageFaceLevel(context, faceIndex, level));
ASSERT(size.width == size.height); ASSERT(size.width == size.height);
if (size.width > 0 && isValidFaceLevel(faceIndex, level)) if (size.width > 0 && isValidFaceLevel(faceIndex, level))
{ {
ANGLE_TRY(updateStorageFaceLevel(context, faceIndex, level));
ANGLE_TRY(mRenderer->copyImageCube(context, source, sourceArea, internalFormat, ANGLE_TRY(mRenderer->copyImageCube(context, source, sourceArea, internalFormat,
destOffset, mTexStorage, target, level)); destOffset, mTexStorage, target, level));
} }
...@@ -2970,7 +2970,6 @@ gl::Error TextureD3D_2DArray::copySubImage(const gl::Context *context, ...@@ -2970,7 +2970,6 @@ gl::Error TextureD3D_2DArray::copySubImage(const gl::Context *context,
else else
{ {
ANGLE_TRY(ensureRenderTarget(context)); ANGLE_TRY(ensureRenderTarget(context));
ANGLE_TRY(updateStorageLevel(context, level));
if (isValidLevel(level)) if (isValidLevel(level))
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment