plexinc / plex-media-player

Next generation Plex Desktop/Embedded Client
GNU General Public License v2.0
1.17k stars 170 forks source link

Blank screen #1018

Open theskillwithin opened 3 years ago

theskillwithin commented 3 years ago

PMS Version: Version 1.22.1.4228 PMP Version: can't check, I assume latest version

MacOS 11.2.3

Steps to reproduce

  1. Upgraded PMS, then opened PMP.

If i Visit plex in the browser it still works, just the mac app not working

Current behavior

  1. shows PLEX loading logo. then theres blank screen where usually user login is

Logs: https://gist.github.com/theskillwithin/ef7ed377f3b23478ced5b28f5b32aeee

image

mseeley commented 3 years ago

@theskillwithin thanks for reporting. I believe this is an issue setting up the Open GL rendering added in 1.30.0.

Will you please describe the graphics and display hardware? Could this be this a hackintosh? We need your help to identify the issue+solution though experimentation with two plex.ini settings. The tests are quick and easy, I may have over explained them below. 😅

Useful log context

Starting up we select Open GL surface format 3.3:

Mar 30, 2021 01:02:50.293 [0x70000dfe0000] INFO - Starting Plex version: 1.30.0.2105-43a11204
Mar 30, 2021 01:02:50.293 [0x70000dfe0000] INFO - Running on: macOS 10.16 [20.3.0] x86_64
Mar 30, 2021 01:02:50.293 [0x70000dfe0000] INFO - Happy Plexing!
Mar 30, 2021 01:02:50.293 [0x109b57e00] INFO - [OpenGL] Selected default renderer.
Mar 30, 2021 01:02:50.293 [0x109b57e00] INFO - [OpenGL] Default surface format version: 2.0
Mar 30, 2021 01:02:50.293 [0x109b57e00] INFO - [OpenGL] Selected surface format version: 3.3

Defaulting to 3.3 on Mac was influenced by this Apple support article. On Windows we'll default to 2.1.

Later on MPV provides some additional information:

Mar 30, 2021 01:02:50.991 [0x109b57e00] DEBUG - GL_VENDOR:         ATI Technologies Inc.
Mar 30, 2021 01:02:50.991 [0x109b57e00] DEBUG - GL_RENDERER:       AMD Radeon HD - FirePro D500 OpenGL Engine
Mar 30, 2021 01:02:50.991 [0x109b57e00] DEBUG - GL_VERSION:        4.1 ATI-4.2.15
Mar 30, 2021 01:02:50.991 [0x109b57e00] DEBUG - GL_EXTENSIONS:    GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_explicit_attrib_location GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ATI_texture_mirror_once GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_depth_bounds_test GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB_decode GL_NV_texture_barrier
Mar 30, 2021 01:02:50.991 [0x109b57e00] DEBUG - Max Texture Size: 16384
Mar 30, 2021 01:02:50.991 [0x109b57e00] DEBUG - Debug context:    false
Mar 30, 2021 01:02:51.053 [0x109b57e00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_VERSION='4.1 ATI-4.2.15'
Mar 30, 2021 01:02:51.053 [0x109b57e00] DEBUG - [MPVEngine/mpv] libmpv_render: Detected desktop OpenGL 4.1.
Mar 30, 2021 01:02:51.053 [0x109b57e00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_VENDOR='ATI Technologies Inc.'
Mar 30, 2021 01:02:51.053 [0x109b57e00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_RENDERER='AMD Radeon HD - FirePro D500 OpenGL Engine'
Mar 30, 2021 01:02:51.053 [0x109b57e00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_SHADING_LANGUAGE_VERSION='4.10'
Mar 30, 2021 01:02:51.053 [0x109b57e00] DEBUG - [MPVEngine/mpv] libmpv_render: Loaded extension GL_APPLE_rgb_422.
Mar 30, 2021 01:02:51.053 [0x109b57e00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_*_swap_control extension missing.

General testing steps

You'll perform the same series of steps for each test:

  1. Quit Plex for Mac
  2. Open plex.ini, you'll see various settings grouped under headings like [general] or [debug].
    • ~/Library/Application Support/Plex/plex.ini on Mac
    • %LOCALAPPDATA%\Plex\plex.ini on Windows
  3. Remove any renderer and openGLSurfaceFormat settings added for a previous test
  4. Add specific test settings
  5. Save plex.ini changes
  6. Start Plex for Mac
  7. Quit Plex for Mac
  8. Copy Plex.log somewhere safe and name it for the current test
    • ~/Library/Logs/Plex/Plex.log on Mac
    • %LOCALAPPDATA%\Plex\Logs\Plex.log on Windows

Test 1

We'll match the surface format suggested supported by MPV and Apple docs. Does this "just work"?

Example:

[general]
openGLSurfaceFormat=4.1

Test 2

Experiment with other 4.x surface format versions. I believe we'd see the same behavior as Test 1.

Example:

[general]
openGLSurfaceFormat=4.0

I'm thinking if Test 1 worked then Test 2 will also work.

Test 3

Experiment with different renderers.

Example:

[general]
renderer=desktop

Additional tests

Feel free to experiment with different combinations of renderer and openGLSurfaceFormat.

It's possible to render Chromium's GPU debugging screen instead of our UI. This can be helpful to identify if the combination of render and openGLSurfaceFormat still lead to hardware accelerated rendering. Two settings can be added to a new [debug] setting section:

[debug]
url=chrome://gpu
disableSplash=true

Here's an example of the debugging screen on my 2018 MBP.

mseeley commented 3 years ago

We've rolled back 1.30.0 because of reported Windows startup errors: https://forums.plex.tv/t/plex-windows-app-not-launching/703772/12?u=mattseeley

1.29.1 is again available on our downloads site.

1.30.0, with the UI hwaccel, is available for download below:

mseeley commented 3 years ago

@theskillwithin just wanted to check if you would give the macos 1.30 build above a run. It'd be really helpful to understand your system and if Test 1 passes. Thanks a lot for feedback+help.

theskillwithin commented 3 years ago

@mseeley It appears when I install the 1.30 version from the download link, it auto updates to 1.30.1 where the problem doesn't occur

(btw I am on a Mac Pro (Late 2013) AMD FirePro D500 3 GB)

mseeley commented 3 years ago

@theskillwithin, sorry, that's on me. Here's a fresher build: https://artifacts.plex.tv/plex-desktop-alpha/1.31.0.2135-0bd05312/macos/Plex-1.31.0.2135-0bd05312-x86_64.zip

1.30+ will only install updates when run from /Applications or ~/Applications. Running this alpha .app from ~/Downloads for example won't install any updates.

theskillwithin commented 3 years ago

@mseeley so unfortunately after testing, I have found that out of all the combinations renderer=software is the only one that works, it appears to work no matter what openGLSurfaceFormat is

image

mseeley commented 3 years ago

@theskillwithin thanks a lot for testing! That's great to know and still really disappointing, I was hoping 4.1 was going to be a winnner.

image

We'll keep investigating and post updates/fresh builds here. 😄

mseeley commented 3 years ago

@theskillwithin, sorry to bother, I need some information from your Chrome. I'm hoping this won't be an inconvenience. 😅

Specifically I'm after the GL_RENDERER and GL_VERSION information. Investigating in Plex for Mac I spotted this among Problems Detected output:

Disallow use of OpenGL on Mac with core profile < 4.1: 295792, 875891

While forcing 4.1 didn't help above perhaps GPU debug info from Chrome on the same machine will uncover something. 🤞

Thanks!!

theskillwithin commented 3 years ago

@mseeley no problem, here is the report:

https://gist.github.com/theskillwithin/1642b6d1a1369f2807da217d1dafbdf7

GL_RENDERER | AMD Radeon HD - FirePro D500 OpenGL Engine
GL_VERSION | 4.1 ATI-4.2.15
mseeley commented 3 years ago

Appreciated!

mseeley commented 3 years ago

Back at it again. Our Open GL configuration has been double checked and tweaked. I'm hopeful this build works better, if not I'll need to enlist a bigger brain.

@theskillwithin will you please:

I'm not holding my breath but I am 🤞. Thanks a lot for your continued help.

theskillwithin commented 3 years ago

@mseeley unfortunately still blank screen

Here is my plex.ini, the settings were already removed I think so I didn't edit the plex.ini. (I also tried right clicking and assigning the app to my other monitor screen=LG HDR 4K and re-opening but same result) (Edit: @mseeley removed plex.ini link.)

and the logs: https://gist.github.com/theskillwithin/361a7673252e887e6a883b0e6f810148

mseeley commented 3 years ago

Foiled again. Log file lines filtered for GL shows we think we're doing the right thing (desktop renderer, format 4.1): 😅

Apr 20, 2021 15:32:18.639 [0x109cfae00] INFO - [OpenGL] Selected desktop renderer.
Apr 20, 2021 15:32:18.639 [0x109cfae00] INFO - [OpenGL] Default surface format version: 2.0
Apr 20, 2021 15:32:18.639 [0x109cfae00] INFO - [OpenGL] Selecting surface format version: 4.1; profile: 1
Apr 20, 2021 15:32:19.207 [0x109cfae00] DEBUG - [Controllers/CodecManager]     jpegls
Apr 20, 2021 15:32:19.830 [0x109cfae00] DEBUG - [MPVEngine/mpv] cplayer: List of enabled features: asm bsd-fstatfs build-date coreaudio cplugins debug-build ffmpeg fork gl glob glob-posix iconv lgpl libass libdl libm libmpv-shared optimize osx-thread-name plain-gl posix posix-or-mingw pthreads stdatomic zlib
Apr 20, 2021 15:32:19.886 [0x109cfae00] DEBUG - opengl texture atlas dimensions: 8192x4096
Apr 20, 2021 15:32:19.886 [0x109cfae00] DEBUG - GL_VENDOR:         ATI Technologies Inc.
Apr 20, 2021 15:32:19.886 [0x109cfae00] DEBUG - GL_RENDERER:       AMD Radeon HD - FirePro D500 OpenGL Engine
Apr 20, 2021 15:32:19.886 [0x109cfae00] DEBUG - GL_VERSION:        4.1 ATI-4.2.15
Apr 20, 2021 15:32:19.886 [0x109cfae00] DEBUG - GL_EXTENSIONS:    GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_explicit_attrib_location GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ATI_texture_mirror_once GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_depth_bounds_test GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB_decode GL_NV_texture_barrier
Apr 20, 2021 15:32:19.945 [0x109cfae00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_VERSION='4.1 ATI-4.2.15'
Apr 20, 2021 15:32:19.945 [0x109cfae00] DEBUG - [MPVEngine/mpv] libmpv_render: Detected desktop OpenGL 4.1.
Apr 20, 2021 15:32:19.945 [0x109cfae00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_VENDOR='ATI Technologies Inc.'
Apr 20, 2021 15:32:19.945 [0x109cfae00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_RENDERER='AMD Radeon HD - FirePro D500 OpenGL Engine'
Apr 20, 2021 15:32:19.945 [0x109cfae00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_SHADING_LANGUAGE_VERSION='4.10'
Apr 20, 2021 15:32:19.945 [0x109cfae00] DEBUG - [MPVEngine/mpv] libmpv_render: Loaded extension GL_APPLE_rgb_422.
Apr 20, 2021 15:32:19.945 [0x109cfae00] DEBUG - [MPVEngine/mpv] libmpv_render: GL_*_swap_control extension missing.

This next (and final until we go deeper on our side) version is identical to the one you just tested except we prevent Chromium from using hardware accelerated rendering. I'm expecting this one to work for you, will you give it a download+run? If it works you should see UI and stable video playback. https://artifacts.plex.tv/plex-desktop-alpha/1.31.0.2237-fee1658d/macos/Plex-1.31.0.2237-fee1658d-x86_64.zip

theskillwithin commented 3 years ago

@mseeley Yep that one appears to work

gbooker commented 3 years ago

We've created a test build for 1.34.1 in https://forums.plex.tv/t/plex-for-mac-windows-1-34-1-test-builds/740683 where we would like this situation tested. It's possible that it may have really solved the issue or it may have come back. Please give it a try.

theskillwithin commented 3 years ago

@gbooker I downloaded, replaced plex in my Application folder with the download, then ran Plex. (I didn't change any .ini or config settings just replaced the app)

It works for me! no black screen