summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@gmail.com>2013-09-25 09:52:54 +1000
committerDave Airlie <airlied@gmail.com>2013-09-25 09:52:54 +1000
commit14eeb5d4b83977901959e4b6d8ae8f974d4a150f (patch)
treefee6893c9b824f916a76390eaa06a321a9e69252
parent76257d399a9d390f45991e483a418cad7f01b497 (diff)
add y0topvirgl-wip
-rw-r--r--drivers/gpu/drm/virgl/virgl_fb.c1
-rw-r--r--drivers/gpu/drm/virgl/virgl_hw.h2
-rw-r--r--drivers/gpu/drm/virgl/virgl_ioctl.c1
-rw-r--r--include/uapi/drm/virgl_drm.h1
4 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/virgl/virgl_fb.c b/drivers/gpu/drm/virgl/virgl_fb.c
index 2e5127db4c58..2181f8c61668 100644
--- a/drivers/gpu/drm/virgl/virgl_fb.c
+++ b/drivers/gpu/drm/virgl/virgl_fb.c
@@ -206,6 +206,7 @@ int virgl_create_3d_fb_res(struct virgl_device *qdev, int width, int height, uin
cmd_p->u.res_create.width = width;
cmd_p->u.res_create.height = height;
cmd_p->u.res_create.depth = 1;
+ cmd_p->u.res_create.flags = VIRGL_RESOURCE_Y_0_TOP;
virgl_queue_cmd_buf(qdev, vbuf);
*handle = res_id;
return 0;
diff --git a/drivers/gpu/drm/virgl/virgl_hw.h b/drivers/gpu/drm/virgl/virgl_hw.h
index a6088323a1a4..63d1453e9b52 100644
--- a/drivers/gpu/drm/virgl/virgl_hw.h
+++ b/drivers/gpu/drm/virgl/virgl_hw.h
@@ -63,6 +63,7 @@ struct virgl_set_scanout {
struct virgl_box box;
};
+#define VIRGL_RESOURCE_Y_0_TOP (1 << 0)
struct virgl_resource_create {
uint32_t handle;
uint32_t target;
@@ -75,6 +76,7 @@ struct virgl_resource_create {
uint32_t last_level;
uint32_t nr_samples;
uint32_t nr_sg_entries;
+ uint32_t flags;
};
struct virgl_resource_unref {
diff --git a/drivers/gpu/drm/virgl/virgl_ioctl.c b/drivers/gpu/drm/virgl/virgl_ioctl.c
index 7178ab1517dd..004edfa25349 100644
--- a/drivers/gpu/drm/virgl/virgl_ioctl.c
+++ b/drivers/gpu/drm/virgl/virgl_ioctl.c
@@ -188,6 +188,7 @@ static int virgl_resource_create_ioctl(struct drm_device *dev, void *data,
cmd_p->u.res_create.last_level = rc->last_level;
cmd_p->u.res_create.nr_samples = rc->nr_samples;
cmd_p->u.res_create.nr_sg_entries = qobj->sgt ? qobj->sgt->nents : 0;
+ cmd_p->u.res_create.flags = rc->flags;
ret = virgl_fence_emit(qdev, cmd_p, &fence);
diff --git a/include/uapi/drm/virgl_drm.h b/include/uapi/drm/virgl_drm.h
index 723a4a86a356..57419500249d 100644
--- a/include/uapi/drm/virgl_drm.h
+++ b/include/uapi/drm/virgl_drm.h
@@ -72,6 +72,7 @@ struct drm_virgl_getparam {
};
/* NO_BO flags? NO resource flag? */
+/* resource flag for y_0_top */
struct drm_virgl_resource_create {
uint32_t target;
uint32_t format;