[haiku-bugs] Re: [Haiku] #16463: HP Envy x360 2020 AMD Ryzen R4 4700 support

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Tue, 29 Sep 2020 11:38:54 -0000

#16463: HP Envy x360 2020 AMD Ryzen R4 4700 support
---------------------------------+----------------------------
  Reporter:  yangh               |      Owner:  axeld
      Type:  bug                 |     Status:  new
  Priority:  normal              |  Milestone:  Unscheduled
 Component:  Servers/app_server  |    Version:  R1/Development
Resolution:                      |   Keywords:
Blocked By:                      |   Blocking:
  Platform:  All                 |
---------------------------------+----------------------------
Comment (by yangh):

 I've dumped modes returned from fHWInterface->GetModeList(&modes, &count),

 status_t
 Screen::SetBestMode(uint16 width, uint16 height, uint32 colorSpace,
         float frequency, bool strict)
 {
         // search for a matching mode
         display_mode* modes = NULL;
         uint32 count;
         status_t status = fHWInterface->GetModeList(&modes, &count);

 Please refer to the haiku-envy-x360-modes-dump.jpeg​, the output shows
 that there are two mode available, both are 1920x1080, so could not
 matches 1024x768 or 800x600 from:

 VirtualScreen::AddScreen(Screen* screen, ScreenConfigurations&
 configurations)
 {
         screen_item* item = new(std::nothrow) screen_item;
         if (item == NULL)
                 return B_NO_MEMORY;

         item->screen = screen;

         status_t status = B_ERROR;
 ...
         if (status != B_OK) {
                 status_t status = screen->SetPreferredMode();
                 if (status != B_OK)
                         status = screen->SetBestMode(1024, 768, B_RGB32,
 60.f);
                 if (status != B_OK)
                         status = screen->SetBestMode(800, 600, B_RGB32,
 60.f, false);
                 if (status != B_OK) {
                         debug_printf("app_server: Failed to set mode:
 %s\n",
                                 strerror(status));
                 }

 Then, I added a new mode before 1024x768:

                 if (status != B_OK)
                         status = screen->SetBestMode(1920, 1080, B_RGB32,
 60.f);

 Then it matched, but I still can't see the desktop, and the boot process
 stopped at the red rocket which is the same as before, the on-screen debug
 message stopped after the new mode matched.

 Why haiku_loader could display normally and also the splash screen? Any
 suggestions for the next step?

 Since this is a brand new CPU and GPU (embedded in the SoC), should I try
 to hack the Radeon driver?

 Thanks
 Walter
-- 
Ticket URL: <https://dev.haiku-os.org/ticket/16463#comment:10>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

Other related posts: