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
fix: Use composition to fix window transparency when using D3D #2529
Conversation
3347c85
to
d3dddf1
Compare
Great! 👏 If I understand correctly, in the latest version it is possible to run Neovide also with I would like to ask which would be the differences on Windows 11 running Neovide either with |
The difference is mainly that D3D is smoother on most systems, it should be on all, but there might still be some bugs in the implementation, so |
If I understand correctly it is also now possible with D3D12 to set Neovide transparency on Windows? If yes, how could this be achieved? Just for a quick test. |
You can either download the artifacts from the CI https://github.com/neovide/neovide/actions/runs/8991931441, or build this branch manually |
Thanks for the quick reply, I downloaded the artifact from your link here: https://github.com/neovide/neovide/actions/runs/8991931441 Strangely the This is when it is set to I'm running:
|
That's very strange, it definitely fixed both issues for me, maybe it's somehow running the wrong exe? I think powershell by default don't run exes in the current directory, unless you give the path like |
I found a little bug in my basic LazyVim configuration (noice enabled by default), this is the Lazy panel: When I try to enter the diff subwindow for an update (press The diff buffer is focused and I can move the cursor in it correctly, but the previous buffer is still displayed in the background. When I press |
@pidgeon777, are you using Another possible cause could be that Neovim renders several non-floating windows on top of each other and does not clear the underlying window automatically. Essentially the same cause that causing this: |
I'm experiencing some confusion with the |
The commit referenced above was identified: https://github.com/neovide/neovide/actions/runs/8991931441#artifacts This commit introduces a change where setting the Upon close inspection of the image, it is evident that the transparency setting primarily affects the background, leaving other elements intact. This behavior aligns with the wished outcome, where only the background transparency is modified. |
…de#2529) * Use composition to support transparency with d3d * Don't enable the D3D debug layer by default
What kind of change does this PR introduce?
In order to render transparent window backgrounds on Windows with D3D, the drawing is now done using Window's composition engine, see https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/june/windows-with-c-high-performance-window-layering-using-the-windows-composition-engine. This also fixes, the alt-enter hijacking, since the swapchain is no longer bound to the Window.
Additionally, this PR disables the D3D debug layer by default, since it's not supported on some systems without additional software.
Using the D3D12 SDKLayers dll requires that the latest SDKLayers for Windows 10 is installed
error when startingneovide
#2517Alt+Enter
mapping behaves incorrectly in the Neovide binaries built from latest master #2522Did this PR introduce a breaking change?
A breaking change includes anything that breaks backwards compatibility either at compile or run time.