ShaderRenderCase: add const qualifiers
authorPeter Gal <pgal.u-szeged@partner.samsung.com>
Mon, 28 Sep 2015 17:51:52 +0000 (19:51 +0200)
committerPeter Gal <pgal.u-szeged@partner.samsung.com>
Thu, 12 Nov 2015 18:52:43 +0000 (19:52 +0100)
external/vulkancts/modules/vulkan/shaderrendercase/vktShaderDiscardTests.cpp
external/vulkancts/modules/vulkan/shaderrendercase/vktShaderRenderCase.cpp
external/vulkancts/modules/vulkan/shaderrendercase/vktShaderRenderCase.hpp

index 40416fd..8e3cd3c 100644 (file)
@@ -57,11 +57,11 @@ namespace shaderrendercase
 class SamplerUniformSetup : public UniformSetup
 {
 public:
-                                               SamplerUniformSetup                     (bool useSampler)
+                                               SamplerUniformSetup                     (const bool useSampler)
                                                        : m_useSampler(useSampler)
                                                {}
 
-       virtual void            setup                                            (ShaderRenderCaseInstance& instance, const tcu::Vec4& constCoords)
+       virtual void            setup                                            (ShaderRenderCaseInstance& instance, const tcu::Vec4& constCoords) const
                                                {
                                                        DE_UNREF(constCoords);
                                                        instance.useUniform(0u, UI_ONE);
@@ -71,30 +71,30 @@ public:
                                                }
 
 private:
-       bool                            m_useSampler;
+       const bool                      m_useSampler;
 };
 
 
 class ShaderDiscardCaseInstance : public ShaderRenderCaseInstance
 {
 public:
-                                               ShaderDiscardCaseInstance       (Context&                       context,
-                                                                                                       bool                            isVertexCase,
-                                                                                                       ShaderEvaluator&        evaulator,
-                                                                                                       UniformSetup&           uniformSetup,
-                                                                                                       bool                            usesTexture);
+                                               ShaderDiscardCaseInstance       (Context&                               context,
+                                                                                                       const bool                              isVertexCase,
+                                                                                                       const ShaderEvaluator&  evaulator,
+                                                                                                       const UniformSetup&             uniformSetup,
+                                                                                                       const bool                              usesTexture);
        virtual                         ~ShaderDiscardCaseInstance      (void);
 
 private:
-       bool                            m_usesTexture;
-       Texture2D*                      m_brickTexture;
+       const bool                      m_usesTexture;
+       const Texture2D*        m_brickTexture;
 };
 
-ShaderDiscardCaseInstance::ShaderDiscardCaseInstance (Context&                 context,
-                                                                                                        bool                           isVertexCase,
-                                                                                                        ShaderEvaluator&       evaulator,
-                                                                                                        UniformSetup&          uniformSetup,
-                                                                                                        bool                           usesTexture)
+ShaderDiscardCaseInstance::ShaderDiscardCaseInstance (Context&                                 context,
+                                                                                                        const bool                                     isVertexCase,
+                                                                                                        const ShaderEvaluator&         evaulator,
+                                                                                                        const UniformSetup&            uniformSetup,
+                                                                                                        const bool                                     usesTexture)
        : ShaderRenderCaseInstance      (context, isVertexCase, evaulator, uniformSetup, DE_NULL)
        , m_usesTexture                         (usesTexture)
 {
@@ -121,13 +121,13 @@ ShaderDiscardCaseInstance::~ShaderDiscardCaseInstance (void)
 class ShaderDiscardCase : public ShaderRenderCase
 {
 public:
-                                               ShaderDiscardCase                       (tcu::TestContext&      testCtx,
-                                                                                                        const char*            name,
-                                                                                                        const char*            description,
-                                                                                                        const char*            shaderSource,
-                                                                                                        ShaderEvalFunc         evalFunc,
-                                                                                                        bool                           usesTexture);
-       virtual TestInstance*   createInstance                  (Context& context) const
+                                                       ShaderDiscardCase                       (tcu::TestContext&              testCtx,
+                                                                                                                const char*                    name,
+                                                                                                                const char*                    description,
+                                                                                                                const char*                    shaderSource,
+                                                                                                                const ShaderEvalFunc   evalFunc,
+                                                                                                                const bool                             usesTexture);
+       virtual TestInstance*   createInstance                          (Context& context) const
                                                        {
                                                                DE_ASSERT(m_evaluator != DE_NULL);
                                                                DE_ASSERT(m_uniformSetup != DE_NULL);
@@ -135,15 +135,15 @@ public:
                                                        }
 
 private:
-       bool                            m_usesTexture;
+       const bool                              m_usesTexture;
 };
 
-ShaderDiscardCase::ShaderDiscardCase (tcu::TestContext&        testCtx,
-                                                                         const char*           name,
-                                                                         const char*           description,
-                                                                         const char*           shaderSource,
-                                                                         ShaderEvalFunc        evalFunc,
-                                                                         bool                          usesTexture)
+ShaderDiscardCase::ShaderDiscardCase (tcu::TestContext&                testCtx,
+                                                                         const char*                   name,
+                                                                         const char*                   description,
+                                                                         const char*                   shaderSource,
+                                                                         const ShaderEvalFunc  evalFunc,
+                                                                         const bool                    usesTexture)
        : ShaderRenderCase      (testCtx, name, description, false, evalFunc, new SamplerUniformSetup(usesTexture), DE_NULL)
        , m_usesTexture         (usesTexture)
 {
index 87f8c16..ef4b0f9 100644 (file)
@@ -101,13 +101,13 @@ public:
        tcu::Vec4                                                       getUserAttrib                   (int attribNdx, float sx, float sy) const;
 
 private:
-       int                                                                     m_gridSize;
-       int                                                                     m_numVertices;
-       int                                                                     m_numTriangles;
-       tcu::Vec4                                                       m_constCoords;
-       std::vector<tcu::Mat4>                          m_userAttribTransforms;
+       const int                                                       m_gridSize;
+       const int                                                       m_numVertices;
+       const int                                                       m_numTriangles;
+       const tcu::Vec4                                         m_constCoords;
+       const std::vector<tcu::Mat4>            m_userAttribTransforms;
 
-       std::vector<TextureBinding>                     m_textures;
+       const std::vector<TextureBinding>       m_textures;
 
        std::vector<tcu::Vec4>                          m_screenPos;
        std::vector<tcu::Vec4>                          m_positions;
@@ -131,7 +131,7 @@ QuadGrid::QuadGrid (int                                                                     gridSize,
        , m_userAttribTransforms        (userAttribTransforms)
        , m_textures                            (textures)
 {
-       tcu::Vec4 viewportScale = tcu::Vec4((float)width, (float)height, 0.0f, 0.0f);
+       const tcu::Vec4 viewportScale   ((float)width, (float)height, 0.0f, 0.0f);
 
        // Compute vertices.
        m_screenPos.resize(m_numVertices);
@@ -192,8 +192,8 @@ QuadGrid::~QuadGrid (void)
 
 inline tcu::Vec4 QuadGrid::getCoords (float sx, float sy) const
 {
-       float fx = 2.0f * sx - 1.0f;
-       float fy = 2.0f * sy - 1.0f;
+       const float fx = 2.0f * sx - 1.0f;
+       const float fy = 2.0f * sy - 1.0f;
        return tcu::Vec4(fx, fy, -fx + 0.33f*fy, -0.275f*fx - fy);
 }
 
@@ -267,7 +267,7 @@ void ShaderEvalContext::reset (float sx, float sy)
        unitCoords      = m_quadGrid.getUnitCoords(sx, sy);
 
        // Compute user attributes.
-       int numAttribs = m_quadGrid.getNumUserAttribs();
+       const int numAttribs = m_quadGrid.getNumUserAttribs();
        DE_ASSERT(numAttribs <= MAX_USER_ATTRIBS);
        for (int attribNdx = 0; attribNdx < numAttribs; attribNdx++)
                in[attribNdx] = m_quadGrid.getUserAttrib(attribNdx, sx, sy);
@@ -297,7 +297,7 @@ ShaderEvaluator::~ShaderEvaluator (void)
 {
 }
 
-void ShaderEvaluator::evaluate (ShaderEvalContext& ctx)
+void ShaderEvaluator::evaluate (ShaderEvalContext& ctx) const
 {
        DE_ASSERT(m_evalFunc);
        m_evalFunc(ctx);
@@ -319,7 +319,7 @@ UniformSetup::~UniformSetup (void)
 {
 }
 
-void UniformSetup::setup (ShaderRenderCaseInstance& instance, const tcu::Vec4& constCoords)
+void UniformSetup::setup (ShaderRenderCaseInstance& instance, const tcu::Vec4& constCoords) const
 {
        if (m_setupFunc)
                m_setupFunc(instance, constCoords);
@@ -327,13 +327,13 @@ void UniformSetup::setup (ShaderRenderCaseInstance& instance, const tcu::Vec4& c
 
 // ShaderRenderCase.
 
-ShaderRenderCase::ShaderRenderCase (tcu::TestContext&  testCtx,
-                                                                       const std::string&      name,
-                                                                       const std::string&      description,
-                                                                       bool                            isVertexCase,
-                                                                       ShaderEvalFunc          evalFunc,
-                                                                       UniformSetup*           uniformSetup,
-                                                                       AttributeSetupFunc      attribFunc)
+ShaderRenderCase::ShaderRenderCase (tcu::TestContext&                  testCtx,
+                                                                       const std::string&                      name,
+                                                                       const std::string&                      description,
+                                                                       const bool                                      isVertexCase,
+                                                                       const ShaderEvalFunc            evalFunc,
+                                                                       const UniformSetup*                     uniformSetup,
+                                                                       const AttributeSetupFunc        attribFunc)
        : vkt::TestCase         (testCtx, name, description)
        , m_isVertexCase        (isVertexCase)
        , m_evaluator           (new ShaderEvaluator(evalFunc))
@@ -341,13 +341,13 @@ ShaderRenderCase::ShaderRenderCase (tcu::TestContext&     testCtx,
        , m_attribFunc          (attribFunc)
 {}
 
-ShaderRenderCase::ShaderRenderCase (tcu::TestContext&  testCtx,
-                                                                       const std::string&      name,
-                                                                       const std::string&      description,
-                                                                       bool                            isVertexCase,
-                                                                       ShaderEvaluator*        evaluator,
-                                                                       UniformSetup*           uniformSetup,
-                                                                       AttributeSetupFunc      attribFunc)
+ShaderRenderCase::ShaderRenderCase (tcu::TestContext&                  testCtx,
+                                                                       const std::string&                      name,
+                                                                       const std::string&                      description,
+                                                                       const bool                                      isVertexCase,
+                                                                       const ShaderEvaluator*          evaluator,
+                                                                       const UniformSetup*                     uniformSetup,
+                                                                       const AttributeSetupFunc        attribFunc)
        : vkt::TestCase         (testCtx, name, description)
        , m_isVertexCase        (isVertexCase)
        , m_evaluator           (evaluator)
@@ -378,11 +378,11 @@ TestInstance* ShaderRenderCase::createInstance (Context& context) const
 
 // ShaderRenderCaseInstance.
 
-ShaderRenderCaseInstance::ShaderRenderCaseInstance (Context&                   context,
-                                                                                                       bool                            isVertexCase,
-                                                                                                       ShaderEvaluator&        evaluator,
-                                                                                                       UniformSetup&           uniformSetup,
-                                                                                                       AttributeSetupFunc      attribFunc)
+ShaderRenderCaseInstance::ShaderRenderCaseInstance (Context&                                   context,
+                                                                                                       const bool                                      isVertexCase,
+                                                                                                       const ShaderEvaluator&          evaluator,
+                                                                                                       const UniformSetup&                     uniformSetup,
+                                                                                                       const AttributeSetupFunc        attribFunc)
        : vkt::TestInstance     (context)
        , m_clearColor          (DEFAULT_CLEAR_COLOR)
        , m_memAlloc            (m_context.getDeviceInterface(), m_context.getDevice(), getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()))
@@ -429,25 +429,25 @@ tcu::TestStatus ShaderRenderCaseInstance::iterate (void)
        setup();
 
        // Create quad grid.
-       tcu::IVec2              viewportSize    = getViewportSize();
-       int                             width                   = viewportSize.x();
-       int                     height                  = viewportSize.y();
+       const tcu::IVec2        viewportSize    = getViewportSize();
+       const int                       width                   = viewportSize.x();
+       const int                       height                  = viewportSize.y();
 
-       QuadGrid                quadGrid                (m_isVertexCase ? GRID_SIZE : 4, width, height, tcu::Vec4(0.125f, 0.25f, 0.5f, 1.0f), m_userAttribTransforms, m_textures);
+       QuadGrid                        quadGrid                (m_isVertexCase ? GRID_SIZE : 4, width, height, tcu::Vec4(0.125f, 0.25f, 0.5f, 1.0f), m_userAttribTransforms, m_textures);
 
        // Render result.
-       tcu::Surface    resImage                (width, height);
+       tcu::Surface            resImage                (width, height);
        render(resImage, quadGrid);
 
        // Compute reference.
-       tcu::Surface    refImage                (width, height);
+       tcu::Surface            refImage                (width, height);
        if (m_isVertexCase)
                computeVertexReference(refImage, quadGrid);
        else
                computeFragmentReference(refImage, quadGrid);
 
        // Compare.
-       bool                    compareOk               = compareImages(resImage, refImage, 0.05f);
+       const bool                      compareOk               = compareImages(resImage, refImage, 0.05f);
 
        if (compareOk)
                return tcu::TestStatus::pass("Result image matches reference");
@@ -708,7 +708,7 @@ void ShaderRenderCaseInstance::useUniform (deUint32 bindingLocation, BaseUniform
        #undef UNIFORM_CASE
 }
 
-tcu::IVec2 ShaderRenderCaseInstance::getViewportSize (void) const
+const tcu::IVec2 ShaderRenderCaseInstance::getViewportSize (void) const
 {
        return tcu::IVec2(de::min(m_renderSize.x(), MAX_RENDER_WIDTH),
                                          de::min(m_renderSize.y(), MAX_RENDER_HEIGHT));
@@ -830,27 +830,27 @@ void ShaderRenderCaseInstance::setupDefaultInputs (const QuadGrid& quadGrid)
                { MAT4,         4, 4 }
        };
 
-       for (size_t i = 0; i < m_enabledBaseAttributes.size(); i++)
+       for (size_t attrNdx = 0; attrNdx < m_enabledBaseAttributes.size(); attrNdx++)
        {
                for (int userNdx = 0; userNdx < DE_LENGTH_OF_ARRAY(userAttributes); userNdx++)
                {
-                       if (userAttributes[userNdx].type != m_enabledBaseAttributes[i].type)
+                       if (userAttributes[userNdx].type != m_enabledBaseAttributes[attrNdx].type)
                                continue;
 
-                       addAttribute(m_enabledBaseAttributes[i].location, VK_FORMAT_R32G32B32A32_SFLOAT, sizeof(tcu::Vec4), quadGrid.getNumVertices(), quadGrid.getUserAttrib(userNdx));
+                       addAttribute(m_enabledBaseAttributes[attrNdx].location, VK_FORMAT_R32G32B32A32_SFLOAT, sizeof(tcu::Vec4), quadGrid.getNumVertices(), quadGrid.getUserAttrib(userNdx));
                }
 
                for (int matNdx = 0; matNdx < DE_LENGTH_OF_ARRAY(matrices); matNdx++)
                {
 
-                       if (matrices[matNdx].matrixType != m_enabledBaseAttributes[i].type)
+                       if (matrices[matNdx].matrixType != m_enabledBaseAttributes[attrNdx].type)
                                continue;
 
-                       int numCols = matrices[matNdx].numCols;
+                       const int numCols = matrices[matNdx].numCols;
 
                        for (int colNdx = 0; colNdx < numCols; colNdx++)
                        {
-                               addAttribute(m_enabledBaseAttributes[i].location + colNdx, VK_FORMAT_R32G32B32A32_SFLOAT, 4 * sizeof(float), quadGrid.getNumVertices(), quadGrid.getUserAttrib(colNdx));
+                               addAttribute(m_enabledBaseAttributes[attrNdx].location + colNdx, VK_FORMAT_R32G32B32A32_SFLOAT, 4 * sizeof(float), quadGrid.getNumVertices(), quadGrid.getUserAttrib(colNdx));
                        }
                }
        }
@@ -1294,9 +1294,9 @@ void ShaderRenderCaseInstance::render (tcu::Surface& result, const QuadGrid& qua
                std::vector<VkImageMemoryBarrier> barriers;
                std::vector<void*> barrierPtrs;
 
-               for(size_t i = 0; i < m_textures.size(); i++)
+               for(size_t textureNdx = 0; textureNdx < m_textures.size(); textureNdx++)
                {
-                       const TextureBinding& textureBinding = m_textures[i];
+                       const TextureBinding& textureBinding = m_textures[textureNdx];
                        const Texture2D* texture = textureBinding.get2D();
                        VkImageMemoryBarrier textureBarrier =
                        {
@@ -1319,7 +1319,7 @@ void ShaderRenderCaseInstance::render (tcu::Surface& result, const QuadGrid& qua
                        };
 
                        barriers.push_back(textureBarrier);
-                       barrierPtrs.push_back((void*)&barriers[i]);
+                       barrierPtrs.push_back((void*)&barriers[textureNdx]);
                }
 
                vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, false, (deUint32)barrierPtrs.size(), (const void * const*)&barrierPtrs[0]);
@@ -1335,7 +1335,7 @@ void ShaderRenderCaseInstance::render (tcu::Surface& result, const QuadGrid& qua
 
 
                const deUint32 numberOfVertexAttributes = (deUint32)m_vertexBuffers.size();
-               std::vector<VkDeviceSize> offsets(numberOfVertexAttributes, 0);
+               const std::vector<VkDeviceSize> offsets(numberOfVertexAttributes, 0);
 
                vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, numberOfVertexAttributes, &m_vertexBuffers[0], &offsets[0]);
                vk.cmdDrawIndexed(*m_cmdBuffer, 0, quadGrid.getNumTriangles() * 3, 0, 0, 1);
@@ -1383,8 +1383,6 @@ void ShaderRenderCaseInstance::render (tcu::Surface& result, const QuadGrid& qua
 
 
                // Copy image to buffer
-               Move<VkCmdBuffer> cmdBuffer;
-
                const VkCmdBufferCreateInfo cmdBufferParams =
                {
                        VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO,       // VkStructureType                      sType;
@@ -1403,7 +1401,7 @@ void ShaderRenderCaseInstance::render (tcu::Surface& result, const QuadGrid& qua
                        DE_NULL                                                                         // VkFramebuffer                        framebuffer;
                };
 
-               cmdBuffer = createCommandBuffer(vk, vkDevice, &cmdBufferParams);
+               const Move<VkCmdBuffer> cmdBuffer = createCommandBuffer(vk, vkDevice, &cmdBufferParams);
 
                const VkBufferImageCopy copyParams =
                {
@@ -1441,7 +1439,7 @@ void ShaderRenderCaseInstance::render (tcu::Surface& result, const QuadGrid& qua
 
                VK_CHECK(vk.invalidateMappedMemoryRanges(vkDevice, 1u, &range));
 
-               tcu::TextureFormat resultFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8);
+               const tcu::TextureFormat resultFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8);
                const tcu::ConstPixelBufferAccess resultAccess(resultFormat, m_renderSize.x(), m_renderSize.y(), 1, imagePtr);
 
                tcu::copy(result.getAccess(), resultAccess);
@@ -1453,11 +1451,11 @@ void ShaderRenderCaseInstance::render (tcu::Surface& result, const QuadGrid& qua
 void ShaderRenderCaseInstance::computeVertexReference (tcu::Surface& result, const QuadGrid& quadGrid)
 {
        // Buffer info.
-       int                                             width           = result.getWidth();
-       int                                             height          = result.getHeight();
-       int                                             gridSize        = quadGrid.getGridSize();
-       int                                             stride          = gridSize + 1;
-       bool                                    hasAlpha        = true; // \todo [2015-09-07 elecro] add correct alpha check
+       const int                               width           = result.getWidth();
+       const int                               height          = result.getHeight();
+       const int                               gridSize        = quadGrid.getGridSize();
+       const int                               stride          = gridSize + 1;
+       const bool                              hasAlpha        = true; // \todo [2015-09-07 elecro] add correct alpha check
        ShaderEvalContext               evalCtx         (quadGrid);
 
        // Evaluate color for each vertex.
@@ -1465,9 +1463,9 @@ void ShaderRenderCaseInstance::computeVertexReference (tcu::Surface& result, con
        for (int y = 0; y < gridSize+1; y++)
        for (int x = 0; x < gridSize+1; x++)
        {
-               float           sx                      = (float)x / (float)gridSize;
-               float           sy                      = (float)y / (float)gridSize;
-               int                     vtxNdx          = ((y * (gridSize+1)) + x);
+               const float     sx                      = (float)x / (float)gridSize;
+               const float     sy                      = (float)y / (float)gridSize;
+               const int       vtxNdx          = ((y * (gridSize+1)) + x);
 
                evalCtx.reset(sx, sy);
                m_evaluator.evaluate(evalCtx);
@@ -1484,31 +1482,31 @@ void ShaderRenderCaseInstance::computeVertexReference (tcu::Surface& result, con
        for (int y = 0; y < gridSize; y++)
        for (int x = 0; x < gridSize; x++)
        {
-               float           x0              = (float)x       / (float)gridSize;
-               float           x1              = (float)(x + 1) / (float)gridSize;
-               float           y0              = (float)y       / (float)gridSize;
-               float           y1              = (float)(y + 1) / (float)gridSize;
-
-               float           sx0             = x0 * (float)width;
-               float           sx1             = x1 * (float)width;
-               float           sy0             = y0 * (float)height;
-               float           sy1             = y1 * (float)height;
-               float           oosx    = 1.0f / (sx1 - sx0);
-               float           oosy    = 1.0f / (sy1 - sy0);
-
-               int                     ix0             = deCeilFloatToInt32(sx0 - 0.5f);
-               int                     ix1             = deCeilFloatToInt32(sx1 - 0.5f);
-               int                     iy0             = deCeilFloatToInt32(sy0 - 0.5f);
-               int                     iy1             = deCeilFloatToInt32(sy1 - 0.5f);
-
-               int                     v00             = (y * stride) + x;
-               int                     v01             = (y * stride) + x + 1;
-               int                     v10             = ((y + 1) * stride) + x;
-               int                     v11             = ((y + 1) * stride) + x + 1;
-               tcu::Vec4       c00             = colors[v00];
-               tcu::Vec4       c01             = colors[v01];
-               tcu::Vec4       c10             = colors[v10];
-               tcu::Vec4       c11             = colors[v11];
+               const float             x0              = (float)x       / (float)gridSize;
+               const float             x1              = (float)(x + 1) / (float)gridSize;
+               const float             y0              = (float)y       / (float)gridSize;
+               const float             y1              = (float)(y + 1) / (float)gridSize;
+
+               const float             sx0             = x0 * (float)width;
+               const float             sx1             = x1 * (float)width;
+               const float             sy0             = y0 * (float)height;
+               const float             sy1             = y1 * (float)height;
+               const float             oosx    = 1.0f / (sx1 - sx0);
+               const float             oosy    = 1.0f / (sy1 - sy0);
+
+               const int               ix0             = deCeilFloatToInt32(sx0 - 0.5f);
+               const int               ix1             = deCeilFloatToInt32(sx1 - 0.5f);
+               const int               iy0             = deCeilFloatToInt32(sy0 - 0.5f);
+               const int               iy1             = deCeilFloatToInt32(sy1 - 0.5f);
+
+               const int               v00             = (y * stride) + x;
+               const int               v01             = (y * stride) + x + 1;
+               const int               v10             = ((y + 1) * stride) + x;
+               const int               v11             = ((y + 1) * stride) + x + 1;
+               const tcu::Vec4 c00             = colors[v00];
+               const tcu::Vec4 c01             = colors[v01];
+               const tcu::Vec4 c10             = colors[v10];
+               const tcu::Vec4 c11             = colors[v11];
 
                //printf("(%d,%d) -> (%f..%f, %f..%f) (%d..%d, %d..%d)\n", x, y, sx0, sx1, sy0, sy1, ix0, ix1, iy0, iy1);
 
@@ -1518,19 +1516,19 @@ void ShaderRenderCaseInstance::computeVertexReference (tcu::Surface& result, con
                        DE_ASSERT(deInBounds32(ix, 0, width));
                        DE_ASSERT(deInBounds32(iy, 0, height));
 
-                       float                           sfx             = (float)ix + 0.5f;
-                       float                           sfy             = (float)iy + 0.5f;
-                       float                           fx1             = deFloatClamp((sfx - sx0) * oosx, 0.0f, 1.0f);
-                       float                           fy1             = deFloatClamp((sfy - sy0) * oosy, 0.0f, 1.0f);
+                       const float                     sfx             = (float)ix + 0.5f;
+                       const float                     sfy             = (float)iy + 0.5f;
+                       const float                     fx1             = deFloatClamp((sfx - sx0) * oosx, 0.0f, 1.0f);
+                       const float                     fy1             = deFloatClamp((sfy - sy0) * oosy, 0.0f, 1.0f);
 
                        // Triangle quad interpolation.
-                       bool                            tri             = fx1 + fy1 <= 1.0f;
-                       float                           tx              = tri ? fx1 : (1.0f-fx1);
-                       float                           ty              = tri ? fy1 : (1.0f-fy1);
+                       const bool                      tri             = fx1 + fy1 <= 1.0f;
+                       const float                     tx              = tri ? fx1 : (1.0f-fx1);
+                       const float                     ty              = tri ? fy1 : (1.0f-fy1);
                        const tcu::Vec4&        t0              = tri ? c00 : c11;
                        const tcu::Vec4&        t1              = tri ? c01 : c10;
                        const tcu::Vec4&        t2              = tri ? c10 : c01;
-                       tcu::Vec4                       color   = t0 + (t1-t0)*tx + (t2-t0)*ty;
+                       const tcu::Vec4         color   = t0 + (t1-t0)*tx + (t2-t0)*ty;
 
                        result.setPixel(ix, iy, tcu::RGBA(color));
                }
@@ -1540,17 +1538,17 @@ void ShaderRenderCaseInstance::computeVertexReference (tcu::Surface& result, con
 void ShaderRenderCaseInstance::computeFragmentReference (tcu::Surface& result, const QuadGrid& quadGrid)
 {
        // Buffer info.
-       int                                     width           = result.getWidth();
-       int                                     height          = result.getHeight();
-       bool                            hasAlpha        = true;  // \todo [2015-09-07 elecro] add correct alpha check
+       const int                       width           = result.getWidth();
+       const int                       height          = result.getHeight();
+       const bool                      hasAlpha        = true;  // \todo [2015-09-07 elecro] add correct alpha check
        ShaderEvalContext       evalCtx         (quadGrid);
 
        // Render.
        for (int y = 0; y < height; y++)
        for (int x = 0; x < width; x++)
        {
-               float sx = ((float)x + 0.5f) / (float)width;
-               float sy = ((float)y + 0.5f) / (float)height;
+               const float sx = ((float)x + 0.5f) / (float)width;
+               const float sy = ((float)y + 0.5f) / (float)height;
 
                evalCtx.reset(sx, sy);
                m_evaluator.evaluate(evalCtx);
index 06722ba..0fb8209 100644 (file)
@@ -155,17 +155,17 @@ inline void evalCoordsSwizzleWZYX         (ShaderEvalContext& c) { c.color = c.coords.s
 class ShaderEvaluator
 {
 public:
-                                               ShaderEvaluator                 (void);
-                                               ShaderEvaluator                 (ShaderEvalFunc evalFunc);
-       virtual                         ~ShaderEvaluator                (void);
+                                                       ShaderEvaluator                 (void);
+                                                       ShaderEvaluator                 (const ShaderEvalFunc evalFunc);
+       virtual                                 ~ShaderEvaluator                (void);
 
-       virtual void            evaluate                                (ShaderEvalContext& ctx);
+       virtual void                    evaluate                                (ShaderEvalContext& ctx) const;
 
 private:
-                                               ShaderEvaluator                 (const ShaderEvaluator&);   // not allowed!
-       ShaderEvaluator&        operator=                               (const ShaderEvaluator&);   // not allowed!
+                                                       ShaderEvaluator                 (const ShaderEvaluator&);   // not allowed!
+       ShaderEvaluator&                operator=                               (const ShaderEvaluator&);   // not allowed!
 
-       ShaderEvalFunc          m_evalFunc;
+       const ShaderEvalFunc    m_evalFunc;
 };
 
 // UniformSetup
@@ -175,16 +175,16 @@ typedef void (*UniformSetupFunc) (ShaderRenderCaseInstance& instance, const tcu:
 class UniformSetup
 {
 public:
-                                               UniformSetup                    (void);
-                                               UniformSetup                    (UniformSetupFunc setup);
-       virtual                         ~UniformSetup                   (void);
-       virtual void            setup                                   (ShaderRenderCaseInstance& instance, const tcu::Vec4& constCoords);
+                                                       UniformSetup                    (void);
+                                                       UniformSetup                    (const UniformSetupFunc setup);
+       virtual                                 ~UniformSetup                   (void);
+       virtual void                    setup                                   (ShaderRenderCaseInstance& instance, const tcu::Vec4& constCoords) const;
 
 private:
-                                               UniformSetup                    (const UniformSetup&);  // not allowed!
-       UniformSetup&           operator=                               (const UniformSetup&);  // not allowed!
+                                                       UniformSetup                    (const UniformSetup&);  // not allowed!
+       UniformSetup&                   operator=                               (const UniformSetup&);  // not allowed!
 
-       UniformSetupFunc        m_setupFunc;
+       const UniformSetupFunc  m_setupFunc;
 };
 
 typedef void (*AttributeSetupFunc) (ShaderRenderCaseInstance& instance, deUint32 numVertices);
@@ -192,35 +192,35 @@ typedef void (*AttributeSetupFunc) (ShaderRenderCaseInstance& instance, deUint32
 class ShaderRenderCase : public vkt::TestCase
 {
 public:
-                                                       ShaderRenderCase        (tcu::TestContext&      testCtx,
-                                                                                                const std::string&     name,
-                                                                                                const std::string&     description,
-                                                                                                bool                           isVertexCase,
-                                                                                                ShaderEvalFunc         evalFunc,
-                                                                                                UniformSetup*          uniformSetup,
-                                                                                                AttributeSetupFunc     attribFunc);
-
-                                                       ShaderRenderCase        (tcu::TestContext&      testCtx,
-                                                                                                const std::string&     name,
-                                                                                                const std::string&     description,
-                                                                                                bool                           isVertexCase,
-                                                                                                ShaderEvaluator*       evaluator,
-                                                                                                UniformSetup*          uniformSetup,
-                                                                                                AttributeSetupFunc attribFunc);
-
-
-       virtual                                 ~ShaderRenderCase       (void);
-       virtual void                    initPrograms            (vk::ProgramCollection<glu::ProgramSources>& programCollection) const;
-       virtual TestInstance*   createInstance          (Context& context) const;
+                                                               ShaderRenderCase        (tcu::TestContext&                      testCtx,
+                                                                                                        const std::string&                     name,
+                                                                                                        const std::string&                     description,
+                                                                                                        const bool                                     isVertexCase,
+                                                                                                        const ShaderEvalFunc           evalFunc,
+                                                                                                        const UniformSetup*            uniformSetup,
+                                                                                                        const AttributeSetupFunc       attribFunc);
+
+                                                               ShaderRenderCase        (tcu::TestContext&                      testCtx,
+                                                                                                        const std::string&                     name,
+                                                                                                        const std::string&                     description,
+                                                                                                        const bool                                     isVertexCase,
+                                                                                                        const ShaderEvaluator*         evaluator,
+                                                                                                        const UniformSetup*            uniformSetup,
+                                                                                                        const AttributeSetupFunc       attribFunc);
+
+
+       virtual                                         ~ShaderRenderCase       (void);
+       virtual void                            initPrograms            (vk::ProgramCollection<glu::ProgramSources>& programCollection) const;
+       virtual TestInstance*           createInstance          (Context& context) const;
 
 protected:
-       std::string                             m_vertShaderSource;
-       std::string                             m_fragShaderSource;
+       std::string                                     m_vertShaderSource;
+       std::string                                     m_fragShaderSource;
 
-       bool                                    m_isVertexCase;
-       ShaderEvaluator*                m_evaluator;
-       UniformSetup*                   m_uniformSetup;
-       AttributeSetupFunc              m_attribFunc;
+       const bool                                      m_isVertexCase;
+       const ShaderEvaluator*          m_evaluator;
+       const UniformSetup*                     m_uniformSetup;
+       const AttributeSetupFunc        m_attribFunc;
 };
 
 
@@ -349,11 +349,11 @@ enum BaseAttributeType
 class ShaderRenderCaseInstance : public vkt::TestInstance
 {
 public:
-                                                                                                               ShaderRenderCaseInstance        (Context&                       context,
-                                                                                                                                                                       bool                            isVertexCase,
-                                                                                                                                                                       ShaderEvaluator&        evaluator,
-                                                                                                                                                                       UniformSetup&           uniformSetup,
-                                                                                                                                                                       AttributeSetupFunc      attribFunc);
+                                                                                                               ShaderRenderCaseInstance        (Context&                                       context,
+                                                                                                                                                                       const bool                                      isVertexCase,
+                                                                                                                                                                       const ShaderEvaluator&          evaluator,
+                                                                                                                                                                       const UniformSetup&                     uniformSetup,
+                                                                                                                                                                       const AttributeSetupFunc        attribFunc);
 
        virtual                                                                                         ~ShaderRenderCaseInstance       (void);
        virtual tcu::TestStatus                                                         iterate                                         (void);
@@ -369,7 +369,7 @@ public:
        template<typename T>
        void                                                                                            addUniform                                      (deUint32                               bindingLocation,
                                                                                                                                                                        vk::VkDescriptorType    descriptorType,
-                                                                                                                                                                       const T                                 data);
+                                                                                                                                                                       const T&                                data);
        void                                                                                            addUniform                                      (deUint32                               bindingLocation,
                                                                                                                                                                        vk::VkDescriptorType    descriptorType,
                                                                                                                                                                        deUint32                                dataSize,
@@ -383,10 +383,10 @@ protected:
        virtual void                                                                            setup                                           (void);
        virtual void                                                                            setupUniforms                           (const tcu::Vec4& constCoords);
 
-       tcu::IVec2                                                                                      getViewportSize                         (void) const;
+       const tcu::IVec2                                                                        getViewportSize                         (void) const;
 
        std::vector<tcu::Mat4>                                                          m_userAttribTransforms;
-       tcu::Vec4                                                                                       m_clearColor;
+       const tcu::Vec4                                                                         m_clearColor;
        std::vector<TextureBinding>                                                     m_textures;
 
        vk::SimpleAllocator                                                                     m_memAlloc;
@@ -401,13 +401,13 @@ private:
        void                                                                                            computeVertexReference          (tcu::Surface& result, const QuadGrid& quadGrid);
        void                                                                                            computeFragmentReference        (tcu::Surface& result, const QuadGrid& quadGrid);
        bool                                                                                            compareImages                           (const tcu::Surface&    resImage,
-                                                                                                                                                                       const tcu::Surface&             refImage,
-                                                                                                                                                                       float                                   errorThreshold);
+                                                                                                                                                                        const tcu::Surface&    refImage,
+                                                                                                                                                                        float                                  errorThreshold);
 
-       bool                                                                                            m_isVertexCase;
-       ShaderEvaluator&                                                                        m_evaluator;
-       UniformSetup&                                                                           m_uniformSetup;
-       AttributeSetupFunc                                                                      m_attribFunc;
+       const bool                                                                                      m_isVertexCase;
+       const ShaderEvaluator&                                                          m_evaluator;
+       const UniformSetup&                                                                     m_uniformSetup;
+       const AttributeSetupFunc                                                        m_attribFunc;
 
        struct EnabledBaseAttribute
        {
@@ -471,7 +471,7 @@ private:
 };
 
 template<typename T>
-void ShaderRenderCaseInstance::addUniform (deUint32 bindingLocation, vk::VkDescriptorType descriptorType, const T data)
+void ShaderRenderCaseInstance::addUniform (deUint32 bindingLocation, vk::VkDescriptorType descriptorType, const T& data)
 {
        addUniform(bindingLocation, descriptorType, sizeof(T), &data);
 }