Commit Graph
14 Commits
Author SHA1 Message Date
西风逍遥游 4042d72edc log: persist crash/error events to eve.log
Add a self-contained, thread-safe crash/error log (common/CrashLog) that
survives process death, plus instrumentation at key lifecycle points so a
crash log reveals the system state that led to it.

- CrashLog.{h,cpp}: append-only eve.log recorder with initSystemLogging,
  recordLogEvent, recordCrashEvent (try-lock safe for crash handlers) and
  crashLogPath. EVE_LOG_DIR overrides the location.
- CrashHandler.h: unhandled-exception backtrace is now also written to
  eve.log, not only stderr.
- main.cpp: open the log before anything can fail.
- Run.cpp: record run start + top-level failures; bind eve.log() so scripts
  share the same crash log.
- vulkan/Graphics.cpp: log GPU identity/driver/caps and graphics init
  milestones (swapchain/pipelines) - the likeliest hard-crash area.
- load.nut: boot milestones (modules, window+vulkan, game script) and a
  periodic frame-count marker to locate how far the loop got.
- test/crashlog.cpp: init/record/crash coverage.
2026-08-25 22:47:43 +08:00
西风逍遥游 80aca00f67 Merge remote-tracking branch 'origin/dev' into codex/cmdline-fixes
# Conflicts:
#	src/engine/cmdline/Doc.cpp
2026-08-22 10:45:21 +08:00
西风逍遥游 fe661c2bfe feat(cmdline): cross-platform packaging + runnable-win32 SDK + unbuffered stdout
- eve package now keys off the target SDK (share/eve/TARGET_PLATFORM): win32
  targets get bin/eve.exe, linux/macosx get bin/eve, so a Linux/macOS host can
  produce a Windows game folder without a Visual Studio install.
- win32 SDKs bundle vulkan-1.dll + the VC redistributable next to eve.exe
  (cmake/win32_bundle_runtime.cmake), making packaged games self-contained and
  letting any host copy them into a package; eve package prefers those bundled
  DLLs and only falls back to a local VS redist on Windows hosts.
- main.cpp makes stdout unbuffered so startup markers from eve_init are visible
  in redirected CI logs (previously buffered and lost on force-kill).

Verified end-to-end on this machine: the packaged win32 game mounts game.eve,
loads config/main.nut, runs eve_init (EVE_VERIFY_OK) and presents the first
frame.
2026-08-22 10:22:52 +08:00
西风逍遥游 811eff1c3a ci(quality): warnings-as-errors gate, sanitizers, smoke, Python lint/tests
- EVENGINE_ENABLE_STRICT_WARNINGS option: MSVC /W4 /WX, GCC/Clang
  -Wall -Wextra -Werror, with documented noise suppressions and
  -isystem/-external:I for third-party headers; enabled on the
  Windows/Linux debug CI jobs.
- Fix warnings across engine, modules and tests exposed by the gate,
  including real bugs (incomplete-type deletes, Timespan microsecond
  overflow, overload hiding, enum switch gaps, dead code).
- Add Linux ASan+UBSan job, example smoke step, python-tools test
  job, ruff config (scripts+tools), weekly Linux coverage job and a
  CodeQL workflow.
2026-08-22 02:27:37 +08:00
西风逍遥游 454c4b5504 gpu-driven: fix indirect instance indexing and bind per-mesh buffers
Stage 1 (CPU indirect draw) produced no geometry for the second draw:
- mesh3d_gpudriven.vert added pc.firstInstance on top of gl_InstanceIndex,
  which already includes VkDrawIndexedIndirectCommand.firstInstance per the
  Vulkan spec; the second command read instance 2 instead of 1 and sampled
  garbage matrices. Drop the push-constant indirection entirely.
- gpuDrivenSubmitOpaque never bound vertex/index buffers; each GpuMesh owns
  its own buffer pair (vertexBase/firstIndex are 0), so draws ran against
  whatever the legacy path left bound. Track meshRecordOwners_ parallel to
  the GPU mesh table and bind per-mesh at bucket boundaries.

Test: GpuDriven.opaqueForwardParityMultiTexture now uses a distinct bindless
slot-1 albedo on the second sphere; all 5 GpuDriven tests + IndirectBuilder
tests pass (integrated GPU). Also add the shared Windows crash-backtrace
handler (CrashHandler.h) to unit_test and document the repo debugging
playbook (incl. stale-object/layout pitfalls with unscanned Ninja deps) in
AGENTS.md.
2026-08-21 13:35:57 +08:00
西风逍遥游 fcbfb1323f feat(crash): symbolized backtrace via backward-cpp on Windows
Install an unhandled-exception filter (backward-cpp/DbgHelp) that prints the exception code and a symbolized stack trace. backward-cpp is provided by the EVEngine/third-party repo and consumed from the prebuilt third-party install tree. EVE_TEST_CRASH=1 forces a crash for verifying the handler.
2026-08-19 09:49:07 +08:00
西风逍遥游 a0bd90c775 fix(startup): cut make-run delay and add boot timing diagnostics
Makefile: defer the WSL capability probe so make run no longer cold-starts the WSL VM (use wsl -l -q for make all). filesystem: file() now fails when the file is missing so file_exists() returns false (eve run from a dir without config.nut no longer dies at dofile). Add temporary [startup] stage timers and EVE_BOOT_BENCH auto-exit to profile boot time.
2026-08-19 08:26:53 +08:00
西风逍遥游 8dd21d3ea3 feat(webgpu): integrate WebGPU backend support and enhance build configuration
- Added support for the WebGPU backend in the CMake configuration, enabling builds for Emscripten and native Dawn.
- Implemented conditional compilation for WebGPU-specific features, including shader management and file system handling.
- Updated the build process to exclude unnecessary modules and dependencies for WebGPU, optimizing the engine for browser environments.
- Enhanced the installation script to include WebGPU-related files and directories in the output.
- Refactored existing modules to accommodate WebGPU, ensuring compatibility and performance improvements across the engine.
- Introduced new compile options and configurations tailored for WebGPU builds, including handling of third-party libraries and assets.
2026-08-15 10:46:26 +08:00
sunxfancyandCursor 9571c59f41 fix: finish iOS app link and document signing for device install
Add an iOS Ninja toolchain for deps, use STATIC libs under Xcode to avoid
hashed OBJECT link failures, stub system()/ios namespace clashes, and allow
unsigned local builds when IOS_DEVELOPMENT_TEAM is unset.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 00:21:39 +08:00
sunxfancyandCursor ce73a30e35 fix: enable MoltenVK portability and mobile surface recreate on iOS
Inject bundle game launch args, share Android-style resume surface rebuild, and skip validation layers for the first device bring-up.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 23:57:00 +08:00
sunxfancyandCursor 7eae0b886c feat: add Android platform runtime and assets-based game launch
Unpack APK game assets into internal storage, route SDL_main into the engine cmdline entry, and keep Android filesystem paths aligned with the runtime root.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 23:27:05 +08:00
西风逍遥游 a51708bb65 improve cmd 2021-10-24 22:37:07 -07:00
西风逍遥游 3445b18b1f update module structure 2021-10-21 20:54:07 -07:00
西风逍遥游 407e3218e5 add cmdline and some basic code 2021-09-09 09:17:29 -07:00