Commit c9dcc553 by Aditya Kushwah Committed by Angle LUCI CQ

Move Objectlabel from Texture object to TextureState object.

Created a subscriber function onLabelUpdated in the storage base class. The derived storage class will pass the label reference to the base storage class in the constructor. Future changes will use this label reference to update the label string with D3D. Bug: chromium:1164111 Change-Id: Ic5ca73bac61427afe392bb5bcc6a6eab8e785941 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2981451Reviewed-by: 's avatarRafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
parent cb87d78c
...@@ -744,7 +744,6 @@ Texture::Texture(rx::GLImplFactory *factory, TextureID id, TextureType type) ...@@ -744,7 +744,6 @@ Texture::Texture(rx::GLImplFactory *factory, TextureID id, TextureType type)
mTexture(factory->createTexture(mState)), mTexture(factory->createTexture(mState)),
mImplObserver(this, rx::kTextureImageImplObserverMessageIndex), mImplObserver(this, rx::kTextureImageImplObserverMessageIndex),
mBufferObserver(this, kBufferSubjectIndex), mBufferObserver(this, kBufferSubjectIndex),
mLabel(),
mBoundSurface(nullptr), mBoundSurface(nullptr),
mBoundStream(nullptr) mBoundStream(nullptr)
{ {
...@@ -784,13 +783,13 @@ Texture::~Texture() ...@@ -784,13 +783,13 @@ Texture::~Texture()
void Texture::setLabel(const Context *context, const std::string &label) void Texture::setLabel(const Context *context, const std::string &label)
{ {
mLabel = label; mState.mLabel = label;
signalDirtyState(DIRTY_BIT_LABEL); signalDirtyState(DIRTY_BIT_LABEL);
} }
const std::string &Texture::getLabel() const const std::string &Texture::getLabel() const
{ {
return mLabel; return mState.mLabel;
} }
void Texture::setSwizzleRed(const Context *context, GLenum swizzleRed) void Texture::setSwizzleRed(const Context *context, GLenum swizzleRed)
......
...@@ -174,6 +174,8 @@ class TextureState final : private angle::NonCopyable ...@@ -174,6 +174,8 @@ class TextureState final : private angle::NonCopyable
const OffsetBindingPointer<Buffer> &getBuffer() const { return mBuffer; } const OffsetBindingPointer<Buffer> &getBuffer() const { return mBuffer; }
const std::string &getLabel() const { return mLabel; }
private: private:
// Texture needs access to the ImageDesc functions. // Texture needs access to the ImageDesc functions.
friend class Texture; friend class Texture;
...@@ -239,6 +241,7 @@ class TextureState final : private angle::NonCopyable ...@@ -239,6 +241,7 @@ class TextureState final : private angle::NonCopyable
mutable SamplerFormat mCachedSamplerFormat; mutable SamplerFormat mCachedSamplerFormat;
mutable GLenum mCachedSamplerCompareMode; mutable GLenum mCachedSamplerCompareMode;
mutable bool mCachedSamplerFormatValid; mutable bool mCachedSamplerFormatValid;
std::string mLabel;
}; };
bool operator==(const TextureState &a, const TextureState &b); bool operator==(const TextureState &a, const TextureState &b);
...@@ -644,8 +647,6 @@ class Texture final : public RefCountObject<TextureID>, ...@@ -644,8 +647,6 @@ class Texture final : public RefCountObject<TextureID>,
// For EXT_texture_buffer, observes buffer changes. // For EXT_texture_buffer, observes buffer changes.
angle::ObserverBinding mBufferObserver; angle::ObserverBinding mBufferObserver;
std::string mLabel;
egl::Surface *mBoundSurface; egl::Surface *mBoundSurface;
egl::Stream *mBoundStream; egl::Stream *mBoundStream;
......
...@@ -289,13 +289,13 @@ class RendererD3D : public BufferFactoryD3D ...@@ -289,13 +289,13 @@ class RendererD3D : public BufferFactoryD3D
const gl::Context *context, const gl::Context *context,
EGLenum target, EGLenum target,
EGLClientBuffer buffer, EGLClientBuffer buffer,
const egl::AttributeMap &attribs) = 0; const egl::AttributeMap &attribs) = 0;
virtual angle::Result generateMipmap(const gl::Context *context, virtual angle::Result generateMipmap(const gl::Context *context,
ImageD3D *dest, ImageD3D *dest,
ImageD3D *source) = 0; ImageD3D *source) = 0;
virtual angle::Result generateMipmapUsingD3D(const gl::Context *context, virtual angle::Result generateMipmapUsingD3D(const gl::Context *context,
TextureStorage *storage, TextureStorage *storage,
const gl::TextureState &textureState) = 0; const gl::TextureState &textureState) = 0;
virtual angle::Result copyImage(const gl::Context *context, virtual angle::Result copyImage(const gl::Context *context,
ImageD3D *dest, ImageD3D *dest,
ImageD3D *source, ImageD3D *source,
...@@ -303,49 +303,58 @@ class RendererD3D : public BufferFactoryD3D ...@@ -303,49 +303,58 @@ class RendererD3D : public BufferFactoryD3D
const gl::Offset &destOffset, const gl::Offset &destOffset,
bool unpackFlipY, bool unpackFlipY,
bool unpackPremultiplyAlpha, bool unpackPremultiplyAlpha,
bool unpackUnmultiplyAlpha) = 0; bool unpackUnmultiplyAlpha) = 0;
virtual TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain) = 0; virtual TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain,
const std::string &label) = 0;
virtual TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage, virtual TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage,
RenderTargetD3D *renderTargetD3D) = 0; RenderTargetD3D *renderTargetD3D,
const std::string &label) = 0;
virtual TextureStorage *createTextureStorageExternal( virtual TextureStorage *createTextureStorageExternal(
egl::Stream *stream, egl::Stream *stream,
const egl::Stream::GLTextureDescription &desc) = 0; const egl::Stream::GLTextureDescription &desc,
const std::string &label) = 0;
virtual TextureStorage *createTextureStorage2D(GLenum internalformat, virtual TextureStorage *createTextureStorage2D(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
bool hintLevelZeroOnly) = 0; const std::string &label,
bool hintLevelZeroOnly) = 0;
virtual TextureStorage *createTextureStorageCube(GLenum internalformat, virtual TextureStorage *createTextureStorageCube(GLenum internalformat,
bool renderTarget, bool renderTarget,
int size, int size,
int levels, int levels,
bool hintLevelZeroOnly) = 0; bool hintLevelZeroOnly,
const std::string &label) = 0;
virtual TextureStorage *createTextureStorage3D(GLenum internalformat, virtual TextureStorage *createTextureStorage3D(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) = 0; int levels,
const std::string &label) = 0;
virtual TextureStorage *createTextureStorage2DArray(GLenum internalformat, virtual TextureStorage *createTextureStorage2DArray(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) = 0; int levels,
const std::string &label) = 0;
virtual TextureStorage *createTextureStorage2DMultisample(GLenum internalformat, virtual TextureStorage *createTextureStorage2DMultisample(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) = 0; bool fixedSampleLocations,
const std::string &label) = 0;
virtual TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat, virtual TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) = 0; bool fixedSampleLocations,
const std::string &label) = 0;
// Buffer-to-texture and Texture-to-buffer copies // Buffer-to-texture and Texture-to-buffer copies
virtual bool supportsFastCopyBufferToTexture(GLenum internalFormat) const = 0; virtual bool supportsFastCopyBufferToTexture(GLenum internalFormat) const = 0;
......
...@@ -699,6 +699,10 @@ angle::Result TextureD3D::syncState(const gl::Context *context, ...@@ -699,6 +699,10 @@ angle::Result TextureD3D::syncState(const gl::Context *context,
const gl::Texture::DirtyBits &dirtyBits, const gl::Texture::DirtyBits &dirtyBits,
gl::Command source) gl::Command source)
{ {
if (dirtyBits.test(gl::Texture::DirtyBitType::DIRTY_BIT_LABEL))
{
mTexStorage->onLabelUpdate();
}
// This could be improved using dirty bits. // This could be improved using dirty bits.
return angle::Result::Continue; return angle::Result::Continue;
} }
...@@ -1307,7 +1311,8 @@ angle::Result TextureD3D_2D::setStorage(const gl::Context *context, ...@@ -1307,7 +1311,8 @@ angle::Result TextureD3D_2D::setStorage(const gl::Context *context,
bool renderTarget = IsRenderTargetUsage(mState.getUsage()); bool renderTarget = IsRenderTargetUsage(mState.getUsage());
TexStoragePointer storage(context); TexStoragePointer storage(context);
storage.reset(mRenderer->createTextureStorage2D(internalFormat, renderTarget, size.width, storage.reset(mRenderer->createTextureStorage2D(internalFormat, renderTarget, size.width,
size.height, static_cast<int>(levels), false)); size.height, static_cast<int>(levels),
mState.getLabel(), false));
ANGLE_TRY(setCompleteTexStorage(context, storage.get())); ANGLE_TRY(setCompleteTexStorage(context, storage.get()));
storage.release(); storage.release();
...@@ -1331,7 +1336,7 @@ angle::Result TextureD3D_2D::bindTexImage(const gl::Context *context, egl::Surfa ...@@ -1331,7 +1336,7 @@ angle::Result TextureD3D_2D::bindTexImage(const gl::Context *context, egl::Surfa
SurfaceD3D *surfaceD3D = GetImplAs<SurfaceD3D>(surface); SurfaceD3D *surfaceD3D = GetImplAs<SurfaceD3D>(surface);
ASSERT(surfaceD3D); ASSERT(surfaceD3D);
mTexStorage = mRenderer->createTextureStorage2D(surfaceD3D->getSwapChain()); mTexStorage = mRenderer->createTextureStorage2D(surfaceD3D->getSwapChain(), mState.getLabel());
mEGLImageTarget = false; mEGLImageTarget = false;
mDirtyImages = false; mDirtyImages = false;
...@@ -1379,7 +1384,8 @@ angle::Result TextureD3D_2D::setEGLImageTarget(const gl::Context *context, ...@@ -1379,7 +1384,8 @@ angle::Result TextureD3D_2D::setEGLImageTarget(const gl::Context *context,
RenderTargetD3D *renderTargetD3D = nullptr; RenderTargetD3D *renderTargetD3D = nullptr;
ANGLE_TRY(eglImaged3d->getRenderTarget(context, &renderTargetD3D)); ANGLE_TRY(eglImaged3d->getRenderTarget(context, &renderTargetD3D));
mTexStorage = mRenderer->createTextureStorageEGLImage(eglImaged3d, renderTargetD3D); mTexStorage =
mRenderer->createTextureStorageEGLImage(eglImaged3d, renderTargetD3D, mState.getLabel());
mEGLImageTarget = true; mEGLImageTarget = true;
return angle::Result::Continue; return angle::Result::Continue;
...@@ -1524,8 +1530,8 @@ angle::Result TextureD3D_2D::createCompleteStorage(bool renderTarget, ...@@ -1524,8 +1530,8 @@ angle::Result TextureD3D_2D::createCompleteStorage(bool renderTarget,
} }
// TODO(geofflang): Determine if the texture creation succeeded // TODO(geofflang): Determine if the texture creation succeeded
outStorage->reset(mRenderer->createTextureStorage2D(internalFormat, renderTarget, width, height, outStorage->reset(mRenderer->createTextureStorage2D(
levels, hintLevelZeroOnly)); internalFormat, renderTarget, width, height, levels, mState.getLabel(), hintLevelZeroOnly));
return angle::Result::Continue; return angle::Result::Continue;
} }
...@@ -2046,7 +2052,8 @@ angle::Result TextureD3D_Cube::setStorage(const gl::Context *context, ...@@ -2046,7 +2052,8 @@ angle::Result TextureD3D_Cube::setStorage(const gl::Context *context,
TexStoragePointer storage(context); TexStoragePointer storage(context);
storage.reset(mRenderer->createTextureStorageCube(internalFormat, renderTarget, size.width, storage.reset(mRenderer->createTextureStorageCube(internalFormat, renderTarget, size.width,
static_cast<int>(levels), false)); static_cast<int>(levels), false,
mState.getLabel()));
ANGLE_TRY(setCompleteTexStorage(context, storage.get())); ANGLE_TRY(setCompleteTexStorage(context, storage.get()));
storage.release(); storage.release();
...@@ -2188,8 +2195,9 @@ angle::Result TextureD3D_Cube::createCompleteStorage(bool renderTarget, ...@@ -2188,8 +2195,9 @@ angle::Result TextureD3D_Cube::createCompleteStorage(bool renderTarget,
} }
// TODO (geofflang): detect if storage creation succeeded // TODO (geofflang): detect if storage creation succeeded
outStorage->reset(mRenderer->createTextureStorageCube( outStorage->reset(mRenderer->createTextureStorageCube(getBaseLevelInternalFormat(),
getBaseLevelInternalFormat(), renderTarget, size, levels, hintLevelZeroOnly)); renderTarget, size, levels,
hintLevelZeroOnly, mState.getLabel()));
return angle::Result::Continue; return angle::Result::Continue;
} }
...@@ -2759,7 +2767,7 @@ angle::Result TextureD3D_3D::setStorage(const gl::Context *context, ...@@ -2759,7 +2767,7 @@ angle::Result TextureD3D_3D::setStorage(const gl::Context *context,
TexStoragePointer storage(context); TexStoragePointer storage(context);
storage.reset(mRenderer->createTextureStorage3D(internalFormat, renderTarget, size.width, storage.reset(mRenderer->createTextureStorage3D(internalFormat, renderTarget, size.width,
size.height, size.depth, size.height, size.depth,
static_cast<int>(levels))); static_cast<int>(levels), mState.getLabel()));
ANGLE_TRY(setCompleteTexStorage(context, storage.get())); ANGLE_TRY(setCompleteTexStorage(context, storage.get()));
storage.release(); storage.release();
...@@ -2866,7 +2874,7 @@ angle::Result TextureD3D_3D::createCompleteStorage(bool renderTarget, ...@@ -2866,7 +2874,7 @@ angle::Result TextureD3D_3D::createCompleteStorage(bool renderTarget,
// TODO: Verify creation of the storage succeeded // TODO: Verify creation of the storage succeeded
outStorage->reset(mRenderer->createTextureStorage3D(internalFormat, renderTarget, width, height, outStorage->reset(mRenderer->createTextureStorage3D(internalFormat, renderTarget, width, height,
depth, levels)); depth, levels, mState.getLabel()));
return angle::Result::Continue; return angle::Result::Continue;
} }
...@@ -3489,9 +3497,9 @@ angle::Result TextureD3D_2DArray::setStorage(const gl::Context *context, ...@@ -3489,9 +3497,9 @@ angle::Result TextureD3D_2DArray::setStorage(const gl::Context *context,
// TODO(geofflang): Verify storage creation had no errors // TODO(geofflang): Verify storage creation had no errors
bool renderTarget = IsRenderTargetUsage(mState.getUsage()); bool renderTarget = IsRenderTargetUsage(mState.getUsage());
TexStoragePointer storage(context); TexStoragePointer storage(context);
storage.reset(mRenderer->createTextureStorage2DArray(internalFormat, renderTarget, size.width, storage.reset(mRenderer->createTextureStorage2DArray(
size.height, size.depth, internalFormat, renderTarget, size.width, size.height, size.depth, static_cast<int>(levels),
static_cast<int>(levels))); mState.getLabel()));
ANGLE_TRY(setCompleteTexStorage(context, storage.get())); ANGLE_TRY(setCompleteTexStorage(context, storage.get()));
storage.release(); storage.release();
...@@ -3592,8 +3600,8 @@ angle::Result TextureD3D_2DArray::createCompleteStorage(bool renderTarget, ...@@ -3592,8 +3600,8 @@ angle::Result TextureD3D_2DArray::createCompleteStorage(bool renderTarget,
GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(width, height, 1)); GLint levels = (mTexStorage ? mTexStorage->getLevelCount() : creationLevels(width, height, 1));
// TODO(geofflang): Verify storage creation succeeds // TODO(geofflang): Verify storage creation succeeds
outStorage->reset(mRenderer->createTextureStorage2DArray(internalFormat, renderTarget, width, outStorage->reset(mRenderer->createTextureStorage2DArray(
height, depth, levels)); internalFormat, renderTarget, width, height, depth, levels, mState.getLabel()));
return angle::Result::Continue; return angle::Result::Continue;
} }
...@@ -3955,7 +3963,7 @@ angle::Result TextureD3D_External::setImageExternal(const gl::Context *context, ...@@ -3955,7 +3963,7 @@ angle::Result TextureD3D_External::setImageExternal(const gl::Context *context,
// If the stream is null, the external image is unbound and we release the storage // If the stream is null, the external image is unbound and we release the storage
if (stream != nullptr) if (stream != nullptr)
{ {
mTexStorage = mRenderer->createTextureStorageExternal(stream, desc); mTexStorage = mRenderer->createTextureStorageExternal(stream, desc, mState.getLabel());
} }
return angle::Result::Continue; return angle::Result::Continue;
...@@ -3972,7 +3980,8 @@ angle::Result TextureD3D_External::setEGLImageTarget(const gl::Context *context, ...@@ -3972,7 +3980,8 @@ angle::Result TextureD3D_External::setEGLImageTarget(const gl::Context *context,
ANGLE_TRY(eglImaged3d->getRenderTarget(context, &renderTargetD3D)); ANGLE_TRY(eglImaged3d->getRenderTarget(context, &renderTargetD3D));
ANGLE_TRY(releaseTexStorage(context)); ANGLE_TRY(releaseTexStorage(context));
mTexStorage = mRenderer->createTextureStorageEGLImage(eglImaged3d, renderTargetD3D); mTexStorage =
mRenderer->createTextureStorageEGLImage(eglImaged3d, renderTargetD3D, mState.getLabel());
return angle::Result::Continue; return angle::Result::Continue;
} }
...@@ -4067,9 +4076,9 @@ angle::Result TextureD3D_2DMultisample::setStorageMultisample(const gl::Context ...@@ -4067,9 +4076,9 @@ angle::Result TextureD3D_2DMultisample::setStorageMultisample(const gl::Context
// We allocate storage immediately instead of doing it lazily like other TextureD3D classes do. // We allocate storage immediately instead of doing it lazily like other TextureD3D classes do.
// This requires less state in this class. // This requires less state in this class.
TexStoragePointer storage(context); TexStoragePointer storage(context);
storage.reset(mRenderer->createTextureStorage2DMultisample(internalformat, size.width, storage.reset(mRenderer->createTextureStorage2DMultisample(
size.height, static_cast<int>(0), internalformat, size.width, size.height, static_cast<int>(0), samples, fixedSampleLocations,
samples, fixedSampleLocations)); mState.getLabel()));
ANGLE_TRY(setCompleteTexStorage(context, storage.get())); ANGLE_TRY(setCompleteTexStorage(context, storage.get()));
storage.release(); storage.release();
...@@ -4187,7 +4196,7 @@ angle::Result TextureD3D_2DMultisampleArray::setStorageMultisample(const gl::Con ...@@ -4187,7 +4196,7 @@ angle::Result TextureD3D_2DMultisampleArray::setStorageMultisample(const gl::Con
TexStoragePointer storage(context); TexStoragePointer storage(context);
storage.reset(mRenderer->createTextureStorage2DMultisampleArray( storage.reset(mRenderer->createTextureStorage2DMultisampleArray(
internalformat, size.width, size.height, size.depth, static_cast<int>(0), samples, internalformat, size.width, size.height, size.depth, static_cast<int>(0), samples,
fixedSampleLocations)); fixedSampleLocations, mState.getLabel()));
ANGLE_TRY(setCompleteTexStorage(context, storage.get())); ANGLE_TRY(setCompleteTexStorage(context, storage.get()));
storage.release(); storage.release();
......
...@@ -40,7 +40,7 @@ constexpr size_t kTextureStorageObserverMessageIndex = 0; ...@@ -40,7 +40,7 @@ constexpr size_t kTextureStorageObserverMessageIndex = 0;
class TextureStorage : public angle::Subject class TextureStorage : public angle::Subject
{ {
public: public:
TextureStorage() {} TextureStorage(const std::string &label) : mTextureLabel(label) {}
~TextureStorage() override {} ~TextureStorage() override {}
virtual angle::Result onDestroy(const gl::Context *context); virtual angle::Result onDestroy(const gl::Context *context);
...@@ -85,8 +85,11 @@ class TextureStorage : public angle::Subject ...@@ -85,8 +85,11 @@ class TextureStorage : public angle::Subject
virtual angle::Result resolveTexture(const gl::Context *context); virtual angle::Result resolveTexture(const gl::Context *context);
virtual GLsizei getRenderToTextureSamples() const; virtual GLsizei getRenderToTextureSamples() const;
virtual void onLabelUpdate() {}
protected: protected:
const angle::Subject *mSubject; const angle::Subject *mSubject;
const std::string &mTextureLabel;
}; };
inline angle::Result TextureStorage::onDestroy(const gl::Context *context) inline angle::Result TextureStorage::onDestroy(const gl::Context *context)
......
...@@ -3287,23 +3287,27 @@ angle::Result Renderer11::copyImage(const gl::Context *context, ...@@ -3287,23 +3287,27 @@ angle::Result Renderer11::copyImage(const gl::Context *context,
unpackPremultiplyAlpha, unpackUnmultiplyAlpha, mRenderer11DeviceCaps); unpackPremultiplyAlpha, unpackUnmultiplyAlpha, mRenderer11DeviceCaps);
} }
TextureStorage *Renderer11::createTextureStorage2D(SwapChainD3D *swapChain) TextureStorage *Renderer11::createTextureStorage2D(SwapChainD3D *swapChain,
const std::string &label)
{ {
SwapChain11 *swapChain11 = GetAs<SwapChain11>(swapChain); SwapChain11 *swapChain11 = GetAs<SwapChain11>(swapChain);
return new TextureStorage11_2D(this, swapChain11); return new TextureStorage11_2D(this, swapChain11, label);
} }
TextureStorage *Renderer11::createTextureStorageEGLImage(EGLImageD3D *eglImage, TextureStorage *Renderer11::createTextureStorageEGLImage(EGLImageD3D *eglImage,
RenderTargetD3D *renderTargetD3D) RenderTargetD3D *renderTargetD3D,
const std::string &label)
{ {
return new TextureStorage11_EGLImage(this, eglImage, GetAs<RenderTarget11>(renderTargetD3D)); return new TextureStorage11_EGLImage(this, eglImage, GetAs<RenderTarget11>(renderTargetD3D),
label);
} }
TextureStorage *Renderer11::createTextureStorageExternal( TextureStorage *Renderer11::createTextureStorageExternal(
egl::Stream *stream, egl::Stream *stream,
const egl::Stream::GLTextureDescription &desc) const egl::Stream::GLTextureDescription &desc,
const std::string &label)
{ {
return new TextureStorage11_External(this, stream, desc); return new TextureStorage11_External(this, stream, desc, label);
} }
TextureStorage *Renderer11::createTextureStorage2D(GLenum internalformat, TextureStorage *Renderer11::createTextureStorage2D(GLenum internalformat,
...@@ -3311,9 +3315,10 @@ TextureStorage *Renderer11::createTextureStorage2D(GLenum internalformat, ...@@ -3311,9 +3315,10 @@ TextureStorage *Renderer11::createTextureStorage2D(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
const std::string &label,
bool hintLevelZeroOnly) bool hintLevelZeroOnly)
{ {
return new TextureStorage11_2D(this, internalformat, renderTarget, width, height, levels, return new TextureStorage11_2D(this, internalformat, renderTarget, width, height, levels, label,
hintLevelZeroOnly); hintLevelZeroOnly);
} }
...@@ -3321,10 +3326,11 @@ TextureStorage *Renderer11::createTextureStorageCube(GLenum internalformat, ...@@ -3321,10 +3326,11 @@ TextureStorage *Renderer11::createTextureStorageCube(GLenum internalformat,
bool renderTarget, bool renderTarget,
int size, int size,
int levels, int levels,
bool hintLevelZeroOnly) bool hintLevelZeroOnly,
const std::string &label)
{ {
return new TextureStorage11_Cube(this, internalformat, renderTarget, size, levels, return new TextureStorage11_Cube(this, internalformat, renderTarget, size, levels,
hintLevelZeroOnly); hintLevelZeroOnly, label);
} }
TextureStorage *Renderer11::createTextureStorage3D(GLenum internalformat, TextureStorage *Renderer11::createTextureStorage3D(GLenum internalformat,
...@@ -3332,10 +3338,11 @@ TextureStorage *Renderer11::createTextureStorage3D(GLenum internalformat, ...@@ -3332,10 +3338,11 @@ TextureStorage *Renderer11::createTextureStorage3D(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) int levels,
const std::string &label)
{ {
return new TextureStorage11_3D(this, internalformat, renderTarget, width, height, depth, return new TextureStorage11_3D(this, internalformat, renderTarget, width, height, depth, levels,
levels); label);
} }
TextureStorage *Renderer11::createTextureStorage2DArray(GLenum internalformat, TextureStorage *Renderer11::createTextureStorage2DArray(GLenum internalformat,
...@@ -3343,10 +3350,11 @@ TextureStorage *Renderer11::createTextureStorage2DArray(GLenum internalformat, ...@@ -3343,10 +3350,11 @@ TextureStorage *Renderer11::createTextureStorage2DArray(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) int levels,
const std::string &label)
{ {
return new TextureStorage11_2DArray(this, internalformat, renderTarget, width, height, depth, return new TextureStorage11_2DArray(this, internalformat, renderTarget, width, height, depth,
levels); levels, label);
} }
TextureStorage *Renderer11::createTextureStorage2DMultisample(GLenum internalformat, TextureStorage *Renderer11::createTextureStorage2DMultisample(GLenum internalformat,
...@@ -3354,10 +3362,11 @@ TextureStorage *Renderer11::createTextureStorage2DMultisample(GLenum internalfor ...@@ -3354,10 +3362,11 @@ TextureStorage *Renderer11::createTextureStorage2DMultisample(GLenum internalfor
GLsizei height, GLsizei height,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) bool fixedSampleLocations,
const std::string &label)
{ {
return new TextureStorage11_2DMultisample(this, internalformat, width, height, levels, samples, return new TextureStorage11_2DMultisample(this, internalformat, width, height, levels, samples,
fixedSampleLocations); fixedSampleLocations, label);
} }
TextureStorage *Renderer11::createTextureStorage2DMultisampleArray(GLenum internalformat, TextureStorage *Renderer11::createTextureStorage2DMultisampleArray(GLenum internalformat,
...@@ -3366,10 +3375,11 @@ TextureStorage *Renderer11::createTextureStorage2DMultisampleArray(GLenum intern ...@@ -3366,10 +3375,11 @@ TextureStorage *Renderer11::createTextureStorage2DMultisampleArray(GLenum intern
GLsizei depth, GLsizei depth,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) bool fixedSampleLocations,
const std::string &label)
{ {
return new TextureStorage11_2DMultisampleArray(this, internalformat, width, height, depth, return new TextureStorage11_2DMultisampleArray(this, internalformat, width, height, depth,
levels, samples, fixedSampleLocations); levels, samples, fixedSampleLocations, label);
} }
angle::Result Renderer11::readFromAttachment(const gl::Context *context, angle::Result Renderer11::readFromAttachment(const gl::Context *context,
......
...@@ -233,48 +233,56 @@ class Renderer11 : public RendererD3D ...@@ -233,48 +233,56 @@ class Renderer11 : public RendererD3D
bool unpackPremultiplyAlpha, bool unpackPremultiplyAlpha,
bool unpackUnmultiplyAlpha) override; bool unpackUnmultiplyAlpha) override;
TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain) override; TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain,
const std::string &label) override;
TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage, TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage,
RenderTargetD3D *renderTargetD3D) override; RenderTargetD3D *renderTargetD3D,
TextureStorage *createTextureStorageExternal( const std::string &label) override;
egl::Stream *stream, TextureStorage *createTextureStorageExternal(egl::Stream *stream,
const egl::Stream::GLTextureDescription &desc) override; const egl::Stream::GLTextureDescription &desc,
const std::string &label) override;
TextureStorage *createTextureStorage2D(GLenum internalformat, TextureStorage *createTextureStorage2D(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
const std::string &label,
bool hintLevelZeroOnly) override; bool hintLevelZeroOnly) override;
TextureStorage *createTextureStorageCube(GLenum internalformat, TextureStorage *createTextureStorageCube(GLenum internalformat,
bool renderTarget, bool renderTarget,
int size, int size,
int levels, int levels,
bool hintLevelZeroOnly) override; bool hintLevelZeroOnly,
const std::string &label) override;
TextureStorage *createTextureStorage3D(GLenum internalformat, TextureStorage *createTextureStorage3D(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) override; int levels,
const std::string &label) override;
TextureStorage *createTextureStorage2DArray(GLenum internalformat, TextureStorage *createTextureStorage2DArray(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) override; int levels,
const std::string &label) override;
TextureStorage *createTextureStorage2DMultisample(GLenum internalformat, TextureStorage *createTextureStorage2DMultisample(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) override; bool fixedSampleLocations,
const std::string &label) override;
TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat, TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) override; bool fixedSampleLocations,
const std::string &label) override;
VertexBuffer *createVertexBuffer() override; VertexBuffer *createVertexBuffer() override;
IndexBuffer *createIndexBuffer() override; IndexBuffer *createIndexBuffer() override;
......
...@@ -143,7 +143,11 @@ class TextureStorage11 : public TextureStorage ...@@ -143,7 +143,11 @@ class TextureStorage11 : public TextureStorage
GLsizei getRenderToTextureSamples() const override; GLsizei getRenderToTextureSamples() const override;
protected: protected:
TextureStorage11(Renderer11 *renderer, UINT bindFlags, UINT miscFlags, GLenum internalFormat); TextureStorage11(Renderer11 *renderer,
UINT bindFlags,
UINT miscFlags,
GLenum internalFormat,
const std::string &label);
int getLevelWidth(int mipLevel) const; int getLevelWidth(int mipLevel) const;
int getLevelHeight(int mipLevel) const; int getLevelHeight(int mipLevel) const;
int getLevelDepth(int mipLevel) const; int getLevelDepth(int mipLevel) const;
...@@ -277,13 +281,14 @@ class TextureStorage11 : public TextureStorage ...@@ -277,13 +281,14 @@ class TextureStorage11 : public TextureStorage
class TextureStorage11_2D : public TextureStorage11 class TextureStorage11_2D : public TextureStorage11
{ {
public: public:
TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swapchain); TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swapchain, const std::string &label);
TextureStorage11_2D(Renderer11 *renderer, TextureStorage11_2D(Renderer11 *renderer,
GLenum internalformat, GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
const std::string &label,
bool hintLevelZeroOnly = false); bool hintLevelZeroOnly = false);
~TextureStorage11_2D() override; ~TextureStorage11_2D() override;
...@@ -377,7 +382,8 @@ class TextureStorage11_External : public TextureStorage11 ...@@ -377,7 +382,8 @@ class TextureStorage11_External : public TextureStorage11
public: public:
TextureStorage11_External(Renderer11 *renderer, TextureStorage11_External(Renderer11 *renderer,
egl::Stream *stream, egl::Stream *stream,
const egl::Stream::GLTextureDescription &glDesc); const egl::Stream::GLTextureDescription &glDesc,
const std::string &label);
~TextureStorage11_External() override; ~TextureStorage11_External() override;
angle::Result onDestroy(const gl::Context *context) override; angle::Result onDestroy(const gl::Context *context) override;
...@@ -444,7 +450,8 @@ class TextureStorage11ImmutableBase : public TextureStorage11 ...@@ -444,7 +450,8 @@ class TextureStorage11ImmutableBase : public TextureStorage11
TextureStorage11ImmutableBase(Renderer11 *renderer, TextureStorage11ImmutableBase(Renderer11 *renderer,
UINT bindFlags, UINT bindFlags,
UINT miscFlags, UINT miscFlags,
GLenum internalFormat); GLenum internalFormat,
const std::string &label);
void associateImage(Image11 *image, const gl::ImageIndex &index) override; void associateImage(Image11 *image, const gl::ImageIndex &index) override;
void disassociateImage(const gl::ImageIndex &index, Image11 *expectedImage) override; void disassociateImage(const gl::ImageIndex &index, Image11 *expectedImage) override;
...@@ -470,7 +477,8 @@ class TextureStorage11_EGLImage final : public TextureStorage11ImmutableBase ...@@ -470,7 +477,8 @@ class TextureStorage11_EGLImage final : public TextureStorage11ImmutableBase
public: public:
TextureStorage11_EGLImage(Renderer11 *renderer, TextureStorage11_EGLImage(Renderer11 *renderer,
EGLImageD3D *eglImage, EGLImageD3D *eglImage,
RenderTarget11 *renderTarget11); RenderTarget11 *renderTarget11,
const std::string &label);
~TextureStorage11_EGLImage() override; ~TextureStorage11_EGLImage() override;
angle::Result getSubresourceIndex(const gl::Context *context, angle::Result getSubresourceIndex(const gl::Context *context,
...@@ -535,7 +543,8 @@ class TextureStorage11_Cube : public TextureStorage11 ...@@ -535,7 +543,8 @@ class TextureStorage11_Cube : public TextureStorage11
bool renderTarget, bool renderTarget,
int size, int size,
int levels, int levels,
bool hintLevelZeroOnly); bool hintLevelZeroOnly,
const std::string &label);
~TextureStorage11_Cube() override; ~TextureStorage11_Cube() override;
angle::Result onDestroy(const gl::Context *context) override; angle::Result onDestroy(const gl::Context *context) override;
...@@ -630,7 +639,8 @@ class TextureStorage11_3D : public TextureStorage11 ...@@ -630,7 +639,8 @@ class TextureStorage11_3D : public TextureStorage11
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels); int levels,
const std::string &label);
~TextureStorage11_3D() override; ~TextureStorage11_3D() override;
angle::Result onDestroy(const gl::Context *context) override; angle::Result onDestroy(const gl::Context *context) override;
...@@ -701,7 +711,8 @@ class TextureStorage11_2DArray : public TextureStorage11 ...@@ -701,7 +711,8 @@ class TextureStorage11_2DArray : public TextureStorage11
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels); int levels,
const std::string &label);
~TextureStorage11_2DArray() override; ~TextureStorage11_2DArray() override;
angle::Result onDestroy(const gl::Context *context) override; angle::Result onDestroy(const gl::Context *context) override;
...@@ -799,7 +810,8 @@ class TextureStorage11_2DMultisample final : public TextureStorage11ImmutableBas ...@@ -799,7 +810,8 @@ class TextureStorage11_2DMultisample final : public TextureStorage11ImmutableBas
GLsizei height, GLsizei height,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations); bool fixedSampleLocations,
const std::string &label);
~TextureStorage11_2DMultisample() override; ~TextureStorage11_2DMultisample() override;
angle::Result onDestroy(const gl::Context *context) override; angle::Result onDestroy(const gl::Context *context) override;
...@@ -854,7 +866,8 @@ class TextureStorage11_2DMultisampleArray final : public TextureStorage11Immutab ...@@ -854,7 +866,8 @@ class TextureStorage11_2DMultisampleArray final : public TextureStorage11Immutab
GLsizei depth, GLsizei depth,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations); bool fixedSampleLocations,
const std::string &label);
~TextureStorage11_2DMultisampleArray() override; ~TextureStorage11_2DMultisampleArray() override;
angle::Result onDestroy(const gl::Context *context) override; angle::Result onDestroy(const gl::Context *context) override;
......
...@@ -2868,21 +2868,24 @@ angle::Result Renderer9::copyImage(const gl::Context *context, ...@@ -2868,21 +2868,24 @@ angle::Result Renderer9::copyImage(const gl::Context *context,
unpackPremultiplyAlpha, unpackUnmultiplyAlpha); unpackPremultiplyAlpha, unpackUnmultiplyAlpha);
} }
TextureStorage *Renderer9::createTextureStorage2D(SwapChainD3D *swapChain) TextureStorage *Renderer9::createTextureStorage2D(SwapChainD3D *swapChain, const std::string &label)
{ {
SwapChain9 *swapChain9 = GetAs<SwapChain9>(swapChain); SwapChain9 *swapChain9 = GetAs<SwapChain9>(swapChain);
return new TextureStorage9_2D(this, swapChain9); return new TextureStorage9_2D(this, swapChain9, label);
} }
TextureStorage *Renderer9::createTextureStorageEGLImage(EGLImageD3D *eglImage, TextureStorage *Renderer9::createTextureStorageEGLImage(EGLImageD3D *eglImage,
RenderTargetD3D *renderTargetD3D) RenderTargetD3D *renderTargetD3D,
const std::string &label)
{ {
return new TextureStorage9_EGLImage(this, eglImage, GetAs<RenderTarget9>(renderTargetD3D)); return new TextureStorage9_EGLImage(this, eglImage, GetAs<RenderTarget9>(renderTargetD3D),
label);
} }
TextureStorage *Renderer9::createTextureStorageExternal( TextureStorage *Renderer9::createTextureStorageExternal(
egl::Stream *stream, egl::Stream *stream,
const egl::Stream::GLTextureDescription &desc) const egl::Stream::GLTextureDescription &desc,
const std::string &label)
{ {
UNIMPLEMENTED(); UNIMPLEMENTED();
return nullptr; return nullptr;
...@@ -2893,19 +2896,21 @@ TextureStorage *Renderer9::createTextureStorage2D(GLenum internalformat, ...@@ -2893,19 +2896,21 @@ TextureStorage *Renderer9::createTextureStorage2D(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
const std::string &label,
bool hintLevelZeroOnly) bool hintLevelZeroOnly)
{ {
return new TextureStorage9_2D(this, internalformat, renderTarget, width, height, levels); return new TextureStorage9_2D(this, internalformat, renderTarget, width, height, levels, label);
} }
TextureStorage *Renderer9::createTextureStorageCube(GLenum internalformat, TextureStorage *Renderer9::createTextureStorageCube(GLenum internalformat,
bool renderTarget, bool renderTarget,
int size, int size,
int levels, int levels,
bool hintLevelZeroOnly) bool hintLevelZeroOnly,
const std::string &label)
{ {
return new TextureStorage9_Cube(this, internalformat, renderTarget, size, levels, return new TextureStorage9_Cube(this, internalformat, renderTarget, size, levels,
hintLevelZeroOnly); hintLevelZeroOnly, label);
} }
TextureStorage *Renderer9::createTextureStorage3D(GLenum internalformat, TextureStorage *Renderer9::createTextureStorage3D(GLenum internalformat,
...@@ -2913,7 +2918,8 @@ TextureStorage *Renderer9::createTextureStorage3D(GLenum internalformat, ...@@ -2913,7 +2918,8 @@ TextureStorage *Renderer9::createTextureStorage3D(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) int levels,
const std::string &label)
{ {
// 3D textures are not supported by the D3D9 backend. // 3D textures are not supported by the D3D9 backend.
UNREACHABLE(); UNREACHABLE();
...@@ -2926,7 +2932,8 @@ TextureStorage *Renderer9::createTextureStorage2DArray(GLenum internalformat, ...@@ -2926,7 +2932,8 @@ TextureStorage *Renderer9::createTextureStorage2DArray(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) int levels,
const std::string &label)
{ {
// 2D array textures are not supported by the D3D9 backend. // 2D array textures are not supported by the D3D9 backend.
UNREACHABLE(); UNREACHABLE();
...@@ -2939,7 +2946,8 @@ TextureStorage *Renderer9::createTextureStorage2DMultisample(GLenum internalform ...@@ -2939,7 +2946,8 @@ TextureStorage *Renderer9::createTextureStorage2DMultisample(GLenum internalform
GLsizei height, GLsizei height,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) bool fixedSampleLocations,
const std::string &label)
{ {
// 2D multisampled textures are not supported by the D3D9 backend. // 2D multisampled textures are not supported by the D3D9 backend.
UNREACHABLE(); UNREACHABLE();
...@@ -2953,7 +2961,8 @@ TextureStorage *Renderer9::createTextureStorage2DMultisampleArray(GLenum interna ...@@ -2953,7 +2961,8 @@ TextureStorage *Renderer9::createTextureStorage2DMultisampleArray(GLenum interna
GLsizei depth, GLsizei depth,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) bool fixedSampleLocations,
const std::string &label)
{ {
// 2D multisampled textures are not supported by the D3D9 backend. // 2D multisampled textures are not supported by the D3D9 backend.
UNREACHABLE(); UNREACHABLE();
......
...@@ -275,49 +275,57 @@ class Renderer9 : public RendererD3D ...@@ -275,49 +275,57 @@ class Renderer9 : public RendererD3D
bool unpackFlipY, bool unpackFlipY,
bool unpackPremultiplyAlpha, bool unpackPremultiplyAlpha,
bool unpackUnmultiplyAlpha) override; bool unpackUnmultiplyAlpha) override;
TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain) override; TextureStorage *createTextureStorage2D(SwapChainD3D *swapChain,
const std::string &label) override;
TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage, TextureStorage *createTextureStorageEGLImage(EGLImageD3D *eglImage,
RenderTargetD3D *renderTargetD3D) override; RenderTargetD3D *renderTargetD3D,
TextureStorage *createTextureStorageExternal( const std::string &label) override;
egl::Stream *stream, TextureStorage *createTextureStorageExternal(egl::Stream *stream,
const egl::Stream::GLTextureDescription &desc) override; const egl::Stream::GLTextureDescription &desc,
const std::string &label) override;
TextureStorage *createTextureStorage2D(GLenum internalformat, TextureStorage *createTextureStorage2D(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
const std::string &label,
bool hintLevelZeroOnly) override; bool hintLevelZeroOnly) override;
TextureStorage *createTextureStorageCube(GLenum internalformat, TextureStorage *createTextureStorageCube(GLenum internalformat,
bool renderTarget, bool renderTarget,
int size, int size,
int levels, int levels,
bool hintLevelZeroOnly) override; bool hintLevelZeroOnly,
const std::string &label) override;
TextureStorage *createTextureStorage3D(GLenum internalformat, TextureStorage *createTextureStorage3D(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) override; int levels,
const std::string &label) override;
TextureStorage *createTextureStorage2DArray(GLenum internalformat, TextureStorage *createTextureStorage2DArray(GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels) override; int levels,
const std::string &label) override;
TextureStorage *createTextureStorage2DMultisample(GLenum internalformat, TextureStorage *createTextureStorage2DMultisample(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) override; bool fixedSampleLocations,
const std::string &label) override;
TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat, TextureStorage *createTextureStorage2DMultisampleArray(GLenum internalformat,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
GLsizei depth, GLsizei depth,
int levels, int levels,
int samples, int samples,
bool fixedSampleLocations) override; bool fixedSampleLocations,
const std::string &label) override;
// Buffer creation // Buffer creation
VertexBuffer *createVertexBuffer() override; VertexBuffer *createVertexBuffer() override;
......
...@@ -24,8 +24,9 @@ ...@@ -24,8 +24,9 @@
namespace rx namespace rx
{ {
TextureStorage9::TextureStorage9(Renderer9 *renderer, DWORD usage) TextureStorage9::TextureStorage9(Renderer9 *renderer, DWORD usage, const std::string &label)
: mTopLevel(0), : TextureStorage(label),
mTopLevel(0),
mMipLevels(0), mMipLevels(0),
mTextureWidth(0), mTextureWidth(0),
mTextureHeight(0), mTextureHeight(0),
...@@ -103,8 +104,10 @@ angle::Result TextureStorage9::setData(const gl::Context *context, ...@@ -103,8 +104,10 @@ angle::Result TextureStorage9::setData(const gl::Context *context,
return angle::Result::Stop; return angle::Result::Stop;
} }
TextureStorage9_2D::TextureStorage9_2D(Renderer9 *renderer, SwapChain9 *swapchain) TextureStorage9_2D::TextureStorage9_2D(Renderer9 *renderer,
: TextureStorage9(renderer, D3DUSAGE_RENDERTARGET) SwapChain9 *swapchain,
const std::string &label)
: TextureStorage9(renderer, D3DUSAGE_RENDERTARGET, label)
{ {
IDirect3DTexture9 *surfaceTexture = swapchain->getOffscreenTexture(); IDirect3DTexture9 *surfaceTexture = swapchain->getOffscreenTexture();
mTexture = surfaceTexture; mTexture = surfaceTexture;
...@@ -126,8 +129,9 @@ TextureStorage9_2D::TextureStorage9_2D(Renderer9 *renderer, ...@@ -126,8 +129,9 @@ TextureStorage9_2D::TextureStorage9_2D(Renderer9 *renderer,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels) int levels,
: TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget)) const std::string &label)
: TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget), label)
{ {
mTexture = nullptr; mTexture = nullptr;
...@@ -285,9 +289,11 @@ angle::Result TextureStorage9_2D::copyToStorage(const gl::Context *context, ...@@ -285,9 +289,11 @@ angle::Result TextureStorage9_2D::copyToStorage(const gl::Context *context,
TextureStorage9_EGLImage::TextureStorage9_EGLImage(Renderer9 *renderer, TextureStorage9_EGLImage::TextureStorage9_EGLImage(Renderer9 *renderer,
EGLImageD3D *image, EGLImageD3D *image,
RenderTarget9 *renderTarget9) RenderTarget9 *renderTarget9,
: TextureStorage9(renderer, D3DUSAGE_RENDERTARGET), mImage(image) const std::string &label)
: TextureStorage9(renderer, D3DUSAGE_RENDERTARGET, label), mImage(image)
{ {
mInternalFormat = renderTarget9->getInternalFormat(); mInternalFormat = renderTarget9->getInternalFormat();
mTextureFormat = renderTarget9->getD3DFormat(); mTextureFormat = renderTarget9->getD3DFormat();
mTextureWidth = renderTarget9->getWidth(); mTextureWidth = renderTarget9->getWidth();
...@@ -397,8 +403,9 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer9 *renderer, ...@@ -397,8 +403,9 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer9 *renderer,
bool renderTarget, bool renderTarget,
int size, int size,
int levels, int levels,
bool hintLevelZeroOnly) bool hintLevelZeroOnly,
: TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget)) const std::string &label)
: TextureStorage9(renderer, GetTextureUsage(internalformat, renderTarget), label)
{ {
mTexture = nullptr; mTexture = nullptr;
for (size_t i = 0; i < gl::kCubeFaceCount; ++i) for (size_t i = 0; i < gl::kCubeFaceCount; ++i)
......
...@@ -64,7 +64,7 @@ class TextureStorage9 : public TextureStorage ...@@ -64,7 +64,7 @@ class TextureStorage9 : public TextureStorage
Renderer9 *mRenderer; Renderer9 *mRenderer;
TextureStorage9(Renderer9 *renderer, DWORD usage); TextureStorage9(Renderer9 *renderer, DWORD usage, const std::string &label);
private: private:
const DWORD mD3DUsage; const DWORD mD3DUsage;
...@@ -74,13 +74,14 @@ class TextureStorage9 : public TextureStorage ...@@ -74,13 +74,14 @@ class TextureStorage9 : public TextureStorage
class TextureStorage9_2D : public TextureStorage9 class TextureStorage9_2D : public TextureStorage9
{ {
public: public:
TextureStorage9_2D(Renderer9 *renderer, SwapChain9 *swapchain); TextureStorage9_2D(Renderer9 *renderer, SwapChain9 *swapchain, const std::string &label);
TextureStorage9_2D(Renderer9 *renderer, TextureStorage9_2D(Renderer9 *renderer,
GLenum internalformat, GLenum internalformat,
bool renderTarget, bool renderTarget,
GLsizei width, GLsizei width,
GLsizei height, GLsizei height,
int levels); int levels,
const std::string &label);
~TextureStorage9_2D() override; ~TextureStorage9_2D() override;
angle::Result getSurfaceLevel(const gl::Context *context, angle::Result getSurfaceLevel(const gl::Context *context,
...@@ -111,7 +112,10 @@ class TextureStorage9_2D : public TextureStorage9 ...@@ -111,7 +112,10 @@ class TextureStorage9_2D : public TextureStorage9
class TextureStorage9_EGLImage final : public TextureStorage9 class TextureStorage9_EGLImage final : public TextureStorage9
{ {
public: public:
TextureStorage9_EGLImage(Renderer9 *renderer, EGLImageD3D *image, RenderTarget9 *renderTarget9); TextureStorage9_EGLImage(Renderer9 *renderer,
EGLImageD3D *image,
RenderTarget9 *renderTarget9,
const std::string &label);
~TextureStorage9_EGLImage() override; ~TextureStorage9_EGLImage() override;
angle::Result getSurfaceLevel(const gl::Context *context, angle::Result getSurfaceLevel(const gl::Context *context,
...@@ -146,7 +150,9 @@ class TextureStorage9_Cube : public TextureStorage9 ...@@ -146,7 +150,9 @@ class TextureStorage9_Cube : public TextureStorage9
bool renderTarget, bool renderTarget,
int size, int size,
int levels, int levels,
bool hintLevelZeroOnly); bool hintLevelZeroOnly,
const std::string &label);
~TextureStorage9_Cube() override; ~TextureStorage9_Cube() override;
angle::Result getSurfaceLevel(const gl::Context *context, angle::Result getSurfaceLevel(const gl::Context *context,
......
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