Skip to content

venus: raise the ring size

Chia-I Wu requested to merge olv/mesa:venus-large-ring into main

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 before vn_instance_init_experimental_features. To honor largeRing, we have several options

  • move vn_instance_init_experimental_features earlier and replace vn_call_vkGetVenusExperimentalFeatureData100000MESA by manual vn_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.

/cc @zzyiwei @ryanneph

Edited by Chia-I Wu

Merge request reports