Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
48 user(s) are online (39 user(s) are browsing Forums)

Members: 0
Guests: 48

more...

Headlines

Forum Index


Board index » All Posts (AlfredOne)




Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@Maijestro

Ok, I will try. In any case, @Hans is certainly right. A tablet with absolute coordinates is not suitable for controlling a rotation. Absolute coordinates have left and right bounds, and rotation is likely mapped absolutely to -90 degrees on the left and +90 degrees on the right.
A mouse, on the other hand, only indicates relative movements, so it allows you to rotate without limits in both directions.

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@Maijestro

I can't run Quake2 on QEmu.
If i try, i get the message "Error: Couldn't create window".

I have:
- minigl.library v2.24
- Warp3D.library 53.27

Where am I doing wrong?

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@Maijestro

Quote:
What I have noticed, however, is that the first time I use AmigaOs4.1 the host mouse pointer is displayed.....as soon as I make an entry with the mouse, the guest takes over.


This also seems like a different behavior of the host window manager.
It starts sending events to AmigaOS only when the QEMU screen acquires focus with the first click.
If I instead launch in fullscreen, QEMU acquires focus directly and the guest cursor starts working immediately.

p.s.: Where did you find the startup audio? It's wonderful. I want it.

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@all
The driver is ready:
- added wheel support
- added more checks to prevent it from taking control of devices that are already managed well by hid.usbfd.

I can't upload here.
Anyone interested, can pm me their email, and I will send the driver.
Note: this is a temporary driver to better use QEMU tablet device, but should work with similar devices.
The ultimate goal is to integrate everything into hidtouch.usbfd (only the part that is not yet managed in hid.usbfd).

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


I'll add wheel support as soon as I find some free time tonight and send you the updated hidtablet.usbfd driver here.
then I thought of integrating the code into the hidtouch.usbfd driver which will thus manage tablet devices as well as touchscreens.

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@Maijestro

In fullscreen it should never happen. It is behaving as if it were window mode and the AmigaOS window ended one line before the screen border.
I tried both on my laptop screen and on an external 4k monitor and in fullscreen I can reach the edge without the host cursor appearing.
What options do you use to launch QEmu?

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@Maijestro
I tested both fullscreen and windowed mode and I don't have your problem. Can you make a video?

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@Maijestro

I didn't realize there was also the menu problem.
Does this also happen when you're in fullscreen?

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@Maijestro

The 2 mouse cursors, host and guest, visible at the same time, I think are inevitable.
In "tablet" mode, as soon as the cursor leaves the emulated AmigaOS screen, the host cursor appears, but the Amiga cursor no longer receives events and remains stationary in the last position.

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@Maijestro

The difference is how QEMU emulates a pointing device.
Normally QEMU shows a touchpad or a mouse as a standard HID mouse, so AmigaOS4.1 sees a HID mouse and receives from QEMU events with relative movements in x and y. In this case the official hid.usbfd driver of amigaos handles this in the right way.
You can verify that events received are relative x,y by looking at the mouse cursor positions in the emulated AmigaOS4.1 and the "real" mouse cursor of the host system: they do not match. In general it is not a problem, except in particular cases (see Hans's post).

Alternatively, QEMU can emulate the pointing device as a HID tablet instead of a HID mouse. In this case, QEMU does not expose a mouse, but exposes a tablet as an input device and sends absolute coordinates to AmigaOS4 such that the AmigaOS4 mouse cursor coincides with the host operating system's mouse cursor. Hans reported that this mode would be useful when using the Virtio GPU device.
The problem is that the amigaos hid.usbfd driver cannot currently manage the tablet device.

So I wrote a driver that handles a tablet device.
Using the HID protocol, this driver can actually manage all tablet like devices, but I was wondering if it wasn't worth making the driver more selective, so that it works only when it detects the QEMU emulated tablet.

Go to top


Re: Support for other touch devices
Just popping in
Just popping in


@vagappc

sketchblock reads pressure.


Edited by AlfredOne on 2024/3/1 17:00:55
Go to top


Support for other touch devices
Just popping in
Just popping in


If anyone has a touch device (graphic tablet, touchpad, etc..) that doesn't work on AmigaOS4, they can report it here and we'll evaluate whether it's possible to add support in one of my drivers.

Go to top


Re: Touchscreen HID driver & QEMU's USB Tablet device
Just popping in
Just popping in


@vagappc
Yes. Can you tell me the graphics tablet model?
Write me privately or in the new topic:
Support for other touch devices.

Go to top


Re: Touchscreen HID driver & QEMU's USB Tablet device
Just popping in
Just popping in


@all
Do you think it would be useful if I released a QEMU specific usb driver (e.g. qemutatablet.usbfd or qemu.usbfd), instead of a generic hid driver that handles qemu but could handle other hid devices?

Go to top


Re: Touchscreen HID driver & QEMU
Just popping in
Just popping in


@hans

Hi Hans,
try if the attached driver is right for you.

Quick explanation:
this driver should recognize and handle the QEMU Tablet Device and similar.
It does not require touch.device or touchbench, it is a standalone driver that sends NEWPOINTERPOS/TABLET events to the input.device, so it works with absolute coordinates.

I tried it with QEMU and the option
-device usb-tablet
and it seems to work.

Note: being a fast adaptation, the driver could also take control of other similar devices and bypass the official AmigaOS4 hid.usbfd driver. If this causes you problems let me know and I will make the driver more selective.

Best regards!

Attach file:


Link only for registered users


Edited by AlfredOne on 2024/2/27 12:03:36
Edited by AlfredOne on 2024/2/27 12:04:05
Go to top


Re: Lost 2560x1440 with Radeon RX580 on X5000
Just popping in
Just popping in


@AmigaSociety

This is what i've done to be able to use 2560x1440 on my X1000 withe a RadeonHD card.

Instead, with the Radeon RX550 I tried to insert all the possible resolutions with all the possible frequencies, but it doesn't engage any screenmode beyond fullHD 1920x1080.

note: The monitor supports resolutions up to 3840x1600.

Go to top


Re: Touchscreen HID driver & QEMU's USB Tablet device
Just popping in
Just popping in


@balaton
@hans
I checked the hid report buffer of the QEMU USB Tablet device.
It is described as a Mouse, with 3 buttons, a wheel and absolute X,Y coordinates.
For this reason it is not managed by the hidtouch.usbfd, it is not seen as a touchscreen.

In any case the QEMU Tablet device seems to me to be a simulation of a mouse by QEMU. I could easily add support for this type of device, but it makes more sense for the AmigaOS4 hid.usbfd driver to handle it directly. Maybe it doesn't handle it because it only recognizes mice with relative coordinates or touchscreen/digitizer with absolute coordinates.

@hans, have you tried to see if the touchscreen of the tablet is seen as a USB device with the 'lsusb' command?

Go to top


Touchscreen HID driver & QEMU's USB Tablet device
Just popping in
Just popping in


As you can imagine from the title, here we will try to solve the problems related to the QEMU's USB Tablet device.


Edited by AlfredOne on 2024/2/23 15:52:36
Edited by AlfredOne on 2024/2/23 15:53:15
Go to top


Re: Touchscreen HID driver & QEMU's USB Tablet device
Just popping in
Just popping in


@Hans

As stated by Graff, the logs indicate an HID device.
So it should be handled by the hid.touch driver.
You could try this, in case it's just a recognition problem at boot:
try launching "USBCtrl restart" and see if the device appears in TouchPrefs.

If it doesn't work like that either, we should do a bit of debugging to understand if the hid device is a touchscreen type or if it is a different type and therefore is not recognized by the hid.touch.

p.s.: Have you checked whether the device appears in the TouchPrefs device list?

Go to top


Re: X1000 and interleaved memory controllers
Just popping in
Just popping in


I tested the following 3 configurations:

1) 1x2GB DIMM on Slot1

CFE relevant output:
SDRAMECC offNon-ECC DIMM used on channel 0.␍␊
[09:30:40:111DRAM runtime configuration:␍␊
[09:30:40:130Total memory2048MB␍␊
[09:30:40:130XAUI␍␊
[09:30:40:130␍␊
[09:30:40:130Channel 0:␍␊
[09:30:40:1302048MB of RAMAddress Range 0 2048MB␍␊
[09:30:40:130Memory clock 400MHz (DDR2-800), tCK 2500psCL 6␍␊
[09:30:40:130Low Latency Config Tuned for Fcore 2000 MHz␍␊
[09:30:40:130High performance mode␍␊
[09:30:40:170MMC advanced features␍␊
[09:30:40:170DRAM Rtt150 Ohms␍␊
[09:30:40:170MMC Rtt075 Ohms␍␊
[09:30:40:170MMC Rtt175 Ohms␍␊
[09:30:40:170MC DRAM ODT␍␊
[09:30:40:170Addr/Cmd 2T Timing␍␊
[09:30:40:170Ctrl Output Phase wrt CLK0␍␊
[09:30:40:170Addr/Cmd Output Phase wrt CLK0␍␊
[09:30:40:170Rank interleaved␍␊
[09:30:40:170UDIMM



2) 2x2GB DIMM on Slot1 & Slot2

CFE relevant output:
[09:12:29:334SDRAMECC offNon-ECC DIMM used on channel 0.␍␊
[09:12:29:338DRAM runtime configuration:␍␊
[09:12:29:386Total memory4096MB␍␊
[09:12:29:386XAUI␍␊
[09:12:29:386␍␊
[09:12:29:386Channel 0:␍␊
[09:12:29:3864096MB of RAMAddress Range 0 6144MB␍␊
[09:12:29:386Memory clock 400MHz (DDR2-800), tCK 2500psCL 6␍␊
[09:12:29:386Low Latency Config Tuned for Fcore 2000 MHz␍␊
[09:12:29:386High performance mode␍␊
[09:12:29:386MMC advanced features␍␊
[09:12:29:386DRAM Rtt50 Ohms␍␊
[09:12:29:386MMC Rtt0150 Ohms␍␊
[09:12:29:386MMC Rtt1150 Ohms␍␊
[09:12:29:386MC DRAM ODT␍␊
[09:12:29:386Addr/Cmd 2T Timing␍␊
[09:12:29:386Ctrl Output Phase wrt CLK0␍␊
[09:12:29:386Addr/Cmd Output Phase wrt CLK0␍␊
[09:12:29:386Rank interleaved␍␊
[09:12:29:386UDIMM



3) 2x2GB DIMM on Slot1 & Slot3

CFE relevant output:
[09:43:48:319SDRAMECC offNon-ECC DIMM used on channel 0.␍␊
[09:43:48:327SDRAMECC offNon-ECC DIMM used on channel 1.␍␊
[09:43:48:363DRAM runtime configuration:␍␊
[09:43:48:363Total memory4096MB␍␊
[09:43:48:363Channel interleaved ␍␊
[09:43:48:363XAUI␍␊
[09:43:48:363␍␊
[09:43:48:363Channel 0:␍␊
[09:43:48:3632048MB of RAMAddress Range 0 6144MB␍␊
[09:43:48:363Memory clock 400MHz (DDR2-800), tCK 2500psCL 6␍␊
[09:43:48:363Low Latency Config Tuned for Fcore 2000 MHz␍␊
[09:43:48:363High performance mode␍␊
[09:43:48:363MMC advanced features␍␊
[09:43:48:363DRAM Rtt150 Ohms␍␊
[09:43:48:363MMC Rtt075 Ohms␍␊
[09:43:48:363MMC Rtt175 Ohms␍␊
[09:43:48:363MC DRAM ODT␍␊
[09:43:48:363Addr/Cmd 2T Timing␍␊
[09:43:48:363Ctrl Output Phase wrt CLK0␍␊
[09:43:48:363Addr/Cmd Output Phase wrt CLK0␍␊
[09:43:48:424Rank interleaved␍␊
[09:43:48:424UDIMM␍␊
[09:43:48:424␍␊
[09:43:48:424Channel 1:␍␊
[09:43:48:4242048MB of RAMAddress Range 0 6144MB␍␊
[09:43:48:424Memory clock 400MHz (DDR2-800), tCK 2500psCL 6␍␊
[09:43:48:424Low Latency Config Tuned for Fcore 2000 MHz␍␊
[09:43:48:424High performance mode␍␊
[09:43:48:424MMC advanced features␍␊
[09:43:48:424DRAM Rtt150 Ohms␍␊
[09:43:48:424MMC Rtt075 Ohms␍␊
[09:43:48:424MMC Rtt175 Ohms␍␊
[09:43:48:424MC DRAM ODT␍␊
[09:43:48:424Addr/Cmd 2T Timing␍␊
[09:43:48:424Ctrl Output Phase wrt CLK0␍␊
[09:43:48:424Addr/Cmd Output Phase wrt CLK0␍␊
[09:43:48:424Rank interleaved␍␊
[09:43:48:424UDIMM



RageMem results:

1)
---> RAM <---
READ32: 2822 MB/Sec
READ64: 4049 MB/Sec
WRITE32: 2374 MB/Sec
WRITE64: 2284 MB/Sec
WRITE: 340 MB/Sec (Tricky)

2)
---> RAM <---
READ32: 2837 MB/Sec
READ64: 4077 MB/Sec
WRITE32: 2387 MB/Sec
WRITE64: 2295 MB/Sec
WRITE: 339 MB/Sec (Tricky)

3)
---> RAM <---
READ32: 2827 MB/Sec
READ64: 3961 MB/Sec
WRITE32: 2725 MB/Sec
WRITE64: 3252 MB/Sec
WRITE: 344 MB/Sec (Tricky)


Indeed, configuration 3 shows more writing speed, in tests where caches do not come into play.

RageMem: WRITE64 test:
Interleaved: 3252 MB/Sec
Not Interleaved: 2295 MB/sec

Stream_memspeed: Write test (memset 750 0 - only blocks >= 5MB)
Interleaved: 3363 MB/Sec
Not Interleaved: 2290 MB/sec

Thanks everyone for the contribution.


Edited by AlfredOne on 2024/2/16 9:55:08
Go to top



TopTop
(1) 2 3 4 »




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project