Test harness sync 46/319546/1
authorDavid Steele <david.steele@samsung.com>
Fri, 25 Oct 2024 09:02:35 +0000 (10:02 +0100)
committerDavid Steele <david.steele@samsung.com>
Fri, 25 Oct 2024 09:02:35 +0000 (10:02 +0100)
Change-Id: I699614e153b3b80d3edf1a1647a4fbbe9d318543

automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.h
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

index f241257e227c9a6f9931a50a264e66f3c83d37d4..c12f6a95ce72ce87d499704027c74bbbfee5d4cd 100644 (file)
@@ -718,10 +718,26 @@ void TestGraphicsController::ProcessCommandBuffer(TestGraphicsCommandBuffer& com
         if(currentPipeline)
         {
           auto& bindings = cmd.data.bindUniformBuffers;
-          auto  buffer   = bindings.standaloneUniformsBufferBinding;
 
+          auto buffer = bindings.standaloneUniformsBufferBinding;
           // based on reflection, issue gl calls
           buffer.buffer->BindAsUniformBuffer(static_cast<const TestGraphicsProgram*>(currentPipeline->programState.program), bindings.standaloneUniformsBufferBinding);
+
+          // Store off uniform bindings for test retrieval:
+          if(!bindings.uniformBufferBindings.empty())
+          {
+            mLastUniformBinding.buffer   = bindings.uniformBufferBindings.back().buffer;
+            mLastUniformBinding.binding  = bindings.uniformBufferBindings.back().binding;
+            mLastUniformBinding.offset   = bindings.uniformBufferBindings.back().offset;
+            mLastUniformBinding.emulated = bindings.uniformBufferBindings.back().emulated;
+          }
+          else
+          {
+            mLastUniformBinding.buffer   = bindings.standaloneUniformsBufferBinding.buffer;
+            mLastUniformBinding.binding  = bindings.standaloneUniformsBufferBinding.binding;
+            mLastUniformBinding.offset   = bindings.standaloneUniformsBufferBinding.offset;
+            mLastUniformBinding.emulated = true;
+          }
         }
         break;
       }
index ba91f897f1077e7f36ef1cd908b4b5bad8a995f0..0ccda591394c70c526b9ca9a15c672636ff2389b 100644 (file)
@@ -565,6 +565,7 @@ public:
 
   std::vector<UniformData>                                  mCustomUniforms;
   std::vector<TestGraphicsReflection::TestUniformBlockInfo> mCustomUniformBlocks;
+  UniformBufferBindingDescriptor                            mLastUniformBinding;
 };
 
 } // namespace Dali
index 2d507f78b1c8f4ad767b2b7858c3276e84be4f2e..d2cc49c5057a3c6cd008a25cefa4fb6e86b9d2c5 100644 (file)
@@ -333,6 +333,7 @@ bool TestGraphicsReflection::GetUniformBlock(uint32_t index, Dali::Graphics::Uni
     out.members[i].location      = memberUniform.locations[0];
     out.members[i].elementCount  = memberUniform.numElements;
     out.members[i].elementStride = memberUniform.elementStride;
+    out.members[i].matrixStride  = memberUniform.matrixStride;
   }
 
   return true;
index 3521ed0dccb7c34d6be126f5e730abec1e16009c..221c3ef1befeec95d63937d83424fa0c867de326 100644 (file)
@@ -61,6 +61,7 @@ public: // Test methods
     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;
     uint32_t               elementStride{0u}; // array element stride, 0 - tightly packed
+    uint32_t               matrixStride{0u};  // Matrix row stride in bytes, 0 - tightly packed
   };
 
   struct TestUniformBlockInfo
@@ -98,4 +99,4 @@ public: // Test methods
 
 } // namespace Dali
 
-#endif //DALI_TEST_GRAPHICS_REFLECTION_H
+#endif // DALI_TEST_GRAPHICS_REFLECTION_H