Opened 2 weeks ago

Last modified 13 days ago

#15143 new enhancement

QXL/spice driver

Reported by: kstabel Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: - General Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Hi,

Haiku is very well behaved as a guest on KVM, but the one thing lacking at this time is good video acceleration. The draw performance using the VESA driver is quite poor.

Is there anything planned with regards to this?

Change History (10)

comment:1 Changed 2 weeks ago by waddlesplash

What do you mean that the draw performance is poor? Do you have any statistics?

comment:2 in reply to:  1 Changed 2 weeks ago by kstabel

Replying to waddlesplash:

What do you mean that the draw performance is poor? Do you have any statistics?

There is quite a bit of tearing when moving windows, video playback is pretty choppy, even scrolling in webpositive is choppy.

Drawing also uses quite a bit of cpu cycles (no real acceleration).

comment:3 Changed 2 weeks ago by waddlesplash

Tearing is basically invisible here, and video playback is not that choppy. Are you not using KVM or another hypervisor?

comment:4 in reply to:  3 Changed 2 weeks ago by kstabel

Replying to waddlesplash:

Tearing is basically invisible here, and video playback is not that choppy. Are you not using KVM or another hypervisor?

I'm using KVM with QXL/spice as a video device. I've experienced the same results/effects on three different machines.

comment:5 Changed 2 weeks ago by tqh

This looks more like a problem with framebuffer performance in Spice. As we don't use gfx acceleration in Vesa you need a fast framebuffer, and as Spice seems to built for remote clients, this is probably the least useful KVM driver for Haiku.

comment:6 in reply to:  5 Changed 2 weeks ago by kstabel

Replying to tqh:

This looks more like a problem with framebuffer performance in Spice. As we don't use gfx acceleration in Vesa you need a fast framebuffer, and as Spice seems to built for remote clients, this is probably the least useful KVM driver for Haiku.

Spice is the default protocol, and QXL the default device for KVM vms in virt-manager, gnome-boxes, ovirt, etc ... Performance is fine locally, or remotely with linux, windows, etc. Can even play 1080p video over the network from my ovirt environment with sound. Locally, the performance is indistinguishable from regular hardware.

That being said, i've tried vmvga, cirrus, etc with KVM. They all suffer the same performance issues. As you said, no acceleration. A QXL accelerant would be very nice, but i suspect that would be a lot of work.

comment:7 Changed 2 weeks ago by tqh

As I do all my development with KVM and don't see the issues you are talking about I wonder what is your hw/setup. Tearing you will see because there is no vertical retrace syncing possible without some hw acceleration. Lagging on the other hand should not be a problem.

To answer your other question, gfx acceleration is something we want, but gfx hw is very complicated and gfx manufacturers are very unhelpful, so it is very hard to do this without paid developers, signed NDA's and support from the manufacturer. Hint: If other vendors had something like AtomBios and helped support its usage like AMD we probably would be much further along.

comment:8 in reply to:  7 Changed 2 weeks ago by kstabel

Replying to tqh:

As I do all my development with KVM and don't see the issues you are talking about I wonder what is your hw/setup. Tearing you will see because there is no vertical retrace syncing possible without some hw acceleration. Lagging on the other hand should not be a problem.

To answer your other question, gfx acceleration is something we want, but gfx hw is very complicated and gfx manufacturers are very unhelpful, so it is very hard to do this without paid developers, signed NDA's and support from the manufacturer. Hint: If other vendors had something like AtomBios and helped support its usage like AMD we probably would be much further along.

I've ran it on KVM on a dual xeon 56xx or other (my ovirt env), a ryzen machine, a laptop with an i7 8550 and another laptop with an older i7 (fourth gen).

The tearing is no big deal, but just unfortunate. The lagging, yes, it happens when scrolling through a webpage on webpositive, or for example having the terminal full screen and scrolling through that, etc. I get it, no hw acceleration, that's what i'm saying as well. QXL acceleration would be nice.

As for your point on hardware support, yes, i fully understand and agree. However, QXL is a paravirtualized device, for which the spec is just published in the open (Open source).

It's not a must-have, but it would make haiku run pretty nicely on KVM, which is a mainstream virtualization platform on linux. Dare i even say the preferred and nicest one. It would give a lot of people a much nicer experience, that's all i'm saying.

Just an idea.

comment:9 Changed 2 weeks ago by tqh

If it isthe browser and terminal scrolling then it is more likely to be the scrolling in these. Webpositive is still under heavy development, so it is not comparable to state of the art browsers.

comment:10 in reply to:  9 Changed 13 days ago by kstabel

Replying to tqh:

If it isthe browser and terminal scrolling then it is more likely to be the scrolling in these. Webpositive is still under heavy development, so it is not comparable to state of the art browsers.

Hi, i don't experience this on actual hardware, so i don't think so, but that's fine. This was just a suggestion. If you feel like this would be too much work at this stage, then no worries.

Note: See TracTickets for help on using tickets.