-
Notifications
You must be signed in to change notification settings - Fork 70
FAQ
Yours3lf edited this page Jun 18, 2020
·
1 revision
As far as I know the PI is NOT fully VK capable on the hardware level. Some things will be emulated and others won't ever be supported.
Performance wise, the Pi is quite capable. The specs and architecture is close to the GPU in the iPhone 4s. The only problem I see is bandwidth as you only have about 2.5GB/s compared to 20-30GB/s on typical mobile phones. So post processing is a huge no and you'd need to be very careful about the techniques that you use. Eg. you'd need to stay on chip at all times. CPU performance (eg. number of draw calls) should be enough on the quad-core PIs as you can easily utilise all cores using VK.
- 3D textures
- sparse textures
- occlusion queries (https://github.com/anholt/mesa/wiki/VC4-OpenGL-support)
- pipeline statistics
- indirect draws
- events
- proper semaphore support
- tessellation shaders
- geometry shaders
- 32 bit indices
- instancing
- multiple color attachments
- HDR render targets and textures (lack of kernel support for 64bpp render target)
- ETC textures (lack of kernel support for 64bpp render target)
- linear RGBA8 textures (lack of kernel support)
- linear YUYV textures https://www.linuxtv.org/downloads/v4l-dvb-apis-old/V4L2-PIX-FMT-YUYV.html (lack of kernel support)
- timing blocks for profiling (kernel supports interrupts, but data needs to be routed to userspace ie. add tiler/renderer start/end timing to seqnos)
- compute shaders (though could be supported to some extent if the kernel side would support it)
- spirv shaders
- pipeline caches (currently doesn't make sense with assembly shaders)
- I already added support to load shader assembly. This will enable devs to optimise shaders to the last cycle.
- Videocore IV provides some performance counters these will be exposed
- Videocore IV supports some texture formats that are not present in the spec
- bw1: 1 bit black and white
- a4: 4 bit alpha
- a1: 1 bit alpha