playcanvas / playcanvas/splat-transform
Bug: SegFault on conversion (k-means webgpu)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.3k
- Forks
- 168
- Avg merge
- 7h 51m
- Merged PRs (30d)
- 12
Description
Segfault during k-means webgpu on v0.8.0 Linux
GPU segfault
Summary: Running splat-transform v0.8.0 on a .ply crashes with a segmentation fault right after the k-means step.
The run also floods stdout with millions of Dawn/Node-WebGPU getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName lines. Maybe not causing direct issue, but could be relevant.
Command used
splat-transform <REDACTED_INPUT>.ply --filterNaN -i 2 <REDACTED_OUTPUT_DIR>/meta.json
# (original run redirected to a log file)
Expected behavior
Process completes and writes outputs without crashing.
Actual behavior
Process ends with Segmentation fault (core dumped) immediately after the k-means log line.
Console output (redacted excerpt)
splat-transform v0.8.0
reading '<REDACTED_INPUT>.ply'...
writing '<REDACTED_OUTPUT_DIR>/meta.json'...
writing '<REDACTED_OUTPUT_DIR>/means_l.webp'...
writing '<REDACTED_OUTPUT_DIR>/means_u.webp'...
writing '<REDACTED_OUTPUT_DIR>/quats.webp'...
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:337 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0xbd06e060
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0x574d
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0xb7396080
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0x574d
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0xbf8bef3a
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0xbf8bf80a
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0xbf8c0683
/... (≈98,555,568 similar lines omitted) ...
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0xb1e1d35d
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0xb1e9720e
/home/runner/work/node-webgpu/node-webgpu/third_party/dawn/src/dawn/node/binding/GPU.cpp:0x151 getWgslLanguageFeatures: Unknown WGSLLanguageFeatureName WGSLLanguageFeatureName::0x33110f6c
WEBGPU features: float32-filterable, float32-blendable, texture-compression-bc, timestamp-query, depth-clip-control, depth32float-stencil8, indirect-first-instance, bgra8unorm-storage, rg11b10ufloat-renderable, clip-distances
Warning: DawnTexelCopyBufferRowAlignmentLimits is not supported in required limits
Warning: hostMappedPointerLimits is not supported in required limits
Powered by PlayCanvas 2.11.2 853d4aa
Running k-means clustering: dims=1 points=599745 clusters=256 iterations=2...
Segmentation fault (core dumped)
Environment
- splat-transform: v0.8.0
- OS: Linux | Ubuntu 25.04
- GPU/Driver: RTX 3090 | nvidia driver 575.64.03
- Node version: v24.7.0
- Vulkan Instance Version: 1.4.304
- PlayCanvas (reported by splat-transform): 2.11.2 (853d4aa)
CPU only run works (Albeit it takes forever)
I also tried a CPU only run with the command:
splat-transform --no-gpu -w /input_path/input.ply --filterNaN -i 2 /output_path/meta.json
It works but takes forever (44mins on a ~45MB input ply with ryzen 7900X). The step that takes the most time is the k-mean clustering on centroid:
Running k-means clustering: dims=45 points=199915 clusters=65536 iterations=2...
So it seems to be a gpu bug only...
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the reported splat-transform command on Linux with the WebGPU path and compare it with the working --no-gpu run. Investigate the k-means step identified by the final log line, alongside the repeated Dawn/Node-WebGPU warnings. Done means the GPU run completes without a segmentation fault and writes its expected outputs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nodejs, typescript
- Domain
- cli, computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100