Skip to content

Crash on iPhone #272

Description

@zispidd

At a random moment, a crash occurred, and only once, but I logged it through TestFlight. Maybe this will help find the problem.

Image

Activity

  1. wcandillon commented on Oct 18, 2025

    @wcandillon
    Owner

    I'm not sure yet what it could be, what kind of WebGPU code this is running?

  2. zispidd commented on Oct 19, 2025

    @zispidd
    Author

    typegpu confetti. i updated to the latest version and for me it happened only once, so i don't know the exact reason

  3. wcandillon commented on Oct 27, 2025

    @wcandillon
    Owner

    @zispidd I am not sure about this particular crash but 0.3.0 in #275 is fixing tons of issues and bugs and I would be curious to see if you still get this crash with this new version. We are trying to release it asap.

  4. normanwilde commented on Oct 30, 2025

    @normanwilde

    Just flagging that we've also recently introduced the library (v 0.2.10) to our app via typegpu-confetti and have experienced crashes on app start sporadically (about 2% of sessions) on production. The logs come from Datadog, unfortunately I couldn't get anything more concrete.

    4
    Metal
    MTLReportFailure
    5
    AGXMetalA11
    -[AGXA11FamilyCommandBuffer blitCommandEncoderCommon:]
    6
    AppName
    dawn::native::metal::CommandRecordingContext::EnsureBlit()
    7
    AppName
    dawn::native::metal::Device::CopyFromStagingToBuffer(dawn::native::BufferBase*, unsigned long long, dawn::native::BufferBase*, unsigned long long, unsigned long long)
    8
    AppName
    dawn::native::BufferBase::UploadData(unsigned long long, void const*, unsigned long)
    9
    AppName
    dawn::native::QueueBase::WriteBuffer(dawn::native::BufferBase*, unsigned long long, void const*, unsigned long)
    10
    AppName
    dawn::native::QueueBase::APIWriteBuffer(dawn::native::BufferBase*, unsigned long long, void const*, unsigned long)
    11
    AppName
    dawn::native::NativeQueueWriteBuffer(WGPUQueueImpl*, WGPUBufferImpl*, unsigned long long, void const*, unsigned long)
    12
    AppName
    wgpu::Buffer::~Buffer() (webgpu/webgpu_cpp.h:1621)
    13
    AppName
    wgpu::Buffer::~Buffer() (webgpu/webgpu_cpp.h:1621)
    14
    AppName
    rnwgpu::GPUQueue::writeBuffer(std::__1::shared_ptr<rnwgpu::GPUBuffer>, unsigned long long, std::__1::shared_ptr<rnwgpu::ArrayBuffer>, std::__1::optional<unsigned long long>, std::__1::optional<unsigned long>) (api/GPUQueue.cpp:79)
    15
    AppName
    std::__1::shared_ptr<rnwgpu::ArrayBuffer>::~shared_ptr[abi:ne200100]() (__memory/shared_ptr.h:557)
    16
    AppName
    std::__1::shared_ptr<rnwgpu::ArrayBuffer>::~shared_ptr[abi:ne200100]() (__memory/shared_ptr.h:556)
    17
    AppName
    margelo::HybridObject::callMethod<rnwgpu::GPUQueue, void, std::__1::shared_ptr<rnwgpu::GPUBuffer>, unsigned long long, std::__1::shared_ptr<rnwgpu::ArrayBuffer>, std::__1::optional<unsigned long long>, std::__1::optional<unsigned long>, (unsigned long)0, (unsigned long)1, (unsigned long)2, (unsigned long)3, (unsigned long)4>(rnwgpu::GPUQueue*, void (rnwgpu::GPUQueue::*)(std::__1::shared_ptr<rnwgpu::GPUBuffer>, unsigned long long, std::__1::shared_ptr<rnwgpu::ArrayBuffer>, std::__1::optional<unsigned long long>, std::__1::optional<unsigned long>), facebook::jsi::Runtime&, facebook::jsi::Value const*, std::__1::integer_sequence<unsigned long, ((unsigned long)0, (unsigned long)1, (unsigned long)2, (unsigned long)3, (unsigned long)4)...>, unsigned long) (jsi/RNFHybridObject.h:106)
    
  5. zispidd commented on Nov 8, 2025

    @zispidd
    Author

    New error: TypeError: 0, _$$_REQUIRE(_dependencyMap[10(...)ct-native-wgpu").useCanvasEffect is not a function (it is undefined)

  6. wcandillon commented on Nov 10, 2025

    @wcandillon
    Owner

    @zispidd yes you can just use useLayoutEffect now (or useEffect). Isn't that cool? :)

  7. zispidd commented on Nov 10, 2025

    @zispidd
    Author

    @zispidd yes you can just use useLayoutEffect now (or useEffect). Isn't that cool? :)

    ah okay, i use typegpu-confetti, i guess it's problem on their side

  8. wcandillon commented on Nov 10, 2025

    @wcandillon
    Owner

    @zispidd Thank You for being an early adopter of this module, it was in a really shaky state at the beginning but now it's starting to get there :) And we are investing more work into it.

  9. zispidd commented on Nov 10, 2025

    @zispidd
    Author

    @zispidd Thank You for being an early adopter of this module, it was in a really shaky state at the beginning but now it's starting to get there :) And we are investing more work into it.

    thank you for your contribution to open source :)

  10. jcarioti commented on Nov 29, 2025

    @jcarioti

    @zispidd yes you can just use useLayoutEffect now (or useEffect). Isn't that cool? :)

    Looking at the confetti implementation, they store a ref like such const ref = useCanvasEffect(() => { ... });, but useEffect and useLayoutEffect don't return a ref.

    Isn't it this library's responsibility for making sure the useCanvasEffect export works without intermittently being undefined, @wcandillon?

  11. wcandillon commented on Nov 29, 2025

    @wcandillon
    Owner

    @jcarioti we where finally able to remove useCanvasEffect. Our goal is to have the example as close as possible as you would write it on the web, once we drop support for the legacy architecture, we where able to remove the very unstable useCanvasEffect which made us very happy. I hope it makes sense?

  12. jcarioti commented on Nov 29, 2025

    @jcarioti

    Yes, makes perfect sense. I'd be willing to test out the newest version when it's ready!

  13. wcandillon commented on Dec 1, 2025

    @wcandillon
    Owner

    it's released already!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions