diff --git a/virtgpu.h b/virtgpu.h index 3f68731..b2f82ba 100644 --- a/virtgpu.h +++ b/virtgpu.h @@ -23,3 +23,9 @@ enum virtgpu_param_id { param_guest_vram, param_max, }; + +#define VIRTIO_GPU_CAPSET_VIRGL 1 +#define VIRTIO_GPU_CAPSET_VIRGL2 2 +#define VIRTIO_GPU_CAPSET_GFXSTREAM 3 +#define VIRTIO_GPU_CAPSET_VENUS 4 +#define VIRTIO_GPU_CAPSET_CROSS_DOMAIN 5 diff --git a/virtgpu_cross_domain.c b/virtgpu_cross_domain.c index dc3fbc1..85589dc 100644 --- a/virtgpu_cross_domain.c +++ b/virtgpu_cross_domain.c @@ -16,7 +16,6 @@ #include "util.h" #include "virtgpu.h" -#define CAPSET_CROSS_DOMAIN 5 #define CAPSET_CROSS_FAKE 30 static const uint32_t scanout_render_formats[] = { DRM_FORMAT_ABGR8888, DRM_FORMAT_ARGB8888, @@ -246,7 +245,7 @@ static int cross_domain_init(struct driver *drv) if (!params[param_context_init].value) return -ENOTSUP; - if ((params[param_supported_capset_ids].value & (1 << CAPSET_CROSS_DOMAIN)) == 0) + if ((params[param_supported_capset_ids].value & (1 << VIRTIO_GPU_CAPSET_CROSS_DOMAIN)) == 0) return -ENOTSUP; if (!params[param_resource_blob].value) @@ -275,7 +274,7 @@ static int cross_domain_init(struct driver *drv) priv->ring_addr = MAP_FAILED; drv->priv = priv; - args.cap_set_id = CAPSET_CROSS_DOMAIN; + args.cap_set_id = VIRTIO_GPU_CAPSET_CROSS_DOMAIN; args.size = sizeof(struct CrossDomainCapabilities); args.addr = (unsigned long long)&cross_domain_caps; @@ -296,7 +295,7 @@ static int cross_domain_init(struct driver *drv) // Intialize the cross domain context. Create one fence context to wait for metadata // queries. ctx_set_params[0].param = VIRTGPU_CONTEXT_PARAM_CAPSET_ID; - ctx_set_params[0].value = CAPSET_CROSS_DOMAIN; + ctx_set_params[0].value = VIRTIO_GPU_CAPSET_CROSS_DOMAIN; ctx_set_params[1].param = VIRTGPU_CONTEXT_PARAM_NUM_RINGS; ctx_set_params[1].value = 1; diff --git a/virtgpu_virgl.c b/virtgpu_virgl.c index 1f098a3..983777a 100644 --- a/virtgpu_virgl.c +++ b/virtgpu_virgl.c @@ -553,9 +553,10 @@ static int virgl_get_caps(struct driver *drv, union virgl_caps *caps, int *caps_ if (params[param_supported_capset_ids].value) { drv_logi("Supported CAPSET IDs: %u.", params[param_supported_capset_ids].value); - if (params[param_supported_capset_ids].value & (1 << 2)) { + if (params[param_supported_capset_ids].value & (1 << VIRTIO_GPU_CAPSET_VIRGL2)) { *caps_is_v2 = 1; - } else if (params[param_supported_capset_ids].value & (1 << 1)) { + } else if (params[param_supported_capset_ids].value & + (1 << VIRTIO_GPU_CAPSET_VIRGL)) { *caps_is_v2 = 0; } else { drv_logi("Unrecognized CAPSET IDs: %u. Assuming all zero caps.", @@ -568,10 +569,10 @@ static int virgl_get_caps(struct driver *drv, union virgl_caps *caps, int *caps_ cap_args.addr = (unsigned long long)caps; if (*caps_is_v2) { - cap_args.cap_set_id = 2; + cap_args.cap_set_id = VIRTIO_GPU_CAPSET_VIRGL2; cap_args.size = sizeof(union virgl_caps); } else { - cap_args.cap_set_id = 1; + cap_args.cap_set_id = VIRTIO_GPU_CAPSET_VIRGL; cap_args.size = sizeof(struct virgl_caps_v1); } @@ -581,7 +582,7 @@ static int virgl_get_caps(struct driver *drv, union virgl_caps *caps, int *caps_ *caps_is_v2 = 0; // Fallback to v1 - cap_args.cap_set_id = 1; + cap_args.cap_set_id = VIRTIO_GPU_CAPSET_VIRGL; cap_args.size = sizeof(struct virgl_caps_v1); ret = drmIoctl(drv->fd, DRM_IOCTL_VIRTGPU_GET_CAPS, &cap_args);