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

UI doesn't render in Ableton Live 10 on Windows #5

Open
alalalexexex opened this issue Aug 28, 2021 · 11 comments
Open

UI doesn't render in Ableton Live 10 on Windows #5

alalalexexex opened this issue Aug 28, 2021 · 11 comments

Comments

@alalalexexex
Copy link

Steps for repro:

  • Built using cargo build --release
  • copied .dll file to main folder for Ableton plugins
  • Open plugin as normal, but the screen is blank (white canvas).

not_working

*Note: I'm a complete novice for vst dev, and just wanted to explore where to start: i.e. In no rush, but wanted to see if I could compile something from scratch.

@antonok-edm
Copy link
Owner

Thanks for the report! I don't have access to Ableton myself so this is good to know.

This is probably another issue with vst_window; I suppose Ableton does something different from the other DAWs I've tested.

@antonok-edm
Copy link
Owner

@alalalexexex or others, if you have a Mac it'd be interesting to see if ampli-Fe is also broken with Ableton there.

@faejr
Copy link

faejr commented Sep 6, 2021

I'm using Ableton live 11 and running a release build of ampli-Fe makes it crash as well (Windows).

Scratch that, seems it doesn't crash anymore and just get a blank screen like above. Seems that #3 fixed that for me and I forgot to pull it down.

@faejr
Copy link

faejr commented Sep 7, 2021

@antonok-edm I finally had a minute to test it on Ableton 11 on a Mac and it seems to work without any issues, so strange that it doesn't seem to function as well on the Windows version.

image

@detrimentalist
Copy link

Same issue with Bitwig 4.0.5 on Ubuntu 20.04

Screenshot_2022-01-17_11-32-40

@antonok-edm antonok-edm changed the title UI doesn't render in Ableton Live 10 UI doesn't render in Ableton Live 10 on Windows Jan 18, 2022
@antonok-edm
Copy link
Owner

@detrimentalist after loading an instance of ampli-Fe, could you check your Bitwig's engine logs for any errors? Should be in ~/.BitwigStudio/log/engine.log by default.

I'm using Bitwig 4.1.0 in Arch without any issues, so I suspect what you're seeing is a hardware or driver related issue in wgpu.

@detrimentalist
Copy link

detrimentalist commented Jan 19, 2022

The only line that shows up is this:

"WARNING: lavapipe is not a conformant vulkan implementation, testing use only."

I have seen this line somewhere before, I think it has to do with selecting the wrong adapter.

So I ran the following code on my system:

instance.enumerate_adapters(wgpu::Backends::all()).for_each(|a| {
            println!("{:?}", a);
            println!("{:?}", a.get_info());
            println!("");
        });

yielding

Adapter { context: Context { type: "Native" }, id: (0, 1, Vulkan) }
AdapterInfo { name: "NVIDIA GeForce GTX 1650", vendor: 4318, device: 8066, device_type: DiscreteGpu, backend: Vulkan }

Adapter { context: Context { type: "Native" }, id: (1, 1, Vulkan) }
AdapterInfo { name: "llvmpipe (LLVM 12.0.1, 256 bits)", vendor: 65541, device: 0, device_type: Cpu, backend: Vulkan }

Adapter { context: Context { type: "Native" }, id: (2, 1, Vulkan) }
AdapterInfo { name: "NVIDIA GeForce GTX 1650", vendor: 4318, device: 8066, device_type: DiscreteGpu, backend: Vulkan }

Adapter { context: Context { type: "Native" }, id: (3, 1, Vulkan) }
AdapterInfo { name: "llvmpipe (LLVM 12.0.1, 256 bits)", vendor: 65541, device: 0, device_type: Cpu, backend: Vulkan }

OK, so I'm thinking the adapter selection code in Ampli-Fe is not robust enough. I made a hack to try to select another adapter in graphics.rs:


            let adapters: Vec<Adapter> = instance.enumerate_adapters(BackendBit::all()).filter(|a| {
                a.get_info().device_type == DeviceType::DiscreteGpu
            }).collect();

            let adapter = adapters[0].borrow();

With this change the UI renders, but this is of course not the right way to do it. I have no clue how to do it the right way tho. :)

Cheers

@antonok-edm
Copy link
Owner

@detrimentalist yep, that's roughly what I expected to see. If one of the adapters works, but isn't automatically chosen by instance.request_adapter(...), then it's an issue with wgpu or your installed driver/hardware combination. You might be running into something like gfx-rs/wgpu#2397 - it'd be worth commenting there or opening another report.

Granted, ampli-Fe is pulling a version of wgpu from more than a year ago, so it may also be worth trying to update that.

@antonok-edm
Copy link
Owner

antonok-edm commented Jan 20, 2022

@detrimentalist could you try building the update-wgpu branch? That's using the latest published wgpu version.

(I suppose others who were facing rendering issues are encouraged to try as well 😄)

Edit: update-wgpu was merged to master.

@detrimentalist
Copy link

Building from the update-wgpu branch resolved the issue for me. Thanks!

@faejr
Copy link

faejr commented Jan 29, 2022

I finally got around to building the update-wgpu branch and I'm unfortunately still having issues. Although I did have to also make the following patches to get it to build: antonok-edm/vst_window#2

image

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

4 participants