Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 1a4db4a

Browse files
authored
[Flutter GPU] Run unittests on CI and fix HostBuffer. (#49789)
The Flutter GPU tests were broken, and it turns out that I had never set them up to run on CI. This fixes the HostBuffer and gets the test suite running on CI.
1 parent dd74740 commit 1a4db4a

File tree

5 files changed

+19
-3
lines changed

5 files changed

+19
-3
lines changed

impeller/renderer/BUILD.gn

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,15 @@ impeller_component("renderer_dart_unittests") {
149149

150150
sources = [ "renderer_dart_unittests.cc" ]
151151

152+
public_configs = [ "//flutter:export_dynamic_symbols" ]
153+
152154
deps = [
153155
":renderer",
154156
"../fixtures:flutter_gpu_fixtures",
155157
"../fixtures:flutter_gpu_shaders",
156158
"../playground:playground_test",
157159
"//flutter/lib/gpu",
160+
"//flutter/lib/snapshot",
158161
"//flutter/runtime:runtime",
159162
"//flutter/testing:fixture_test",
160163
"//flutter/testing:testing",

lib/gpu/host_buffer.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ size_t HostBuffer::EmplaceBytes(const tonic::DartByteData& byte_data) {
3131
host_buffer_->Emplace(byte_data.data(), byte_data.length_in_bytes(),
3232
impeller::DefaultUniformAlignment());
3333
emplacements_[current_offset_] = view;
34+
size_t previous_offset = current_offset_;
3435
current_offset_ += view.range.length;
35-
return view.range.offset;
36+
return previous_offset;
3637
}
3738

3839
std::optional<impeller::BufferView> HostBuffer::GetBufferViewForOffset(

lib/gpu/host_buffer.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ class HostBuffer : public RefCountedDartWrappable<HostBuffer> {
4848
extern "C" {
4949

5050
FLUTTER_GPU_EXPORT
51-
extern void InternalFlutterGpu_HostBuffer_Initialize(Dart_Handle wrapper);
51+
extern void InternalFlutterGpu_HostBuffer_Initialize(
52+
Dart_Handle wrapper,
53+
flutter::gpu::Context* context);
5254

5355
FLUTTER_GPU_EXPORT
5456
extern size_t InternalFlutterGpu_HostBuffer_EmplaceBytes(

lib/gpu/lib/src/buffer.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ base class HostBuffer extends NativeFieldWrapperClass1 with Buffer {
161161
}
162162

163163
/// Wrap with native counterpart.
164-
@Native<Void Function(Handle, Handle)>(
164+
@Native<Void Function(Handle, Pointer<Void>)>(
165165
symbol: 'InternalFlutterGpu_HostBuffer_Initialize')
166166
external void _initialize(GpuContext gpuContext);
167167

testing/run_tests.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,16 @@ def make_test(name, flags=None, extra_env=None):
553553
extra_env=extra_env,
554554
)
555555

556+
# Run the Flutter GPU test suite.
557+
run_engine_executable(
558+
build_dir,
559+
'impeller_dart_unittests',
560+
executable_filter,
561+
shuffle_flags + ['--enable_vulkan_validation'],
562+
coverage=coverage,
563+
extra_env=extra_env,
564+
)
565+
556566

557567
def run_engine_benchmarks(build_dir, executable_filter):
558568
logger.info('Running Engine Benchmarks.')

0 commit comments

Comments
 (0)