venus-protocol 1.0 release and drop experimental from driver and renderer
venus-protocol 1.0 release is finally here:
- Protocol bug workaround has been fixed in #4 (closed)
- All experimental features have been required with conditional code paths cleaned up in mesa/mesa!22323 (merged)
- All required virglrenderer side apis have been promoted to stable in virglrenderer!1077 (merged)
- Venus on QEMU no longer gets locked up per mesa/mesa#7274 (closed)
The adoption order doesn't matter (as long as both pieces are new enough < 1 month)- Protocol wire version has been bumped to
1
so that experiemental driver/renderer no longer works with stable counter part
MRs:
- protocol: !69 (merged)
- driver: mesa/mesa!22547 (merged)
- renderer: virglrenderer!1088 (merged)
- post release mesa ci cleanup: mesa/mesa!22896 (merged)
What remains open post 1.0 release:
- Doc update for venus-protocol: this consumes non-trivial time and is better tracked separately, and we might not restrict certain behaivors until a 2nd implementation is up and wants to leverage some flexibility of the current protocol
- Venus dep clean up to further decouple from virgl: virglrenderer#336
- Venus assumption over mappable host visible memory has been previously clarified in virglrenderer!993 (merged) and mesa/mesa!21379 (merged). The spec conformant support of that has been self-contained purely on the renderer side whenever the upstream support has converged: https://gitlab.khronos.org/vulkan/vulkan/-/issues/2918. This isn't a protocol release blocker.
- Optimizations
- Virtgpu sync resource support: it hasn't been a release blocker after venus feedback implementation mesa/mesa#6266 (closed) has landed. Whenever virtgpu drm_syncobj is ready, venus can adopt for idle waiting against fence/semaphore without breaking compat.
- Renderer multi-thread command recording: protocol support for this is ready while pending an implementation.
- Multi-ring shader compilation and cache retrieval: foundations have been built with virglrenderer!1045 (merged) and virglrenderer!1056 (merged) for parallel resource sharing and dependency waiting across multi-rings.
- Protocol CS overhead optimization: optimizing memcpy to assignments for CS basic units can significantly reduce cpu overhead.
- And many more opportunities ; )
Edited by Yiwei Zhang