- A triangle tracker under the progress bar to track the test
currently in view within the scroll view.
- Text label to indicate the current device under test when a
test is running.
- add filter intent arg
- Add Fox (animation, skinning) and TransmissionRoughnessTest
(transmission) to the test.
- Add applyAnimation to the ValidationRunner
- Make camera zoom in for default test and adjust tolerance
acoordingly
- Fix non-determinism of SSR by
- waiting for more frames
- account for false returned from beginFrame
- Clear frame history on new test entry
- Include Build.HARDWARE information into result
- Make results array more thread-safe
- Remove unused paths
- Adjust tolerance for two tests
- Update default_test.json with targeted test variants and documented
tolerance presets.
- Refactor test suite to cover distinct code paths while maintaining
multi-backend compatibility (OpenGL/Vulkan).
- Integrate TestProgressBar and UI summary text for better test progress
visualization.
- Enhance validation managers with dynamic naming, zip extraction/export,
and bundle creation.
- Update validation_app.py terminal UI to support multiple devices,
device switching, and local result serving.
This commit introduces several features:
- Backend Testing: Support testing across both OpenGL and Vulkan. Test
configurations expand per backend, and the Filament Engine alongside
ModelViewer is recreated dynamically when the backend switches to isolate
resources.
- UI Controls: Added a backend filter toggle and a test progress bar to the
main activity, themed appropriately using Material design.
- Memory Optimizations: Drastically reduced memory usage by displaying
scaled-down thumbnails (128x128) in the main list. Full-resolution images
are lazy-loaded from disk on demand when clicking a thumbnail to view, and
large bitmaps are aggressively recycled.
- Device Info Collection: ValidationResultManager now collects and reports
detailed GPU driver info for each instantiated backend in the output
results.json.
- Engine Teardown: Introduced an explicit destroy() method in ModelViewer to
ensure full resource cleanup during engine recreation.
Add the following information:
- Android build fingerprint, version
- GPU driver name, info, vendor name
- Time elapsed for test
- Rendered images (as oppose to diff image)
filament-utils:
- Add DeviceUtils to hook into Platform methods for reading out
strings about gpu vendor, driver.
Fix "tolerance" in test definition
- Add reset functionality to ModelViewer
- We use this reset in render-validation to not have to reload
the scene in runs that use the same model.
- Fix a bug where the camera manipulator is disabling setting
the camera via view config.
Android App:
- Refactored activity_main.xml to use modern Material 3 components.
- Grouped Export/Help buttons logically and moved ADB instructions
to dedicated info icons.
- Added an in-app "Load Test" button to explicitly pick test bundles.
- Updated ValidationInputManager.kt to gracefully handle relative
zip_path intent execution via ADB targeting app external storage.
Tooling & Documentation:
- Added a Python Textual TUI (validation_app.py) to automate device
discovery, test execution, bundling, renaming, and
downloading/uploading.
- Added README.md in test/render-validation documenting ADB intent
parameter capabilities and TUI dashboard setup.
- Update UI
- Wait for resources to finish loading before testing
- Refactor validation to input/output
- Move assets to be generated from the repo
- Fix AutomationEngine java binding to add missing fields
- This is an initial implementation, not yet complete
- Goal of this sample is to run a series of offscreen single
frame captures, and capmre the result against a set of golden
images
- Uses existing scene description in libs/viewer and
test/renderdiff
- Uses existing image difference description/implementation in
libs/imagediff
- Add imagediff API to filament-utils-android