winsys/virgl: throw in some inline wrappers
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -532,7 +532,7 @@ static struct virgl_cmd_buf *virgl_drm_cmd_buf_create(struct virgl_winsys *qws)
|
||||
|
||||
static void virgl_drm_cmd_buf_destroy(struct virgl_cmd_buf *_cbuf)
|
||||
{
|
||||
struct virgl_drm_cmd_buf *cbuf = (struct virgl_drm_cmd_buf *)_cbuf;
|
||||
struct virgl_drm_cmd_buf *cbuf = virgl_drm_cmd_buf(_cbuf);
|
||||
|
||||
FREE(cbuf->res_hlist);
|
||||
FREE(cbuf->res_bo);
|
||||
@@ -597,7 +597,7 @@ static void virgl_drm_emit_res(struct virgl_winsys *qws,
|
||||
struct virgl_cmd_buf *_cbuf, struct virgl_hw_res *res, boolean write_buf)
|
||||
{
|
||||
struct virgl_drm_winsys *qdws = virgl_drm_winsys(qws);
|
||||
struct virgl_drm_cmd_buf *cbuf = (struct virgl_drm_cmd_buf *)_cbuf;
|
||||
struct virgl_drm_cmd_buf *cbuf = virgl_drm_cmd_buf(_cbuf);
|
||||
boolean already_in_list = virgl_drm_lookup_res(cbuf, res);
|
||||
|
||||
if (write_buf)
|
||||
@@ -620,7 +620,7 @@ static boolean virgl_drm_res_is_ref(struct virgl_winsys *qws,
|
||||
static int virgl_drm_winsys_submit_cmd(struct virgl_winsys *qws, struct virgl_cmd_buf *_cbuf)
|
||||
{
|
||||
struct virgl_drm_winsys *qdws = virgl_drm_winsys(qws);
|
||||
struct virgl_drm_cmd_buf *cbuf = (struct virgl_drm_cmd_buf *)_cbuf;
|
||||
struct virgl_drm_cmd_buf *cbuf = virgl_drm_cmd_buf(_cbuf);
|
||||
struct drm_virtgpu_execbuffer eb;
|
||||
int ret;
|
||||
|
||||
@@ -690,7 +690,7 @@ static bool virgl_fence_wait(struct virgl_winsys *vws,
|
||||
uint64_t timeout)
|
||||
{
|
||||
struct virgl_drm_winsys *vdws = virgl_drm_winsys(vws);
|
||||
struct virgl_hw_res *res = (struct virgl_hw_res *)fence;
|
||||
struct virgl_hw_res *res = virgl_hw_res(fence);
|
||||
|
||||
if (timeout == 0)
|
||||
return virgl_drm_resource_is_busy(vdws, res);
|
||||
@@ -715,7 +715,7 @@ static void virgl_fence_reference(struct virgl_winsys *vws,
|
||||
{
|
||||
struct virgl_drm_winsys *vdws = virgl_drm_winsys(vws);
|
||||
virgl_drm_resource_reference(vdws, (struct virgl_hw_res **)dst,
|
||||
(struct virgl_hw_res *)src);
|
||||
virgl_hw_res(src));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
#include "virgl/virgl_hw.h"
|
||||
#include "virgl/virgl_winsys.h"
|
||||
|
||||
struct pipe_fence_handle;
|
||||
|
||||
struct virgl_hw_res {
|
||||
struct pipe_reference reference;
|
||||
uint32_t res_handle;
|
||||
@@ -87,10 +89,22 @@ struct virgl_drm_cmd_buf {
|
||||
|
||||
};
|
||||
|
||||
static inline struct virgl_hw_res *
|
||||
virgl_hw_res(struct pipe_fence_handle *f)
|
||||
{
|
||||
return (struct virgl_hw_res *)f;
|
||||
}
|
||||
|
||||
static inline struct virgl_drm_winsys *
|
||||
virgl_drm_winsys(struct virgl_winsys *iws)
|
||||
{
|
||||
return (struct virgl_drm_winsys *)iws;
|
||||
}
|
||||
|
||||
static inline struct virgl_drm_cmd_buf *
|
||||
virgl_drm_cmd_buf(struct virgl_cmd_buf *cbuf)
|
||||
{
|
||||
return (struct virgl_drm_cmd_buf *)cbuf;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -407,7 +407,7 @@ static struct virgl_cmd_buf *virgl_vtest_cmd_buf_create(struct virgl_winsys *vws
|
||||
|
||||
static void virgl_vtest_cmd_buf_destroy(struct virgl_cmd_buf *_cbuf)
|
||||
{
|
||||
struct virgl_vtest_cmd_buf *cbuf = (struct virgl_vtest_cmd_buf *)_cbuf;
|
||||
struct virgl_vtest_cmd_buf *cbuf = virgl_vtest_cmd_buf(_cbuf);
|
||||
|
||||
FREE(cbuf->res_bo);
|
||||
FREE(cbuf);
|
||||
@@ -468,7 +468,7 @@ static void virgl_vtest_add_res(struct virgl_vtest_winsys *vtws,
|
||||
static int virgl_vtest_winsys_submit_cmd(struct virgl_winsys *vws, struct virgl_cmd_buf *_cbuf)
|
||||
{
|
||||
struct virgl_vtest_winsys *vtws = virgl_vtest_winsys(vws);
|
||||
struct virgl_vtest_cmd_buf *cbuf = (struct virgl_vtest_cmd_buf *)_cbuf;
|
||||
struct virgl_vtest_cmd_buf *cbuf = virgl_vtest_cmd_buf(_cbuf);
|
||||
int ret;
|
||||
|
||||
if (cbuf->base.cdw == 0)
|
||||
@@ -485,7 +485,7 @@ static int virgl_vtest_winsys_submit_cmd(struct virgl_winsys *vws, struct virgl_
|
||||
static void virgl_vtest_emit_res(struct virgl_winsys *vws, struct virgl_cmd_buf *_cbuf, struct virgl_hw_res *res, boolean write_buf)
|
||||
{
|
||||
struct virgl_vtest_winsys *vtws = virgl_vtest_winsys(vws);
|
||||
struct virgl_vtest_cmd_buf *cbuf = (struct virgl_vtest_cmd_buf *)_cbuf;
|
||||
struct virgl_vtest_cmd_buf *cbuf = virgl_vtest_cmd_buf(_cbuf);
|
||||
boolean already_in_list = virgl_vtest_lookup_res(cbuf, res);
|
||||
|
||||
if (write_buf)
|
||||
@@ -529,7 +529,7 @@ static bool virgl_fence_wait(struct virgl_winsys *vws,
|
||||
uint64_t timeout)
|
||||
{
|
||||
struct virgl_vtest_winsys *vdws = virgl_vtest_winsys(vws);
|
||||
struct virgl_hw_res *res = (struct virgl_hw_res *)fence;
|
||||
struct virgl_hw_res *res = virgl_hw_res(fence);
|
||||
|
||||
if (timeout == 0)
|
||||
return virgl_vtest_resource_is_busy(vdws, res);
|
||||
@@ -554,7 +554,7 @@ static void virgl_fence_reference(struct virgl_winsys *vws,
|
||||
{
|
||||
struct virgl_vtest_winsys *vdws = virgl_vtest_winsys(vws);
|
||||
virgl_vtest_resource_reference(vdws, (struct virgl_hw_res **)dst,
|
||||
(struct virgl_hw_res *)src);
|
||||
virgl_hw_res(src));
|
||||
}
|
||||
|
||||
static void virgl_vtest_flush_frontbuffer(struct virgl_winsys *vws,
|
||||
|
||||
@@ -34,6 +34,9 @@
|
||||
#include "os/os_thread.h"
|
||||
|
||||
#include "vtest_protocol.h"
|
||||
|
||||
struct pipe_fence_handle;
|
||||
|
||||
struct virgl_vtest_winsys {
|
||||
struct virgl_winsys base;
|
||||
|
||||
@@ -83,12 +86,25 @@ struct virgl_vtest_cmd_buf {
|
||||
unsigned reloc_indices_hashlist[512];
|
||||
};
|
||||
|
||||
static inline struct virgl_hw_res *
|
||||
virgl_hw_res(struct pipe_fence_handle *f)
|
||||
{
|
||||
return (struct virgl_hw_res *)f;
|
||||
}
|
||||
|
||||
static inline struct virgl_vtest_winsys *
|
||||
virgl_vtest_winsys(struct virgl_winsys *iws)
|
||||
{
|
||||
return (struct virgl_vtest_winsys *)iws;
|
||||
}
|
||||
|
||||
static inline struct virgl_vtest_cmd_buf *
|
||||
virgl_vtest_cmd_buf(struct virgl_cmd_buf *cbuf)
|
||||
{
|
||||
return (struct virgl_vtest_cmd_buf *)cbuf;
|
||||
}
|
||||
|
||||
|
||||
int virgl_vtest_connect(struct virgl_vtest_winsys *vws);
|
||||
int virgl_vtest_send_get_caps(struct virgl_vtest_winsys *vws,
|
||||
struct virgl_drm_caps *caps);
|
||||
|
||||
Reference in New Issue
Block a user