mirror of
https://github.com/Yours3lf/rpi-vk-driver.git
synced 2025-01-30 22:52:14 +01:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
194f526c23
57
README.md
57
README.md
@ -8,22 +8,35 @@
|
||||
- [x] uniforms for matrix multiplication and animation
|
||||
- [x] texture coordinates and texture sampling
|
||||
- [ ] varyings
|
||||
- [ ] Depth / stencil buffers
|
||||
- [ ] Multiple vertex attributes
|
||||
- [ ] Indexed draw calls
|
||||
- [x] Shader compiler chain
|
||||
- [x] QPU assembler / disassembler
|
||||
- [x] Resources
|
||||
- [x] Descriptor support
|
||||
- [x] VkSampler support
|
||||
- [x] Push constant support
|
||||
- [ ] Multipass rendering
|
||||
- [ ] Render to texture features
|
||||
- [ ] VkRenderPass support
|
||||
- [ ] Subpass support
|
||||
- [ ] Multiple attachments
|
||||
- [ ] MSAA support
|
||||
- [ ] Synchronization
|
||||
- [ ] vkCmdPipelineBarrier support
|
||||
- [ ] VkEvent support
|
||||
- [ ] Indexed draw call support
|
||||
- [ ] Clear command support
|
||||
- [ ] Layer support
|
||||
- [ ] Pipeline cache support
|
||||
- [ ] Performance
|
||||
- [ ] Performance counters
|
||||
- [ ] Queries
|
||||
- [ ] Shader performance info
|
||||
- [ ] Emulated features
|
||||
- [ ] Clear command support
|
||||
- [ ] Copy command support
|
||||
- [ ] Platform features
|
||||
- [ ] Layer support
|
||||
- [ ] Pipeline cache support
|
||||
- [ ] WSI
|
||||
- [ ] Direct to display support
|
||||
- [ ] Secondary command buffers
|
||||
- [ ] Try to pass as much of the VK CTS as possible with existing feature set
|
||||
|
||||
|
||||
@ -47,18 +60,34 @@ There are about 470.000 conformance tests.
|
||||
|
||||
## FAQ
|
||||
### Will this ever be a fully functional VK driver?
|
||||
As far as I know the PI is NOT fully VK capable on the hardware level. I can already see that some things will need to be emulated and others won't ever be emulated. The compiler is also a huge unknown at this point as I plan to write one from scratch.
|
||||
As far as I know the PI is NOT fully VK capable on the hardware level. I can already see that some things will need to be emulated and others won't ever be emulated.
|
||||
|
||||
### What performance should you expect?
|
||||
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 7GB/s compared to 12-25GB/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.
|
||||
|
||||
### What will be emulated?
|
||||
- I already plan to emulate a couple of the basics such as copy commands using compute
|
||||
- Tessellation and geometry shaders won't be considered, it just doesn't make sense
|
||||
- Sparse resources might be implemented, but I don't think performance would be great
|
||||
- Compute shaders could also be implemented, though I think I would need to modify the kernel side for that, no LDS or any of the fancy stuff though...
|
||||
- As far as I know the PI doesn't support occlusion queries (https://github.com/anholt/mesa/wiki/VC4-OpenGL-support)
|
||||
- Indirect draws are probably out of scope
|
||||
### What features will not be supported?
|
||||
- 3D textures
|
||||
- sparse textures
|
||||
- compute shaders (though could be supported to some extent if the kernel side would support it)
|
||||
- some texture formats
|
||||
- some render target texture formats
|
||||
- occlusion queries (https://github.com/anholt/mesa/wiki/VC4-OpenGL-support)
|
||||
- indirect draws
|
||||
- spirv shaders
|
||||
- events
|
||||
- proper semaphore support
|
||||
- tessellation shaders
|
||||
- geometry shaders
|
||||
- 32 bit indices
|
||||
- some vertex buffer formats
|
||||
|
||||
### What additional features will this driver support?
|
||||
- I already added support (to be polished) to load shader assembly. This will enable devs to optimise shaders to the last cycle.
|
||||
- I'll probably add something to indicate towards the developer that things are emulated or not supported at all.
|
||||
- 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
|
||||
- vector graphics support?
|
||||
|
Loading…
x
Reference in New Issue
Block a user