Facepunch / sbox-issues

180 stars 12 forks source link

[UI] "threadsX/threadsY" error with specific combination of styles/filters #7475

Open ryleigh opened 1 week ago

ryleigh commented 1 week ago

With a certain combination of styles, this error happens and breaks the UI until the project is restarted:

[Interop] Cannot be less than 1 (Parameter 'threadsX')  System.ArgumentException: Cannot be less than 1 (Parameter 'threadsX')
   at Sandbox.Graphics.GenerateMipMaps(Texture texture, DownsampleMethod downsampleMethod, Int32 initialMip, Int32 numMips) in C:\build\_work\sbox\sbox\engine\Sandbox.Engine\Render\Graphics.MipmapGen.cs:line 80
   at Sandbox.UI.PanelRenderer.CopyFrameBufferCached(Rect rect) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Render\PanelRenderer.Backdrop.cs:line 42
   at Sandbox.UI.PanelRenderer.DrawBackdropFilters(Panel panel, RenderState& state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Render\PanelRenderer.Backdrop.cs:line 83
   at Sandbox.UI.Panel.DrawBackground(PanelRenderer renderer, RenderState& state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Panel\Panel.Render.cs:line 15
   at Sandbox.UI.PanelRenderer.Render(Panel panel, RenderState state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Render\PanelRenderer.cs:line 69
   at Sandbox.UI.Panel.RenderChildren(PanelRenderer render, RenderState& state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Panel\Panel.Render.cs:line 245
   at Sandbox.UI.PanelRenderer.Render(Panel panel, RenderState state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Render\PanelRenderer.cs:line 91
   at Sandbox.UI.Panel.RenderChildren(PanelRenderer render, RenderState& state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Panel\Panel.Render.cs:line 245
   at Sandbox.UI.PanelRenderer.Render(Panel panel, RenderState state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Render\PanelRenderer.cs:line 91
   at Sandbox.UI.Panel.RenderChildren(PanelRenderer render, RenderState& state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Panel\Panel.Render.cs:line 245
   at Sandbox.UI.PanelRenderer.Render(Panel panel, RenderState state) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Render\PanelRenderer.cs:line 91
   at Sandbox.UI.PanelRenderer.Render(RootPanel panel, Single opacity) in C:\build\_work\sbox\sbox\engine\Sandbox.Game\UI2\Render\PanelRenderer.cs:line 29
   at Sandbox.GameInstanceDll.RenderUI() in C:\build\_work\sbox\sbox\engine\Sandbox.GameInstance\GameInstanceDll.cs:line 341
   at Sandbox.Graphics.OnLayer(Int32 stageenum, ManagedRenderSetup_t setup) in C:\build\_work\sbox\sbox\engine\Sandbox.Engine\Render\Graphics.Hooks.cs:line 23
   at Managed.SandboxEngine.Exports.Sandbox_Graphics_OnLayer(Int32 renderHookStage, ManagedRenderSetup_t setup) in C:\build\_work\sbox\sbox\engine\Sandbox.Engine\Interop.Engine.cs:line 13063

The combination that causes the error seems to be an element with:

.middle_container {
    //width: 400px;
    //height: 400px;

    padding: 16px;

    backdrop-filter: blur(12px);
    filter: drop-shadow(2px 15px 12px #00000088);
}

Here's a test project with the error happening: ui_error_test.zip