From bf32bbded35d35b6b4f1f6d96fc581c7593979d7 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Wed, 27 Nov 2024 10:16:24 -0800 Subject: [PATCH 1/7] Added testing for uniform binding on gles --- impeller/renderer/backend/gles/BUILD.gn | 1 + .../backend/gles/buffer_bindings_gles.h | 11 ++++ .../gles/buffer_bindings_gles_unittests.cc | 51 +++++++++++++++++++ .../renderer/backend/gles/test/mock_gles.cc | 9 ++++ 4 files changed, 72 insertions(+) create mode 100644 impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc diff --git a/impeller/renderer/backend/gles/BUILD.gn b/impeller/renderer/backend/gles/BUILD.gn index bede7318a32a0..f93d13134e422 100644 --- a/impeller/renderer/backend/gles/BUILD.gn +++ b/impeller/renderer/backend/gles/BUILD.gn @@ -14,6 +14,7 @@ config("gles_config") { impeller_component("gles_unittests") { testonly = true sources = [ + "buffer_bindings_gles_unittests.cc", "test/capabilities_unittests.cc", "test/formats_gles_unittests.cc", "test/gpu_tracer_gles_unittests.cc", diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.h b/impeller/renderer/backend/gles/buffer_bindings_gles.h index 65642d8db33c8..1415ea5838de0 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.h +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.h @@ -15,6 +15,10 @@ namespace impeller { +namespace testing { +FML_TEST_CLASS(BufferBindingsGLESTest, BindUniformData); +} + //------------------------------------------------------------------------------ /// @brief Sets up stage bindings for single draw call in the OpenGLES /// backend. @@ -44,6 +48,7 @@ class BufferBindingsGLES { bool UnbindVertexAttributes(const ProcTableGLES& gl); private: + FML_FRIEND_TEST(testing::BufferBindingsGLESTest, BindUniformData); //---------------------------------------------------------------------------- /// @brief The arguments to glVertexAttribPointer. /// @@ -80,6 +85,12 @@ class BufferBindingsGLES { BufferBindingsGLES(const BufferBindingsGLES&) = delete; BufferBindingsGLES& operator=(const BufferBindingsGLES&) = delete; + + // For testing. + void SetUniformBindings( + std::unordered_map uniform_locations) { + uniform_locations_ = std::move(uniform_locations); + } }; } // namespace impeller diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc new file mode 100644 index 0000000000000..3ea8e11297ace --- /dev/null +++ b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc @@ -0,0 +1,51 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "flutter/testing/testing.h" // IWYU pragma: keep +#include "gtest/gtest.h" +#include "impeller/renderer/backend/gles/buffer_bindings_gles.h" +#include "impeller/renderer/backend/gles/device_buffer_gles.h" +#include "impeller/renderer/backend/gles/test/mock_gles.h" +#include "impeller/renderer/testing/mocks.h" + +namespace impeller { +namespace testing { + +TEST(BufferBindingsGLESTest, BindUniformData) { + BufferBindingsGLES bindings; + std::unordered_map uniform_bindings; + uniform_bindings["SHADERMETADATA.FOOBAR"] = 1; + bindings.SetUniformBindings(std::move(uniform_bindings)); + std::shared_ptr mock_gl = MockGLES::Init(); + MockAllocator allocator; + Bindings vertex_bindings; + + ShaderMetadata shader_metadata = { + .name = "shader_metadata", + .members = {ShaderStructMemberMetadata{.type = ShaderType::kFloat, + .name = "foobar", + .offset = 0, + .size = sizeof(float), + .byte_length = sizeof(float)}}}; + std::shared_ptr reactor; + std::shared_ptr backing_store = std::make_shared(); + ASSERT_TRUE(backing_store->Truncate(Bytes{sizeof(float)})); + DeviceBufferGLES device_buffer(DeviceBufferDescriptor{.size = sizeof(float)}, + reactor, backing_store); + BufferView buffer_view(&device_buffer, Range(0, sizeof(float))); + vertex_bindings.buffers.push_back(BufferAndUniformSlot{ + .slot = + ShaderUniformSlot{ + .name = "foobar", .ext_res_0 = 0, .set = 0, .binding = 0}, + .view = BufferResource(&shader_metadata, buffer_view)}); + Bindings fragment_bindings; + EXPECT_TRUE(bindings.BindUniformData(mock_gl->GetProcTable(), allocator, + vertex_bindings, fragment_bindings)); + std::vector captured_calls = mock_gl->GetCapturedCalls(); + EXPECT_TRUE(std::find(captured_calls.begin(), captured_calls.end(), + "glUniform1fv") != captured_calls.end()); +} + +} // namespace testing +} // namespace impeller diff --git a/impeller/renderer/backend/gles/test/mock_gles.cc b/impeller/renderer/backend/gles/test/mock_gles.cc index 7a8399cede36c..e94e74dc28356 100644 --- a/impeller/renderer/backend/gles/test/mock_gles.cc +++ b/impeller/renderer/backend/gles/test/mock_gles.cc @@ -167,6 +167,13 @@ void mockDeleteTextures(GLsizei size, const GLuint* queries) { static_assert(CheckSameSignature::value); +void mockUniform1fv(GLint location, GLsizei count, const GLfloat* value) { + RecordGLCall("glUniform1fv"); +} + +static_assert(CheckSameSignature::value); + std::shared_ptr MockGLES::Init( const std::optional>& extensions, const char* version_string, @@ -208,6 +215,8 @@ const ProcTableGLES::Resolver kMockResolverGLES = [](const char* name) { return reinterpret_cast(mockGetQueryObjectui64vEXT); } else if (strcmp(name, "glGetQueryObjectuivEXT") == 0) { return reinterpret_cast(mockGetQueryObjectuivEXT); + } else if (strcmp(name, "glUniform1fv") == 0) { + return reinterpret_cast(mockUniform1fv); } else { return reinterpret_cast(&doNothing); } From 69935b155465f85e89e10d25e73ffb8db98dfaf5 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Wed, 27 Nov 2024 14:10:18 -0800 Subject: [PATCH 2/7] added benchmark --- .../gles/buffer_bindings_gles_unittests.cc | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc index 3ea8e11297ace..9e5e5020417f8 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc +++ b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc @@ -14,7 +14,7 @@ namespace testing { TEST(BufferBindingsGLESTest, BindUniformData) { BufferBindingsGLES bindings; - std::unordered_map uniform_bindings; + absl::flat_hash_map uniform_bindings; uniform_bindings["SHADERMETADATA.FOOBAR"] = 1; bindings.SetUniformBindings(std::move(uniform_bindings)); std::shared_ptr mock_gl = MockGLES::Init(); @@ -47,5 +47,48 @@ TEST(BufferBindingsGLESTest, BindUniformData) { "glUniform1fv") != captured_calls.end()); } +TEST(BufferBindingsGLESTest, BindUniformDataMicro) { + BufferBindingsGLES bindings; + absl::flat_hash_map uniform_bindings; + uniform_bindings["SHADERMETADATA.FOOBAR"] = 1; + bindings.SetUniformBindings(std::move(uniform_bindings)); + std::shared_ptr mock_gl = MockGLES::Init(); + MockAllocator allocator; + Bindings vertex_bindings; + + ShaderMetadata shader_metadata = { + .name = "shader_metadata", + .members = {ShaderStructMemberMetadata{.type = ShaderType::kFloat, + .name = "foobar", + .offset = 0, + .size = sizeof(float), + .byte_length = sizeof(float)}}}; + std::shared_ptr reactor; + std::shared_ptr backing_store = std::make_shared(); + ASSERT_TRUE(backing_store->Truncate(Bytes{sizeof(float)})); + DeviceBufferGLES device_buffer(DeviceBufferDescriptor{.size = sizeof(float)}, + reactor, backing_store); + BufferView buffer_view(&device_buffer, Range(0, sizeof(float))); + vertex_bindings.buffers.push_back(BufferAndUniformSlot{ + .slot = + ShaderUniformSlot{ + .name = "foobar", .ext_res_0 = 0, .set = 0, .binding = 0}, + .view = BufferResource(&shader_metadata, buffer_view)}); + Bindings fragment_bindings; + int32_t count = 5'000'000; + auto start = std::chrono::high_resolution_clock::now(); + for (int32_t i = 0; i < count; ++i) { + bindings.BindUniformData(mock_gl->GetProcTable(), allocator, + vertex_bindings, fragment_bindings); + if (i%100 == 0) { + mock_gl->GetCapturedCalls(); + } + } + auto end = std::chrono::high_resolution_clock::now(); + auto duration = std::chrono::duration_cast(end - start).count(); + std::cout << "Execution time: " << duration/static_cast(count) << " microseconds" << std::endl; + +} + } // namespace testing } // namespace impeller From cba3c1b841ddff2735b1f752292db56056e1a329 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Wed, 27 Nov 2024 14:17:58 -0800 Subject: [PATCH 3/7] moved to absl flat hash map --- impeller/renderer/backend/gles/BUILD.gn | 1 + impeller/renderer/backend/gles/buffer_bindings_gles.cc | 2 +- impeller/renderer/backend/gles/buffer_bindings_gles.h | 9 ++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/impeller/renderer/backend/gles/BUILD.gn b/impeller/renderer/backend/gles/BUILD.gn index f93d13134e422..13ffcd8f71351 100644 --- a/impeller/renderer/backend/gles/BUILD.gn +++ b/impeller/renderer/backend/gles/BUILD.gn @@ -105,5 +105,6 @@ impeller_component("gles") { "../../:renderer", "../../../shader_archive", "//flutter/fml", + "//flutter/third_party/abseil-cpp/absl/container:flat_hash_map", ] } diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.cc b/impeller/renderer/backend/gles/buffer_bindings_gles.cc index 9deb66fe81dd9..ab8b2f7cc536e 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.cc +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.cc @@ -262,7 +262,7 @@ const std::vector& BufferBindingsGLES::ComputeUniformLocations( size_t element_count = member.array_elements.value_or(1); const std::string member_key = CreateUniformMemberKey(metadata->name, member.name, element_count > 1); - const std::unordered_map::iterator computed_location = + const absl::flat_hash_map::iterator computed_location = uniform_locations_.find(member_key); if (computed_location == uniform_locations_.end()) { // Uniform was not active. diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.h b/impeller/renderer/backend/gles/buffer_bindings_gles.h index 1415ea5838de0..6eaac64fc423a 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.h +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.h @@ -12,11 +12,13 @@ #include "impeller/renderer/backend/gles/gles.h" #include "impeller/renderer/backend/gles/proc_table_gles.h" #include "impeller/renderer/command.h" +#include "flutter/third_party/abseil-cpp/absl/container/flat_hash_map.h" namespace impeller { namespace testing { FML_TEST_CLASS(BufferBindingsGLESTest, BindUniformData); +FML_TEST_CLASS(BufferBindingsGLESTest, BindUniformDataMicro); } //------------------------------------------------------------------------------ @@ -49,6 +51,7 @@ class BufferBindingsGLES { private: FML_FRIEND_TEST(testing::BufferBindingsGLESTest, BindUniformData); + FML_FRIEND_TEST(testing::BufferBindingsGLESTest, BindUniformDataMicro); //---------------------------------------------------------------------------- /// @brief The arguments to glVertexAttribPointer. /// @@ -62,9 +65,9 @@ class BufferBindingsGLES { }; std::vector> vertex_attrib_arrays_; - std::unordered_map uniform_locations_; + absl::flat_hash_map uniform_locations_; - using BindingMap = std::unordered_map>; + using BindingMap = absl::flat_hash_map>; BindingMap binding_map_ = {}; GLuint vertex_array_object_ = 0; @@ -88,7 +91,7 @@ class BufferBindingsGLES { // For testing. void SetUniformBindings( - std::unordered_map uniform_locations) { + absl::flat_hash_map uniform_locations) { uniform_locations_ = std::move(uniform_locations); } }; From a543c98be724300b3d67aabcac5707c1c575d1a6 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Wed, 27 Nov 2024 14:18:36 -0800 Subject: [PATCH 4/7] format --- impeller/renderer/backend/gles/buffer_bindings_gles.h | 4 ++-- .../backend/gles/buffer_bindings_gles_unittests.cc | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.h b/impeller/renderer/backend/gles/buffer_bindings_gles.h index 6eaac64fc423a..8c68d84f1f42e 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.h +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.h @@ -8,18 +8,18 @@ #include #include +#include "flutter/third_party/abseil-cpp/absl/container/flat_hash_map.h" #include "impeller/core/shader_types.h" #include "impeller/renderer/backend/gles/gles.h" #include "impeller/renderer/backend/gles/proc_table_gles.h" #include "impeller/renderer/command.h" -#include "flutter/third_party/abseil-cpp/absl/container/flat_hash_map.h" namespace impeller { namespace testing { FML_TEST_CLASS(BufferBindingsGLESTest, BindUniformData); FML_TEST_CLASS(BufferBindingsGLESTest, BindUniformDataMicro); -} +} // namespace testing //------------------------------------------------------------------------------ /// @brief Sets up stage bindings for single draw call in the OpenGLES diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc index 9e5e5020417f8..c18cf757124b3 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc +++ b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc @@ -80,14 +80,16 @@ TEST(BufferBindingsGLESTest, BindUniformDataMicro) { for (int32_t i = 0; i < count; ++i) { bindings.BindUniformData(mock_gl->GetProcTable(), allocator, vertex_bindings, fragment_bindings); - if (i%100 == 0) { + if (i % 100 == 0) { mock_gl->GetCapturedCalls(); } } auto end = std::chrono::high_resolution_clock::now(); - auto duration = std::chrono::duration_cast(end - start).count(); - std::cout << "Execution time: " << duration/static_cast(count) << " microseconds" << std::endl; - + auto duration = + std::chrono::duration_cast(end - start) + .count(); + std::cout << "Execution time: " << duration / static_cast(count) + << " microseconds" << std::endl; } } // namespace testing From 73a6de8091b9a49dd4a00100638ed4ae98a2e8a6 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Wed, 27 Nov 2024 14:22:55 -0800 Subject: [PATCH 5/7] deleted microbenchmark --- .../backend/gles/buffer_bindings_gles.h | 2 - .../gles/buffer_bindings_gles_unittests.cc | 45 ------------------- 2 files changed, 47 deletions(-) diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.h b/impeller/renderer/backend/gles/buffer_bindings_gles.h index 8c68d84f1f42e..a7531ed1e46e9 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.h +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.h @@ -18,7 +18,6 @@ namespace impeller { namespace testing { FML_TEST_CLASS(BufferBindingsGLESTest, BindUniformData); -FML_TEST_CLASS(BufferBindingsGLESTest, BindUniformDataMicro); } // namespace testing //------------------------------------------------------------------------------ @@ -51,7 +50,6 @@ class BufferBindingsGLES { private: FML_FRIEND_TEST(testing::BufferBindingsGLESTest, BindUniformData); - FML_FRIEND_TEST(testing::BufferBindingsGLESTest, BindUniformDataMicro); //---------------------------------------------------------------------------- /// @brief The arguments to glVertexAttribPointer. /// diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc index c18cf757124b3..d0e245860c489 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc +++ b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc @@ -47,50 +47,5 @@ TEST(BufferBindingsGLESTest, BindUniformData) { "glUniform1fv") != captured_calls.end()); } -TEST(BufferBindingsGLESTest, BindUniformDataMicro) { - BufferBindingsGLES bindings; - absl::flat_hash_map uniform_bindings; - uniform_bindings["SHADERMETADATA.FOOBAR"] = 1; - bindings.SetUniformBindings(std::move(uniform_bindings)); - std::shared_ptr mock_gl = MockGLES::Init(); - MockAllocator allocator; - Bindings vertex_bindings; - - ShaderMetadata shader_metadata = { - .name = "shader_metadata", - .members = {ShaderStructMemberMetadata{.type = ShaderType::kFloat, - .name = "foobar", - .offset = 0, - .size = sizeof(float), - .byte_length = sizeof(float)}}}; - std::shared_ptr reactor; - std::shared_ptr backing_store = std::make_shared(); - ASSERT_TRUE(backing_store->Truncate(Bytes{sizeof(float)})); - DeviceBufferGLES device_buffer(DeviceBufferDescriptor{.size = sizeof(float)}, - reactor, backing_store); - BufferView buffer_view(&device_buffer, Range(0, sizeof(float))); - vertex_bindings.buffers.push_back(BufferAndUniformSlot{ - .slot = - ShaderUniformSlot{ - .name = "foobar", .ext_res_0 = 0, .set = 0, .binding = 0}, - .view = BufferResource(&shader_metadata, buffer_view)}); - Bindings fragment_bindings; - int32_t count = 5'000'000; - auto start = std::chrono::high_resolution_clock::now(); - for (int32_t i = 0; i < count; ++i) { - bindings.BindUniformData(mock_gl->GetProcTable(), allocator, - vertex_bindings, fragment_bindings); - if (i % 100 == 0) { - mock_gl->GetCapturedCalls(); - } - } - auto end = std::chrono::high_resolution_clock::now(); - auto duration = - std::chrono::duration_cast(end - start) - .count(); - std::cout << "Execution time: " << duration / static_cast(count) - << " microseconds" << std::endl; -} - } // namespace testing } // namespace impeller From e7010c7629929bb5dab8048a99ba1da2eb82aa70 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Mon, 2 Dec 2024 09:44:00 -0800 Subject: [PATCH 6/7] updated licenses --- ci/licenses_golden/excluded_files | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/licenses_golden/excluded_files b/ci/licenses_golden/excluded_files index 1883a2b7c4b00..6ed65668dec9c 100644 --- a/ci/licenses_golden/excluded_files +++ b/ci/licenses_golden/excluded_files @@ -182,6 +182,7 @@ ../../../flutter/impeller/geometry/trig_unittests.cc ../../../flutter/impeller/golden_tests/README.md ../../../flutter/impeller/playground +../../../flutter/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc ../../../flutter/impeller/renderer/backend/gles/test ../../../flutter/impeller/renderer/backend/metal/allocator_mtl_unittests.mm ../../../flutter/impeller/renderer/backend/metal/texture_mtl_unittests.mm From 51613c98ab288eb1699e95508fc8f899be1d57ab Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Mon, 2 Dec 2024 09:51:06 -0800 Subject: [PATCH 7/7] removed allocator arg --- impeller/renderer/backend/gles/buffer_bindings_gles.cc | 6 ++---- impeller/renderer/backend/gles/buffer_bindings_gles.h | 5 +---- .../renderer/backend/gles/buffer_bindings_gles_unittests.cc | 5 ++--- impeller/renderer/backend/gles/render_pass_gles.cc | 1 - 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.cc b/impeller/renderer/backend/gles/buffer_bindings_gles.cc index ab8b2f7cc536e..9ad233957223e 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.cc +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.cc @@ -180,16 +180,15 @@ bool BufferBindingsGLES::BindVertexAttributes(const ProcTableGLES& gl, } bool BufferBindingsGLES::BindUniformData(const ProcTableGLES& gl, - Allocator& transients_allocator, const Bindings& vertex_bindings, const Bindings& fragment_bindings) { for (const auto& buffer : vertex_bindings.buffers) { - if (!BindUniformBuffer(gl, transients_allocator, buffer.view)) { + if (!BindUniformBuffer(gl, buffer.view)) { return false; } } for (const auto& buffer : fragment_bindings.buffers) { - if (!BindUniformBuffer(gl, transients_allocator, buffer.view)) { + if (!BindUniformBuffer(gl, buffer.view)) { return false; } } @@ -275,7 +274,6 @@ const std::vector& BufferBindingsGLES::ComputeUniformLocations( } bool BufferBindingsGLES::BindUniformBuffer(const ProcTableGLES& gl, - Allocator& transients_allocator, const BufferResource& buffer) { const ShaderMetadata* metadata = buffer.GetMetadata(); const DeviceBuffer* device_buffer = buffer.resource.GetBuffer(); diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.h b/impeller/renderer/backend/gles/buffer_bindings_gles.h index a7531ed1e46e9..07bae42d49915 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.h +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.h @@ -42,7 +42,6 @@ class BufferBindingsGLES { size_t vertex_offset); bool BindUniformData(const ProcTableGLES& gl, - Allocator& transients_allocator, const Bindings& vertex_bindings, const Bindings& fragment_bindings); @@ -74,9 +73,7 @@ class BufferBindingsGLES { GLint ComputeTextureLocation(const ShaderMetadata* metadata); - bool BindUniformBuffer(const ProcTableGLES& gl, - Allocator& transients_allocator, - const BufferResource& buffer); + bool BindUniformBuffer(const ProcTableGLES& gl, const BufferResource& buffer); std::optional BindTextures(const ProcTableGLES& gl, const Bindings& bindings, diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc index d0e245860c489..1f7721c23fa97 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc +++ b/impeller/renderer/backend/gles/buffer_bindings_gles_unittests.cc @@ -18,7 +18,6 @@ TEST(BufferBindingsGLESTest, BindUniformData) { uniform_bindings["SHADERMETADATA.FOOBAR"] = 1; bindings.SetUniformBindings(std::move(uniform_bindings)); std::shared_ptr mock_gl = MockGLES::Init(); - MockAllocator allocator; Bindings vertex_bindings; ShaderMetadata shader_metadata = { @@ -40,8 +39,8 @@ TEST(BufferBindingsGLESTest, BindUniformData) { .name = "foobar", .ext_res_0 = 0, .set = 0, .binding = 0}, .view = BufferResource(&shader_metadata, buffer_view)}); Bindings fragment_bindings; - EXPECT_TRUE(bindings.BindUniformData(mock_gl->GetProcTable(), allocator, - vertex_bindings, fragment_bindings)); + EXPECT_TRUE(bindings.BindUniformData(mock_gl->GetProcTable(), vertex_bindings, + fragment_bindings)); std::vector captured_calls = mock_gl->GetCapturedCalls(); EXPECT_TRUE(std::find(captured_calls.begin(), captured_calls.end(), "glUniform1fv") != captured_calls.end()); diff --git a/impeller/renderer/backend/gles/render_pass_gles.cc b/impeller/renderer/backend/gles/render_pass_gles.cc index 594fcfab0732f..c172b29fe3120 100644 --- a/impeller/renderer/backend/gles/render_pass_gles.cc +++ b/impeller/renderer/backend/gles/render_pass_gles.cc @@ -435,7 +435,6 @@ void RenderPassGLES::ResetGLState(const ProcTableGLES& gl) { /// Bind uniform data. /// if (!vertex_desc_gles->BindUniformData(gl, // - *transients_allocator, // command.vertex_bindings, // command.fragment_bindings // )) {