Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
40 user(s) are online (27 user(s) are browsing Forums)

Members: 0
Guests: 40

more...

Headlines

 
  Register To Post  

(1) 2 »
I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
I like to write graphic-card.chip file of my own, how do I start?
I guess it’s a library, so I guess can generate it with idltool.
is there a xml template I can use to get started?

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@LiveForIt

I smell NVidia support coming...

...oh wait, that's the stove

Hope @Hans reads this and can give some pointers

Good luck and i'm definitely watching this space

People are dying.
Entire ecosystems are collapsing.
We are in the beginning of a mass extinction.
And all you can talk about is money and fairytales of eternal economic growth.
How dare you!
– Greta Thunberg
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@Raziel

The people who are following me on my FB Group, might have an idea, noting as exciting as Nvidia
I’m sure people will enjoy the results, however.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@LiveForIt

Not on FB, so no idea, but any new stuff is good

People are dying.
Entire ecosystems are collapsing.
We are in the beginning of a mass extinction.
And all you can talk about is money and fairytales of eternal economic growth.
How dare you!
– Greta Thunberg
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Just popping in
Just popping in


See User information
Documentation how a gfx driver could be developed would be great.

Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@LiveForIt

Quote:
I like to write graphic-card.chip file of my own, how do I start?

Details on how to write a Picasso96 graphics driver are top secret, so you'll need to contact Hyperion and beg them to give you access to the files you need. This will involve signing an NDA.

Alternatively, you could have a look in the AROS source code at /arch/m68k-amiga/hidd/p96gfx/. That's AROS' OS 3.x Picasso96 driver wrapper (or whatever it's called). It seems to work at the *.card level, but does show some of the driver interface. Bear in mind that the code is for the pre-OS4 Picasso96, so it's missing newer features like compositing and DDC. Still, it might get you started while you wait for Hyperion to give you access.

When I started with graphics drivers, I wrote a test program that hit the graphics hardware directly. I asked for the driver developer docs once I had proven that I could get a display output.

Sorry this isn't the answer you wanted. I have no idea why graphics driver APIs are so secret in the AmigaOS world. AFAIK, the MorphOS graphics DDK is also not readily available. This is something I'd like to see change.

Hans

http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more.
https://keasigmadelta.com/ - more of my work
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Just popping in
Just popping in


See User information
68k P96 driver development infos and docs are public since some time:

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

Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@Hans

Quote:

I have no idea why graphics driver APIs are so secret in the AmigaOS world

Probably because the involved parties had to pay for the sources and don't want their money to be shared

People are dying.
Entire ecosystems are collapsing.
We are in the beginning of a mass extinction.
And all you can talk about is money and fairytales of eternal economic growth.
How dare you!
– Greta Thunberg
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@Hans

I’m aiming for an open-source driver, so I don’t want anything that needs a NDA.

Not sure how DDC works, maybe useful, not sure, I want to create my own modes, but don’t necessarily need to probe the monitor.

“compositing” will not be needed, for this one.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@Georg

thanks, I will have look at this docs.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@Hans

yes some function not documented here, not sure that’s a problem..
i might need needed to write board/card drivers. if they were documented however...

AddDisplayInfo()
AddDisplayInfoData()
SetDsiplayInfoData()
GetDsiplayInfoData()
CreateDisplayInfoData()

and also boardinfo is APTR not a struct, so need to find this one.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@Hans

ok... so now I have something like this:

#ifndef boardinfo_h
#define boradinfo_h

#ifdef _GNUC_
    #ifdef __PPC__
    #pragma pack(2)
    #endif
#elif define(__VBCC__)
    #pragma amiga-align
#endif

struct BoardInfo
{
    
APTR RegisterBase;
    
APTR RegisterBase;
    
APTR MemoryBase;
    
APTR MemoryIOBase;
    
uint32 MemorySize;
    const 
char *BoardName;
    
char VBIName[32]
    
APTR CardBase;
    
APTR ChipBase;
    
APTR ExecBase;
    
APTR UtilBase;
    
uint8 HardInterrupt[22]; 
    
uint8 SoftInterrupt[22]; 
    
uint8 BoardLock6[46] ;
    
uint8 ResolutionsList[12]; 
    
uint32 BoardType;
    
uint32 PaletteChipType;
    
uint32 GraphicsControllerType;
    
uint16 MoniSwitch;
    
uint16 BitsPerCannon;
    
uint32 Flags;
    
uint16 SoftSpriteFlags;
    
uint16 ChipFlags;
    
uint32 CardFlags;
    
uint16 BoardNum;
    
uint16 RGBFormats;
    
uint16 MaxHorValue[MAXMODES];
    
uint16 MaxVerValue[MAXMODES];
    
uint16 MaxHorResolution[MAXMODES];
    
uint16 MaxVerResolution[MAXMODES];
    
uint32 MaxMemorySize;
    
uint32 MaxChunkSize;
    
uint32 MemoryClock;
    
uint32 PixelClockCount[MAXMODES];
    
uint32 AllocCardMem;
    
uint32 FreeCardMem;
    
uint32 SetSwitch;
    
uint32 SetColorArray;
    
uint32 SetDAC;
    
uint32 SetGC;
    
uint32 SetPanning;
    
uint32 CalculateBytesPerRow;
    
uint32 CalculateMemory;
    
uint32 GetCompatibleFormats;
    
uint32 SetDisplay;
    
uint32 ResolvePixelClock;
    
uint32 GetPixelClock;
    
uint32 SetClock;
    
uint32 SetMemoryMode;
    
uint32 SetWriteMask;
    
uint32 SetClearMask;
    
uint32 SetReadPlane;
    
uint32 WaitVerticalSync;
    
uint32 SetInterrupt;
    
uint32 WaitBlitter;
    
uint32 ScrollPlanar;
    
uint32 ScrollPlanarDefault;
    
uint32 UpdatePlanar;
    
uint32 UpdatePlanarDefault;
    
uint32 BlitPlanar2Chunky;
    
uint32 BlitPlanar2ChunkyDefault;
    
uint32 FillRect;
    
uint32 FillRectDefault;
    
uint32 InvertRect;
    
uint32 InvertRectDefault;
    
uint32 BlitRect;
    
uint32 BlitRectDefault;
    
uint32 BlitTemplate;
    
uint32 BlitTemplateDefault;
    
uint32 BlitPattern;
    
uint32 BlitPatternDefault;
    
uint32 DrawLine;
    
uint32 DrawLineDefault;
    
uint32 BlitRectNoMaskComplete;
    
uint32 BlitRectNoMaskCompleteDefault;
    
uint32 BlitPlanar2Direct;
    
uint32 BlitPlanar2DirectDefault;
    
uint32 Reserved0;
    
uint32 Reserved0Default;
    
uint32 Reserved1;
    
uint32 Reserved1Default;
    
uint32 Reserved2;
    
uint32 Reserved2Default;
    
uint32 Reserved3;
    
uint32 Reserved3Default;
    
uint32 Reserved4;
    
uint32 Reserved4Default;
    
uint32 Reserved5;
    
uint32 Reserved5Default;
    
uint32 SetDPMSLevel;
    
uint32 ResetChip;
    
uint32 GetFeatureAttrs;
    
uint32 AllocBitMap;
    
uint32 FreeBitMap;
    
uint32 GetBitMapAttr;
    
uint32 SetSprite;
    
uint32 SetSpritePosition;
    
uint32 SetSpriteImage;
    
uint32 SetSpriteColor;
    
uint32 CreateFeature;
    
uint32 SetFeatureAttrs;
    
uint32 DeleteFeature;
    
uint8 SpecialFeatures[12]; // SpecialFeatures is 12-bytes
    
uint32 ModeInfo;
    
uint32 RGBFormat;
    
uint16 XOffset;
    
uint16 YOffset;
    
uint8 Depth;
    
uint8 ClearMask;
    
uint16 Border// BOOL type is only 2-bytes!
    
uint32 Mask;
    
uint8 CLUT[3*256];
    
uint32 ViewPort;
    
uint32 VisibleBitMap;
    
uint32 BitMapExtra;
    
uint8 BitMapList[12]; // BitMapList is 12-bytes
    
uint8 MemList[12]; // MemList is 12-bytes
    
uint16 MouseX;
    
uint16 MouseY;
    
uint8 MouseWidth;
    
uint8 MouseHeight;
    
uint8 MouseXOffset;
    
uint8 MouseYOffset;
    
uint32 MouseImage;
    
uint32 MousePens;
    
uint8 MouseRect[8]; // MouseRect is 8-bytes
    
uint32 MouseChunky;
    
uint32 MouseRendered;
    
uint32 MouseSaveBuffer;
    
uint32 ChipData[16];
    
uint32 CardData[16];
    
APTR MemorySpaceBase;
    
uint32 MemorySpaceSize;
    
uint32 DoubleBufferList;
    
uint32 SyncTime;
    
uint8 SyncPeriod[8];
    
uint8 SyncPeriod[34];
    
uint8 WaitQ[12];
}

#ifdef __GNUC__
    #ifdef __PPC__
    #pragma pack()
    #endif
#elif defined(__VBCC__)
    #pragma default-align
#endif

#endif


Edited by LiveForIt on 2022/9/28 22:34:24
(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Just popping in
Just popping in


See User information
@LiveForIt

2nd line has a typo if you haven't already caught it

Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@Georg
Quote:
68k P96 driver development infos and docs are public since some time:

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

Nice! I had no idea that was available.

@Raziel
Quote:
Probably because the involved parties had to pay for the sources and don't want their money to be shared

Maybe, but it's counter-productive. Doing so puts a barrier between those who want to try writing a driver and the files they need to do so.

If the AHI developers had that attitude, then we probably wouldn't have the HDA audio driver, because its author isn't a member of the exclusive insiders club that has access to all the documentation. He could check out the documentation and examples, tinker with it, and then decide to give it a shot without needing to jump through any hoops.

Hans

http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more.
https://keasigmadelta.com/ - more of my work
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@LiveForIt

Looks like you're making good progress. The documentation Georg linked to gives the function prototypes for the struct BoardInfo function pointers which you currently have set to uint32.

Quote:
yes some function not documented here, not sure that’s a problem..
i might need needed to write board/card drivers. if they were documented however...

AddDisplayInfo()
AddDisplayInfoData()
SetDsiplayInfoData()
GetDsiplayInfoData()
CreateDisplayInfoData()

Those are graphics.library functions, and aren't part of the driver. Are you expecting the driver to store the display info database?

Hans

http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more.
https://keasigmadelta.com/ - more of my work
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Amigans Defender
Amigans Defender


See User information
Don't know if can help but take a look also at zz9000 driver:

https://source.mnt.re/amiga/zz9000-dri ... b/master/rtg/mntgfx-gcc.c

i'm really tired...
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@afxgroup

I'm sure this file is of interest:
https://source.mnt.re/amiga/zz9000-dri ... ob/master/rtg/boardinfo.h.

Hans

http://hdrlab.org.nz/ - Amiga OS 4 projects, programming articles and more.
https://keasigmadelta.com/ - more of my work
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Just popping in
Just popping in


See User information
On this page

http://wiki.icomp.de/wiki/P96#Hardware_manufacturer_archive

it's possible to download "CardDevelop.lha" which seems to contain headers and sample driver source code.

Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Just popping in
Just popping in


See User information
@LiveForIt

Want to build a driver for the new Intel Arc 750/770 cards?

Amiga 1200 | Vampire 1200 II | 128 MB RAM | Indivision AGA Mk3 | Prisma Megamix | 250 GB mSATA SSD | AmigaOS 3.2
AmigaOne X1000 | 1.8 GHz | 4 GB RAM | Radeon R7 250X | 250 GB SATA SSD | AmigaOS 4.1
Go to top
Re: I like to write graphic-card.chip file of my own, how do I start?
Home away from home
Home away from home


See User information
@DJBase

That’s not what I’m working on, keep guessing.

If you are asking if I want to take on that work. I have no idea about the amount of work, I have not looked at the code, I don’t own the card, and it be really difficult as the first driver project.

Many years ago I looked at some Linux drivers for a SCSI controller, and they do not have anything in common with the Amiga API, you need rearrange the code, you need good understanding what etch part does, some drivers contain support for multiple different models and chips.

(NutsAboutAmiga)

Basilisk II for AmigaOS4
AmigaInputAnywhere
Excalibur
and other tools and apps.
Go to top

  Register To Post
(1) 2 »

 




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




Powered by XOOPS 2.0 © 2001-2016 The XOOPS Project