Adjustment Layer

Adjustment Layer 1.1.1

This release fixes an issue where an Adjustment Layer could incorrectly display the shared-use warning and stop working when its scene was placed inside another scene. Scenes containing an Adjustment Layer can now be nested without being mistaken for duplicate use.
本リリースでは、調整レイヤーを含むシーンを別のシーンに入れ子で配置した際、共有使用の警告が誤って表示され、調整レイヤーが動作しなくなる問題を修正しました。調整レイヤーを含むシーンを入れ子で使用しても、複製使用と誤判定されなくなりました。

Bug Fixes​

  • Fixed a false warning that could disable an Adjustment Layer when its scene was nested inside another scene.
  • The same Adjustment Layer item is now recognized correctly even when it is reached through multiple nested-scene paths.
  • Actually reusing one Adjustment Layer in multiple scene items or scenes remains unsupported and continues to display the existing warning.
This release adds support for source show and hide transitions and improves the overall stability of the Adjustment Layer. It also prevents unsupported placements from causing unexpected behavior by displaying a clear warning instead.
本リリースでは、ソースの表示・非表示トランジションに対応し、調整レイヤー全体の安定性を向上しました。また、未対応の配置による予期しない動作を防ぎ、代わりに分かりやすい警告を表示するようにしました。

New Features​

  • Sources below the Adjustment Layer now correctly use their configured show and hide transitions, including effects such as Fade, Swipe, and Slide.

Bug Fixes​

  • Fixed crashes and freezes that could occur when deleting an Adjustment Layer, changing scenes, or using it with filters and scripts.
  • Improved stability when multiple Adjustment Layers are stacked or rendered at the same time.
  • Reusing the same Adjustment Layer or placing one inside a group now safely disables the effect and displays a localized warning instead of causing unexpected behavior.
This release fixes critical freezing and crashing issues that occurred when creating or deleting the Adjustment Layer, particularly on Windows and when used alongside specific other plugins.
本リリースは、特定の環境下(Windowsや他のプラグインとの併用時)において、調整レイヤーの作成・削除の際にOBS全体がフリーズまたはクラッシュする問題を修正するバグフィックスリリースです。


Bug Fixes

Fix GPU driver crashes and freezes on layer removal (especially on Windows/D3D11)
  • Deleting the adjustment layer sometimes caused OBS to freeze completely, especially on Windows (including UTM virtual machines) using Direct3D 11.
  • Root cause: Texture resources were being destroyed asynchronously without properly locking the graphics context, leading to concurrent D3D11 immediate context access and driver hangs.
  • Fixed by delegating resource destruction to the graphics thread and explicitly locking the graphics context (obs_enter_graphics()).
Fix application deadlocks during scene traversal
  • Removing the adjustment layer while certain other plugins (e.g., Lua scripts with heavy rendering like HoraikenHorizonLens) were active caused OBS to deadlock.
  • Root cause: The plugin searched for its parent scene during video_render, which locked the sources_mutex while the graphics thread already held the video_mutex. This caused a lock inversion against the UI thread when removing items.
  • Fixed by caching the parent scene pointer during video_tick (where it is safe to lock) to completely eliminate the lock inversion risk.
This release fixes rendering issues with transparent and sRGB-aware sources when used with the Adjustment Layer.



Bug Fixes​

Fix transparent source rendering (WebM, Spout, etc.)​

  • Transparent pixels in sources like WebM and Spout were rendered as opaque when the Adjustment Layer was enabled
  • Root cause: the plugin used premultiplied alpha blending (`ONE, INVSRCALPHA`) for source capture, but some sources output straight (non-premultiplied) alpha
  • Changed to use straight alpha blending (`SRCALPHA, INVSRCALPHA`) to match OBS's default scene rendering behavior

Fix sRGB blending method being ignored​

  • Sources with the default blending method (sRGB) were incorrectly rendered as "sRGB Off" when the Adjustment Layer was enabled
  • Added proper `gs_set_linear_srgb` handling so that OBS selects the correct gamma-aware rendering technique
Back
Top