rutabaga_gfx: Expose "fake" capset for minigbm

minigbm virtgpu_cross_domain backend checks for this capset.  Eventually
once this check is removed in minigbm (once everyone is using the
context-types arg to control whether cross-domain is exposed) we can
drop the dummy capset.  But we need it for now.

BUG=b:230100768
TEST=gfxbench, android games in arcvm

Change-Id: I7c955c365f439806c797d1d38daef2e1c9b3079f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3608703
Auto-Submit: Rob Clark <robdclark@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
This commit is contained in:
Rob Clark 2022-05-20 14:49:17 -07:00 committed by Chromeos LUCI
parent d570dc761f
commit 82c5129590

View file

@ -218,7 +218,7 @@ struct RutabagaCapsetInfo {
pub name: &'static str,
}
const RUTABAGA_CAPSETS: [RutabagaCapsetInfo; 6] = [
const RUTABAGA_CAPSETS: [RutabagaCapsetInfo; 7] = [
RutabagaCapsetInfo {
capset_id: RUTABAGA_CAPSET_VIRGL,
component: RutabagaComponentType::VirglRenderer,
@ -244,6 +244,11 @@ const RUTABAGA_CAPSETS: [RutabagaCapsetInfo; 6] = [
component: RutabagaComponentType::CrossDomain,
name: "cross-domain",
},
RutabagaCapsetInfo {
capset_id: 30,
component: RutabagaComponentType::CrossDomain,
name: "minigbm-cross-domain",
},
RutabagaCapsetInfo {
capset_id: RUTABAGA_CAPSET_DRM,
component: RutabagaComponentType::VirglRenderer,
@ -259,6 +264,13 @@ pub fn calculate_context_mask(context_names: Vec<String>) -> u64 {
};
});
// TODO remove once
// https://android-review.googlesource.com/c/platform/external/minigbm/+/2101455
// is picked back to rvc-arc branch:
if context_mask & (1 << RUTABAGA_CAPSET_DRM) != 0 {
context_mask |= 1 << 30;
}
context_mask
}
@ -989,6 +1001,7 @@ impl RutabagaBuilder {
let cross_domain = CrossDomain::init(self.channels)?;
rutabaga_components.insert(RutabagaComponentType::CrossDomain, cross_domain);
push_capset(RUTABAGA_CAPSET_CROSS_DOMAIN);
push_capset(30);
}
Ok(Rutabaga {