Commit daf2e913 by Jamie Madill Committed by Commit Bot

TextureStorage11: Pass more Context around.

This will make it possible to record errors in the context immediately. Bug: angleproject:2378 Change-Id: Ib7ccdbcfa2bf51e3cc876496267c61cf5a26b7bd Reviewed-on: https://chromium-review.googlesource.com/1148464Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 7b4ef3da
...@@ -289,7 +289,7 @@ gl::Error TextureStorage11::getCachedOrCreateSRVForSampler(const gl::Context *co ...@@ -289,7 +289,7 @@ gl::Error TextureStorage11::getCachedOrCreateSRVForSampler(const gl::Context *co
const auto &swizzleFormat = const auto &swizzleFormat =
mFormatInfo.getSwizzleFormat(mRenderer->getRenderer11DeviceCaps()); mFormatInfo.getSwizzleFormat(mRenderer->getRenderer11DeviceCaps());
ASSERT(!key.dropStencil || swizzleFormat.format().stencilBits == 0); ASSERT(!key.dropStencil || swizzleFormat.format().stencilBits == 0);
ANGLE_TRY(getSwizzleTexture(&texture)); ANGLE_TRY(getSwizzleTexture(context, &texture));
format = swizzleFormat.srvFormat; format = swizzleFormat.srvFormat;
} }
else if (key.dropStencil) else if (key.dropStencil)
...@@ -460,7 +460,7 @@ gl::Error TextureStorage11::generateSwizzles(const gl::Context *context, ...@@ -460,7 +460,7 @@ gl::Error TextureStorage11::generateSwizzles(const gl::Context *context,
ANGLE_TRY(getSRVLevel(context, level, true, &sourceSRV)); ANGLE_TRY(getSRVLevel(context, level, true, &sourceSRV));
const d3d11::RenderTargetView *destRTV; const d3d11::RenderTargetView *destRTV;
ANGLE_TRY(getSwizzleRenderTarget(level, &destRTV)); ANGLE_TRY(getSwizzleRenderTarget(context, level, &destRTV));
gl::Extents size(getLevelWidth(level), getLevelHeight(level), getLevelDepth(level)); gl::Extents size(getLevelWidth(level), getLevelHeight(level), getLevelDepth(level));
...@@ -1300,7 +1300,8 @@ gl::Error TextureStorage11_2D::createUAVForImage(const gl::Context *context, ...@@ -1300,7 +1300,8 @@ gl::Error TextureStorage11_2D::createUAVForImage(const gl::Context *context,
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_2D::getSwizzleTexture(const TextureHelper11 **outTexture) gl::Error TextureStorage11_2D::getSwizzleTexture(const gl::Context *context,
const TextureHelper11 **outTexture)
{ {
ASSERT(outTexture); ASSERT(outTexture);
...@@ -1329,7 +1330,8 @@ gl::Error TextureStorage11_2D::getSwizzleTexture(const TextureHelper11 **outText ...@@ -1329,7 +1330,8 @@ gl::Error TextureStorage11_2D::getSwizzleTexture(const TextureHelper11 **outText
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_2D::getSwizzleRenderTarget(int mipLevel, gl::Error TextureStorage11_2D::getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) const d3d11::RenderTargetView **outRTV)
{ {
ASSERT(mipLevel >= 0 && mipLevel < getLevelCount()); ASSERT(mipLevel >= 0 && mipLevel < getLevelCount());
...@@ -1338,7 +1340,7 @@ gl::Error TextureStorage11_2D::getSwizzleRenderTarget(int mipLevel, ...@@ -1338,7 +1340,7 @@ gl::Error TextureStorage11_2D::getSwizzleRenderTarget(int mipLevel,
if (!mSwizzleRenderTargets[mipLevel].valid()) if (!mSwizzleRenderTargets[mipLevel].valid())
{ {
const TextureHelper11 *swizzleTexture = nullptr; const TextureHelper11 *swizzleTexture = nullptr;
ANGLE_TRY(getSwizzleTexture(&swizzleTexture)); ANGLE_TRY(getSwizzleTexture(context, &swizzleTexture));
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
rtvDesc.Format = rtvDesc.Format =
...@@ -1537,13 +1539,15 @@ gl::Error TextureStorage11_External::createUAVForImage(const gl::Context *contex ...@@ -1537,13 +1539,15 @@ gl::Error TextureStorage11_External::createUAVForImage(const gl::Context *contex
return gl::InternalError(); return gl::InternalError();
} }
gl::Error TextureStorage11_External::getSwizzleTexture(const TextureHelper11 **outTexture) gl::Error TextureStorage11_External::getSwizzleTexture(const gl::Context *context,
const TextureHelper11 **outTexture)
{ {
UNIMPLEMENTED(); UNIMPLEMENTED();
return gl::InternalError(); return gl::InternalError();
} }
gl::Error TextureStorage11_External::getSwizzleRenderTarget(int mipLevel, gl::Error TextureStorage11_External::getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) const d3d11::RenderTargetView **outRTV)
{ {
UNIMPLEMENTED(); UNIMPLEMENTED();
...@@ -1658,7 +1662,8 @@ gl::Error TextureStorage11_EGLImage::useLevelZeroWorkaroundTexture(const gl::Con ...@@ -1658,7 +1662,8 @@ gl::Error TextureStorage11_EGLImage::useLevelZeroWorkaroundTexture(const gl::Con
return gl::InternalError(); return gl::InternalError();
} }
gl::Error TextureStorage11_EGLImage::getSwizzleTexture(const TextureHelper11 **outTexture) gl::Error TextureStorage11_EGLImage::getSwizzleTexture(const gl::Context *context,
const TextureHelper11 **outTexture)
{ {
ASSERT(outTexture); ASSERT(outTexture);
...@@ -1687,7 +1692,8 @@ gl::Error TextureStorage11_EGLImage::getSwizzleTexture(const TextureHelper11 **o ...@@ -1687,7 +1692,8 @@ gl::Error TextureStorage11_EGLImage::getSwizzleTexture(const TextureHelper11 **o
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_EGLImage::getSwizzleRenderTarget(int mipLevel, gl::Error TextureStorage11_EGLImage::getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) const d3d11::RenderTargetView **outRTV)
{ {
ASSERT(mipLevel >= 0 && mipLevel < getLevelCount()); ASSERT(mipLevel >= 0 && mipLevel < getLevelCount());
...@@ -1696,7 +1702,7 @@ gl::Error TextureStorage11_EGLImage::getSwizzleRenderTarget(int mipLevel, ...@@ -1696,7 +1702,7 @@ gl::Error TextureStorage11_EGLImage::getSwizzleRenderTarget(int mipLevel,
if (!mSwizzleRenderTargets[mipLevel].valid()) if (!mSwizzleRenderTargets[mipLevel].valid())
{ {
const TextureHelper11 *swizzleTexture = nullptr; const TextureHelper11 *swizzleTexture = nullptr;
ANGLE_TRY(getSwizzleTexture(&swizzleTexture)); ANGLE_TRY(getSwizzleTexture(context, &swizzleTexture));
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
rtvDesc.Format = rtvDesc.Format =
...@@ -2344,7 +2350,8 @@ gl::Error TextureStorage11_Cube::createUAVForImage(const gl::Context *context, ...@@ -2344,7 +2350,8 @@ gl::Error TextureStorage11_Cube::createUAVForImage(const gl::Context *context,
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_Cube::getSwizzleTexture(const TextureHelper11 **outTexture) gl::Error TextureStorage11_Cube::getSwizzleTexture(const gl::Context *context,
const TextureHelper11 **outTexture)
{ {
ASSERT(outTexture); ASSERT(outTexture);
...@@ -2373,7 +2380,8 @@ gl::Error TextureStorage11_Cube::getSwizzleTexture(const TextureHelper11 **outTe ...@@ -2373,7 +2380,8 @@ gl::Error TextureStorage11_Cube::getSwizzleTexture(const TextureHelper11 **outTe
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_Cube::getSwizzleRenderTarget(int mipLevel, gl::Error TextureStorage11_Cube::getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) const d3d11::RenderTargetView **outRTV)
{ {
ASSERT(mipLevel >= 0 && mipLevel < getLevelCount()); ASSERT(mipLevel >= 0 && mipLevel < getLevelCount());
...@@ -2382,7 +2390,7 @@ gl::Error TextureStorage11_Cube::getSwizzleRenderTarget(int mipLevel, ...@@ -2382,7 +2390,7 @@ gl::Error TextureStorage11_Cube::getSwizzleRenderTarget(int mipLevel,
if (!mSwizzleRenderTargets[mipLevel].valid()) if (!mSwizzleRenderTargets[mipLevel].valid())
{ {
const TextureHelper11 *swizzleTexture = nullptr; const TextureHelper11 *swizzleTexture = nullptr;
ANGLE_TRY(getSwizzleTexture(&swizzleTexture)); ANGLE_TRY(getSwizzleTexture(context, &swizzleTexture));
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
rtvDesc.Format = rtvDesc.Format =
...@@ -2729,7 +2737,8 @@ gl::Error TextureStorage11_3D::getRenderTarget(const gl::Context *context, ...@@ -2729,7 +2737,8 @@ gl::Error TextureStorage11_3D::getRenderTarget(const gl::Context *context,
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_3D::getSwizzleTexture(const TextureHelper11 **outTexture) gl::Error TextureStorage11_3D::getSwizzleTexture(const gl::Context *context,
const TextureHelper11 **outTexture)
{ {
ASSERT(outTexture); ASSERT(outTexture);
...@@ -2756,7 +2765,8 @@ gl::Error TextureStorage11_3D::getSwizzleTexture(const TextureHelper11 **outText ...@@ -2756,7 +2765,8 @@ gl::Error TextureStorage11_3D::getSwizzleTexture(const TextureHelper11 **outText
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_3D::getSwizzleRenderTarget(int mipLevel, gl::Error TextureStorage11_3D::getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) const d3d11::RenderTargetView **outRTV)
{ {
ASSERT(mipLevel >= 0 && mipLevel < getLevelCount()); ASSERT(mipLevel >= 0 && mipLevel < getLevelCount());
...@@ -2765,7 +2775,7 @@ gl::Error TextureStorage11_3D::getSwizzleRenderTarget(int mipLevel, ...@@ -2765,7 +2775,7 @@ gl::Error TextureStorage11_3D::getSwizzleRenderTarget(int mipLevel,
if (!mSwizzleRenderTargets[mipLevel].valid()) if (!mSwizzleRenderTargets[mipLevel].valid())
{ {
const TextureHelper11 *swizzleTexture = nullptr; const TextureHelper11 *swizzleTexture = nullptr;
ANGLE_TRY(getSwizzleTexture(&swizzleTexture)); ANGLE_TRY(getSwizzleTexture(context, &swizzleTexture));
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
rtvDesc.Format = rtvDesc.Format =
...@@ -3087,7 +3097,8 @@ gl::Error TextureStorage11_2DArray::getRenderTarget(const gl::Context *context, ...@@ -3087,7 +3097,8 @@ gl::Error TextureStorage11_2DArray::getRenderTarget(const gl::Context *context,
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_2DArray::getSwizzleTexture(const TextureHelper11 **outTexture) gl::Error TextureStorage11_2DArray::getSwizzleTexture(const gl::Context *context,
const TextureHelper11 **outTexture)
{ {
if (!mSwizzleTexture.valid()) if (!mSwizzleTexture.valid())
{ {
...@@ -3114,7 +3125,8 @@ gl::Error TextureStorage11_2DArray::getSwizzleTexture(const TextureHelper11 **ou ...@@ -3114,7 +3125,8 @@ gl::Error TextureStorage11_2DArray::getSwizzleTexture(const TextureHelper11 **ou
return gl::NoError(); return gl::NoError();
} }
gl::Error TextureStorage11_2DArray::getSwizzleRenderTarget(int mipLevel, gl::Error TextureStorage11_2DArray::getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) const d3d11::RenderTargetView **outRTV)
{ {
ASSERT(mipLevel >= 0 && mipLevel < getLevelCount()); ASSERT(mipLevel >= 0 && mipLevel < getLevelCount());
...@@ -3123,7 +3135,7 @@ gl::Error TextureStorage11_2DArray::getSwizzleRenderTarget(int mipLevel, ...@@ -3123,7 +3135,7 @@ gl::Error TextureStorage11_2DArray::getSwizzleRenderTarget(int mipLevel,
if (!mSwizzleRenderTargets[mipLevel].valid()) if (!mSwizzleRenderTargets[mipLevel].valid())
{ {
const TextureHelper11 *swizzleTexture = nullptr; const TextureHelper11 *swizzleTexture = nullptr;
ANGLE_TRY(getSwizzleTexture(&swizzleTexture)); ANGLE_TRY(getSwizzleTexture(context, &swizzleTexture));
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
rtvDesc.Format = rtvDesc.Format =
...@@ -3382,13 +3394,15 @@ gl::Error TextureStorage11_2DMultisample::createUAVForImage(const gl::Context *c ...@@ -3382,13 +3394,15 @@ gl::Error TextureStorage11_2DMultisample::createUAVForImage(const gl::Context *c
return gl::InternalError(); return gl::InternalError();
} }
gl::Error TextureStorage11_2DMultisample::getSwizzleTexture(const TextureHelper11 **outTexture) gl::Error TextureStorage11_2DMultisample::getSwizzleTexture(const gl::Context *context,
const TextureHelper11 **outTexture)
{ {
UNIMPLEMENTED(); UNIMPLEMENTED();
return gl::InternalError() << "getSwizzleTexture is unimplemented."; return gl::InternalError() << "getSwizzleTexture is unimplemented.";
} }
gl::Error TextureStorage11_2DMultisample::getSwizzleRenderTarget( gl::Error TextureStorage11_2DMultisample::getSwizzleRenderTarget(
const gl::Context *context,
int mipLevel, int mipLevel,
const d3d11::RenderTargetView **outRTV) const d3d11::RenderTargetView **outRTV)
{ {
......
...@@ -125,8 +125,10 @@ class TextureStorage11 : public TextureStorage ...@@ -125,8 +125,10 @@ class TextureStorage11 : public TextureStorage
virtual gl::Error getMippedResource(const gl::Context *context, virtual gl::Error getMippedResource(const gl::Context *context,
const TextureHelper11 **outResource); const TextureHelper11 **outResource);
virtual gl::Error getSwizzleTexture(const TextureHelper11 **outTexture) = 0; virtual gl::Error getSwizzleTexture(const gl::Context *context,
virtual gl::Error getSwizzleRenderTarget(int mipLevel, const TextureHelper11 **outTexture) = 0;
virtual gl::Error getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) = 0; const d3d11::RenderTargetView **outRTV) = 0;
gl::Error getSRVLevel(const gl::Context *context, gl::Error getSRVLevel(const gl::Context *context,
int mipLevel, int mipLevel,
...@@ -265,8 +267,11 @@ class TextureStorage11_2D : public TextureStorage11 ...@@ -265,8 +267,11 @@ class TextureStorage11_2D : public TextureStorage11
bool useLevelZeroTexture) override; bool useLevelZeroTexture) override;
protected: protected:
gl::Error getSwizzleTexture(const TextureHelper11 **outTexture) override; gl::Error getSwizzleTexture(const gl::Context *context,
gl::Error getSwizzleRenderTarget(int mipLevel, const d3d11::RenderTargetView **outRTV) override; const TextureHelper11 **outTexture) override;
gl::Error getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) override;
gl::Error ensureDropStencilTexture(const gl::Context *context, gl::Error ensureDropStencilTexture(const gl::Context *context,
DropStencil *dropStencilOut) override; DropStencil *dropStencilOut) override;
...@@ -344,8 +349,11 @@ class TextureStorage11_External : public TextureStorage11 ...@@ -344,8 +349,11 @@ class TextureStorage11_External : public TextureStorage11
Image11 *incomingImage) override; Image11 *incomingImage) override;
protected: protected:
gl::Error getSwizzleTexture(const TextureHelper11 **outTexture) override; gl::Error getSwizzleTexture(const gl::Context *context,
gl::Error getSwizzleRenderTarget(int mipLevel, const d3d11::RenderTargetView **outRTV) override; const TextureHelper11 **outTexture) override;
gl::Error getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) override;
private: private:
gl::Error createSRVForSampler(const gl::Context *context, gl::Error createSRVForSampler(const gl::Context *context,
...@@ -403,8 +411,11 @@ class TextureStorage11_EGLImage final : public TextureStorage11 ...@@ -403,8 +411,11 @@ class TextureStorage11_EGLImage final : public TextureStorage11
bool useLevelZeroTexture) override; bool useLevelZeroTexture) override;
protected: protected:
gl::Error getSwizzleTexture(const TextureHelper11 **outTexture) override; gl::Error getSwizzleTexture(const gl::Context *context,
gl::Error getSwizzleRenderTarget(int mipLevel, const d3d11::RenderTargetView **outRTV) override; const TextureHelper11 **outTexture) override;
gl::Error getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) override;
private: private:
// Check if the EGL image's render target has been updated due to orphaning and delete // Check if the EGL image's render target has been updated due to orphaning and delete
...@@ -473,8 +484,11 @@ class TextureStorage11_Cube : public TextureStorage11 ...@@ -473,8 +484,11 @@ class TextureStorage11_Cube : public TextureStorage11
bool useLevelZeroTexture) override; bool useLevelZeroTexture) override;
protected: protected:
gl::Error getSwizzleTexture(const TextureHelper11 **outTexture) override; gl::Error getSwizzleTexture(const gl::Context *context,
gl::Error getSwizzleRenderTarget(int mipLevel, const d3d11::RenderTargetView **outRTV) override; const TextureHelper11 **outTexture) override;
gl::Error getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) override;
gl::Error ensureDropStencilTexture(const gl::Context *context, gl::Error ensureDropStencilTexture(const gl::Context *context,
DropStencil *dropStencilOut) override; DropStencil *dropStencilOut) override;
...@@ -547,8 +561,11 @@ class TextureStorage11_3D : public TextureStorage11 ...@@ -547,8 +561,11 @@ class TextureStorage11_3D : public TextureStorage11
Image11 *incomingImage) override; Image11 *incomingImage) override;
protected: protected:
gl::Error getSwizzleTexture(const TextureHelper11 **outTexture) override; gl::Error getSwizzleTexture(const gl::Context *context,
gl::Error getSwizzleRenderTarget(int mipLevel, const d3d11::RenderTargetView **outRTV) override; const TextureHelper11 **outTexture) override;
gl::Error getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) override;
private: private:
gl::Error createSRVForSampler(const gl::Context *context, gl::Error createSRVForSampler(const gl::Context *context,
...@@ -607,8 +624,11 @@ class TextureStorage11_2DArray : public TextureStorage11 ...@@ -607,8 +624,11 @@ class TextureStorage11_2DArray : public TextureStorage11
Image11 *incomingImage) override; Image11 *incomingImage) override;
protected: protected:
gl::Error getSwizzleTexture(const TextureHelper11 **outTexture) override; gl::Error getSwizzleTexture(const gl::Context *context,
gl::Error getSwizzleRenderTarget(int mipLevel, const d3d11::RenderTargetView **outRTV) override; const TextureHelper11 **outTexture) override;
gl::Error getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) override;
gl::Error ensureDropStencilTexture(const gl::Context *context, gl::Error ensureDropStencilTexture(const gl::Context *context,
DropStencil *dropStencilOut) override; DropStencil *dropStencilOut) override;
...@@ -699,8 +719,11 @@ class TextureStorage11_2DMultisample : public TextureStorage11 ...@@ -699,8 +719,11 @@ class TextureStorage11_2DMultisample : public TextureStorage11
Image11 *incomingImage) override; Image11 *incomingImage) override;
protected: protected:
gl::Error getSwizzleTexture(const TextureHelper11 **outTexture) override; gl::Error getSwizzleTexture(const gl::Context *context,
gl::Error getSwizzleRenderTarget(int mipLevel, const d3d11::RenderTargetView **outRTV) override; const TextureHelper11 **outTexture) override;
gl::Error getSwizzleRenderTarget(const gl::Context *context,
int mipLevel,
const d3d11::RenderTargetView **outRTV) override;
gl::Error ensureDropStencilTexture(const gl::Context *context, gl::Error ensureDropStencilTexture(const gl::Context *context,
DropStencil *dropStencilOut) override; DropStencil *dropStencilOut) override;
......
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