venus: raise the ring size
v2:
The first 5 commits moved vn_instance_init_experimental_features
to be before vn_instance_init_ring
. This will allow us to configure the ring depending on large ring support.
The next 2 commits reworked vn_instance_submission
to get rid of local_cs_data
. This will allow us to change vn_instance_submission_can_direct
freely.
The last 3 commits made the ring size configurable, and used a 64KB ring when there is large ring support. The threshold for indirection submits was raised to 4KB.
--
v1:
This MR raises the ring size from 2KB to 256KB when the renderer supports large rings.
This is sent out mainly for testing virgl/virglrenderer!603 (merged). It is marked draft because
- it is only lightly tested
- 256KB is randomly picked
- no before/after performance data
- not sure if we want to support older virglrenderer
So this MR supports both old and new virglrenderer, but the support needs cleanup. Quating the commit message
vn_instance_init_ring
is called beforevn_instance_init_experimental_features
. To honorlargeRing
, we have several options
- move
vn_instance_init_experimental_features
earlier and replacevn_call_vkGetVenusExperimentalFeatureData100000MESA
by manualvn_renderer_submit_simple
- re-initialize the ring
- bump up specVersion to 100001
- reject older virglrenderer
We pick the second option for testing only. We would like to pick the first option if that is not too much work.