English Amiga Board


Go Back   English Amiga Board > Support > support.Other

 
 
Thread Tools
Old 29 January 2021, 19:15   #121
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Thanks!
Thomas Richter is offline  
Old 06 February 2021, 13:33   #122
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
A new and completely revised version of the driver API documentation is now available under

http://wiki.icomp.de/wiki/P96_Driver_Development

This includes of course the new function for screen dragging support, but the specification of all other functions have been revised and checked.

Have fun,

Thomas
Thomas Richter is offline  
Old 07 February 2021, 06:12   #123
klx300r
Registered User
 
klx300r's Avatar
 
Join Date: Oct 2007
Location: Toronto, Canada
Posts: 1,593
thanks for the update Jens/ Thomas!
klx300r is offline  
Old 31 March 2021, 21:17   #124
Saghalie
Registered User
 
Saghalie's Avatar
 
Join Date: Nov 2014
Location: FT Lewis, WA
Posts: 374
Do you have a way to notify registered users of updates? Or do we need to just follow this thread?
Saghalie is offline  
Old 01 April 2021, 08:57   #125
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
There will be notifications in the icomp forums, and I will also post here. The latest version is still 3.0.2, and there are no bugs open, so I guess we're good.
Thomas Richter is offline  
Old 02 May 2021, 22:40   #126
fehmi
Registered User
 
Join Date: Apr 2020
Location: Toronto / Canada
Posts: 33
I have a question about screen dragging. My experience is with an emulated environment; I don't exactly know how screen dragging works / should work on real hardware.

I installed P96 3.0.2 on AmiKit XE. When I try screen dragging with ChaosPro, I am able to drag the screen and see Workbench behind it. However, navigation with the mouse is pretty much broken. For instance, when I move the mouse up to Workbench, even though the cursor is still visible on the ChaosPro screen, mouse buttons are registered on Workbench. I can only navigate on Workbench by blindly clicking on random spots. That said, once I reach to ChaosPro window by trial-and-error, I can either drag the screen up or close the program without any issue.

I know that AmiKit is a highly customized Amiga setup; that is why I posted the same question on their forum, as well. Below is a breakdown of my setup:

Code:
WinUAE 4.9 Beta 19 (also tried beta 3, 16, 17, and 18)
Picasso96 3.0.2
Workbench 3.X and Kickstart v3.1 (amiga-os-310-a1200.rom) from Amiga Forever 9
AmiKit XE 11.4.2 (default configuration - attached)
Windows 10 20H2
GeForce RTX 2070 Super (tried drivers 466.11 and 466.27)
Attached Files
File Type: uae AmiKit.uae (25.4 KB, 161 views)

Last edited by fehmi; 03 May 2021 at 04:59.
fehmi is offline  
Old 03 May 2021, 12:04   #127
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
For all hardware drivers, clicking on the topmost screen works and delivers the mouse click at the right position, I ensured that. This is likely a defect in the winUAE driver which I do not maintain, please inform Toni on this.

There is an updated SDK on the iComp page, and there is also a long entry in the wiki on the updated driver API.
Thomas Richter is offline  
Old 03 May 2021, 12:47   #128
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
Quote:
Originally Posted by fehmi View Post
I have a question about screen dragging. My experience is with an emulated environment; I don't exactly know how screen dragging works / should work on real hardware.
AmiKit has far too many unknown parts. Try with more default WB first. And make sure no extra mouse options are enabled like "virtual mouse driver".
Toni Wilen is online now  
Old 03 May 2021, 13:07   #129
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
True, though I have seen similar issues on the beta of the ZZ9000 driver, and there the issue was that the driver did not update some internals of the boardinfo structure. With screen dragging enabled, it becomes necessary that the driver updates the MouseX/Y cooridinates and the YSplit member of the board info, so I suggest to have a quick look at your sources and compare that with the Wiki and the reference driver.

This variable update wasn't strictly necessary without screen dragging, but while the reference driver always did this, some third party implementations may have not.
Thomas Richter is offline  
Old 04 May 2021, 00:02   #130
fehmi
Registered User
 
Join Date: Apr 2020
Location: Toronto / Canada
Posts: 33
Quote:
Originally Posted by Toni Wilen View Post
AmiKit has far too many unknown parts. Try with more default WB first. And make sure no extra mouse options are enabled like "virtual mouse driver".
I tried the same with Workbench 3.X that came with Amiga Forever 9 - I replaced the stable WinUAE with Beta 19 and ensured 32-bit version is launched by choosing "Play with WinUAE (32-Bit)".

I was able to drag the ChaosPro screen and the cursor was visible on Workbench when I moved the mouse up. However, I encountered another issue this time - the cursor was invisible on the lower screen. I had to click blindly to find the right spots. Also, random horizontal bars started to appear in the screen below and there was even a second mouse cursor left-over - please see attached.
Attached Thumbnails
Click image for larger version

Name:	Screen_drag_WB.png
Views:	240
Size:	146.5 KB
ID:	71796  

Last edited by fehmi; 04 May 2021 at 01:57.
fehmi is offline  
Old 04 May 2021, 02:15   #131
coldacid
WinUAE 4000/40, V4SA
 
coldacid's Avatar
 
Join Date: Apr 2020
Location: East of Oshawa
Posts: 538
fehmi: Does it work with WinUAE 4.4.0?
coldacid is offline  
Old 04 May 2021, 02:27   #132
fehmi
Registered User
 
Join Date: Apr 2020
Location: Toronto / Canada
Posts: 33
Quote:
Originally Posted by coldacid View Post
fehmi: Does it work with WinUAE 4.4.0?
My understanding is that screen dragging doesn't work on WinUAE 4.4.0. Below is from the change log of WinUAE 4.9.0 beta series:
Code:
- uaegfx Picasso96 2.5.0 screen dragging support added.
fehmi is offline  
Old 04 May 2021, 03:59   #133
coldacid
WinUAE 4000/40, V4SA
 
coldacid's Avatar
 
Join Date: Apr 2020
Location: East of Oshawa
Posts: 538
Ah, yes. Forgot about that.
coldacid is offline  
Old 15 May 2021, 18:25   #134
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
Quote:
Originally Posted by Thomas Richter View Post
True, though I have seen similar issues on the beta of the ZZ9000 driver, and there the issue was that the driver did not update some internals of the boardinfo structure. With screen dragging enabled, it becomes necessary that the driver updates the MouseX/Y cooridinates and the YSplit member of the board info, so I suggest to have a quick look at your sources and compare that with the Wiki and the reference driver.
I can't find any MouseX/Y modifications in included example driver and YSplit isn't modified anywhere else than in SetScreenSplit().

Quote:
Originally Posted by fehmi View Post
However, I encountered another issue this time - the cursor was invisible on the lower screen. I had to click blindly to find the right spots. Also, random horizontal bars started to appear in the screen below and there was even a second mouse cursor left-over - please see attached.
It sounds like hardware sprite emulation is not enabled and any drag operation forces full screen refresh. Hardware sprite can't leave any mouse cursor remains because it is separate 3D object rendered by Direct3D.

Check that Direct3D mode is enabled (Misc panel 9 or 11) and uaegfx.info does not have SOFTSPRITE enabled.

(But even in softsprite mode there shouldn't be any garbage but it also isn't emulator's problem anymore)
Toni Wilen is online now  
Old 15 May 2021, 21:36   #135
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Quote:
Originally Posted by Toni Wilen View Post
I can't find any MouseX/Y modifications in included example driver and YSplit isn't modified anywhere else than in SetScreenSplit().
Sorry, my fault. So what the driver is supposed to update is XOffset/YOffset in SetPanning. It also *should* update MouseX/MouseY in SetSpritePosition(), though for some legacy reasons, it does not. The rtg.library does that for the driver, in addition to passing the coordinates in.

To the user: A possible workaround is to enable the softsprite in the tooltypes of the monitor driver.
Thomas Richter is offline  
Old 16 May 2021, 02:07   #136
fehmi
Registered User
 
Join Date: Apr 2020
Location: Toronto / Canada
Posts: 33
Quote:
Originally Posted by Toni Wilen View Post
Check that Direct3D mode is enabled (Misc panel 9 or 11) and uaegfx.info does not have SOFTSPRITE enabled.
Quote:
Originally Posted by Thomas Richter View Post
To the user: A possible workaround is to enable the softsprite in the tooltypes of the monitor driver.
I have checked above on 2 setups - Workbench 3.X on Amiga Forever 9 and AmiKit XE. I have ensured Direct3D is enabled (tried both 9 and 11) in each configuration. Subsequently, I have tried screen dragging with softsprite enabled and also disabled (rebooted after each change); however, softsprite had no effect on below -

Workbench 3.X: Once I drag the screen and move the mouse up, the cursor is visible on the upper screen (i.e. Workbench) and works just fine. However, the cursor becomes invisible once I move the mouse down to the lower screen (i.e. ChaosPro).

AmiKit XE: Once I drag the screen and move the mouse up, the cursor still moves inside the lower screen (i.e. ChaosPro). However, the actual mouse movements and clicks happen on the upper screen (i.e. Workbench). In other words, I can blindly navigate on the Workbench while the cursor continues to move in ChaosPro screen.

Edit: Attached a configuration file, a crash log, and relevant screenshots from Workbench 3.X -
  • AF9_cursor_problem: Screen dragging is broken as described above with this configuration.
  • AF9_crash: As soon as I drag the screen, WinUAE crashes with window Select Arabuusimiehet.WinUAE.

I do not wish to hijack the P96 thread if this is no longer related to P96 - please advise if it needs to be moved to the WinUAE section.
Attached Thumbnails
Click image for larger version

Name:	AF9_cursor_problem.PNG
Views:	181
Size:	29.4 KB
ID:	71941   Click image for larger version

Name:	AF9_crash.PNG
Views:	180
Size:	52.3 KB
ID:	71942  
Attached Files
File Type: uae AF9_cursor_problem.uae (27.0 KB, 142 views)
File Type: zip winuae_debug_4.9.0.zip (18.1 KB, 160 views)

Last edited by fehmi; 16 May 2021 at 05:53.
fehmi is offline  
Old 16 May 2021, 09:43   #137
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
SoftSprite=Yes vs. SoftSprite=No in the monitor icon should definitely make some observable difference. If you don't spot the difference, you probably made the change in the wrong place. Unless the UAE driver does not have a hardware sprite at all (which would surprise me, but I don't know).
Thomas Richter is offline  
Old 16 May 2021, 09:57   #138
Romanujan
Registered User
 
Join Date: Dec 2007
Location: Szczecin/Poland
Posts: 424
Quote:
Originally Posted by Thomas Richter View Post
This release provides one new (important) feature, and that is screen dragging. It requires support from the chipset, namely the VGA line compare register, and updated drivers to include the new API. (...) Note that screen dragging has certain restrictions that all stem from the limitation of the VGA chips and the corresponding boards: (...)
Do modern RTG implementations (like WinUAE, MiSTer, MNT VA2000, Warp 1260) suffer from these restrictions too? Or is it possible for them to provide a driver that will overcome them?
Romanujan is offline  
Old 16 May 2021, 11:16   #139
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,215
Modern RTG implementations are those made by modern graphics cards, and they suffer even more by no longer implementing the legacy VGA engine, in particular the VGA line compare register the P96 logic currently depends upon, thus you cannot drag screens on VGA chips later than approximately 1996 or so at this point. The Permedia2 in the CVisionPPC is one of the first examples that do not support screen dragging due to its modern (relatively speaking) GPU.

On Os 4, screen dragging is implemented by completely different means, namely by composing the display in the graphics card by "blitting" the memory contents of the screens to the frame buffer. That is, screens there become something like windows, with the advantage of also allowing horizontal arrangements of screens. As part of this process, one can also convert the color representation - modern GPUs do that in no time, and you would be able to "mix modes" any way you like. The frame buffer would be true-color anyhow.

However, all of this requires that the applications "play well" and only render by the Os instead of poking directly into memory, something you cannot take for granted, and it also requires that such a fast mechanism for screen composition exists, none of which you can take for granted for legacy Amiga software and RTG hardware.

VA2000 does not have a line-compare register, so it does not support screen dragging. The ZZ9000 has something comparable, though cannot (at this time?) mix modes or switch palettes. Warp 1260 is to my knowledge not a graphics card at all, and MiSTer does to my knowledge not implement RTG graphics but rather only native planar graphics.

Whatever it is: Currently, the "constant-mode" restriction is hard-coded into the rtg.library. There are still bits left to raise this restriction at some point, but I'm surely not going to implement 10 different means for doing so, and I believe depending on particular hardware features only available on dedicated FPGA boards instead of off-the-shelve GPUs is going to be a dead end. In a sense, the Os 4 method is the most future-proof way of doing it, though I did not choose this path right now due to dependency on a fast graphics composition engine you do not find on the 1990th's generation of VGA chips the legacy Amiga RTG cards were built from.

Thus, if "mode switching" comes to P96 at some point, it will likely come in a way that is supported by standard components, and that means "screen composition" though GPUs. This allows more choices to customers and avoids vendor-lock-in problems.
Thomas Richter is offline  
Old 16 May 2021, 11:42   #140
Romanujan
Registered User
 
Join Date: Dec 2007
Location: Szczecin/Poland
Posts: 424
I haven't tried RTG support on my MiSTer yet (didn't have time - but I'll definitely try when I get my OS 3.2), some support is definitely there: https://github.com/MiSTer-devel/Mini...95675b8810b1da

As for the Warp 1260, the web page lists the following feature: RTG Graphics – up to 1920x1080 resolution 32bit color and Digital Video output - see http://www.amigawarp.eu/1_5_warp1260...arp1260-photos

I didn't mean PC-world chipsets - I meant software emulated virtual cards, FPGA implementations, etc. BTW, PiStorm also seems to implement RTG, I'm not sure how the Vampire handles it (do they have P96 driver, or their own solution). Of course, having a workaround for each and every such RTG provider wouldn't be feasible - but what about extended driver API that would allow them to support better screen dragging? Maybe even combined chipset+RTG screens displayed at once, if the OCS/ECS/AGA is emulated or provided by FPGA?
Romanujan is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
P96: What's the right way to do X? Warty Coders. General 2 21 December 2020 00:00
Providing 2 fire button support / cd32 joypad support amigapd request.Other 0 13 July 2015 17:20
Portaudio support (was: WinUAE support for ASIO drivers) Amiga1992 support.WinUAE 57 28 March 2009 21:15
Classic WB P96 Anubis project.ClassicWB 5 08 May 2006 14:30
amiga-news.de: Collected software-news Paul News 0 14 November 2004 15:50

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 19:35.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.11822 seconds with 16 queries