Git Product home page Git Product logo

Comments (14)

HidenoriMatsubayashi avatar HidenoriMatsubayashi commented on August 17, 2024

I feel #374 is probably the cause.

from flutter-embedded-linux.

HidenoriMatsubayashi avatar HidenoriMatsubayashi commented on August 17, 2024

that happens if an other application (like gstreamer) wants to render something through wayland.

Specifically, can you please tell me how to reproduce this issue?

from flutter-embedded-linux.

HidenoriMatsubayashi avatar HidenoriMatsubayashi commented on August 17, 2024

This issue shouldn't occur in release flavor.

https://github.com/flutter/engine/blob/main/shell/common/display_manager.cc#L27C15-L27C23

void DisplayManager::HandleDisplayUpdates(
    std::vector<std::unique_ptr<Display>> displays) {
  FML_DCHECK(!displays.empty());
  std::scoped_lock lock(displays_mutex_);
  displays_ = std::move(displays);
}

from flutter-embedded-linux.

angelobt avatar angelobt commented on August 17, 2024

Thanks for the support. As soon as possible we will try the release flavor

from flutter-embedded-linux.

HidenoriMatsubayashi avatar HidenoriMatsubayashi commented on August 17, 2024

This failure is really strange. It can't happen as I've implemented UpdateDiplayInfo API call with display_count = 1.

https://github.com/sony/flutter-embedded-linux/blob/master/src/flutter/shell/platform/linux_embedded/flutter_elinux_view.cc#L578:

void FlutterELinuxView::UpdateDisplayInfo(double refresh_rate,
                                          size_t width_px,
                                          size_t height_px,
                                          double pixel_ratio) {
  const FlutterEngineDisplaysUpdateType update_type =
      kFlutterEngineDisplaysUpdateTypeStartup;
  const FlutterEngineDisplay displays = {
      .struct_size = sizeof(FlutterEngineDisplay),
      .display_id = 0,
      .single_display = true,
      .refresh_rate = refresh_rate,
      .width = width_px,
      .height = height_px,
      .device_pixel_ratio = pixel_ratio,
  };
  const size_t display_count = 1;
  engine_.get()->UpdateDisplayInfo(update_type, &displays, display_count);
}

[FATAL:flutter/shell/common/display_manager.cc(32)] Check failed: displays_.empty().

Also, this error shows the line number is 32, but it should be line 27.
https://github.com/flutter/engine/blob/main/shell/common/display_manager.cc#L27C15-L27C23

@angelobt What flutter/engine version are you using? Also, are you using this software (flutter-embedded-linux) as is?

from flutter-embedded-linux.

omarhogni avatar omarhogni commented on August 17, 2024

+1 for this issue, same setup weston, kiosk shell

from flutter-embedded-linux.

HidenoriMatsubayashi avatar HidenoriMatsubayashi commented on August 17, 2024

Can you please share the detailed steps to reproduce this crash?

from flutter-embedded-linux.

omarhogni avatar omarhogni commented on August 17, 2024

Switching to 7f83ccb it looks like the error is gone.

from flutter-embedded-linux.

omarhogni avatar omarhogni commented on August 17, 2024

For me this is not a crash but just at startup. But I am consuming this project through meta-flutter and using that project to build the engine and do the heavy lifting. then I just start it.

What kind of steps are you looking for?

from flutter-embedded-linux.

HidenoriMatsubayashi avatar HidenoriMatsubayashi commented on August 17, 2024

What version of flutter/engine are you using?

What kind of steps are you looking for?

Just how to reproduce this issue / your steps. I have never used weston + kiosk shell. Also, can this issue be reproduced on desktop PCs?

from flutter-embedded-linux.

HidenoriMatsubayashi avatar HidenoriMatsubayashi commented on August 17, 2024

Just in case, FlutterEngineDisplay API of flutter/engine's embedder has been supported since flutter 3.13.0. If you use the latest this software, you need to use flutter version 3.13.0 or higher.

from flutter-embedded-linux.

omarhogni avatar omarhogni commented on August 17, 2024

I am using 3.7.7 so that might be it.

from flutter-embedded-linux.

HidenoriMatsubayashi avatar HidenoriMatsubayashi commented on August 17, 2024

Definitely, yes. Please use 3.13.0 or higher. I'll close this issue. Please let me know if you get this error even if you use the correct versions. I'll re-open it.

from flutter-embedded-linux.

angelobt avatar angelobt commented on August 17, 2024

I'm using flutter-engine 3.3.10. So it makes sense

from flutter-embedded-linux.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.