Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom browser dock window under Wayland is transparent #279

Open
rmnvgr opened this issue Apr 2, 2021 · 25 comments
Open

Custom browser dock window under Wayland is transparent #279

rmnvgr opened this issue Apr 2, 2021 · 25 comments

Comments

@rmnvgr
Copy link

rmnvgr commented Apr 2, 2021

Operating System Info

Other

Other OS

Fedora 33

OBS Studio Version

Other

OBS Studio Version (Other)

OBS 4074e68-modified (Flatpak bundle of obsproject/obs-studio#4431)

OBS Studio Log URL

https://obsproject.com/logs/FJfJkTBIEjv7KI55

OBS Studio Crash Log URL

No response

Expected Behavior

The content of the window should be visible.

Current Behavior

The content of the window is transparent, only the border and titlebar is visible.

Steps to Reproduce

  1. Open OBS in a Wayland session
  2. Create a new custom browser dock (View → Docks → Custom browser docks)

Anything else we should know?

No response

Screenshot:
Capture d’écran de 2021-04-02 20-36-00

CC @GeorgesStavracas

@RytoEX RytoEX transferred this issue from obsproject/obs-studio Apr 2, 2021
@kkartaltepe
Copy link
Contributor

This should probably be disabled on wayland, the browser docks were not updated to work on wayland yet.

@RytoEX
Copy link
Member

RytoEX commented Apr 2, 2021

This should probably be disabled on wayland, the browser docks were not updated to work on wayland yet.

That sounds safest, if doable to avoid this subpar UX.

GeorgesStavracas added a commit to GeorgesStavracas/obs-studio that referenced this issue Apr 2, 2021
When running on Wayland, the browser docks look broken and sometimes
they crash OBS Studio. Interestingly, browser sources seem to work
just fine. Ideally we'd be able to dig into the issue and find the
root cause, but time is short for thr 27 release and disabling the
docks until this is figured out seems to be the best alternative for
now.

Of course this is a temporary workaround, and eventually this commit
will be reverted, and browser docks will work just fine, flowers and
rainbows and happy unicorns.

Disable browser docks on Wayland.

Related: obsproject/obs-browser#279
GeorgesStavracas added a commit to GeorgesStavracas/obs-studio that referenced this issue Apr 2, 2021
When running on Wayland, the browser docks look broken and sometimes
they crash OBS Studio. Interestingly, browser sources seem to work
just fine. Ideally we'd be able to dig into the issue and find the
root cause, but time is short for the 27 release and disabling the
docks until this is figured out seems to be the best alternative for
now.

Of course this is a temporary workaround, and eventually this commit
will be reverted, and browser docks will work just fine, flowers and
rainbows and happy unicorns.

Disable browser docks on Wayland.

Related: obsproject/obs-browser#279
GeorgesStavracas added a commit to GeorgesStavracas/obs-studio that referenced this issue Apr 4, 2021
When running on Wayland, the browser docks look broken and sometimes
they crash OBS Studio. Interestingly, browser sources seem to work
just fine. Ideally we'd be able to dig into the issue and find the
root cause, but time is short for the 27 release and disabling the
docks until this is figured out seems to be the best alternative for
now.

Of course this is a temporary workaround, and eventually this commit
will be reverted, and browser docks will work just fine, flowers and
rainbows and happy unicorns.

Disable browser docks on Wayland, which includes both the manually
added docks, and the docks OBS Studio creates for authentication for
Twitch and Restream.io.

Related: obsproject/obs-browser#279
GeorgesStavracas added a commit to GeorgesStavracas/obs-studio that referenced this issue Apr 4, 2021
When running on Wayland, the browser docks look broken and sometimes
they crash OBS Studio. Interestingly, browser sources seem to work
just fine. Ideally we'd be able to dig into the issue and find the
root cause, but time is short for the 27 release and disabling the
docks until this is figured out seems to be the best alternative for
now.

Of course this is a temporary workaround, and eventually this commit
will be reverted, and browser docks will work just fine, flowers and
rainbows and happy unicorns.

Disable browser docks on Wayland, which includes both the manually
added docks, and the docks OBS Studio creates for authentication for
Twitch and Restream.io.

Related: obsproject/obs-browser#279
jp9000 added a commit to obsproject/obs-studio that referenced this issue Apr 8, 2021
When running on Wayland, the browser docks look broken and sometimes
they crash OBS Studio. Interestingly, browser sources seem to work
just fine. Ideally we'd be able to dig into the issue and find the
root cause, but time is short for the 27 release and disabling the
docks until this is figured out seems to be the best alternative for
now.

Of course this is a temporary workaround, and eventually this commit
will be reverted, and browser docks will work just fine, flowers and
rainbows and happy unicorns.

Disable browser docks on Wayland, which includes both the manually
added docks, and the docks OBS Studio creates for authentication for
Twitch and Restream.io.

Related: obsproject/obs-browser#279
         #4436
@RytoEX
Copy link
Member

RytoEX commented Apr 21, 2021

@GeorgesStavracas Just to clarify, what is needed to actually fix this? Changes on our side? Qt patches?

@GeorgesStavracas
Copy link
Member

I'm not really sure. I suspect this problem exists because CEF is using Xwayland to render, and then passing the contents to a Wayland application. This just can't go well. But it can be something else entirely...

@Gol-D-Ace
Copy link
Member

Gol-D-Ace commented Apr 21, 2021

Hmm Browser Docks should be deactivated from what I remember when you run obs in wayland because of known issues.

@RytoEX
Copy link
Member

RytoEX commented Apr 21, 2021

Hmm Browser Docks should be deactivated from what I remember when you run obs in wayland because of known issues.

Yes, this was opened before we disabled them on Wayland. I was just asking for clarity on what would need to be done to actually fix the issue rather than temporarily disabling them, which we've already done.

@kkartaltepe
Copy link
Contributor

kkartaltepe commented Apr 21, 2021

I actually dont know how the browser sources work at all, but what I think is happening here is.

  1. CEF only runs with an X11 windowing backend (basically no one runs a wayland compositor that doesnt also provide X11 through Xwayland, but we can assume if they did disable Xwayland CEF just wouldnt load at all on that system).
  2. OBS sources without texture sharing will download the frames out of cef and load them into our graphics context so they work regardless of wayland/x11.
  3. OBS Panels try to share window handles, but since OBS has wayland handles and CEF expects X11 it fails and the wayland surface is transparent.

1div0 pushed a commit to 1div0/obs-studio that referenced this issue Apr 22, 2021
When running on Wayland, the browser docks look broken and sometimes
they crash OBS Studio. Interestingly, browser sources seem to work
just fine. Ideally we'd be able to dig into the issue and find the
root cause, but time is short for the 27 release and disabling the
docks until this is figured out seems to be the best alternative for
now.

Of course this is a temporary workaround, and eventually this commit
will be reverted, and browser docks will work just fine, flowers and
rainbows and happy unicorns.

Disable browser docks on Wayland, which includes both the manually
added docks, and the docks OBS Studio creates for authentication for
Twitch and Restream.io.

Related: obsproject/obs-browser#279
         obsproject#4436
tommyvct pushed a commit to tommyvct/obs-studio that referenced this issue May 22, 2021
When running on Wayland, the browser docks look broken and sometimes
they crash OBS Studio. Interestingly, browser sources seem to work
just fine. Ideally we'd be able to dig into the issue and find the
root cause, but time is short for the 27 release and disabling the
docks until this is figured out seems to be the best alternative for
now.

Of course this is a temporary workaround, and eventually this commit
will be reverted, and browser docks will work just fine, flowers and
rainbows and happy unicorns.

Disable browser docks on Wayland, which includes both the manually
added docks, and the docks OBS Studio creates for authentication for
Twitch and Restream.io.

Related: obsproject/obs-browser#279
         obsproject#4436
EddyGharbi pushed a commit to stream-labs/obs-studio that referenced this issue Jun 16, 2021
* UI: Remove Qt5MacExtras

QtMacExtras is currently not in Qt6 and there's no word on if/when it
will be reintroduced. We don't appear to be using it, so let's remove
it.

* docs: Document gs_texture_create_from_dmabuf

Add some documentation about this new Linux-only function, and its
characteristics.

* UI: Fix wrong strings for Undo/Redo

* UI/installer: Add exit codes for silent installer

Code 3 = Unsupported OS (64bit on 32bit or below Windows 7)
Code 4 = Missing a dependency (VS 2019 or DirectX redistributables)
Code 5 = OBS is already running
Code 6 = OBS files are in use by another app (eg virtual camera)

* UI: Fix character to prevent VS2019 compiler error

Apparently the specific character can cause VS2019 to have compiler
errors depending on the system's current character encoding, so just
remove it instead. (-Jim)

* UI: Fix crash on exit with stuck encoder

If the encoder is hung and you try to exit these two values will still
be null when obs shutting down.

* win-capture: Restore GL capture deduplication

Previous fix attempted to place swap_recurse count in gl_data struct,
where it could be unexpectedly memset to 0. Separate member from struct,
and make thread-local for additional safety.

* win-dshow: Fix crashing when using a custom vcam placeholder

The scaler assumed the placeholder was the same size as the camera which
caused crashes if the user replaced the placeholder with a smaller
resolution image (or if the camera was potentially running at > 1080p).
This adds a separate scaler for the placeholder and uses the resolution
of the virtual camera instead of defaulting to 1080p.

* UI: Ignore scene source which has been removed

While getting source list, we should ignore scene source which has been
removed. If we don't ignore it, a deleted scene source will be added
later. Besides, signals of that scene have been sent before, such as
"remove" of scene. So we can't remove this scene source by "auto
removeItem" defined in SourceTreeItem::ReconnectSignals().

Fixes obsproject#2602

* obs-transitions: Add narrowing casts

* libobs/util: Fix warnings for about null usages

* libobs/util: Skip pointless free for null

* flibobs: Fix unnecessary truncation

* libobs: obs-scene type fixes

Replace "rot" int usages with double.

Add explicit narrowing casts to fix warnings.

* rtmp-services: Include format version in update URL

* rtmp-services: Update package counter

Need to do this because the file needs updating on the server but a
certain service has to be excluded because code to actually use it isn't
in any version before 27.

* UI: Add save notifications to status bar

This shows notifications in the status bar with the following:
- When screenshot is saved
- When replay buffer is saved
- When recording is saved
- When recording is auto remuxed

* obs-browser: Update version to 2.14.1

* UI: Remove unnecessary IS_WIN32 macro

* Revert "UI: Remove unnecessary IS_WIN32 macro"

This reverts commit 113b631.

* flatpak: Use current tree for building OBS

We always want to build the current build tree, not the upstream
repository.

* CI: Enable build cache for the Flatpak workflow

This allows caching build objects, and using ccache to skip
building them on follow-up runs.

* libobs: Remove unnecessary null check

* libobs: Don't save temporarily removed sources

The only references to these sources exist in the undo buffer, they are
not attached to a scene and cause issues when loaded on the next
startup.

* libobs: Add filter functions for SRGB support

This way, legacy filters can use the original functions without
triggering SRGB support.

* obs-filters: Use new pattern for SRGB support

* obs-filters: Perform chroma key in nonlinear space

Don't want to deal with regressions from using linear space right now.

* win-dshow/libdshowcapture: Update to 0.8.7

* linux-capture: De-escalate assertion to a warning

The assertion exposed a bug in the KDE implementation of the Desktop
portal. However, it comes with the side effect of exiting OBS Studio
in this case, where we can actually make it work (even if buggy).

De-escalate the assertion to a warning, and then attempt to find the
correct stream to use.

* obs-filters: Fix initialization of RTX denoiser

This fixes issue obsproject#4441.
The issue occurs when adding the noise suppression filter for the
first time. Rnnoise or speex are the default noise suppression
methods. Line 344 returns which prevents initialization and
allocation for nvafx (rtx denoiser).
With the fix, initialization of nvafx occurs when swapping methods.

* obs-filters: Code cleanup for RTX denoiser

This minor code cleanup commit does the following:
- sets defaults intensity of RTX denoiser to max.
- adds an initialization check of nvafx.
- splits nvafx initialization from channel allocation for better
readibility of the code.
- moves the intensity update from the filter_audio process function
to the plugin update function.
- logs the error code in case nvafx returns an error when running.
(useful for devs; I haven't translated the error codes which are
available in the sdk).

* UI: Conform transition duration in Scene Transition dock

* win-dshow: Fix libdshowcapture formatting

* obs-browser: Disable browser panels on Wayland for now

When running on Wayland, the browser docks look broken and sometimes
they crash OBS Studio. Interestingly, browser sources seem to work
just fine. Ideally we'd be able to dig into the issue and find the
root cause, but time is short for the 27 release and disabling the
docks until this is figured out seems to be the best alternative for
now.

Of course this is a temporary workaround, and eventually this commit
will be reverted, and browser docks will work just fine, flowers and
rainbows and happy unicorns.

Disable browser docks on Wayland, which includes both the manually
added docks, and the docks OBS Studio creates for authentication for
Twitch and Restream.io.

Related: obsproject/obs-browser#279
         obsproject#4436

* UI: Add maximum number of items in undo/redo stack

* UI: Wipe undo/redo stack when switching scene collections

* UI: Clear undo stack in ClearSceneData() instead

Makes more sense to clear it here.

* libobs: Add obs_source_enum_full_tree()

Allows the ability to enumerate all sources and subsources in a source's
hierarchy, regardless of whether they're active or not.

* libobs: Add obs_source_load2()

Allows loading a source and all of its filters automatically.
Previously, the original obs_source_load would not load filters.

* libobs: Add obs_obj_is_private()

Returns true if an obs object is considered private. (Author's note: the
concept of "private" objects is not ideal, but we're stuck with it for
now)

* libobs: Add obs_source_is_scene()

* UI: Fix Undo/Redo holding source references

Holding references to sources is never a good idea. Instead, save and
restore the scene and its subsources on removal.

Co-authored-by: Jim <[email protected]>

Closes obsproject#4462

* plugins: Set obs-browser as a default requirement

BUILD_BROWSER is set to ON by default.
If obs-browser is not present CMake will emit a fatal error.

* plugins: Set obs-vst as a default requirement

BUILD_VST option is added and set to ON by default.
If obs-vst is not present CMake will emit a fatal error.

* linux-capture: Ask for PipeWire if deps not found

CMake will now emit a fatal error if PipeWire or Gio are not present.

* obs-filters: Add color settings to correction v2

Restore color tint/overlay functionality, but with separate controls for
tinting (multiply) and overlay (add).

* obs-browser: Emit fatal error if CEF or X11 is missing

CMake will now emit a fatal error if CEF or X11
is not found rather than disabling obs-browser

* flatpak: Disable obs-browser build

* UI: Force current scene when using undo/redo

The undo/redo functions are setting the current scene. Everytime
it would do this, it would actually transition to the scene.
This forces the current scene, so it fixes a bug where the
transition would be grayed out when undoing/redoing.

* UI: Update context bar when using undo/redo

The context bar wouldn't update when using undo and redo.

* UI: Fix reordering scenes not working properly

If the user were reordering scenes, the preview scene would change
to a different one, than the one they were currently on.

* rtmp-services: Update Mixcloud

* UI: Fix wrong behavior with undo/redo and groups

* obs-ffmpeg: Expose psycho-aq setting

This was changed to default on but is not exposed for ffmpeg nvenc.
Where cards without temporal AQ support will fail to initialize and we
cannot do checks beforehand. This exposes the parameter to allow users
to disable this feature when using the ffmpeg implementation.

* README.rst: Replace Azure Pipelines badge with GitHub Actions

* azure-pipelines.yml: Remove

Replaced completely by GitHub Actions

* UI: Fix spamming of log when setting current scene

When setting the current scene and if it was the same as the previous,
the log would be spammed with switching scene messages.

This issue particularly happened when using undo/redo, as their
functions were setting the current scene.

* libobs: Add transition save/load functions

Moves the transition saving/loading to functions, and refactors existing
code to use those functions instead.

* UI: Add Undo/Redo for source visibility transitions

* cmake: Automatically copy datatarget PDBs

Helps ensure DLLs associated with game capture, virtual camera, and
other such files have their PDBs copied alongside them in any Windows
build, and allows the ability to trace crashes that may occur from
within those files more easily.

* CI: Specify arch for prebuilt deps

* vlc-video: Ignore URLs when checking for missing files

* UI: Fix undo data being saved when no changes occur

obs_scene_save_transform_states was called with all_items = true when
starting a transform, but all_items = false when comparing undo data.

Fixes obsproject#4510

* UI: Increase float property decimals based on step

Values are no longer truncated if a small step is specified.

* obs-filters: Increase brightness precision

Necessary for adjusting colors near black.

* UI: Use newer Twitch Dashboard docks for integration

Fixes an issue where the submit button on the Stream Information dock
would be cut off at certain resolutions.

* mac-virtualcam: Fix memory leaks

Fixes some memory leaks Xcode has detected

* libobs: Return target vec not current when within EPSILON

If current vector is within EPSILON, it would return the current,
when logically the target should be returned instead.

* mac-capture: Add another virtual output loopback device

Adds "GroundControl" fake output device for audio loopback on macOS.

* mac-virtualcam: Hide logging behind debug flag

Hides the DLog and DLogFunc macros behind the -DDEBUG flag, causing the
logs to only appear in testing environments.

On production build, calls to these macros will result in nothing
happening.

* obs-filters: Increase luma key precision

* win-dshow: Fix virtual camera CPU usage, add more comments

My previous commits would rescale the placeholder for output on every
frame which was not CPU efficient. Now we store a copy of the scaled
placeholder and update it any time the resolution / FPS / format
changes.

A new function GetOutputBufferSize was added to allow calculating the
output size when needed. The existing code assumed a 12-bit format if
the placeholder didn't load, which could cause grey / green output.

An optimization was made to only load and scale the placeholder once
the virtual output starts, as many applications load and unload the
filter multiple times during enumeration of devices.

Various comments were also added to help clarify how the filter works.

* flatpak: Reenable browser source

It seems that the browser source works inside a Flatpak sandbox and/or
Wayland with CEF 4280, so let's try and reenable it.

This reverts commit e64c617.

* UI: Fix missing Files dialog crash loading source icon

* libobs: Save obs_data json in compact form

* libobs: Add helper func to find a scene by name

* UI: Make undo_stack types in-class and private

Reduces polluting the global namespace

* UI: Add Undo/Redo for source visibility

(Author note: This is why I hate supporting undo/redo.)

Fixes obsproject#4447

* UI: Fix invalid check for Remove Multiple Sources dialog result

Fixes obsproject#4546

* UI: Fix crash when closing missing files window

A crash would occur when clicking the 'x' button in the missing files
dialog. This seemed to only happen in debug mode and using QT 5.15.0.

Closes obsproject#4363
Fixes obsproject#4359

* linux-v4l2: Use flatpak-spawn when inside a Flatpak sandbox

It is not possible to run host system executables like modinfo, pkexec,
and modprobe inside a Flatpak sandbox. However, Flatpak provides a way
to run command on the host system: the flatpak-spawn executable.

flatpak-spawn is a tiny helper that, when executed with the '--host'
parameter, talks to the org.freedesktop.Flatpak D-Bus interface to run
and retrieve the return value of the executable. This provides OBS Studio
a way to escape this sandbox limitation without opening large holes in
the sandbox.

Make v4l2's implementation of VirtualCam run system commands using
flatpak-spawn when inside a Flatpak sandbox. The detection of the sandbox
is done by checking the existence of the /.flatpak-info file, which is
created by Flatpak itself, and only exists inside the sandbox. If OBS
Studio is not running inside a Flatpak sandbox, run the exact same command
it used to run before this commit.

Add the permission to talk to the org.freedesktop.Flatpak D-Bus interface
to the Flatpak manifest, so we can run flatpak-spawn with the '--host'
parameter.

Notice that the same constraints apply with and without Flatpak: the host
system needs to have the v4l2loopback kernel module available for the v4l2
implementation of VirtualCam to work.

* CI,cmake: Fix macOS version information

Fixes an issue where on macOS the app’s Info window in Finder would say
"Version: OBS - Free and Open Source Streaming/Recording Software"
instead of the version set in CFBundleShortVersionString.

Since CFBundleGetInfoString is deprecated anyways, it can safely be
removed.

* CI: Use flatpak-builder subaction

The Flatpak action now contains two subactions:

- flatpak-builder: for building and uploading a bundle
- flat-manager: for deploying the bundle to a remote repository

Use the right action (flatpak-builder) for the Flatpak workflow.
This won't affect existing pull requests, except the ones that
have the "Seeking Testers" label applied - in which case, they
simply need to rebase against the master branch.

* UI: Delete unimplemented declaration, LoadProfile()

* obs-transitions: Remove scaling of track matte texture

* obs-transitions: Crop output of stinger media player

This fixes an issue with Track Matte Stingers applied as visibility
transitions, where the side-by-side or stacked matte file mode would
result in the matte part of the video to "overflow" outside of the
transition's zone

* rtmp-services: Add Luzento.com

* rtmp-services: Update Twitter.com

* UI: Fix imported scene collection names duplicating

If an imported scene collection has a name that already exists, it will
instead be given a name plus an increment (e.g. "name 2", or "name 3",
etc)

Fixes obsproject#4442

* UI: Add undo/redo for source reordering

* UI: Add missing locale text for reorder undo/redo

* obs-transitions: Nonlinear SRGB, fade to color

Switch back for now. Maybe we want CIELUV, but that's expensive.

* obs-transitions: Nonlinear SRGB, fade

Switch back for now. Maybe we want CIELUV, but that's expensive.

* obs-transitions: Nonlinear SRGB, luma wipe

Switch back for now. Maybe we want CIELUV, but that's expensive.

* obs-transitions: Nonlinear SRGB, slide

Switch back for now. Maybe we want CIELUV, but that's expensive.

* obs-transitions: Nonlinear SRGB, swipe

Switch back for now. Maybe we want CIELUV, but that's expensive.

* libobs: Add obs_data_get_last_json()

Helper function to return the last generated json string for this
object.

* UI: Refactor scene action undo/redo

Allows this code to be used for other actions where the scene data needs
to be backed up

* UI: Use scene backup/undo/redo funcs for reordering

Fixes a bug where groups would not be backed up properly

* libobs: Add DrawNonlinearAlpha technique

This allows OBS to mimic other programs that incorrectly use alpha.

Requires premultiplied blend state.

* docs: Fix erroneous code example

* libobs: Filter using premultiplied alpha

Convert incoming straight alpha color to premultiplied at filter begin,
and process premultiplied value at filter end.

If direct rendering is allowed, we assume the input source outputs
premultiiplied alpha. If not, that source will need to be updated.

* libobs: Render async video with DrawNonlinearAlpha

Match previous OBS alpha behavior.

DrawNonlinearAlpha requires premultiplied alpha blend state.

* image-source: Use DrawNonlinearAlpha

Match previous OBS alpha behavior.

DrawNonlinearAlpha requires premultiplied alpha blend state.

* obs-filters: Initialize NVIDIA AFX in a thread

Initializing NVAFX is slow as it has to load large models and can cause
significant impact to OBS' startup time. This moves NVAFX initialization
into a separate thread. NVAFX does not appear to be reentrant across
threads, hence a global mutex is also used to avoid reentrancy issues.

The downside of this change is that the first few seconds of audio after
adding the filter or starting OBS will not be filtered, but this is
unlikely to cause any real-world issues.

* obs-filters: RTX denoiser, initialize only output channels

This reduces the initialization from 8 to the actual number of output
channels.

* obs-filters: Better describe denoiser methods in menu

The description of the noise suppression methods was updated to
reflect cpu usage and quality in a more accurate manner.

* libobs: Fix crash in missingfiles when source is invalid

* obs-filters: Check NVAFX is enabled before using mutexes

Fixes a crash on destroy if NVAFX wasn't actually available.

* text-freetype2: Render in nonlinear space

Colors not working properly. Don't want to alter gradients (yet).

* UI: Add undo/redo actions for move up/down/top/bottom

Fixes obsproject#4567

* UI: Cleanup on_scenes_currentItemChanged function

Removed unnecessary lines from the function. Also if the source happened to be
null, the SetCurrentScene function would be called anyway. Finally, the
UpdateContextBar and api lines were removed, as they are also being called with
SetCurrentScene.

* obs-filters: Use correct branding for NVIDIA Noise Removal

The feature name is "Noise Removal" with that exact capitalization.
"NVIDIA Noise Removal" or "Noise Removal, powered by NVIDIA Broadcast"
are the two valid options for displaying this feature name in the UI.

* UI: Remove unnecessary Undo/Redo cleanup func

Since fixing the reference holding issue with scene/source deletion, the
undo/redo cleanup function (last param of add_action) is no longer
required.

* UI: Add repeat protection for Undo/Redo

This allows the ability to mark an action as repeatable, which when set,
makes it so that it will change only the redo value for the last undo
item in the undo stack within the last three seconds. This allows the
ability to, for example, scroll a spinbox or change a slider value
without creating many unnecessarily duplicated undo/redo actions.

* UI: Add Undo/Redo items for adv. audio properties

Rather than forcing the user to close the advanced audio properties
window in order to obtain an undo/redo action, use explicit undo/redo
actions for each widget change in the advanced audio properties dialog.

* UI: Add Undo/Redo for volume change/mute via main fader

* UI: Use std::bind for visibility undo/redo action

This is better and slightly more optimal code over what it was before.

* CI: Use a stable version of the Flatpak action

* libobs: Don't force premultiplied alpha on filters

Many filters need to remultiply alpha on output.

* obs-filters: Handle premultiplied alpha input

Mostly by converting to straight alpha in shader when necessary.

* UI: Fix undo/redo enabling redo with no items in redo

* UI: Fix audio filters being deleted not getting added to undo

* UI: Fix audio filter changes not being added to undo

When a change to an audio filter was done, it would create a timer and
wait for no more inputs before saving and adding to undo (this is to
prevent spam from sliders). For some reason, the timer would get
destroyed before the information is saved, preventing it from going on
the undo stack.

* UI: Fix missing files dialog starting hidden (macOS)

An annoying hack to fix the dialog being hidden behind the main window
when the program starts up on macOS.

* obs-filters: Fix bad math in Color Key v1

Do not treat incoming color uniform as premultiplied.

* libobs: Add functions to backup/restore filters

Adds functions to backup and restore filters (along with their order) on
a specified source. Useful for undo/redo operations.

* UI: Add Undo/Redo for pasting multiple filters

Closes obsproject#4616

* UI: Add Undo/Redo for single filter copy/paste

Closes obsproject#4616

* obs-filters: Increase opacity precision

For v2 filters, switch Opacity settings from integer [0, 100] to
floating-point [0.0, 1.0] with four decimal places for granular blacks.

Also multiply alpha in shader to maintain precision.

* UI: Fix Undo/Redo for pasting multiple filters

Fixes bug introduced in commit d7e4945

* UI: Remove duplicate include

* libobs: Add obs_source_reset_settings()

Allows the ability to reset (erase) a source's existing settings and
replace them with new settings. This is useful for things such as
reverting to older settings.

* text-freetype2: Fix empty text not updating source

Fixes a bug where if you update the source with empty text, it would
still continue to use the previous text value.

* UI: Fix proprty Undo not updating settings properly

Settings would not update properly because obs_source_update() can only
apply the settings value to the existing settings, so it could not
remove values. This change fully erases existing settings and replaces
it with the target settings instead.

* CI: Remove unneeded runtime deps

Removes kernel headers and dkms packages from the CI pipeline. These are
only needed when running obs and not when building. This avoids crashing
and burning in CI when secureboot is enabled. see: https://github.com/obsproject/obs-studio/pull/4560/checks?check_run_id=2403303957

* UI: Move clearing of copy/paste variables

It makes more sense for these to be in the ClearSceneData function.

* README.rst: Use High DPI Discord Badge

Replaces the official Discord Badge with one from shields.io, which is
higher DIP compared to the official one.

* obs-browser: Update version to 2.14.2

* Fix bitmask typo when creating OBS version string
* Fix memory corruption when translating Refresh text

* win-dshow: Add support for ASUS coupled audio

* docs: Remove block quotes (obsproject#4621)

Removes the indents that cause the text to be interpreted as block
quotes

* obs-transitions: Remove dead code

* UI: Fix rounding truncation

Set decimal places before value on QDoubleSpinBox to preserve precision.

* libobs, obs-filters: SRGB backwards compatibility

Add OBS_SOURCE_SRGB to indicate sources that support SRGB rendering. We
can use this flag to know which sources do not know how to handle SRGB,
and disable accordingly inside obs_source_main_render().

We can also use this flag to clean up the filter interface and remove
the SRGB-specific functions. We also need to disable direct rendering if
the filter source wants to render SRGB, but the parent source does not
support it.

Scenes and groups are marked as having SRGB support, and those are
internal sources that we control.

* image-source: Add OBS_SOURCE_SRGB flag

* linux-capture: Add OBS_SOURCE_SRGB flag

* mac-capture: Add OBS_SOURCE_SRGB flag

* obs-text: Add OBS_SOURCE_SRGB flag

* win-capture: Add OBS_SOURCE_SRGB flag

* text-freetype2: Remove SRGB code

Not having OBS_SOURCE_SRGB is good enough now.

* win-capture: Remove SRGB code

Not having OBS_SOURCE_SRGB is good enough now.

* obs-browser: Add SRGB flag

* image-source: Allow linear space alpha

Add support for applying alpha in linear space to match Photoshop
behavior in linear mode, and for just overall correctness. The default
setting is still nonlinear to match common user expectation though.

* obs-filters: Fix shader for LUT on OpenGL

* libobs: Add DrawAlphaBlend technique

Useful when fixed-function blend does not provide enough precision.

* libobs: Support 64 bpp images

Useful for loading high-precision alpha channels.

* image-source: Premultiply alpha in shader

Fixed-function alpha-blend kills precision of 16-bit alpha.

* win-capture: Fix WGC disable index for display

Previously disabled DXGI because the index is wrong.

* libobs-winrt,win-capture: Cursor toggle exceptions

A user has reported that toggling the cursor can cause exceptions.

Propagate that information upward, so we can reset the capture.

Display capture never needed to call the function in the first place.

Shuffle around window capture code to make a common reset function.

Builds on PR obsproject#4663.

* libobs: Fix deadlock removing scene item

* libobs: Fix uninitialized variable warning

* libobs: Mark unused parameters

* obs-filters: Fix unreferenced variable warning

* rtmp-services: Add Brime Live service

rtmp-services: Add Brime Live service

* rtmp-services: Add Odysee.com

* UI: Disable transition props menu when transitioning

When transitioning, the transitions properties menu would still be
enabled.

* Revert "flatpak: Disable obs-browser build"

This reverts commit c370692.

The PR that introduced this commit was opened before the browser plugin
was enabled, and when the browser was effectively enabled, this change
was already in place and didn't conflict, leaving us with both a
-DBUILD_BROWSER=ON *and* -DBUILD_BROWSER=OFF in place.

* flatpak: Cleanup unwanted static libraries

The CEF static library in special is gigantic (50MB+) and
was significantly increasing the bundle size.

* cmake: Remove outdated osxbundle files

These files have been superseded by files in CI/scripts/macos. They are
no longer used, and keeping them around creates confusion and makes
people think they are still used. Let's remove them to prevent further
confusion.

This commit also removes the CMake function `obs_finish_bundle` that was
only used with the osxbundle resources and removes calls to that
function.

* UI: Simplify fade to black code

Removes unnecessary function call.

* UI: Clear fade to black source

If the fade to black was active and the user switched scene collections,
or exited studio mode, the source wouldn't be cleared, causing the
transition not to work properly when used again.

* rtmp-service: Rename "stream key" for dacast

(Additional note by Jim: Apparently, dacast doesn't use "stream key" for
whatever reason on its website, so this commit apparently changes the
text "Stream Key" to "Encoder Key" or whatever for whatever reason I'll
never know. I guess we need arbitrary names for things these days
because services can't get their names in order or something. Whatever.
I'm seriously tired of dealing with this sort of stuff. Seriously, this
is just dumb. This is dumb, and I wish I wasn't merging it, but at this
point, I'm like, whatever. I don't care. I've stopped caring. Why should
I care anymore? I'm losing it. I am absolutely losing it.)

* obs-transitions: Blend in linear space

Color mismatch is apparent when using source transitions, which lerps
against transparent black and blends into the canvas nonlinearly. When
the transition is done, the blend switches to linear, leading to a pop.

Fix the issue by blending into the canvas in linear space. The lerp is
still nonlinear by design.

* Revert "rtmp-services: Add Odysee.com"

This reverts commit e876ad6.

* frontend-plugins: Fix script properties not updating

Fixes a bug where script properties would not update correctly after the
Undo/Redo changes in the properties view. The properties view was using
the wrong callback, and had a bad cast.

* Revert transition scaling fix

This reverts commit 091bdb9, dc2b00a, and
661256e.

These did not fix the problem with track matte scaling.

* obs-transitions: Reset track matte texture in tick

This causes the track matte render target to only be reset once per
frame, rather than potentially multiple times per frame. Palakis most
likely did not know that you're supposed to reset only once per frame in
order to prevent the render target from being rendered more than once
per frame.

(Jim note: I probably should have made texrender objects automatically
detect new frames internally so it wouldn't require this. Not Palakis'
fault.)

* obs-transitions: Remove unnecessary matrix push/pop

texrender objects already push/pop the matrix internally, so doing this
within a texrender rendering code block isn't necessary.

* obs-transitions: Free matte texrender when not in use

This prevents the texrender object from lingering if the user changes
the transition properties.

* obs-transitions: Only check matte duration if matte exists

The code within this block was being called even when there is no matte
source present. Caught by null pointer checks in the log.

* obs-transitions: Fix annoying log message

This would cause a null pointer check log message because matte_source
only exists when using an explicit separate video for track matte
stingers. Instead, explicitly set matte_ph to null if matt_source is
null to avoid the null pointer check logging.

* obs-transitions: Fix track matte rendering improper sizes

When using track matte stingers as visibility transitions, it would
render the matte portion at the incorrect size. This was due to the fact
that texrender render code blocks do not set the projection matrix.
You're supposed to do that manually. Thus, it was using whatever the
current projection matrix was, which was usually the canvas projection
matrix.

(Jim note: There were reasons why I didn't make texrender objects do
this automatically, mostly scaling and performance reasons, but I
realize now I should have at least provided an option for it instead to
prevent this "gotcha" situation from happening. Bad design on my part. I
do not blame Palakis for falling for this.)

* obs-transitions: Use texrender with stacked track mattes

When using a stacked track matte stinger transition with a visibility
transition, the matte portion of video would also be visible on the
right side or below the source. This fixes it by first rendering the
video to a texrender object in order to filter out the unwanted portion.

(Jim note: So basically, track matte stingers now use two texrenders.  I
really don't like this. Texrender objects can already cause stalling as
it is.)

* libobs: Fix direct rendering test

Pass test if the filter wants SRGB, and the source supports SRGB.

* libobs: Support premultiplying images on load

Add gs_image_alpha_mode enum for requested alpha handling: straight,
premultiplied with SRGB conversion, and just premultiplied. Both
premultiplied settings behave the same if the image is not SRGB, linear
is assumed.

Add gs_image_file3_t to store the alpha mode.

Add srgb.h file with helper functions.

Clean up vec4.h to use helpers, and remove unused functionality.

Update FFmpeg image loader to perform premultiplication on load.

* image-source: Premultiply images on load

This ensures correct texture filtering, simplifies the render callback,
and allows us to remove the custom draw flag, restoring the direct
rendering optimization for filters against image sources.

* libobs: Remove DrawAlphaBlend technique

* obs-filters: Fix color key distance

Was incorrectly computing distance between linear color and nonlinear
key. Make color nonlinear to match previous behavior.

* decklink: Fix crash during shutdown when output is on

The actual crash is caused because obs_module_unload() is called before
the decklink outputs are stopped. In obs_module_unload(), the deviceEnum
pointer is freed. During decklink_output_stop(), the removed code tries
to retrieve a reference of the decklink device from the deviceEnum and
crashes because it has already been freed. This code appears to serve no
purpose anyway, so we remove it.

* cmake: Fix FindJack to support finding PipeWire's libjack

FindJack was not using _INCLUDE_DIRS and _LIBRARY_DIRS set by
FindPkgConfig, which prevented it from locating the PipeWire
version of libjack when it is installed to a non-standard path.

In particular, this impacts Fedora Linux, which is the first
distribution to have made the change to have all audio routed
through PipeWire and eliminate the usage of PulseAudio and JACK
by default.

Reference: https://fedoraproject.org/wiki/Changes/DefaultPipeWire

* UI: Rename enable/disable funcs for undo/redo stack

* UI: Use "enabled" instead of "disabled" variable name

Avoids double-negative naming.

* UI: Add disable push/pop to undo/redo stack

This allows disabling and re-enabling in certain situations where these
actions doing so might end up being used in recursion.

* UI: Add paste source undo/redo actions

* obs-transitions: Fix memory leak

Fixes a memory leak with stinger texrender objects. These functions must
be called while the graphics context is locked. Caught via warnings
generated by the destroy functions.

* libobs: Add srgb.h to CMakeLists.txt

* obs-filters: Premultiply alpha for precision

For Apply LUT, and Luma Key, multiply alpha in shader instead of blend
unit for extra precision.

* obs-filters: Fix blend state for Scale filter

Was incorrectly using straight alpha blend instead of premultiplied.

* obs-transitions: Make sure gs calls are in graphics context

This would cause a memory leak when toggling the track matte
transition.

* UI: Fix scene collection importer OS translation

The OS translation in the Scene Collection Importer seems to have been
broken since the feature was added because the translated sources were
not added back to the output JSON object. Add the translated sources to
the output JSON object to get the feature to work.

* UI: Add versioned sources to scene collection importer

Versioned sources were added in commit
b230290 after the scene collection
importer was added in commit 191165c.
When a versioned source gets converted in TranslateOSStudio, it can end
up with a translated "id" but an untranslated "versioned_id". When OBS
loads the resulting JSON, it will rely on the versioned_id, and rewrite
the id to the corresponding value. Use obs_get_latest_input_type_id on
the translated source id to get the correct versioned_id when using
TranslateOSStudio.

* decklink-output-ui: Render texrender once per frame

To prevent rendering the texrender more than necessary, only
render it once per frame in a tick callback.

* decklink-output-ui: Stop outputs when unloading

When closing OBS, sometimes it would crash if the Decklink outputs
were active.

* obs-vst: Remove unused code

* CI: Add versioning for dependencies zip file

* cmake: Add module for Detours

* graphics-hook: Link Detours library

* graphics-hook: Use Detours for D3D12 hook

Will attempt to fully use Detours after 27 ships.

* graphics-hook: Fix potential D3D12 device leak

* graphics-hook: Prevent recursive free

Make sure to set data.swap to null before calling data.free().
Otherwise, we may call data.free() again in the Release() hook.

* graphics-hook: Reduce variable scopes

* graphics-hook: Give up on DXGI swap chain

If a swap chain hasn't been seen in a while, assume it no longer exists,
and reset the capture.

* graphics-hook: Kill early return

* graphics-hook: More logging to help debugging

* graphics-hook: Do not persist device unnecessarily

* graphics-hook: Try multiple D3D12 queues

Keep trying queues until one of them passes D3D11On12CreateDevice.

* win-capture: Bump graphics hook version to 1.5.0

* libobs: Add obs_group_or_scene_from_source()

Makes it a little bit easier to get a scene from either a source or
group.

* UI: Fix hide undo/redo not working with group items

Fixes obsproject#4702

* win-capture: Remove D3D12 fix toggle

The new D3D12 path seems stable enough. Remove the old path.

* CI: Add check for code signing credentials used by notarization

* graphics-hook: Add Detours include dir

* cmake: Fix Detours package name CMake warning

Since CMake 3.17, find_package_handle_standard_args (FPHSA) will emit a
warning if the package name in the caller and in FPHSA do not match.
This normalizes the name "Detours" in CMake calls to prevent this
warning.

* UI: Add OBSBasic::BackupScene() with scene param

Just a little inline helper that automatically converts it to a source
so callers don't have to manually do this each time.

* UI: Do not allow new undo actions while undo disabled

* UI: Add Group/Ungroup Undo/Redo actions

* UI: Fix null string being passed to blog()

* libobs: Straight alpha blend for filtered inputs

This is necessary if the source contains overlapping draws.

* UI: Correct add_action repeatable arg type

FreeBSD build fix.  repeatable is a bool, so pass false instead of NULL.

* obs-transitions: Disable separate track matte file for now

Because it's not currently possible to guarantee synchronization between
two separate media files (yet), disable separated track matte media
files for now. It'll just result in support requests that can't be
solved.

* UI: Fix OBS signal recursion

SourceSyncChanged() would call syncOffsetChanged() because it's
connected to the widget.  This is fixed by blocking signals

This bug was discovered because undo/redo actions for sync offset
changes were triggering the creation of new undo/redo actions within
their own callbacks.

Fixes obsproject#4760

* obs-filters: Test if NVAFX is supported on load

Prevents situations where the redistributable is installed and OBS
enables the RTX denoiser but it is non-functional. Changes were tested
on systems with both supported / unsupported GPUs and it adds around
10-20ms to the load time in both cases.

* Update translations from Crowdin

* UI: Remove scene collection undo/redo actions

* libobs: Update version to 27.0.0

* CI: Fix dmgbuild breaking CI by pinning its version number

* UI: Disable drag/drop on Linux scenes/sources (for now)

Due to a Qt issue on Linux, disable drag/drop on the scenes/sources list
on Linux for the time being.

* libobs: Restrict direct filtering to SRGB match

Fixes issue where color-correction filter v1 changes from v26 to v27.

* merge fix submodule

* restored PR #252

* vst plugin merge

* fix audio device init

* fix matte transition options

* hide matte options

Co-authored-by: Ryan Foster <[email protected]>
Co-authored-by: Georges Basile Stavracas Neto <[email protected]>
Co-authored-by: tytan652 <[email protected]>
Co-authored-by: Richard Stanway <[email protected]>
Co-authored-by: wangshaohui <[email protected]>
Co-authored-by: Kurt Kartaltepe <[email protected]>
Co-authored-by: jpark37 <[email protected]>
Co-authored-by: derrod <[email protected]>
Co-authored-by: jp9000 <[email protected]>
Co-authored-by: Clayton Groeneveld <[email protected]>
Co-authored-by: Matt Gajownik <[email protected]>
Co-authored-by: Bilal Elmoussaoui <[email protected]>
Co-authored-by: pkv <[email protected]>
Co-authored-by: Lukáš Mojžíš <[email protected]>
Co-authored-by: Ford Smith <[email protected]>
Co-authored-by: Ford Smith <[email protected]>
Co-authored-by: Mat Clayton <[email protected]>
Co-authored-by: Joel Bethke <[email protected]>
Co-authored-by: Exeldro <[email protected]>
Co-authored-by: Colin Edwards <[email protected]>
Co-authored-by: tt2468 <[email protected]>
Co-authored-by: gxalpha <[email protected]>
Co-authored-by: GingerAudio <[email protected]>
Co-authored-by: SCG82 <[email protected]>
Co-authored-by: Stéphane Lepin <[email protected]>
Co-authored-by: Joe Flateau <[email protected]>
Co-authored-by: VodBox <[email protected]>
Co-authored-by: Anton Bershanskiy <[email protected]>
Co-authored-by: geekenmd <[email protected]>
Co-authored-by: iamflorencejay <[email protected]>
Co-authored-by: Developer <[email protected]>
Co-authored-by: Neal Gompa <[email protected]>
Co-authored-by: PatTheMav <[email protected]>
Co-authored-by: Ed Maste <[email protected]>
Co-authored-by: Gol-D-Ace <[email protected]>
@rloutrel
Copy link

rloutrel commented Jun 6, 2022

Hi every one,

may I suggest to improve the user experience of concerned user and adapt the current workaround (hiding under "Docks menu" the option "add Custom browser Docks")?

Well... I did not wait for the response of if I may suggest, or not. Therefore, if the response is no, please ignore the below lines.

My suggestion would be to leave the option in the menu. It opens a popup, explaining, it is not supported yet on Wayland, and the user should go back to x11/x.org from the loging screen, to be able to use this. At least, one quickly knows from the application itself, that its problem is known and there is a quickfix.
I lost a lot of time trying snap, flatpak, then deb, then older versions, (parallel to searches on duckduckgo), ... until someone pointed out the problem on discord.

Of course, if the solution is already on the pipe, please ignore this silly suggestion.

Of course also: You are all doing an amazing work and I thank you all for this!

@GloriousEggroll
Copy link

Just spent an entire day trying to figure out why my build wasn't showing the custom docks option. logged in to X11 after seeing this bug and magically everything worked of course. sigh. Hope this gets fixed soon

@GloriousEggroll
Copy link

One of my community members for Nobara accidentally stumbled upon a workaround for this while troubleshooting another issue. Launching OBS with QT_QPA_PLATFORM=xcb obs allows the docks and integrations to all work within wayland :o
Screenshot from 2023-03-31 23-05-28

@mihawk90
Copy link

mihawk90 commented Apr 1, 2023

That's on XWayland and can result in some other weird behaviour. If it works for them that's great but it is not supported. (and yes that's been known for a while ;) )

@GloriousEggroll
Copy link

That's on XWayland and can result in some other weird behaviour. If it works for them that's great but it is not supported. (and yes that's been known for a while ;) )

yeah i noticed it breaks obs-vkcapture on nvidia (works fine on amd)

@neolectron
Copy link

neolectron commented Aug 5, 2023

OK, I got it to work, and found other behavior that you might be interested in.

Operating System Info

Ubuntu 22.10

OBS Studio Version

Git

OBS Studio Log URL

https://obsproject.com/logs/4WXvjRYBshjkFrRA

Expected Behavior

Expected behavior would be to NOT work without the temporary commit that disable custom browser docks on wayland.
obsproject/obs-studio@c7aacea
image

Current Behavior

It DOES work, therefore the disabling of custom browser docks is useless.

If you build OBS with the commit reverted, and you start OBS without the flags, it works but browser-docks are disabled, so there's no difference with what we have now.
(commit has no impact, no crash or else)

If you start with the flags, it also add the browser-docks to the already working OBS setup on xwayland (with pipewire screen-capture and any wayland specific other features)

Steps to Reproduce

  1. Clone OBS-studio.
  2. Revert commit 7402271392a6a74fb49f16d84fb3c04c1b603d9a in obs-browser.
  3. Build from source.
  4. Start OBS with qt (for X): GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb obs.
  5. Custom browser docks works while on wayland host.

image

Anything else we should know?

(I tested it on Arch and the last Ubuntu, they both worked)

@mihawk90
Copy link

mihawk90 commented Aug 6, 2023

This was mentioned by GE above and does not need the patch reverted.

And as stated above, if it works for you, good on you, that's your business. That doesn't make it a universal/acceptable solution though as you were told in obsproject/obs-studio#9369.

@neolectron
Copy link

@mihawk90 that's odd because it didn't work before the revert. I tested this solution in 2 of my setups and it unlocked the situation in both of them. And even if it didn't worked, the reverted commit didn't make any difference unless obs was started with the flag aswell.
That's why I'm full of incomprehension here.
In one hand, it seems like the issue is not really a thing anymore (I don't think it works "just for me", but for every wayland users), and in the other hand, reverting the commit doesn't change a thing for 99.99% of the users and just provide fallbacks for the ones that are interested in the feature (I do understand however that it doesn't mean that you're going to support xwayland or anything, it's just a matter of not blocking options in the code if it has no other effects than preventing it to work in some cases).

@obsproject obsproject deleted a comment from mihawk90 Aug 27, 2023
@mihawk90
Copy link

mihawk90 commented Sep 12, 2023

Apologies for my previous (now deleted) comment in case you read it, it came off more rough then intended.
The title of the video is however slightly misleading as it is not Wayland that breaks this feature. It is a missing implementation on CEFs side, which yes only manifests on Wayland, however that is not Waylands fault.

Either way, for future reference: We're waiting on chromiumembedded/cef#2804

Specifically, see the comments from on Jan 31, 2022:

What’s currently missing (and covered by this issue) is the ability to embed CEF windows in third-party Wayland applications. That requires providing a Wayland alternative to the X11 code that is currently #ifdef-d out of the CEF Ozone build.

As I understand this comment there is currently no way for the OBS team to embed CEF "natively" into OBS on Wayland. XWayland via QT_QPA_PLATFORM (as mentioned above) works in some usecases, but it breaks others so it cannot be default behaviour.

edit: Matt also addressed this in a comment on the video.

@davidedmundson
Copy link

Is there a reason we use CEF directly over QtWebengine? (other than the porting work)

The latter would be trivially embeddable, either as the widget or textures can be retrieved and used in any way.

@Fenrirthviti
Copy link
Member

Short answer is that QtWebengine doesn't offer us anything over the existing implementation, and is missing core functionality that we have patched in to CEF (OSR, hardware accel, shared textures, audio routing). It would be a lot of extra work to port it for reduced functionality. QtWebengine also tends to lag behind CEF proper.

@TheRealFame
Copy link

Short answer is that QtWebengine doesn't offer us anything over the existing implementation, and is missing core functionality that we have patched in to CEF (OSR, hardware accel, shared textures, audio routing). It would be a lot of extra work to port it for reduced functionality. QtWebengine also tends to lag behind CEF proper.

What about now in 2024?

Is there any alternatives that fix this simple solution of no custom browser docks for Wayland? (Without using an external app.)

@carlosvalin94
Copy link

any news?

@carlosvalin94
Copy link

Fedora 41 will exclusively use Wayland. Is there any workaround available or has there been any progress on this? Thank you!

@neolectron
Copy link

For now, the workaround is starting obs for X (or xwayland) with theses arguments :

GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb obs

@makulski
Copy link

For now, the workaround is starting obs for X (or xwayland) with theses arguments :

GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb obs

Thank you - will this make docks working on the Wayland?

@polluxau
Copy link

For now, the workaround is starting obs for X (or xwayland) with theses arguments :

GDK_BACKEND=x11 QT_QPA_PLATFORM=xcb obs

Thank you - will this make docks working on the Wayland?

It's forcing OBS to run under xwayland which will bring back the browser docks so yes it will work

@mihawk90
Copy link

any news?

We are still waiting on CEF.

Fedora 41 will exclusively use Wayland.

Not true. You can still install the X sessions manually.

the workaround is starting obs for X (or xwayland) with theses arguments

This is not supported as noted multiple times above. If it works for you, great, but if you run into issues, you're on your own.

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

No branches or pull requests

17 participants