Windows batch script enhancements#88
Merged
Merged
Conversation
…t), install-ifcopenshell.cmd (now bat) directly from File Explorer or command prompt without VS env vars set, if BuildDepsCache file exists, by utilizing CMake's --build functionality. Do not delete CMakeCache.txt always now in order to keep the build options consistent.
Contributor
Author
|
Oops, accidentally deleted this branch. |
Member
|
I like these changes, this will simplify things quite a bit. Thanks!
|
Contributor
Author
|
Yeah, I'll do these enhancements. Regarding the trailing dot, it is intentional (it is "best practice" of some sort, even |
…ror if GEN_SHORTHAND does not exist.
Contributor
Author
|
The fixes/enhancements are in. |
Member
|
Great, thanks again Ali! |
This was referenced Jan 1, 2023
Closed
Moult
added a commit
that referenced
this pull request
Jun 9, 2026
Replaces the standalone wgpu-only clear-color spike in main_web.cpp with a real WebViewportHost implementation: surface creation via the emdawnwebgpu canvas-selector source, framebufferSize through emscripten_get_element_css_size + dpr, requestFrame as a deferred flag the RAF main_loop consumes, quit through emscripten_force_exit. main_web.cpp now does the same lifecycle the desktop initWgpu shell does: core_.initWgpu(web_limits=true) → buildPipelines → buildHiz/ Edge/Pick. The render loop runs core_.render() once per RAF tick when the host has flagged a frame pending, with a surface reconfigure on size changes. Builds clean under emcc 6.0 + emdawnwebgpu (1.4 MB wasm, 278 KB JS glue). Renders an empty scene with the configured background — the plumbing is end-to-end through the same ViewportCore code path the desktop build uses. No sidecar load yet: that lands with the emscripten_fetch streaming backend (#88).
Moult
added a commit
that referenced
this pull request
Jun 9, 2026
1) Async-wait spin loops in initWgpu / probeAndCreatePool / pick / screenshot finalize all called wgpuInstanceProcessEvents in a tight while. wgpu-native drives queued callbacks from there; Dawn-web queues the callback for an event-loop tick that never happens because wasm doesn't yield back to JS. Page hung at the first await (RequestAdapter) and Firefox flagged the tab as slow. New `waitTickInstance` helper calls emscripten_sleep(0) on Emscripten (Asyncify unwinds wasm, JS resolves WebGPU promises, resume) before wgpuInstanceProcessEvents drains completions into our callback. Desktop path is unchanged. All five `while (!done) ProcessEvents` sites switch to the helper. 2) streaming_thread_.start() inside initWgpu spawns a std::thread. On Emscripten that needs -pthread + COOP/COEP headers from the hosting page. None of that is wired yet, so the start is gated `#if !defined(__EMSCRIPTEN__)`. The sync chunk-load fallback already inside driveStreamingLoads carries the load until #88 replaces it with emscripten_fetch. 3) wgpuSurfacePresent at the end of render() aborted with "wgpuSurfacePresent is unsupported (use requestAnimationFrame via html5.h instead)" — Dawn-web composites the canvas at the end of the RAF tick automatically. Call skipped on Emscripten; WebViewportHost::requestFrame is the RAF-tick driver. Page now loads, brings up wgpu, configures the surface, and renders one frame with the configured background. The frame log in the status overlay shows the first-frame startup spike (~1000 fps from a 1 ms tick); subsequent frames are paint-on-demand, which on the empty scene means no frames at all — consistent with the desktop event-driven model.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Make possible to invoke run-cmake.bat, build-ifcopenshell.bat, and install-ifcopenshell.cmd directly from File Explorer or command prompt without VS env vars set, if BuildDepsCache file exists, by utilizing CMake's --build functionality.