abergmeier
Posts: 2
Joined: Sat Jul 20, 2019 7:35 pm

Documentation for VC6

Sat Jul 20, 2019 7:39 pm

As I am currently dabbling in a Vulkan API on top of V3D, it would be really helpful to have any kind of documentation for VideoCore 6. Especially since I read somewhere, that it might be a custom build with some quirks only for RPi4.
Currently all I can do is dig into V3D sources (DRM and Gallium) and try to find information there.
Any pointers would be appreciated.

User avatar
Gavinmc42
Posts: 8008
Joined: Wed Aug 28, 2013 3:31 am

Re: Documentation for VC6

Sun Jul 21, 2019 12:43 am

It would be really helpful to have any kind of documentation for VideoCore 6.
It would help ;)

Not much info around on the VC6 yet.

I am hoping Broadcom just release a Vulkan driver and save us some trouble.
Even if we get Vulkan, it requires much more coding than OpenGL to do anything.
So another layer over the top of that would be nice.

Pi's are Android hardware running Linux, so they fit somewhere between these two.
Windows, Mac, Linux, Android and Pi's?

If you think what is happening in the settop market, BCM chips are getting close to gaming level hardware.
A Vulkan settop box driver means the same Game/SDK/libs/tools could be used.
Tapping into all that industry SDK stuff.

We know the 300+ page Peripheral manual must be nearly edited and ready for release anyday now.
Will there be an updated Videocore manual?
Probably.

We just have to wait and see.

Looking at the competition gpu's can show us a trend.
https://developer.arm.com/tools-and-sof ... dks/vulkan
https://developer.nvidia.com/embedded/vulkan
https://developer.qualcomm.com/software ... -sdk/tools
https://www.imgtec.com/developers/vulkan/

Will Broadcom be the last SoC GPU chip maker to release a Vulkan SDK?
They stopped making those tablet SoC but Vulkan is going into everything.
I am sure they are aware of this and probably have been for years.

Until now the VC4 was not powerful enough.
The VC5 is probably borderline.
But from the tiny bit leaking out about the VC6 and from my last 2 weeks of using it.
Pushing the OpenGL WebGL hard. I think the VC6 is very capable of Vulkan.

But I have been saying this for years.
Others go back to 2015 talking about Vulkan.
It could be this year or next.
I don't think it is an "if" anymore just a "when".
When would be sooner, perhaps if we had the documentation?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 32864
Joined: Sat Jul 30, 2011 7:41 pm

Re: Documentation for VC6

Sun Jul 21, 2019 2:48 pm

Gavinmc42 wrote:
Sun Jul 21, 2019 12:43 am
Not much info around on the VC6 yet.

I am hoping Broadcom just release a Vulkan driver and save us some trouble.
Even if we get Vulkan, it requires much more coding than OpenGL to do anything.
So another layer over the top of that would be nice.

Pi's are Android hardware running Linux, so they fit somewhere between these two.
Windows, Mac, Linux, Android and Pi's?
No they are not. What on earth gives you that idea? First major use of VC3+ technology was Symbian. Actually, the VC hardware is not particularly well suited to Android - took a lot of work to make it fit in to that ecosystem.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

User avatar
Gavinmc42
Posts: 8008
Joined: Wed Aug 28, 2013 3:31 am

Re: Documentation for VC6

Mon Jul 22, 2019 5:31 am

No they are not. What on earth gives you that idea?
I am aware of the history of the Alphamosiac hardware.
External low power GPU acceleration for mobile devices........

Are they like Android?
More from the point of view of being a SoC with ARM cpu's with a GPU attached.
Or for Pi's, a GPU with cpu's attached?
Ignoring all the other stuff like the camera hardware etc, which will probably never get documented.

In Desktop Windows/Linux boxes, typically the CPU and GPU are separate parts.
CPU's are pretty well documented, GPU are more propriety and come with SDK/drivers.

When you get a new video card for Windows it normally comes with CDROM with a driver for it.
Linux normally has a driver as part on the kernel stuff or one eventually gets reverse engineered.
Even to the extent of becoming official like Freedreno.

Now the Pi4 is "advertised" as a Desktop replacement.
Will it come with a driver or will it be reverse engineered?

At the moment all we have the Mesa V3D code?
Which if I am reading the development history of that right is similar to the Intel CPU/GPU SoC hardware.
Tile based GPU's?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 32864
Joined: Sat Jul 30, 2011 7:41 pm

Re: Documentation for VC6

Mon Jul 22, 2019 8:28 am

Gavinmc42 wrote:
Mon Jul 22, 2019 5:31 am
No they are not. What on earth gives you that idea?
I am aware of the history of the Alphamosiac hardware.
Android was only implemented *after* Symbian on the N8 and 808 (I was project manager for the camera on the 808). The Android work was done for Samsung, for the Instinct Dash, S2+, Galaxy Grand etc. I spent much too much time in Korea working on that stuff. Not pleasant. The VC2 was used in the Video iPod, but that was before my time.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

User avatar
Gavinmc42
Posts: 8008
Joined: Wed Aug 28, 2013 3:31 am

Re: Documentation for VC6

Mon Jul 22, 2019 11:11 am

I spent much too much time in Korea working on that stuff. Not pleasant.
Yeh, I know the traffic is terrible ;)
But at least the beer is ok.

Delight are still doing 808 updates:o
Some people just love that camera/lens combo.
Wonder how well the OLED is going?

Anyway I did grab a copy of Symbian when it went open, not sure which HDD it is hiding on.
How much of it is still relevant to the VC cores?
Wonder how well it would work on Pi's?
https://github.com/SymbianSource
Too big for one person to figure it out?

MP3 to MP4 to Ipod to Symbian to Android to STB Linux to Desktop.
Quite a journey for the Videocore.

I suppose someone could write a layer over OpenGL to emulate Vulkan?
But what would be the point?
Get the use of those 4 Arm cores?

Knew I had seen this some where.
https://www.x.org/wiki/Events/XDC2017/a ... c4_vc5.pdf

The last words "Be Patient"

And here is the clue to two HDMI output
https://www.phoronix.com/forums/forum/l ... rce-driver

https://www.phoronix.com/scan.php?page= ... -Gallium3D
Not many details are available on the Broadcom V3D3.3 but it is capable of OpenGL ES 3.1 and it looks like we may end up seeing a Vulkan driver too worked on by Anholt, judging from some of his code remarks.
Make me wonder if there is not a Vulkan driver in the wild somewhere?
It is not the policy of RPF to announce.......
;)
Last edited by Gavinmc42 on Mon Jul 22, 2019 11:24 pm, edited 1 time in total.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 32864
Joined: Sat Jul 30, 2011 7:41 pm

Re: Documentation for VC6

Mon Jul 22, 2019 11:32 am

Gavinmc42 wrote:
Mon Jul 22, 2019 11:11 am
And here is the clue to two HDMI output
ttps://www.phoronix.com/forums/forum/linux-gra ... rce-driver

ps://www.phoronix.com/scan.php?page=news_ite ... -Gallium3D
Not many details are available on the Broadcom V3D3.3 but it is capable of OpenGL ES 3.1 and it looks like we may end up seeing a Vulkan driver too worked on by Anholt, judging from some of his code remarks.
Make me wonder if there is not a Vulkan driver in the wild somewhere?
It is not the policy of RPF to announce.......
;)
Eric Anholt no longer works for Broadcom. His LinkedIn entry is out of date, so I won't say who he works for now.

No Vulcan driver that I am aware of.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

User avatar
PeterO
Posts: 6228
Joined: Sun Jul 22, 2012 4:14 pm

Re: Documentation for VC6

Mon Jul 22, 2019 11:58 am

jamesh wrote:
Mon Jul 22, 2019 11:32 am
Eric Anholt no longer works for Broadcom. His LinkedIn entry is out of date, so I won't say who he works for now.
But is he still maintaining the new code ?
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PICO,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

fruitoftheloom
Posts: 27225
Joined: Tue Mar 25, 2014 12:40 pm

Re: Documentation for VC6

Mon Jul 22, 2019 12:36 pm

PeterO wrote:
Mon Jul 22, 2019 11:58 am
jamesh wrote:
Mon Jul 22, 2019 11:32 am
Eric Anholt no longer works for Broadcom. His LinkedIn entry is out of date, so I won't say who he works for now.
But is he still maintaining the new code ?
PeterO

This whole thread is becoming what I would call either "wishful thinking" or "blue sky thinking"


https://github.com/anholt
Take what I advise as advice not the utopian holy grail, and it is gratis !!

User avatar
PeterO
Posts: 6228
Joined: Sun Jul 22, 2012 4:14 pm

Re: Documentation for VC6

Mon Jul 22, 2019 12:47 pm

fruitoftheloom wrote:
Mon Jul 22, 2019 12:36 pm
PeterO wrote:
Mon Jul 22, 2019 11:58 am
jamesh wrote:
Mon Jul 22, 2019 11:32 am
Eric Anholt no longer works for Broadcom. His LinkedIn entry is out of date, so I won't say who he works for now.
But is he still maintaining the new code ?
PeterO

This whole thread is becoming what I would call either "wishful thinking" or "blue sky thinking"


https://github.com/anholt
So there's no one working on the code any more :o Seems odd to have launched a new product based on unsupported code !

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PICO,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
ShiftPlusOne
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6460
Joined: Fri Jul 29, 2011 5:36 pm

Re: Documentation for VC6

Mon Jul 22, 2019 12:55 pm


User avatar
PeterO
Posts: 6228
Joined: Sun Jul 22, 2012 4:14 pm

Re: Documentation for VC6

Mon Jul 22, 2019 12:57 pm

ShiftPlusOne wrote:
Mon Jul 22, 2019 12:55 pm
Development is very much active - https://gitlab.freedesktop.org/mesa/mes ... rivers/v3d
Phew :)

-1 to Fruity for duff URL !

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PICO,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
paddyg
Posts: 2633
Joined: Sat Jan 28, 2012 11:57 am
Location: UK

Re: Documentation for VC6

Mon Jul 22, 2019 12:58 pm

When I posted my plea for help getting RPi4 point and lines drawing working on stackoverflow Eric did reply pretty promptly so that was reassuring. Didn't help me solve the issue though..
also https://groups.google.com/forum/?hl=en-GB&fromgroups=#!forum/pi3d

fruitoftheloom
Posts: 27225
Joined: Tue Mar 25, 2014 12:40 pm

Re: Documentation for VC6

Mon Jul 22, 2019 1:39 pm

PeterO wrote:
Mon Jul 22, 2019 12:57 pm
ShiftPlusOne wrote:
Mon Jul 22, 2019 12:55 pm
Development is very much active - https://gitlab.freedesktop.org/mesa/mes ... rivers/v3d
Phew :)

-1 to Fruity for duff URL !

PeterO

You were asking about Eric Anholt !!!!
Take what I advise as advice not the utopian holy grail, and it is gratis !!

User avatar
PeterO
Posts: 6228
Joined: Sun Jul 22, 2012 4:14 pm

Re: Documentation for VC6

Mon Jul 22, 2019 2:34 pm

fruitoftheloom wrote:
Mon Jul 22, 2019 1:39 pm
You were asking about Eric Anholt !!!!
Clean your glasses :shock:
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PICO,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 32864
Joined: Sat Jul 30, 2011 7:41 pm

Re: Documentation for VC6

Mon Jul 22, 2019 2:48 pm

ShiftPlusOne wrote:
Mon Jul 22, 2019 12:55 pm
Development is very much active - https://gitlab.freedesktop.org/mesa/mes ... rivers/v3d
Indeed - work being done by internal to Pi, and external people.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

User avatar
Gavinmc42
Posts: 8008
Joined: Wed Aug 28, 2013 3:31 am

Re: Documentation for VC6

Tue Jul 23, 2019 12:03 am

https://www.reddit.com/r/RetroPie/comme ... h=b09f3a33

Eric has not been the sole person doing VC stuff.
Boris and Andreas and others have been contributing.
Whenever I see commits I always wonder how come the current version still works ;)

Like the 5.3 kernel will have Pi power supply freq control mainstreamed, not sure if that includes Pi4.
Reading all the commits just gives a sneak peek of what is coming.

The V3D qpu compiler has been getting updates, that is probably going to be important for Vulkan.
How this relates to OpenCL?

But useful? as this is, it is still not real documentation.
Even if there is a manual describing the hardware, software still needs to be written.

https://www.lunarg.com/faqs/how-vulkan-shaders-written/
Those are English words but I don't know enough to understand it.

Time will make a solution magically appear?
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

abergmeier
Posts: 2
Joined: Sat Jul 20, 2019 7:35 pm

Re: Documentation for VC6

Tue Jul 23, 2019 6:38 am

Quoting official FAQ:
Are you still using VideoCore?

Yes. VideoCore 3D is the only publicly documented 3D graphics core for ARM‑based SoCs, and we want to make Raspberry Pi more open over time, not less.
Soo - @jamesh what do you guys define as "publicly documented 3D graphics core"?

Having DRM and Gallium sources is not too bad - although from looking at these sources I think there still might be some optimizations worth having. Problem is IMO that writing the Vulkan driver is way slower having to guess behavior.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 32864
Joined: Sat Jul 30, 2011 7:41 pm

Re: Documentation for VC6

Tue Jul 23, 2019 7:27 am

abergmeier wrote:
Tue Jul 23, 2019 6:38 am
Quoting official FAQ:
Are you still using VideoCore?

Yes. VideoCore 3D is the only publicly documented 3D graphics core for ARM‑based SoCs, and we want to make Raspberry Pi more open over time, not less.
Soo - @jamesh what do you guys define as "publicly documented 3D graphics core"?

Having DRM and Gallium sources is not too bad - although from looking at these sources I think there still might be some optimizations worth having. Problem is IMO that writing the Vulkan driver is way slower having to guess behavior.
The Linux driver accesses all the 3D from ARM space, nothing 3D is now done on the VC6 VPU. So one could argue that the core is public since all the registers are accessed by that driver and it is OSS. But as yet there is no datasheet on the registers. This is a time and money thing rather than anything else. Someone needs to write it, and that is a big job.

Feel free to optimise stuff, we are always open to PR's with fixes and improvements. Or just tel us where the improvements might be had, we have an in house engineers who is getting more experienced with DRM and FMKS.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

User avatar
Gavinmc42
Posts: 8008
Joined: Wed Aug 28, 2013 3:31 am

Re: Documentation for VC6

Tue Jul 23, 2019 8:39 am

https://gpuopen.com/gaming-product/amd- ... or-vulkan/

Learn how it is done on other hardware?
I did not even know there were open source Vulkan drivers :o

Interesting progress in 2018
https://expertservices365.com/2018/12/2 ... l-drivers/

Is Intel Vulkan open too?

Probably a waste of time playing with old mesa source, so much has changed.
Raspbian Stretch was only using 13.x
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

User avatar
PeterO
Posts: 6228
Joined: Sun Jul 22, 2012 4:14 pm

Re: Documentation for VC6

Tue Jul 23, 2019 9:03 am

jamesh wrote:
Tue Jul 23, 2019 7:27 am
The Linux driver accesses all the 3D from ARM space, nothing 3D is now done on the VC6 VPU.
Is there a picture that shows how the various bits of hardware and software now work together ?
I just tried to run some of my existing openGLES code on a 3B+ (not running Buster) and was surprised to find it doesn't work any more (giving the "something is already in use" error (I can't remember exactly what it said)).

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PICO,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 32864
Joined: Sat Jul 30, 2011 7:41 pm

Re: Documentation for VC6

Tue Jul 23, 2019 9:09 am

PeterO wrote:
Tue Jul 23, 2019 9:03 am
jamesh wrote:
Tue Jul 23, 2019 7:27 am
The Linux driver accesses all the 3D from ARM space, nothing 3D is now done on the VC6 VPU.
Is there a picture that shows how the various bits of hardware and software now work together ?
I just tried to run some of my existing openGLES code on a 3B+ (not running Buster) and was surprised to find it doesn't work any more (giving the "something is already in use" error (I can't remember exactly what it said)).

PeterO
Hmm, I think I would expect that to work in legacy mode, but are you using the 3D driver (even if not on Buster)?
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

User avatar
PeterO
Posts: 6228
Joined: Sun Jul 22, 2012 4:14 pm

Re: Documentation for VC6

Tue Jul 23, 2019 9:30 am

jamesh wrote:
Tue Jul 23, 2019 9:09 am
PeterO wrote:
Tue Jul 23, 2019 9:03 am
jamesh wrote:
Tue Jul 23, 2019 7:27 am
The Linux driver accesses all the 3D from ARM space, nothing 3D is now done on the VC6 VPU.
Is there a picture that shows how the various bits of hardware and software now work together ?
I just tried to run some of my existing openGLES code on a 3B+ (not running Buster) and was surprised to find it doesn't work any more (giving the "something is already in use" error (I can't remember exactly what it said)).

PeterO
Hmm, I think I would expect that to work in legacy mode, but are you using the 3D driver (even if not on Buster)?
TBH I'm really not sure about what all these terms mean any more. eg. leagcy driver,FKMS etc etc...

I've not seen a clear explanation of what "legacy mode" means, especially what it means on an older PI which I assume lacks the newer hardware needed to use what ever has replaced "legacy mode". On a pre buster Pi3 I didn't expect to have to change anything as I assumed noting would get broken by doing simple update/upgrade.

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PICO,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 32864
Joined: Sat Jul 30, 2011 7:41 pm

Re: Documentation for VC6

Tue Jul 23, 2019 11:14 am

Effectively, legacy mode is anything before the new 3D driver. So the firmware doing all the work.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.

pik33
Posts: 205
Joined: Thu Sep 10, 2015 4:26 pm

Re: Documentation for VC6

Tue Jul 23, 2019 4:56 pm

Legacy mode

Code: Select all

#dtoverlay=vc4-fkms-v3d
New driver

Code: Select all

dtoverlay=vc4-fkms-v3d
in config.txt

Return to “Graphics programming”