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.
-
- Posts: 2
- Joined: Sat Jul 20, 2019 7:35 pm
Re: Documentation for VC6
It would helpIt would be really helpful to have any kind of documentation for VideoCore 6.

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
Raspberries are not Apples or Oranges
Re: Documentation for VC6
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.Gavinmc42 wrote: ↑Sun Jul 21, 2019 12:43 amNot 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?
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.
Working in the Applications Team.
Re: Documentation for VC6
I am aware of the history of the Alphamosiac hardware.No they are not. What on earth gives you that idea?
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
Raspberries are not Apples or Oranges
Re: Documentation for VC6
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.
Working in the Applications Team.
Re: Documentation for VC6
Yeh, I know the traffic is terribleI spent much too much time in Korea working on that stuff. Not pleasant.

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
Make me wonder if there is not a Vulkan driver in the wild somewhere?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.
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
Raspberries are not Apples or Oranges
Re: Documentation for VC6
Eric Anholt no longer works for Broadcom. His LinkedIn entry is out of date, so I won't say who he works for now.Gavinmc42 wrote: ↑Mon Jul 22, 2019 11:11 amAnd 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 ... -Gallium3DMake me wonder if there is not a Vulkan driver in the wild somewhere?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.It is not the policy of RPF to announce.......![]()
No Vulcan driver that I am aware of.
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.
Working in the Applications Team.
Re: Documentation for VC6
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
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
-
- Posts: 27225
- Joined: Tue Mar 25, 2014 12:40 pm
Re: Documentation for VC6
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 !!
Re: Documentation for VC6
So there's no one working on the code any morefruitoftheloom wrote: ↑Mon Jul 22, 2019 12:36 pm
This whole thread is becoming what I would call either "wishful thinking" or "blue sky thinking"
https://github.com/anholt

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
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
- ShiftPlusOne
- Raspberry Pi Engineer & Forum Moderator
- Posts: 6460
- Joined: Fri Jul 29, 2011 5:36 pm
Re: Documentation for VC6
Development is very much active - https://gitlab.freedesktop.org/mesa/mes ... rivers/v3d
Re: Documentation for VC6
PhewShiftPlusOne wrote: ↑Mon Jul 22, 2019 12:55 pmDevelopment is very much active - https://gitlab.freedesktop.org/mesa/mes ... rivers/v3d

-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
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
Re: Documentation for VC6
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
-
- Posts: 27225
- Joined: Tue Mar 25, 2014 12:40 pm
Re: Documentation for VC6
PeterO wrote: ↑Mon Jul 22, 2019 12:57 pmPhewShiftPlusOne wrote: ↑Mon Jul 22, 2019 12:55 pmDevelopment is very much active - https://gitlab.freedesktop.org/mesa/mes ... rivers/v3d![]()
-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 !!
Re: Documentation for VC6
Clean your glasses

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
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
Re: Documentation for VC6
Indeed - work being done by internal to Pi, and external people.ShiftPlusOne wrote: ↑Mon Jul 22, 2019 12:55 pmDevelopment is very much active - https://gitlab.freedesktop.org/mesa/mes ... rivers/v3d
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.
Working in the Applications Team.
Re: Documentation for VC6
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 Pipower 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?
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
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
Raspberries are not Apples or Oranges
-
- Posts: 2
- Joined: Sat Jul 20, 2019 7:35 pm
Re: Documentation for VC6
Quoting official FAQ:
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.
Soo - @jamesh what do you guys define as "publicly documented 3D graphics core"?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.
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.
Re: Documentation for VC6
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.abergmeier wrote: ↑Tue Jul 23, 2019 6:38 amQuoting official FAQ:Soo - @jamesh what do you guys define as "publicly documented 3D graphics core"?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.
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.
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.
Working in the Applications Team.
Re: Documentation for VC6
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
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
Learn how it is done on other hardware?
I did not even know there were open source Vulkan drivers

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
Raspberries are not Apples or Oranges
Re: Documentation for VC6
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
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
Re: Documentation for VC6
Hmm, I think I would expect that to work in legacy mode, but are you using the 3D driver (even if not on Buster)?PeterO wrote: ↑Tue Jul 23, 2019 9:03 amIs 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
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.
Working in the Applications Team.
Re: Documentation for VC6
TBH I'm really not sure about what all these terms mean any more. eg. leagcy driver,FKMS etc etc...jamesh wrote: ↑Tue Jul 23, 2019 9:09 amHmm, I think I would expect that to work in legacy mode, but are you using the 3D driver (even if not on Buster)?PeterO wrote: ↑Tue Jul 23, 2019 9:03 amIs 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
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
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
Re: Documentation for VC6
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.
Working in the Applications Team.
Re: Documentation for VC6
Legacy mode
New driver
in config.txt
Code: Select all
#dtoverlay=vc4-fkms-v3d
Code: Select all
dtoverlay=vc4-fkms-v3d