From 8851654997a413c24ec789d7ea8675f7c89769dd Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Sun, 3 Jun 2018 20:38:17 -0700 Subject: Updated tests --- Tests/TestApp/src/TestCopyTexData.cpp | 45 ++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) (limited to 'Tests/TestApp/src/TestCopyTexData.cpp') diff --git a/Tests/TestApp/src/TestCopyTexData.cpp b/Tests/TestApp/src/TestCopyTexData.cpp index d34f10e..63dd2b9 100644 --- a/Tests/TestApp/src/TestCopyTexData.cpp +++ b/Tests/TestApp/src/TestCopyTexData.cpp @@ -94,7 +94,18 @@ void TestCopyTexData::Test2DTexture( TEXTURE_FORMAT Format ) TexDesc.Usage = USAGE_DEFAULT; Diligent::RefCntAutoPtr pSrcTex, pDstTex; - m_pDevice->CreateTexture( TexDesc, TextureData(), &pSrcTex ); + auto FmtAttribs = m_pDevice->GetTextureFormatInfo(Format); + auto TexelSize = FmtAttribs.ComponentSize * FmtAttribs.NumComponents; + std::vector DummyData(TexDesc.Width * TexDesc.Height * TexelSize); + TextureData InitData; + InitData.NumSubresources = TexDesc.MipLevels; + std::vector SubResData(InitData.NumSubresources); + for(Uint32 mip=0; mip < TexDesc.MipLevels; ++mip) + { + SubResData[mip] = TextureSubResData{DummyData.data(), (TexDesc.Width >> mip) * TexelSize, 0}; + } + InitData.pSubResources = SubResData.data(); + m_pDevice->CreateTexture( TexDesc, InitData, &pSrcTex ); m_pDevice->CreateTexture( TexDesc, TextureData(), &pDstTex ); pDstTex->CopyData(m_pContext, pSrcTex, @@ -135,7 +146,24 @@ void TestCopyTexData::Test2DTexArray( TEXTURE_FORMAT Format ) TexDesc.Usage = USAGE_DEFAULT; Diligent::RefCntAutoPtr pSrcTex, pDstTex; - m_pDevice->CreateTexture( TexDesc, TextureData(), &pSrcTex ); + auto FmtAttribs = m_pDevice->GetTextureFormatInfo(Format); + auto TexelSize = FmtAttribs.ComponentSize * FmtAttribs.NumComponents; + std::vector DummyData(TexDesc.Width * TexDesc.Height * TexelSize); + TextureData InitData; + InitData.NumSubresources = TexDesc.MipLevels * TexDesc.ArraySize; + std::vector SubResData(InitData.NumSubresources); + Uint32 subres = 0; + for(Uint32 slice=0; slice < TexDesc.ArraySize; ++slice) + { + for(Uint32 mip=0; mip < TexDesc.MipLevels; ++mip) + { + SubResData[subres++] = TextureSubResData{DummyData.data(), (TexDesc.Width >> mip) * TexelSize, 0}; + } + } + VERIFY_EXPR(subres == InitData.NumSubresources); + InitData.pSubResources = SubResData.data(); + + m_pDevice->CreateTexture( TexDesc, InitData, &pSrcTex ); m_pDevice->CreateTexture( TexDesc, TextureData(), &pDstTex ); pDstTex->CopyData(m_pContext, pSrcTex, @@ -175,7 +203,18 @@ void TestCopyTexData::Test3DTexture( TEXTURE_FORMAT Format ) TexDesc.Usage = USAGE_DEFAULT; Diligent::RefCntAutoPtr pSrcTex, pDstTex; - m_pDevice->CreateTexture( TexDesc, TextureData(), &pSrcTex ); + auto FmtAttribs = m_pDevice->GetTextureFormatInfo(Format); + auto TexelSize = FmtAttribs.ComponentSize * FmtAttribs.NumComponents; + std::vector DummyData(TexDesc.Width * TexDesc.Height * TexDesc.Depth * TexelSize); + TextureData InitData; + InitData.NumSubresources = TexDesc.MipLevels; + std::vector SubResData(InitData.NumSubresources); + for(Uint32 mip=0; mip < TexDesc.MipLevels; ++mip) + { + SubResData[mip] = TextureSubResData{DummyData.data(), (TexDesc.Width >> mip) * TexelSize, (TexDesc.Width >> mip) * (TexDesc.Height >> mip) * TexelSize}; + } + InitData.pSubResources = SubResData.data(); + m_pDevice->CreateTexture( TexDesc, InitData, &pSrcTex ); m_pDevice->CreateTexture( TexDesc, TextureData(), &pDstTex ); pDstTex->CopyData(m_pContext, pSrcTex, -- cgit v1.2.3