Re-instating test cases from old graphics backend 00/272100/4
authorDavid Steele <david.steele@samsung.com>
Tue, 8 Mar 2022 18:43:27 +0000 (18:43 +0000)
committerDavid Steele <david.steele@samsung.com>
Fri, 11 Mar 2022 10:35:41 +0000 (10:35 +0000)
Some test cases were partially or completely commented out during
development of the new graphics backend, and have never been fully
recovered.

This patch attempts to re-instate the test cases, and fix issues
with the test harness & new graphics backend.

Main fix: Testing uniforms by explicit name, including for array
based uniforms.

  Test harness has the capability to check what value was written
  to any uniform - it records the uniform name and value in a set
  of maps, for later query.

  DALi implementation of array based uniforms in a shader is to
  record the location of the first index, and store the basename
  in the graphics reflection. The TestGraphicsReflection has to
  perform the same way, so that the hashing implementations don't
  use the "[N]" code.

  Uniform locations were working by happy accident; have changed
  this to now record the locations as returned by the GL side of
  the test abstraction into the test graphics reflection.

  Modified the uniform buffer write to also handle array based
  uniforms. Now, as arrays have their length encoded in the test
  reflection, each element can be written to the GL abstraction.

  Fixed off-by-one error for location values.

  Modified the semantics for custom uniforms in test cases. Instead
  of providing the first element only, the array notation indicates
  the size of the array.

Some TCs used to test for caching of GL capabilites by DALi core,
however, caching is now done in the GL backend in adaptor, which
the toolkit test harness does not use, so these caching tests are
no longer valid.

Change-Id: I4b2d372a95653fd62117e61e5b57a1c66b17092c
Signed-off-by: David Steele <david.steele@samsung.com>
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-gl-abstraction.h
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-buffer.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-program.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.h
automated-tests/src/dali-toolkit/utc-Dali-BubbleEmitter.cpp
automated-tests/src/dali-toolkit/utc-Dali-GaussianBlurView.cpp
automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp
automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp

index aec9f5d..cc7fac4 100644 (file)
@@ -2,7 +2,7 @@
 #define TEST_GL_ABSTRACTION_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -913,8 +913,8 @@ public:
     if(it2 == uniformIDs.end())
     {
       // Uniform not found, so add it...
-      uniformIDs[name] = mLastUniformIdUsed++;
-      return mLastUniformIdUsed;
+      uniformIDs[name] = ++mLastUniformIdUsed;
+      return uniformIDs[name];
     }
 
     return it2->second;
@@ -991,7 +991,23 @@ public:
 
     for(const auto& uniform : mCustomUniformData)
     {
-      GetUniformLocation(program, uniform.name.c_str());
+      auto iter = uniform.name.find("[");
+      auto name = uniform.name;
+      if(iter != std::string::npos)
+      {
+        name            = uniform.name.substr(0, iter);
+        auto arrayCount = std::stoi(uniform.name.substr(iter + 1));
+        for(int i = 0; i < arrayCount; ++i)
+        {
+          std::stringstream nss;
+          nss << name << "[" << i << "]";
+          GetUniformLocation(program, nss.str().c_str()); // Generate a GL loc per element
+        }
+      }
+      else
+      {
+        GetUniformLocation(program, name.c_str());
+      }
     }
   }
 
index 8f9b9fc..27f0dce 100644 (file)
@@ -82,65 +82,67 @@ GLenum TestGraphicsBuffer::GetTarget()
 
 void TestGraphicsBuffer::BindAsUniformBuffer(const TestGraphicsProgram* program, const Dali::UniformBufferBindingDescriptor& uboBinding) const
 {
-  auto* reflection = static_cast<const TestGraphicsReflection*>(&program->GetReflection());
-
-  Graphics::UniformBlockInfo uboInfo{};
-  reflection->GetUniformBlock(0, uboInfo);
+  auto*       reflection = static_cast<const TestGraphicsReflection*>(&program->GetReflection());
+  const auto& uboInfo    = reflection->GetTestUniformBlock(0u);
 
   auto  offset = uboBinding.offset;
   auto* data   = memory.data() + offset;
 
   for(const auto& member : uboInfo.members)
   {
-    auto type = reflection->GetMemberType(0, member.location);
-    switch(type)
+    uint32_t numElements = member.numElements > 0 ? member.numElements : 1;
+
+    for(uint32_t i = 0; i < numElements; ++i)
     {
-      case Property::VECTOR4:
-      {
-        auto value = *reinterpret_cast<const Dali::Vector4*>(data + member.offset);
-        mGl.Uniform4f(member.location, value.x, value.y, value.z, value.w);
-        break;
-      }
-      case Property::VECTOR3:
-      {
-        auto value = *reinterpret_cast<const Dali::Vector3*>(data + member.offset);
-        mGl.Uniform3f(member.location, value.x, value.y, value.z);
-        break;
-      }
-      case Property::VECTOR2:
-      {
-        auto value = *reinterpret_cast<const Dali::Vector2*>(data + member.offset);
-        mGl.Uniform2f(member.location, value.x, value.y);
-        break;
-      }
-      case Property::FLOAT:
-      {
-        auto value = *reinterpret_cast<const float*>(data + member.offset);
-        mGl.Uniform1f(member.location, value);
-        break;
-      }
-      case Property::INTEGER:
-      {
-        auto ptr   = reinterpret_cast<const GLint*>(data + member.offset);
-        auto value = *ptr;
-        mGl.Uniform1i(member.location, value);
-        break;
-      }
-      case Property::MATRIX:
-      {
-        auto value = reinterpret_cast<const float*>(data + member.offset);
-        mGl.UniformMatrix4fv(member.location, 1, GL_FALSE, value);
-        break;
-      }
-      case Property::MATRIX3:
-      {
-        auto value = reinterpret_cast<const float*>(data + member.offset);
-        mGl.UniformMatrix3fv(member.location, 1, GL_FALSE, value);
-        break;
-      }
-      default:
+      switch(member.type)
       {
-        fprintf(stderr, "\n%s type not found\n", member.name.c_str());
+        case Property::VECTOR4:
+        {
+          auto value = *reinterpret_cast<const Dali::Vector4*>(data + member.offsets[i]);
+          mGl.Uniform4f(member.locations[i], value.x, value.y, value.z, value.w);
+          break;
+        }
+        case Property::VECTOR3:
+        {
+          auto value = *reinterpret_cast<const Dali::Vector3*>(data + member.offsets[i]);
+          mGl.Uniform3f(member.locations[i], value.x, value.y, value.z);
+          break;
+        }
+        case Property::VECTOR2:
+        {
+          auto value = *reinterpret_cast<const Dali::Vector2*>(data + member.offsets[i]);
+          mGl.Uniform2f(member.locations[i], value.x, value.y);
+          break;
+        }
+        case Property::FLOAT:
+        {
+          auto value = *reinterpret_cast<const float*>(data + member.offsets[i]);
+          mGl.Uniform1f(member.locations[i], value);
+          break;
+        }
+        case Property::INTEGER:
+        {
+          auto ptr   = reinterpret_cast<const GLint*>(data + member.offsets[i]);
+          auto value = *ptr;
+          mGl.Uniform1i(member.locations[i], value);
+          break;
+        }
+        case Property::MATRIX:
+        {
+          auto value = reinterpret_cast<const float*>(data + member.offsets[i]);
+          mGl.UniformMatrix4fv(member.locations[i], 1, GL_FALSE, value);
+          break;
+        }
+        case Property::MATRIX3:
+        {
+          auto value = reinterpret_cast<const float*>(data + member.offsets[i]);
+          mGl.UniformMatrix3fv(member.locations[i], 1, GL_FALSE, value);
+          break;
+        }
+        default:
+        {
+          fprintf(stderr, "\n%s type not found\n", member.name.c_str());
+        }
       }
     }
   }
index a994157..8f2e0c7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,14 +20,15 @@ namespace Dali
 {
 TestGraphicsProgramImpl::TestGraphicsProgramImpl(TestGlAbstraction& gl, const Graphics::ProgramCreateInfo& createInfo, Property::Array& vertexFormats, std::vector<UniformData>& customUniforms)
 : mGl(gl),
+  mId(gl.CreateProgram()),
   mCreateInfo(createInfo),
-  mReflection(gl, vertexFormats, createInfo, customUniforms)
+  mReflection(gl, mId, vertexFormats, createInfo, customUniforms)
 {
-  mId = mGl.CreateProgram();
-
   // Ensure active sampler uniforms are set
   mGl.SetCustomUniforms(customUniforms);
-  mGl.LinkProgram(mId);
+
+  // Don't need to re-register uniforms in GL side - now done in creation of mReflection.
+  // Was previously done in mGl.LinkProgram(mId);
 }
 
 bool TestGraphicsProgramImpl::GetParameter(uint32_t parameterId, void* outData)
index 6971b71..5b3da8c 100644 (file)
@@ -53,9 +53,57 @@ static const std::vector<UniformData> UNIFORMS =
 
     // WARNING: IF YOU CHANGE THIS LIST, ALSO CHANGE mActiveUniforms IN test-gl-abstraction, Initialize
 };
+
+/**
+ * Helper function that returns size of uniform datatypes based
+ * on property type.
+ */
+constexpr int GetSizeForType(Property::Type type)
+{
+  switch(type)
+  {
+    case Property::Type::BOOLEAN:
+    {
+      return sizeof(bool);
+    }
+    case Property::Type::FLOAT:
+    {
+      return sizeof(float);
+    }
+    case Property::Type::INTEGER:
+    {
+      return sizeof(int);
+    }
+    case Property::Type::VECTOR2:
+    {
+      return sizeof(Vector2);
+    }
+    case Property::Type::VECTOR3:
+    {
+      return sizeof(Vector3);
+    }
+    case Property::Type::VECTOR4:
+    {
+      return sizeof(Vector4);
+    }
+    case Property::Type::MATRIX3:
+    {
+      return sizeof(Matrix3);
+    }
+    case Property::Type::MATRIX:
+    {
+      return sizeof(Matrix);
+    }
+    default:
+    {
+      return 0;
+    }
+  };
 }
 
-TestGraphicsReflection::TestGraphicsReflection(TestGlAbstraction& gl, Property::Array& vfs, const Graphics::ProgramCreateInfo& createInfo, std::vector<UniformData>& customUniforms)
+} // namespace
+
+TestGraphicsReflection::TestGraphicsReflection(TestGlAbstraction& gl, uint32_t programId, Property::Array& vfs, const Graphics::ProgramCreateInfo& createInfo, std::vector<UniformData>& customUniforms)
 : mGl(gl),
   mCustomUniforms(customUniforms)
 {
@@ -78,34 +126,72 @@ TestGraphicsReflection::TestGraphicsReflection(TestGlAbstraction& gl, Property::
   mDefaultUniformBlock.name          = "";
   mDefaultUniformBlock.members       = {};
   mDefaultUniformBlock.binding       = 0;
-  mDefaultUniformBlock.size          = 64 * (UNIFORMS.size() + mCustomUniforms.size());
   mDefaultUniformBlock.descriptorSet = 0;
   mDefaultUniformBlock.members.clear();
-  int loc = 0;
+
+  int offset = 0;
   for(const auto& data : UNIFORMS)
   {
     mDefaultUniformBlock.members.emplace_back();
-    auto& item        = mDefaultUniformBlock.members.back();
-    item.name         = data.name;
-    item.binding      = 0;
-    item.offset       = loc * 64;
-    item.location     = loc++;
+    auto& item   = mDefaultUniformBlock.members.back();
+    item.name    = data.name;
+    item.binding = 0;
+    item.offsets.push_back(offset);
+    item.locations.push_back(gl.GetUniformLocation(programId, data.name.c_str()));
     item.bufferIndex  = 0;
     item.uniformClass = Graphics::UniformClass::UNIFORM;
+    item.type         = data.type;
+    offset += GetSizeForType(data.type);
   }
 
   for(const auto& data : mCustomUniforms)
   {
     fprintf(stderr, "\ncustom uniforms: %s\n", data.name.c_str());
     mDefaultUniformBlock.members.emplace_back();
-    auto& item        = mDefaultUniformBlock.members.back();
-    item.name         = data.name;
-    item.binding      = 0;
-    item.offset       = loc * 64;
-    item.location     = loc++;
-    item.bufferIndex  = 0;
-    item.uniformClass = Graphics::UniformClass::UNIFORM;
+    auto& item = mDefaultUniformBlock.members.back();
+
+    auto iter        = data.name.find("[", 0);
+    int  numElements = 1;
+    if(iter != std::string::npos)
+    {
+      auto baseName = data.name.substr(0, iter);
+      iter++;
+      numElements = std::stoi(data.name.substr(iter));
+      if(numElements == 0)
+      {
+        numElements = 1;
+      }
+
+      item.name         = baseName;
+      item.binding      = 0;
+      item.bufferIndex  = 0;
+      item.uniformClass = Graphics::UniformClass::UNIFORM;
+      item.type         = data.type;
+      item.numElements  = numElements;
+
+      for(int i = 0; i < numElements; ++i)
+      {
+        std::stringstream elementNameStream;
+        elementNameStream << baseName << "[" << i << "]";
+
+        item.locations.push_back(gl.GetUniformLocation(programId, elementNameStream.str().c_str()));
+        item.offsets.push_back(offset);
+        offset += GetSizeForType(data.type);
+      }
+    }
+    else
+    {
+      item.name    = data.name;
+      item.binding = 0;
+      item.offsets.push_back(offset);
+      item.locations.push_back(gl.GetUniformLocation(programId, item.name.c_str()));
+      item.bufferIndex  = 0;
+      item.uniformClass = Graphics::UniformClass::UNIFORM;
+      item.type         = data.type;
+      offset += GetSizeForType(data.type);
+    }
   }
+  mDefaultUniformBlock.size = offset;
 
   mUniformBlocks.push_back(mDefaultUniformBlock);
 }
@@ -159,9 +245,13 @@ uint32_t TestGraphicsReflection::GetUniformBlockBinding(uint32_t index) const
 
 uint32_t TestGraphicsReflection::GetUniformBlockSize(uint32_t index) const
 {
-  // 64 bytes per uniform (64 = 4x4 matrix)
-  // TODO: fix if array will be used
-  return 64 * (UNIFORMS.size() + mCustomUniforms.size());
+  if(index >= mUniformBlocks.size())
+  {
+    return 0;
+  }
+
+  const auto& block = mUniformBlocks[index];
+  return block.size;
 }
 
 bool TestGraphicsReflection::GetUniformBlock(uint32_t index, Dali::Graphics::UniformBlockInfo& out) const
@@ -185,8 +275,8 @@ bool TestGraphicsReflection::GetUniformBlock(uint32_t index, Dali::Graphics::Uni
     out.members[i].name         = memberUniform.name;
     out.members[i].binding      = block.binding;
     out.members[i].uniformClass = Graphics::UniformClass::UNIFORM;
-    out.members[i].offset       = memberUniform.offset;
-    out.members[i].location     = memberUniform.location;
+    out.members[i].offset       = memberUniform.offsets[0];
+    out.members[i].location     = memberUniform.locations[0];
   }
 
   return true;
@@ -230,7 +320,7 @@ uint32_t TestGraphicsReflection::GetUniformBlockMemberOffset(uint32_t blockIndex
 {
   if(blockIndex < mUniformBlocks.size() && memberLocation < mUniformBlocks[blockIndex].members.size())
   {
-    return mUniformBlocks[blockIndex].members[memberLocation].offset;
+    return mUniformBlocks[blockIndex].members[memberLocation].offsets[0];
   }
   else
   {
@@ -254,9 +344,4 @@ Graphics::ShaderLanguage TestGraphicsReflection::GetLanguage() const
   return Graphics::ShaderLanguage::GLSL_3_1;
 }
 
-Dali::Property::Type TestGraphicsReflection::GetMemberType(int blockIndex, int location) const
-{
-  return location < static_cast<int>(UNIFORMS.size()) ? UNIFORMS[location].type : mCustomUniforms[location - UNIFORMS.size()].type;
-}
-
 } // namespace Dali
index 2147cae..e968bd5 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TEST_GRAPHICS_REFLECTION_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@ namespace Dali
 class TestGraphicsReflection : public Graphics::Reflection
 {
 public:
-  TestGraphicsReflection(TestGlAbstraction& gl, Property::Array& vertexFormats, const Graphics::ProgramCreateInfo& createInfo, std::vector<UniformData>& customUniforms);
+  TestGraphicsReflection(TestGlAbstraction& gl, uint32_t program_id, Property::Array& vertexFormats, const Graphics::ProgramCreateInfo& createInfo, std::vector<UniformData>& customUniforms);
 
   uint32_t                                        GetVertexAttributeLocation(const std::string& name) const override;
   Dali::Graphics::VertexInputAttributeFormat      GetVertexAttributeFormat(uint32_t location) const override;
@@ -46,6 +46,27 @@ public:
   Graphics::ShaderLanguage                        GetLanguage() const override;
 
 public: // Test methods
+  struct TestUniformInfo
+  {
+    std::string            name{""}; // baseName in the case of arrays
+    Graphics::UniformClass uniformClass{Graphics::UniformClass::UNDEFINED};
+    uint32_t               binding{0u};
+    uint32_t               bufferIndex{0u};
+    std::vector<uint32_t>  offsets{};
+    std::vector<uint32_t>  locations{};
+    uint32_t               numElements{0u}; // 0 elements means this isn't an array; 1 element means this is an array of size 1
+    Property::Type         type;
+  };
+
+  struct TestUniformBlockInfo
+  {
+    std::string                  name{""};
+    uint32_t                     descriptorSet{0u};
+    uint32_t                     binding{0u};
+    uint32_t                     size{0u};
+    std::vector<TestUniformInfo> members{};
+  };
+
   void SetAttributes(std::vector<std::string> locations)
   {
     mAttributes.clear();
@@ -56,14 +77,17 @@ public: // Test methods
     }
   }
 
-  Dali::Property::Type GetMemberType(int blockIndex, int location) const;
+  const TestUniformBlockInfo& GetTestUniformBlock(uint32_t index) const
+  {
+    return mUniformBlocks[index];
+  }
 
   TestGlAbstraction&               mGl;
   mutable std::vector<std::string> mAttributes;
   std::vector<UniformData>         mCustomUniforms;
 
-  Graphics::UniformBlockInfo              mDefaultUniformBlock{}; ///< The emulated UBO containing all the standalone uniforms
-  std::vector<Graphics::UniformBlockInfo> mUniformBlocks{};       ///< List of uniform blocks
+  TestUniformBlockInfo              mDefaultUniformBlock{}; ///< The emulated UBO containing all the standalone uniforms
+  std::vector<TestUniformBlockInfo> mUniformBlocks{};       ///< List of uniform blocks
 };
 
 } // namespace Dali
index fd04bbd..48d4a09 100644 (file)
@@ -318,14 +318,13 @@ int UtcDaliBubbleEmitterEmitBubble(void)
 
 int UtcDaliBubbleEmitterRestore(void)
 {
-#ifdef OLD_GRAPHICS_TEST
   ToolkitTestApplication application;
   tet_infoline(" UtcDaliBubbleEmitterRestore ");
 
   static std::vector<UniformData> customUniforms =
     {
-      UniformData("uPercentage[0]", Property::Type::FLOAT),
-      UniformData("uStartEndPosition[0]", Property::Type::VECTOR4),
+      UniformData("uPercentage[90]", Property::Type::FLOAT),
+      UniformData("uStartEndPosition[90]", Property::Type::VECTOR4),
     };
 
   TestGraphicsController& graphics = application.GetGraphicsController();
@@ -380,9 +379,6 @@ int UtcDaliBubbleEmitterRestore(void)
 
   DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uStartEndPosition[0]", startEndPosValue));
   DALI_TEST_EQUALS(startEndPosValue, Vector4::ZERO, TEST_LOCATION);
-#else
-  tet_result(TET_PASS);
-#endif
 
   END_TEST;
 }
index 90bf1bb..41393d8 100644 (file)
@@ -192,7 +192,6 @@ int UtcDaliGaussianBlurActivateDeactivate(void)
 // Positive test case for a method
 int UtcDaliGaussianBlurActivateDeactivateRepeat(void)
 {
-#ifdef OLD_GRAPHICS_TEST // NEeds framebuffers implementing
   ToolkitTestApplication application;
   TestGlAbstraction&     gl           = application.GetGlAbstraction();
   TraceCallStack&        textureTrace = gl.GetTextureTrace();
@@ -226,9 +225,6 @@ int UtcDaliGaussianBlurActivateDeactivateRepeat(void)
   application.Render(20);
 
   DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 6, TEST_LOCATION);
-#else
-  tet_result(TET_PASS);
-#endif
   END_TEST;
 }
 
@@ -299,7 +295,6 @@ int UtcDaliGaussianBlurViewActivateOnce1(void)
 // Positive test case for a method
 int UtcDaliGaussianBlurActivateOnce2(void)
 {
-#ifdef OLD_GRAPHICS_TEST // requires framebuffers to be implemented
   ToolkitTestApplication application;
   TestGlAbstraction&     gl           = application.GetGlAbstraction();
   TraceCallStack&        textureTrace = gl.GetTextureTrace();
@@ -327,10 +322,6 @@ int UtcDaliGaussianBlurActivateOnce2(void)
 
   DALI_TEST_CHECK(gl.GetLastGenTextureId() == 6);
 
-#else
-  tet_result(TET_PASS);
-#endif
-
   END_TEST;
 }
 
index 4622431..b36457f 100644 (file)
@@ -32,8 +32,8 @@
 #include <dali-toolkit/public-api/image-loader/image-url.h>
 #include <dali-toolkit/public-api/image-loader/image.h>
 
-#include <test-encoded-image-buffer.h>
 #include "dummy-control.h"
+#include "test-encoded-image-buffer.h"
 #include "test-native-image-source.h"
 
 using namespace Dali;
@@ -726,14 +726,10 @@ int UtcDaliImageVisualTextureReuse1(void)
 
   DALI_TEST_EQUALS(actor2.GetRendererCount(), 1u, TEST_LOCATION);
 
-  tet_infoline(
-    "Test that 2 draw calls occur with no new texture gens/binds, i.e. both\n"
-    "draw calls use the same texture as the previous draw call\n");
-
+  // Testing for texture re-use in gl side is not relevant - we are not using actual graphics
+  // backend here, but test graphics backend.
   DALI_TEST_EQUALS(textureTrace.FindMethod("GenTextures"), false, TEST_LOCATION);
   DALI_TEST_EQUALS(drawTrace.CountMethod("DrawArrays"), 2, TEST_LOCATION);
-  // TODO: Temporarily commented out the line below when caching is disabled. Will need to add it back.
-  //  DALI_TEST_EQUALS( textureTrace.CountMethod("BindTexture"), 0, TEST_LOCATION );
 
   tet_infoline("Test that removing 1 actor doesn't delete the texture\n");
 
@@ -1101,10 +1097,7 @@ int UtcDaliImageVisualAnimateMixColor(void)
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("uColor", Vector4(1.0f, 1.0f, 1.0f, 0.5f)), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector3>("mixColor", Vector3(TARGET_MIX_COLOR)), true, TEST_LOCATION);
 
-  // GL_BLEND should not be changed: Keep enabled
-  // TODO: Temporarily commented out the line below when caching is disabled. Will need to add it back.
-  //  DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
-  DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Disable", blendStr.str()));
+  // (Don't test for caching of capabilities, toolkit uses Test graphics backend, not actual backend)
 
   TestMixColor(visual, Visual::Property::MIX_COLOR, TARGET_MIX_COLOR);
 
@@ -1180,8 +1173,7 @@ int UtcDaliImageVisualAnimateOpacity(void)
     DALI_TEST_CHECK(application.GetGlAbstraction().GetUniformValue<Vector4>("uColor", color));
     DALI_TEST_EQUALS(color.a, 1.0f, TEST_LOCATION);
 
-    // TODO: Temporarily commented out the line below when caching is disabled. Will need to add it back.
-    //    DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+    // (Don't test for caching of capabilities, toolkit uses Test graphics backend, not actual backend)
     DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Disable", blendStr.str()));
   }
 
@@ -1221,10 +1213,7 @@ int UtcDaliImageVisualAnimateOpacity(void)
     DALI_TEST_CHECK(application.GetGlAbstraction().GetUniformValue<Vector4>("uColor", color));
     DALI_TEST_EQUALS(color.a, 0.1f, TEST_LOCATION);
 
-    // GL_BLEND should not be changed: Keep enabled
-    // @todo
-    // TODO: Temporarily commented out the line below when caching is disabled. Will need to add it back.
-    //    DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) );
+    // (Don't test for caching of capabilities, toolkit uses Test graphics backend, not actual backend)
     DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Disable", blendStr.str()));
   }
 
index c9ca1ea..79b42f6 100644 (file)
@@ -2051,7 +2051,7 @@ int UtcDaliVisualAnimatePrimitiveVisual(void)
 
     DALI_TEST_EQUALS(actor.GetRendererCount(), 1u, TEST_LOCATION);
 
-    Renderer renderer = actor.GetRendererAt(0);
+    Renderer        renderer = actor.GetRendererAt(0);
 
     const Vector4 INITIAL_MIX_COLOR(1.0f, 0.0f, 1.0f, 0.5f); // Magenta with half alpha
     const Vector4 TARGET_MIX_COLOR(Color::RED);
@@ -3743,11 +3743,9 @@ int UtcDaliVisualRoundedCorner(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
     // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", Vector4(cornerRadius, cornerRadius, cornerRadius, cornerRadius)), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::ABSOLUTE), true, TEST_LOCATION);
-#endif
   }
 
   // color visual 2
@@ -3778,11 +3776,9 @@ int UtcDaliVisualRoundedCorner(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
     // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", cornerRadius), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::RELATIVE), true, TEST_LOCATION);
-#endif
   }
 
   // color visual 3 - invalid value
@@ -3813,12 +3809,10 @@ int UtcDaliVisualRoundedCorner(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
     // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", cornerRadius), true, TEST_LOCATION);
     // Default corner radius policy is absolute.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::ABSOLUTE), true, TEST_LOCATION);
-#endif
   }
 
   // gradient visual
@@ -3863,12 +3857,9 @@ int UtcDaliVisualRoundedCorner(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", Vector4(cornerRadius, cornerRadius, cornerRadius, cornerRadius)), true, TEST_LOCATION);
     // Default corner radius policy is absolute.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::ABSOLUTE), true, TEST_LOCATION);
-#endif
   }
 
   // animated image visual
@@ -3902,11 +3893,8 @@ int UtcDaliVisualRoundedCorner(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", cornerRadius), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::ABSOLUTE), true, TEST_LOCATION);
-#endif
   }
 
   // vector image visual
@@ -3938,12 +3926,9 @@ int UtcDaliVisualRoundedCorner(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", cornerRadius), true, TEST_LOCATION);
     // Default corner radius policy is absolute.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::ABSOLUTE), true, TEST_LOCATION);
-#endif
   }
 
   // animated vector image visual
@@ -3977,11 +3962,8 @@ int UtcDaliVisualRoundedCorner(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", Vector4(cornerRadius, cornerRadius, cornerRadius, cornerRadius)), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::RELATIVE), true, TEST_LOCATION);
-#endif
   }
 
   END_TEST;
@@ -4080,13 +4062,10 @@ int UtcDaliVisualBorderline(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", cornerRadius), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", borderlineWidth), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", borderlineColor), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", borderlineOffset), true, TEST_LOCATION);
-#endif
   }
 
   // color visual 2, default color, default offset
@@ -4116,14 +4095,11 @@ int UtcDaliVisualBorderline(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", borderlineWidth), true, TEST_LOCATION);
     // Default borderline color is BLACK.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", Color::BLACK), true, TEST_LOCATION);
     // Default borderline offset is 0.0f.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", 0.0f), true, TEST_LOCATION);
-#endif
   }
 
   // color visual 3, offset not [-1.0 ~ 1.0], but uniform value is same anyway
@@ -4157,13 +4133,10 @@ int UtcDaliVisualBorderline(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", borderlineWidth), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", borderlineColor), true, TEST_LOCATION);
     // NOTE : borderlineOffset will clamp in fragment shader. not visual itself
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", borderlineOffset), true, TEST_LOCATION);
-#endif
   }
 
   // gradient visual
@@ -4210,8 +4183,6 @@ int UtcDaliVisualBorderline(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", Vector4(cornerRadius, cornerRadius, cornerRadius, cornerRadius)), true, TEST_LOCATION);
     // Default corner radius policy is absolute.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::ABSOLUTE), true, TEST_LOCATION);
@@ -4220,7 +4191,6 @@ int UtcDaliVisualBorderline(void)
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", Color::BLACK), true, TEST_LOCATION);
     // Default borderline offset is 0.0f.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", 0.0f), true, TEST_LOCATION);
-#endif
   }
 
   // animated image visual
@@ -4255,13 +4225,10 @@ int UtcDaliVisualBorderline(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", borderlineWidth), true, TEST_LOCATION);
     // Default borderline color is BLACK.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", Color::BLACK), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", borderlineOffset), true, TEST_LOCATION);
-#endif
   }
 
   // vector image visual
@@ -4297,8 +4264,6 @@ int UtcDaliVisualBorderline(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", cornerRadius), true, TEST_LOCATION);
     // Default corner radius policy is absolute.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::ABSOLUTE), true, TEST_LOCATION);
@@ -4306,7 +4271,6 @@ int UtcDaliVisualBorderline(void)
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", borderlineColor), true, TEST_LOCATION);
     // Default borderline offset is 0.0.
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", 0.0f), true, TEST_LOCATION);
-#endif
   }
 
   // animated vector image visual
@@ -4345,14 +4309,11 @@ int UtcDaliVisualBorderline(void)
     application.SendNotification();
     application.Render();
 
-#ifdef OLD_GRAPHICS_TEST
-    // Currently test with multiple program doesn't work well. will fix another day
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", cornerRadius), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("cornerRadiusPolicy", Toolkit::Visual::Transform::Policy::RELATIVE), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", borderlineWidth), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", borderlineColor), true, TEST_LOCATION);
     DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", borderlineOffset), true, TEST_LOCATION);
-#endif
   }
 
   END_TEST;
@@ -4824,7 +4785,7 @@ int UtcDaliVisualGetVisualProperty01(void)
   float   targetBlurRadius      = 10.0f;
   float   targetBorderlineWidth = 25.0f;
   Vector4 targetBorderlineColor(1.0f, 1.0f, 1.0f, 1.0f);
-  float   targetBorderlineOffset   = -1.0f;
+  float targetBorderlineOffset = -1.0f;
   float   targetPreMultipliedAlpha = 1.0f;
 
   Animation animation = Animation::New(1.0f);
@@ -5007,15 +4968,12 @@ int UtcDaliVisualGetVisualProperty02(void)
   DALI_TEST_CHECK(blurRadiusValue);
   DALI_TEST_EQUALS(blurRadiusValue->Get<float>(), targetBlurRadius, TEST_LOCATION);
 
-#ifdef OLD_GRAPHICS_TEST
-  // Currently test with multiple program doesn't work well. will fix another day
   // Test uniform values
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector3>("mixColor", targetColor), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector2>("offset", targetOffset), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector2>("size", targetSize), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", targetCornerRadius), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("blurRadius", targetBlurRadius), true, TEST_LOCATION);
-#endif
 
   END_TEST;
 }
@@ -5097,14 +5055,11 @@ int UtcDaliVisualGetVisualProperty03(void)
   DALI_TEST_CHECK(borderlineOffsetValue);
   DALI_TEST_EQUALS(borderlineOffsetValue->Get<float>(), targetBorderlineOffset, TEST_LOCATION);
 
-#ifdef OLD_GRAPHICS_TEST
-  // Currently test with multiple program doesn't work well. will fix another day
   // Test uniform value
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", targetCornerRadius), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", targetBorderlineWidth), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", targetBorderlineColor), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", targetBorderlineOffset), true, TEST_LOCATION);
-#endif
 
   END_TEST;
 }
@@ -5171,11 +5126,8 @@ int UtcDaliVisualGetVisualProperty04(void)
   DALI_TEST_CHECK(cornerRadiusValue);
   DALI_TEST_EQUALS(cornerRadiusValue->Get<Vector4>(), targetCornerRadius, TEST_LOCATION);
 
-#ifdef OLD_GRAPHICS_TEST
-  // Currently test with multiple program doesn't work well. will fix another day
   // Test uniform value
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", targetCornerRadius), true, TEST_LOCATION);
-#endif
 
   END_TEST;
 }
@@ -5260,14 +5212,12 @@ int UtcDaliVisualGetVisualProperty05(void)
   DALI_TEST_CHECK(borderlineOffsetValue);
   DALI_TEST_EQUALS(borderlineOffsetValue->Get<float>(), targetBorderlineOffset, TEST_LOCATION);
 
-#ifdef OLD_GRAPHICS_TEST
   // Currently test with multiple program doesn't work well. will fix another day
   // Test uniform value
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", targetCornerRadius), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", targetBorderlineWidth), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", targetBorderlineColor), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", targetBorderlineOffset), true, TEST_LOCATION);
-#endif
 
   END_TEST;
 }
@@ -5352,14 +5302,12 @@ int UtcDaliVisualGetVisualProperty06(void)
   DALI_TEST_CHECK(borderlineOffsetValue);
   DALI_TEST_EQUALS(borderlineOffsetValue->Get<float>(), targetBorderlineOffset, TEST_LOCATION);
 
-#ifdef OLD_GRAPHICS_TEST
   // Currently test with multiple program doesn't work well. will fix another day
   // Test uniform value
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", targetCornerRadius), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", targetBorderlineWidth), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", targetBorderlineColor), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", targetBorderlineOffset), true, TEST_LOCATION);
-#endif
 
   END_TEST;
 }
@@ -5444,14 +5392,12 @@ int UtcDaliVisualGetVisualProperty07(void)
   DALI_TEST_CHECK(borderlineOffsetValue);
   DALI_TEST_EQUALS(borderlineOffsetValue->Get<float>(), targetBorderlineOffset, TEST_LOCATION);
 
-#ifdef OLD_GRAPHICS_TEST
   // Currently test with multiple program doesn't work well. will fix another day
   // Test uniform value
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("cornerRadius", targetCornerRadius), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineWidth", targetBorderlineWidth), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<Vector4>("borderlineColor", targetBorderlineColor), true, TEST_LOCATION);
   DALI_TEST_EQUALS(application.GetGlAbstraction().CheckUniformValue<float>("borderlineOffset", targetBorderlineOffset), true, TEST_LOCATION);
-#endif
 
   END_TEST;
 }