diff --git a/impeller/renderer/BUILD.gn b/impeller/renderer/BUILD.gn index 3e0c7b5770420..39e98fd6a4058 100644 --- a/impeller/renderer/BUILD.gn +++ b/impeller/renderer/BUILD.gn @@ -149,12 +149,15 @@ impeller_component("renderer_dart_unittests") { sources = [ "renderer_dart_unittests.cc" ] + public_configs = [ "//flutter:export_dynamic_symbols" ] + deps = [ ":renderer", "../fixtures:flutter_gpu_fixtures", "../fixtures:flutter_gpu_shaders", "../playground:playground_test", "//flutter/lib/gpu", + "//flutter/lib/snapshot", "//flutter/runtime:runtime", "//flutter/testing:fixture_test", "//flutter/testing:testing", diff --git a/lib/gpu/host_buffer.cc b/lib/gpu/host_buffer.cc index 6d76464c6c787..eb4b6fae088e6 100644 --- a/lib/gpu/host_buffer.cc +++ b/lib/gpu/host_buffer.cc @@ -31,8 +31,9 @@ size_t HostBuffer::EmplaceBytes(const tonic::DartByteData& byte_data) { host_buffer_->Emplace(byte_data.data(), byte_data.length_in_bytes(), impeller::DefaultUniformAlignment()); emplacements_[current_offset_] = view; + size_t previous_offset = current_offset_; current_offset_ += view.range.length; - return view.range.offset; + return previous_offset; } std::optional HostBuffer::GetBufferViewForOffset( diff --git a/lib/gpu/host_buffer.h b/lib/gpu/host_buffer.h index 75d33c739ac39..31a5750303b41 100644 --- a/lib/gpu/host_buffer.h +++ b/lib/gpu/host_buffer.h @@ -48,7 +48,9 @@ class HostBuffer : public RefCountedDartWrappable { extern "C" { FLUTTER_GPU_EXPORT -extern void InternalFlutterGpu_HostBuffer_Initialize(Dart_Handle wrapper); +extern void InternalFlutterGpu_HostBuffer_Initialize( + Dart_Handle wrapper, + flutter::gpu::Context* context); FLUTTER_GPU_EXPORT extern size_t InternalFlutterGpu_HostBuffer_EmplaceBytes( diff --git a/lib/gpu/lib/src/buffer.dart b/lib/gpu/lib/src/buffer.dart index abed1a7a04949..de1389231ad36 100644 --- a/lib/gpu/lib/src/buffer.dart +++ b/lib/gpu/lib/src/buffer.dart @@ -161,7 +161,7 @@ base class HostBuffer extends NativeFieldWrapperClass1 with Buffer { } /// Wrap with native counterpart. - @Native( + @Native)>( symbol: 'InternalFlutterGpu_HostBuffer_Initialize') external void _initialize(GpuContext gpuContext); diff --git a/testing/run_tests.py b/testing/run_tests.py index 8693bad5ab4c9..2517c091123ce 100755 --- a/testing/run_tests.py +++ b/testing/run_tests.py @@ -553,6 +553,16 @@ def make_test(name, flags=None, extra_env=None): extra_env=extra_env, ) + # Run the Flutter GPU test suite. + run_engine_executable( + build_dir, + 'impeller_dart_unittests', + executable_filter, + shuffle_flags + ['--enable_vulkan_validation'], + coverage=coverage, + extra_env=extra_env, + ) + def run_engine_benchmarks(build_dir, executable_filter): logger.info('Running Engine Benchmarks.')