}
struct pipe_screen *
-pipe_loader_create_screen(struct pipe_loader_device *dev)
+pipe_loader_create_screen(struct pipe_loader_device *dev, unsigned flags)
{
- return dev->ops->create_screen(dev);
+ return dev->ops->create_screen(dev, flags);
}
struct util_dl_library *
* \param dev Device the screen will be created for.
*/
struct pipe_screen *
-pipe_loader_create_screen(struct pipe_loader_device *dev);
+pipe_loader_create_screen(struct pipe_loader_device *dev, unsigned flags);
/**
* Query the configuration parameters for the specified device.
}
static struct pipe_screen *
-pipe_loader_drm_create_screen(struct pipe_loader_device *dev)
+pipe_loader_drm_create_screen(struct pipe_loader_device *dev, unsigned flags)
{
struct pipe_loader_drm_device *ddev = pipe_loader_drm_device(dev);
- return ddev->dd->create_screen(ddev->fd);
+ return ddev->dd->create_screen(ddev->fd, flags);
}
static const struct pipe_loader_ops pipe_loader_drm_ops = {
#include "pipe_loader.h"
struct pipe_loader_ops {
- struct pipe_screen *(*create_screen)(struct pipe_loader_device *dev);
+ struct pipe_screen *(*create_screen)(struct pipe_loader_device *dev,
+ unsigned flags);
const struct drm_conf_ret *(*configuration)(struct pipe_loader_device *dev,
enum drm_conf conf);
#include "i915/i915_public.h"
struct pipe_screen *
-pipe_i915_create_screen(int fd)
+pipe_i915_create_screen(int fd, unsigned flags)
{
struct i915_winsys *iws;
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_i915_create_screen(int fd)
+pipe_i915_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "i915g: driver missing\n");
return NULL;
#include "nouveau/drm/nouveau_drm_public.h"
struct pipe_screen *
-pipe_nouveau_create_screen(int fd)
+pipe_nouveau_create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_nouveau_create_screen(int fd)
+pipe_nouveau_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "nouveau: driver missing\n");
return NULL;
#include "pl111/drm/pl111_drm_public.h"
struct pipe_screen *
-pipe_pl111_create_screen(int fd)
+pipe_pl111_create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_pl111_create_screen(int fd)
+pipe_pl111_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "pl111: driver missing\n");
return NULL;
#include "r300/r300_public.h"
struct pipe_screen *
-pipe_r300_create_screen(int fd)
+pipe_r300_create_screen(int fd, unsigned flags)
{
struct radeon_winsys *rw;
#else
struct pipe_screen *
-pipe_r300_create_screen(int fd)
+pipe_r300_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "r300: driver missing\n");
return NULL;
#include "r600/r600_public.h"
struct pipe_screen *
-pipe_r600_create_screen(int fd)
+pipe_r600_create_screen(int fd, unsigned flags)
{
struct radeon_winsys *rw;
#else
struct pipe_screen *
-pipe_r600_create_screen(int fd)
+pipe_r600_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "r600: driver missing\n");
return NULL;
#include "radeonsi/si_public.h"
struct pipe_screen *
-pipe_radeonsi_create_screen(int fd)
+pipe_radeonsi_create_screen(int fd, unsigned flags)
{
struct radeon_winsys *rw;
#else
struct pipe_screen *
-pipe_radeonsi_create_screen(int fd)
+pipe_radeonsi_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "radeonsi: driver missing\n");
return NULL;
#include "svga/svga_public.h"
struct pipe_screen *
-pipe_vmwgfx_create_screen(int fd)
+pipe_vmwgfx_create_screen(int fd, unsigned flags)
{
struct svga_winsys_screen *sws;
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_vmwgfx_create_screen(int fd)
+pipe_vmwgfx_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "svga: driver missing\n");
return NULL;
#include "freedreno/drm/freedreno_drm_public.h"
struct pipe_screen *
-pipe_freedreno_create_screen(int fd)
+pipe_freedreno_create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_freedreno_create_screen(int fd)
+pipe_freedreno_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "freedreno: driver missing\n");
return NULL;
#include "virgl/virgl_public.h"
struct pipe_screen *
-pipe_virgl_create_screen(int fd)
+pipe_virgl_create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_virgl_create_screen(int fd)
+pipe_virgl_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "virgl: driver missing\n");
return NULL;
#include "vc4/drm/vc4_drm_public.h"
struct pipe_screen *
-pipe_vc4_create_screen(int fd)
+pipe_vc4_create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_vc4_create_screen(int fd)
+pipe_vc4_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "vc4: driver missing\n");
return NULL;
#include "etnaviv/drm/etnaviv_drm_public.h"
struct pipe_screen *
-pipe_etna_create_screen(int fd)
+pipe_etna_create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_etna_create_screen(int fd)
+pipe_etna_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "etnaviv: driver missing\n");
return NULL;
#include "imx/drm/imx_drm_public.h"
struct pipe_screen *
-pipe_imx_drm_create_screen(int fd)
+pipe_imx_drm_create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#else
struct pipe_screen *
-pipe_imx_drm_create_screen(int fd)
+pipe_imx_drm_create_screen(int fd, unsigned flags)
{
fprintf(stderr, "imx-drm: driver missing\n");
return NULL;
struct pipe_screen;
struct pipe_screen *
-pipe_i915_create_screen(int fd);
+pipe_i915_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_ilo_create_screen(int fd);
+pipe_ilo_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_nouveau_create_screen(int fd);
+pipe_nouveau_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_r300_create_screen(int fd);
+pipe_r300_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_r600_create_screen(int fd);
+pipe_r600_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_radeonsi_create_screen(int fd);
+pipe_radeonsi_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_vmwgfx_create_screen(int fd);
+pipe_vmwgfx_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_freedreno_create_screen(int fd);
+pipe_freedreno_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_virgl_create_screen(int fd);
+pipe_virgl_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_vc4_create_screen(int fd);
+pipe_vc4_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_pl111_create_screen(int fd);
+pipe_pl111_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_etna_create_screen(int fd);
+pipe_etna_create_screen(int fd, unsigned flags);
struct pipe_screen *
-pipe_imx_drm_create_screen(int fd);
+pipe_imx_drm_create_screen(int fd, unsigned flags);
#endif /* _DRM_HELPER_PUBLIC_H */
goto free_authenticate;
if (pipe_loader_drm_probe_fd(&scrn->base.dev, fd))
- scrn->base.pscreen = pipe_loader_create_screen(scrn->base.dev);
+ scrn->base.pscreen = pipe_loader_create_screen(scrn->base.dev, 0);
if (!scrn->base.pscreen)
goto release_pipe;
free(geom_reply);
if (pipe_loader_drm_probe_fd(&scrn->base.dev, fd))
- scrn->base.pscreen = pipe_loader_create_screen(scrn->base.dev);
+ scrn->base.pscreen = pipe_loader_create_screen(scrn->base.dev, 0);
if (!scrn->base.pscreen)
goto release_pipe;
goto free_screen;
if (pipe_loader_drm_probe_fd(&vscreen->dev, new_fd))
- vscreen->pscreen = pipe_loader_create_screen(vscreen->dev);
+ vscreen->pscreen = pipe_loader_create_screen(vscreen->dev, 0);
if (!vscreen->pscreen)
goto release_pipe;
* This function does any wrapping of the screen.
* For example wrapping trace or rbug debugging drivers around it.
*/
- struct pipe_screen* (*create_screen)(int drm_fd);
+ struct pipe_screen* (*create_screen)(int drm_fd, unsigned flags);
/**
* Return a configuration value.
device::device(clover::platform &platform, pipe_loader_device *ldev) :
platform(platform), ldev(ldev) {
- pipe = pipe_loader_create_screen(ldev);
+ pipe = pipe_loader_create_screen(ldev, 0);
if (!pipe || !pipe->get_param(pipe, PIPE_CAP_COMPUTE)) {
if (pipe)
pipe->destroy(pipe);
goto free_screen;
if (pipe_loader_drm_probe_fd(&screen->dev, fd))
- pscreen = pipe_loader_create_screen(screen->dev);
+ pscreen = pipe_loader_create_screen(screen->dev, 0);
if (!pscreen)
goto release_pipe;
goto free_screen;
if (pipe_loader_sw_probe_kms(&screen->dev, fd))
- pscreen = pipe_loader_create_screen(screen->dev);
+ pscreen = pipe_loader_create_screen(screen->dev, 0);
if (!pscreen)
goto release_pipe;
sPriv->extensions = drisw_screen_extensions;
if (pipe_loader_sw_probe_dri(&screen->dev, &drisw_lf))
- pscreen = pipe_loader_create_screen(screen->dev);
+ pscreen = pipe_loader_create_screen(screen->dev, 0);
if (!pscreen)
goto fail;
goto out_no_fd;
if (pipe_loader_drm_probe_fd(&xa->dev, fd))
- xa->screen = pipe_loader_create_screen(xa->dev);
+ xa->screen = pipe_loader_create_screen(xa->dev, 0);
if (!xa->screen)
goto out_no_screen;
return D3DERR_DRIVERINTERNALERROR;
}
- ctx->base.hal = pipe_loader_create_screen(ctx->dev);
+ ctx->base.hal = pipe_loader_create_screen(ctx->dev, 0);
if (!ctx->base.hal) {
ERR("Unable to load requested driver.\n");
drm_destroy(&ctx->base);
/* wrap it to create a software screen that can share resources */
if (pipe_loader_sw_probe_wrapped(&ctx->swdev, ctx->base.hal))
- ctx->base.ref = pipe_loader_create_screen(ctx->swdev);
+ ctx->base.ref = pipe_loader_create_screen(ctx->swdev, 0);
if (!ctx->base.ref) {
ERR("Couldn't wrap drm screen to swrast screen. Software devices "
#include "i915/i915_public.h"
static struct pipe_screen *
-create_screen(int fd)
+create_screen(int fd, unsigned flags)
{
struct i915_winsys *iws;
struct pipe_screen *screen;
#include "freedreno/drm/freedreno_drm_public.h"
static struct pipe_screen *
-create_screen(int fd)
+create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#include "nouveau/drm/nouveau_drm_public.h"
static struct pipe_screen *
-create_screen(int fd)
+create_screen(int fd, unsigned flags)
{
struct pipe_screen *screen;
#include "r300/r300_public.h"
static struct pipe_screen *
-create_screen(int fd)
+create_screen(int fd, unsigned flags)
{
struct radeon_winsys *sws;
#include "r600/r600_public.h"
static struct pipe_screen *
-create_screen(int fd)
+create_screen(int fd, unsigned flags)
{
struct radeon_winsys *rw;
#include "radeonsi/si_public.h"
static struct pipe_screen *
-create_screen(int fd)
+create_screen(int fd, unsigned flags)
{
struct radeon_winsys *rw;
#include "svga/svga_public.h"
static struct pipe_screen *
-create_screen(int fd)
+create_screen(int fd, unsigned flags)
{
struct svga_winsys_screen *sws;
struct pipe_screen *screen;
ret = pipe_loader_probe(&ctx->dev, 1);
assert(ret);
- ctx->screen = pipe_loader_create_screen(ctx->dev);
+ ctx->screen = pipe_loader_create_screen(ctx->dev, 0);
assert(ctx->screen);
ctx->pipe = ctx->screen->context_create(ctx->screen, NULL, 0);
assert(ret);
/* init a pipe screen */
- p->screen = pipe_loader_create_screen(p->dev);
+ p->screen = pipe_loader_create_screen(p->dev, 0);
assert(p->screen);
/* create the pipe driver context and cso context */
assert(ret);
/* init a pipe screen */
- p->screen = pipe_loader_create_screen(p->dev);
+ p->screen = pipe_loader_create_screen(p->dev, 0);
assert(p->screen);
/* create the pipe driver context and cso context */