Commit Graph
5 Commits
Author SHA1 Message Date
西风逍遥游 a6901a0691 feat(android): run zeroerr unit_test suite as an Android test app
Adds EVENGINE_ANDROID_TEST_APP build mode: the unit_test sources are
compiled into libmain.so (SDL entry) and packaged by the existing Gradle
APK along with the test assets, so the full zeroerr suite can run on a
device via adb logcat.

- test/main.cpp: Android runner with LogcatBuf (cout/cerr -> logcat),
  chdir to <files>/evengine_test, SDL_Init; keeps SDL_main symbol unmangled.
- test/PathBesideSource.h: shared pathBesideThisSource helper that maps
  __FILE__ to the on-device unpacked tree on Android.
- EVTestActivity: unpacks assets/test + assets/examples to internal
  storage and passes an optional --testcase filter from an intent extra.
- test/CMakeLists.txt: builds `main` instead of unit_test on Android,
  excludes desktop-only devtools tests, links Android system libs.
- Makefile: build/android-debug-test, sync/android-test-assets,
  run/android-test-debug, log/android-test targets.
- Gradle wrapper bumped to 8.5 for Java 21 compatibility.
2026-08-14 23:05:42 +08:00
西风逍遥游andCursor Agent c5ec152369 test(graphics): classic 场景开启 mipmap 与各向异性过滤 (#51)
* test(graphics): enable mipmaps and anisotropy in classic scene loads

ClassicScenes Assimp albedo, RenderImageAudit studio checkers/rock maps,
and RenderSystem3D motif/checker textures now use TextureCreateInfo::withMipmaps
so flythroughs exercise trilinear + anisotropic filtering while engine defaults stay off.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(test): avoid REQUIRE on MipmapMode enum in ClassicScenes

zeroerr tries to stream enum values in assertion diagnostics and has no
operator<< for MipmapMode, which broke Linux/macOS/Windows CI builds.
Compare via static_cast<int> like TextureSampler.cpp.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(test): use .get() in unique_ptr REQUIRE checks

zeroerr assertion diagnostics copy compared values; REQUIRE(unique_ptr)
fails to compile because unique_ptr is non-copyable.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-13 23:50:01 +08:00
西风逍遥游 6c73264707 fix(threadpool): enhance thread safety during destruction and stopping
- Updated ThreadPool destructor to handle exceptions during stop() gracefully, ensuring no unhandled exceptions disrupt the program.
- Improved stop() method to detach threads that are currently executing, preventing potential deadlocks when stopping the thread pool.
- Adjusted worker thread joining logic to ensure proper cleanup and resource management.

Additionally, modified occupancy threshold in RenderImageAudit to improve detection of incomplete frames, ensuring better handling of sparse frames.
2026-08-13 10:09:50 +08:00
西风逍遥游andCursor 973ad214ac fix(graphics): match CSM clip space and keep ClassicScenes midtones readable
Shadow ortho now uses the same Vulkan Y-flip as the camera, with nearest depth sampling so manual PCF does not invent false umbra. Tonemap only compresses HDR peaks, and scene sun intensity is no longer overwritten per config.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 08:29:09 +08:00
西风逍遥游andCursor 8e69d6e975 feat(graphics): uncapped present, async offscreen passes, and scene FPS bench
Record shadow and G-buffer into the in-flight swapchain command buffer, add Graphics::setVSync for IMMEDIATE present, and measure ClassicScenes FPS with image-audit snapshots.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 01:05:48 +08:00