Open theskillwithin opened 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. 😅
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.
You'll perform the same series of steps for each test:
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 Windowsrenderer
and openGLSurfaceFormat
settings added for a previous testplex.ini
changesPlex.log
somewhere safe and name it for the current test
~/Library/Logs/Plex/Plex.log
on Mac%LOCALAPPDATA%\Plex\Logs\Plex.log
on WindowsWe'll match the surface format suggested supported by MPV and Apple docs. Does this "just work"?
openGLSurfaceFormat=4.1
below the [general]
sectionExample:
[general]
openGLSurfaceFormat=4.1
Experiment with other 4.x surface format versions. I believe we'd see the same behavior as Test 1.
openGLSurfaceFormat={value}
below the [general]
section where {value}
is one of 4.0
, 4.2
, 4.3
Example:
[general]
openGLSurfaceFormat=4.0
I'm thinking if Test 1 worked then Test 2 will also work.
Experiment with different renderers.
openGLSurfaceFormat
setting is removedrenderer={value}
where {value}
is one of desktop
(this is the default), angle
, software
Example:
[general]
renderer=desktop
desktop
and potentially angle
should produce the same black screen behavior.software
will avoid all hardware accelerated rendering. It should prevent the black screen without any openGLSurfaceFormat
change.Feel free to experiment with different combinations of renderer
and openGLSurfaceFormat
.
renderer=desktop
or omitting a renderer
setting all together should provide best performancerenderer=software
provides the worst performanceopenGLSurfaceFormat
setting value that's too low will also result in a black screenIt'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.
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:
@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.
@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)
@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.
@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
@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.
We'll keep investigating and post updates/fresh builds here. 😄
@theskillwithin, sorry to bother, I need some information from your Chrome. I'm hoping this won't be an inconvenience. 😅
Copy Report to Clipboard
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!!
@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
Appreciated!
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:
renderer
and openGLSurfaceFormat
settings from plex.ini
. On Mac we'll use your system's Open GL driver and now configure to surface format 4.1 and core-profile.Plex.app
from: https://artifacts.plex.tv/plex-desktop-experimental/1.31.0.2235-5c47b3c3/macos/Plex-1.31.0.2235-5c47b3c3-x86_64.zip~/Library/Logs/Plex/Plex.log
to this GHI.I'm not holding my breath but I am 🤞. Thanks a lot for your continued help.
@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
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
@mseeley Yep that one appears to work
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.
@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
PMS Version: Version 1.22.1.4228 PMP Version: can't check, I assume latest version
MacOS 11.2.3
Steps to reproduce
If i Visit plex in the browser it still works, just the mac app not working
Current behavior
Logs: https://gist.github.com/theskillwithin/ef7ed377f3b23478ced5b28f5b32aeee