Fix invalid framebuffer in compressed texture 3D tests
authorziga-lunarg <ziga@lunarg.com>
Sat, 10 Dec 2022 22:09:31 +0000 (23:09 +0100)
committerPiotr Byszewski <piotr.byszewski@mobica.com>
Fri, 16 Dec 2022 15:22:33 +0000 (15:22 +0000)
Framebuffer attachments must be created with viewType not equal to
VK_IMAGE_VIEW_TYPE_3D

Components: Vulkan

VK-GL-CTS issue: 4118

Affected tests:
dEQP-VK.texture.compressed_3D.*

Change-Id: I221fcc033266f8c344079f9ee9b1fa70c56d9dd9

external/vulkancts/modules/vulkan/texture/vktTextureCompressedFormatTests.cpp

index 11fc4fd..5ef11e1 100644 (file)
@@ -448,7 +448,7 @@ private:
        const ParameterType&                            m_testParameters;
        const tcu::CompressedTexFormat          m_compressedFormat;
        TestTexture3DSp                                         m_texture3D;
-       TextureRenderer                                         m_renderer3D;
+       TextureRenderer                                         m_renderer2D;
 };
 
 Compressed3DTestInstance::Compressed3DTestInstance (Context&                           context,
@@ -457,9 +457,9 @@ Compressed3DTestInstance::Compressed3DTestInstance (Context&                                context,
        , m_testParameters              (testParameters)
        , m_compressedFormat    (mapVkCompressedFormat(testParameters.format))
        , m_texture3D                   (TestTexture3DSp(new pipeline::TestTexture3D(m_compressedFormat, testParameters.width, testParameters.height, testParameters.depth)))
-       , m_renderer3D                  (context, testParameters.sampleCount, testParameters.width, testParameters.height, testParameters.depth, makeComponentMappingRGBA(), VK_IMAGE_TYPE_3D, VK_IMAGE_VIEW_TYPE_3D)
+       , m_renderer2D                  (context, testParameters.sampleCount, testParameters.width, testParameters.height, 1, makeComponentMappingRGBA(), VK_IMAGE_TYPE_2D, VK_IMAGE_VIEW_TYPE_2D)
 {
-       m_renderer3D.add3DTexture               (m_texture3D, testParameters.aspectMask, testParameters.backingMode);
+       m_renderer2D.add3DTexture               (m_texture3D, testParameters.aspectMask, testParameters.backingMode);
 
        VkPhysicalDeviceFeatures                physicalFeatures;
        context.getInstanceInterface().getPhysicalDeviceFeatures(context.getPhysicalDevice(), &physicalFeatures);
@@ -488,13 +488,13 @@ Compressed3DTestInstance::Compressed3DTestInstance (Context&                              context,
 tcu::TestStatus Compressed3DTestInstance::iterate (void)
 {
        tcu::TestLog&                                   log                             = m_context.getTestContext().getLog();
-       const pipeline::TestTexture3D&  texture                 = m_renderer3D.get3DTexture(0);
+       const pipeline::TestTexture3D&  texture                 = m_renderer2D.get3DTexture(0);
        const tcu::TextureFormat                textureFormat   = texture.getTextureFormat();
        const tcu::TextureFormatInfo    formatInfo              = tcu::getTextureFormatInfo(textureFormat);
        const deUint32                                  mipLevel                = m_testParameters.mipmaps ? 1 : 0;
 
        ReferenceParams                                 sampleParams    (TEXTURETYPE_3D);
-       tcu::Surface                                    rendered                (m_renderer3D.getRenderWidth(), m_renderer3D.getRenderHeight());
+       tcu::Surface                                    rendered                (m_renderer2D.getRenderWidth(), m_renderer2D.getRenderHeight());
        vector<float>                                   texCoord;
 
        // Setup params for reference.
@@ -558,7 +558,7 @@ tcu::TestStatus Compressed3DTestInstance::iterate (void)
                // Render texture.
                z = (((float)sliceNdx + 0.5f) / (float)(m_testParameters.depth >> mipLevel));
                computeQuadTexCoord3D(texCoord, tcu::Vec3(0.0f, 0.0f, z), tcu::Vec3(1.0f, 1.0f, z), tcu::IVec3(0,1,2));
-               m_renderer3D.renderQuad(rendered, 0, &texCoord[0], sampleParams);
+               m_renderer2D.renderQuad(rendered, 0, &texCoord[0], sampleParams);
 
                constexpr float coordThreshold = 0.01f;
                isOk = validateTexture(log, rendered, m_texture3D->getTexture(), texCoord, mipLevel, pixelFormat, threshold, coordThreshold, sampleParams);