From: Marek Olšák <marek.ol...@amd.com> for drirc options --- src/gallium/auxiliary/pipe-loader/pipe_loader.c | 4 +- src/gallium/auxiliary/pipe-loader/pipe_loader.h | 2 +- .../auxiliary/pipe-loader/pipe_loader_drm.c | 4 +- .../auxiliary/pipe-loader/pipe_loader_priv.h | 3 +- src/gallium/auxiliary/target-helpers/drm_helper.h | 48 +++++++++++----------- .../auxiliary/target-helpers/drm_helper_public.h | 26 ++++++------ src/gallium/auxiliary/vl/vl_winsys_dri.c | 2 +- src/gallium/auxiliary/vl/vl_winsys_dri3.c | 2 +- src/gallium/auxiliary/vl/vl_winsys_drm.c | 2 +- src/gallium/include/state_tracker/drm_driver.h | 2 +- src/gallium/state_trackers/clover/core/device.cpp | 2 +- src/gallium/state_trackers/dri/dri2.c | 4 +- src/gallium/state_trackers/dri/drisw.c | 2 +- src/gallium/state_trackers/xa/xa_tracker.c | 2 +- src/gallium/targets/d3dadapter9/drm.c | 4 +- src/gallium/targets/pipe-loader/pipe_i915.c | 2 +- src/gallium/targets/pipe-loader/pipe_msm.c | 2 +- src/gallium/targets/pipe-loader/pipe_nouveau.c | 2 +- src/gallium/targets/pipe-loader/pipe_r300.c | 2 +- src/gallium/targets/pipe-loader/pipe_r600.c | 2 +- src/gallium/targets/pipe-loader/pipe_radeonsi.c | 2 +- src/gallium/targets/pipe-loader/pipe_vmwgfx.c | 2 +- src/gallium/tests/trivial/compute.c | 2 +- src/gallium/tests/trivial/quad-tex.c | 2 +- src/gallium/tests/trivial/tri.c | 2 +- 25 files changed, 65 insertions(+), 64 deletions(-)
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.c b/src/gallium/auxiliary/pipe-loader/pipe_loader.c index 1ddfeba..0857a2c 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.c @@ -67,23 +67,23 @@ pipe_loader_release(struct pipe_loader_device **devs, int ndev) } const struct drm_conf_ret * pipe_loader_configuration(struct pipe_loader_device *dev, enum drm_conf conf) { return dev->ops->configuration(dev, conf); } 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 * pipe_loader_find_module(struct pipe_loader_device *dev, const char *library_paths) { struct util_dl_library *lib; const char *next; char path[PATH_MAX]; int len, ret; diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.h b/src/gallium/auxiliary/pipe-loader/pipe_loader.h index 690d088..73b7558 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader.h +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.h @@ -77,21 +77,21 @@ struct pipe_loader_device { */ int pipe_loader_probe(struct pipe_loader_device **devs, int ndev); /** * Create a pipe_screen for the specified device. * * \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. * * \param dev Device that will be queried. * \param conf The drm_conf id of the option to be queried. */ const struct drm_conf_ret * pipe_loader_configuration(struct pipe_loader_device *dev, enum drm_conf conf); diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c index 0ba360e..ef446b6 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -274,22 +274,22 @@ pipe_loader_drm_configuration(struct pipe_loader_device *dev, { struct pipe_loader_drm_device *ddev = pipe_loader_drm_device(dev); if (!ddev->dd->configuration) return NULL; return ddev->dd->configuration(conf); } 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 = { .create_screen = pipe_loader_drm_create_screen, .configuration = pipe_loader_drm_configuration, .release = pipe_loader_drm_release }; diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_priv.h b/src/gallium/auxiliary/pipe-loader/pipe_loader_priv.h index da2ca8c..58ab992 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_priv.h +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_priv.h @@ -24,21 +24,22 @@ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef PIPE_LOADER_PRIV_H #define PIPE_LOADER_PRIV_H #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); void (*release)(struct pipe_loader_device **dev); }; /** * Open the pipe driver module that handles a specified device. */ diff --git a/src/gallium/auxiliary/target-helpers/drm_helper.h b/src/gallium/auxiliary/target-helpers/drm_helper.h index 1b071a6..65231cf 100644 --- a/src/gallium/auxiliary/target-helpers/drm_helper.h +++ b/src/gallium/auxiliary/target-helpers/drm_helper.h @@ -3,308 +3,308 @@ #include <stdio.h> #include "target-helpers/inline_debug_helper.h" #include "target-helpers/drm_helper_public.h" #ifdef GALLIUM_I915 #include "i915/drm/i915_drm_public.h" #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; iws = i915_drm_winsys_create(fd); if (!iws) return NULL; screen = i915_screen_create(iws); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #ifdef GALLIUM_NOUVEAU #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; screen = nouveau_drm_screen_create(fd); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #ifdef GALLIUM_PL111 #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; screen = pl111_drm_screen_create(fd); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #ifdef GALLIUM_R300 #include "radeon/radeon_winsys.h" #include "radeon/drm/radeon_drm_public.h" #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; rw = radeon_drm_winsys_create(fd, r300_screen_create); return rw ? debug_screen_wrap(rw->screen) : NULL; } #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; } #endif #ifdef GALLIUM_R600 #include "radeon/radeon_winsys.h" #include "radeon/drm/radeon_drm_public.h" #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; rw = radeon_drm_winsys_create(fd, r600_screen_create); return rw ? debug_screen_wrap(rw->screen) : NULL; } #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; } #endif #ifdef GALLIUM_RADEONSI #include "radeon/radeon_winsys.h" #include "radeon/drm/radeon_drm_public.h" #include "amdgpu/drm/amdgpu_public.h" #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; /* First, try amdgpu. */ rw = amdgpu_winsys_create(fd, radeonsi_screen_create); if (!rw) rw = radeon_drm_winsys_create(fd, radeonsi_screen_create); return rw ? debug_screen_wrap(rw->screen) : NULL; } #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; } #endif #ifdef GALLIUM_VMWGFX #include "svga/drm/svga_drm_public.h" #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; sws = svga_drm_winsys_screen_create(fd); if (!sws) return NULL; screen = svga_screen_create(sws); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #ifdef GALLIUM_FREEDRENO #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; screen = fd_drm_screen_create(fd); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #ifdef GALLIUM_VIRGL #include "virgl/drm/virgl_drm_public.h" #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; screen = virgl_drm_screen_create(fd); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #ifdef GALLIUM_VC4 #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; screen = vc4_drm_screen_create(fd); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #ifdef GALLIUM_ETNAVIV #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; screen = etna_drm_screen_create(fd); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #ifdef GALLIUM_IMX #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; screen = imx_drm_screen_create(fd); return screen ? debug_screen_wrap(screen) : NULL; } #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; } #endif #endif /* DRM_HELPER_H */ diff --git a/src/gallium/auxiliary/target-helpers/drm_helper_public.h b/src/gallium/auxiliary/target-helpers/drm_helper_public.h index 5abb5fc..d4adc88 100644 --- a/src/gallium/auxiliary/target-helpers/drm_helper_public.h +++ b/src/gallium/auxiliary/target-helpers/drm_helper_public.h @@ -1,46 +1,46 @@ #ifndef _DRM_HELPER_PUBLIC_H #define _DRM_HELPER_PUBLIC_H 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 */ diff --git a/src/gallium/auxiliary/vl/vl_winsys_dri.c b/src/gallium/auxiliary/vl/vl_winsys_dri.c index b4fb47e..043483b 100644 --- a/src/gallium/auxiliary/vl/vl_winsys_dri.c +++ b/src/gallium/auxiliary/vl/vl_winsys_dri.c @@ -399,21 +399,21 @@ vl_dri2_screen_create(Display *display, int screen) authenticate_cookie = xcb_dri2_authenticate_unchecked(scrn->conn, xcb_screen->root, magic); authenticate = xcb_dri2_authenticate_reply(scrn->conn, authenticate_cookie, NULL); if (authenticate == NULL || !authenticate->authenticated) 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; scrn->base.destroy = vl_dri2_screen_destroy; scrn->base.texture_from_drawable = vl_dri2_screen_texture_from_drawable; scrn->base.get_dirty_area = vl_dri2_screen_get_dirty_area; scrn->base.get_timestamp = vl_dri2_screen_get_timestamp; scrn->base.set_next_timestamp = vl_dri2_screen_set_next_timestamp; scrn->base.get_private = vl_dri2_screen_get_private; diff --git a/src/gallium/auxiliary/vl/vl_winsys_dri3.c b/src/gallium/auxiliary/vl/vl_winsys_dri3.c index c7c615b..47e5238 100644 --- a/src/gallium/auxiliary/vl/vl_winsys_dri3.c +++ b/src/gallium/auxiliary/vl/vl_winsys_dri3.c @@ -810,21 +810,21 @@ vl_dri3_screen_create(Display *display, int screen) if (!geom_reply) goto close_fd; /* TODO support depth other than 24 */ if (geom_reply->depth != 24) { free(geom_reply); goto close_fd; } 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; scrn->pipe = scrn->base.pscreen->context_create(scrn->base.pscreen, NULL, 0); if (!scrn->pipe) goto no_context; scrn->base.destroy = vl_dri3_screen_destroy; diff --git a/src/gallium/auxiliary/vl/vl_winsys_drm.c b/src/gallium/auxiliary/vl/vl_winsys_drm.c index df8809c..ebde5b8 100644 --- a/src/gallium/auxiliary/vl/vl_winsys_drm.c +++ b/src/gallium/auxiliary/vl/vl_winsys_drm.c @@ -45,21 +45,21 @@ vl_drm_screen_create(int fd) int new_fd; vscreen = CALLOC_STRUCT(vl_screen); if (!vscreen) return NULL; if (fd < 0 || (new_fd = fcntl(fd, F_DUPFD_CLOEXEC, 3)) < 0) 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; vscreen->destroy = vl_drm_screen_destroy; vscreen->texture_from_drawable = NULL; vscreen->get_dirty_area = NULL; vscreen->get_timestamp = NULL; vscreen->set_next_timestamp = NULL; vscreen->get_private = NULL; diff --git a/src/gallium/include/state_tracker/drm_driver.h b/src/gallium/include/state_tracker/drm_driver.h index 88dda0a..4383276 100644 --- a/src/gallium/include/state_tracker/drm_driver.h +++ b/src/gallium/include/state_tracker/drm_driver.h @@ -95,21 +95,21 @@ struct drm_driver_descriptor * Identifying prefix/suffix of the binary, used by the pipe-loader. */ const char *driver_name; /** * Create a pipe srcreen. * * 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. * * If this function is NULL, or if it returns NULL * the state tracker- or state * tracker manager should provide a reasonable default value. */ const struct drm_conf_ret *(*configuration) (enum drm_conf conf); }; diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index 8dfba1a..2ad9e49 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -35,21 +35,21 @@ namespace { int sz = pipe->get_compute_param(pipe, ir_format, cap, NULL); std::vector<T> v(sz / sizeof(T)); pipe->get_compute_param(pipe, ir_format, cap, &v.front()); return v; } } 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); throw error(CL_INVALID_DEVICE); } } device::~device() { if (pipe) pipe->destroy(pipe); diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c index c5e69d6..2d0e78c 100644 --- a/src/gallium/state_trackers/dri/dri2.c +++ b/src/gallium/state_trackers/dri/dri2.c @@ -2019,21 +2019,21 @@ dri2_init_screen(__DRIscreen * sPriv) screen->sPriv = sPriv; screen->fd = sPriv->fd; (void) mtx_init(&screen->opencl_func_mutex, mtx_plain); sPriv->driverPrivate = (void *)screen; if (screen->fd < 0 || (fd = fcntl(screen->fd, F_DUPFD_CLOEXEC, 3)) < 0) 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; throttle_ret = pipe_loader_configuration(screen->dev, DRM_CONF_THROTTLE); dmabuf_ret = pipe_loader_configuration(screen->dev, DRM_CONF_SHARE_FD); if (throttle_ret && throttle_ret->val.val_int != -1) { screen->throttling_enabled = TRUE; screen->default_throttle_frames = throttle_ret->val.val_int; @@ -2110,21 +2110,21 @@ dri_kms_init_screen(__DRIscreen * sPriv) screen->sPriv = sPriv; screen->fd = sPriv->fd; sPriv->driverPrivate = (void *)screen; if (screen->fd < 0 || (fd = fcntl(screen->fd, F_DUPFD_CLOEXEC, 3)) < 0) 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; if (pscreen->resource_create_with_modifiers) dri2ImageExtension.createImageWithModifiers = dri2_create_image_with_modifiers; if (drmGetCap(sPriv->fd, DRM_CAP_PRIME, &cap) == 0 && (cap & DRM_PRIME_CAP_IMPORT)) { diff --git a/src/gallium/state_trackers/dri/drisw.c b/src/gallium/state_trackers/dri/drisw.c index 8fbfa9e..877aa71 100644 --- a/src/gallium/state_trackers/dri/drisw.c +++ b/src/gallium/state_trackers/dri/drisw.c @@ -393,21 +393,21 @@ drisw_init_screen(__DRIscreen * sPriv) screen->sPriv = sPriv; screen->fd = -1; swrast_no_present = debug_get_option_swrast_no_present(); sPriv->driverPrivate = (void *)screen; 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; configs = dri_init_screen_helper(screen, pscreen, "swrast"); if (!configs) goto fail; return configs; fail: diff --git a/src/gallium/state_trackers/xa/xa_tracker.c b/src/gallium/state_trackers/xa/xa_tracker.c index 03a3abf..e5addcf 100644 --- a/src/gallium/state_trackers/xa/xa_tracker.c +++ b/src/gallium/state_trackers/xa/xa_tracker.c @@ -155,21 +155,21 @@ xa_tracker_create(int drm_fd) unsigned int num_formats; int fd; if (!xa) return NULL; if (drm_fd < 0 || (fd = fcntl(drm_fd, F_DUPFD_CLOEXEC, 3)) < 0) 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; xa->default_ctx = xa_context_create(xa); if (!xa->default_ctx) goto out_no_pipe; num_formats = 0; for (stype = 0; stype < XA_LAST_SURFACE_TYPE; ++stype) diff --git a/src/gallium/targets/d3dadapter9/drm.c b/src/gallium/targets/d3dadapter9/drm.c index 6163734..13c8648 100644 --- a/src/gallium/targets/d3dadapter9/drm.c +++ b/src/gallium/targets/d3dadapter9/drm.c @@ -222,21 +222,21 @@ drm_create_adapter( int fd, ctx->fd = fd; ctx->base.linear_framebuffer = !!different_device; if (!pipe_loader_drm_probe_fd(&ctx->dev, fd)) { ERR("Failed to probe drm fd %d.\n", fd); FREE(ctx); close(fd); 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); return D3DERR_DRIVERINTERNALERROR; } dmabuf_ret = pipe_loader_configuration(ctx->dev, DRM_CONF_SHARE_FD); throttle_ret = pipe_loader_configuration(ctx->dev, DRM_CONF_THROTTLE); if (!dmabuf_ret || !dmabuf_ret->val.val_bool) { ERR("The driver is not capable of dma-buf sharing." @@ -305,21 +305,21 @@ drm_create_adapter( int fd, if (driCheckOption(&userInitOptions, "csmt_force", DRI_INT)) ctx->base.csmt_force = driQueryOptioni(&userInitOptions, "csmt_force"); else ctx->base.csmt_force = -1; driDestroyOptionCache(&userInitOptions); driDestroyOptionInfo(&defaultInitOptions); /* 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 " "will be unavailable.\n"); } /* read out PCI info */ read_descriptor(&ctx->base, fd, override_vendorid); /* create and return new ID3DAdapter9 */ diff --git a/src/gallium/targets/pipe-loader/pipe_i915.c b/src/gallium/targets/pipe-loader/pipe_i915.c index 2183dc3..43061b0 100644 --- a/src/gallium/targets/pipe-loader/pipe_i915.c +++ b/src/gallium/targets/pipe-loader/pipe_i915.c @@ -1,18 +1,18 @@ #include "target-helpers/inline_debug_helper.h" #include "state_tracker/drm_driver.h" #include "i915/drm/i915_drm_public.h" #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; iws = i915_drm_winsys_create(fd); if (!iws) return NULL; screen = i915_screen_create(iws); if (!screen) diff --git a/src/gallium/targets/pipe-loader/pipe_msm.c b/src/gallium/targets/pipe-loader/pipe_msm.c index 858b248..180e0f9 100644 --- a/src/gallium/targets/pipe-loader/pipe_msm.c +++ b/src/gallium/targets/pipe-loader/pipe_msm.c @@ -1,17 +1,17 @@ #include "target-helpers/inline_debug_helper.h" #include "state_tracker/drm_driver.h" #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; screen = fd_drm_screen_create(fd); if (!screen) return NULL; screen = debug_screen_wrap(screen); return screen; diff --git a/src/gallium/targets/pipe-loader/pipe_nouveau.c b/src/gallium/targets/pipe-loader/pipe_nouveau.c index d9c0c5d..de61f44 100644 --- a/src/gallium/targets/pipe-loader/pipe_nouveau.c +++ b/src/gallium/targets/pipe-loader/pipe_nouveau.c @@ -1,17 +1,17 @@ #include "target-helpers/inline_debug_helper.h" #include "state_tracker/drm_driver.h" #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; screen = nouveau_drm_screen_create(fd); if (!screen) return NULL; screen = debug_screen_wrap(screen); return screen; diff --git a/src/gallium/targets/pipe-loader/pipe_r300.c b/src/gallium/targets/pipe-loader/pipe_r300.c index dd5c0bd..ffd6ba8 100644 --- a/src/gallium/targets/pipe-loader/pipe_r300.c +++ b/src/gallium/targets/pipe-loader/pipe_r300.c @@ -1,18 +1,18 @@ #include "target-helpers/inline_debug_helper.h" #include "state_tracker/drm_driver.h" #include "radeon/drm/radeon_drm_public.h" #include "radeon/radeon_winsys.h" #include "r300/r300_public.h" static struct pipe_screen * -create_screen(int fd) +create_screen(int fd, unsigned flags) { struct radeon_winsys *sws; sws = radeon_drm_winsys_create(fd, r300_screen_create); return sws ? debug_screen_wrap(sws->screen) : NULL; } static const struct drm_conf_ret throttle_ret = { .type = DRM_CONF_INT, .val.val_int = 2, diff --git a/src/gallium/targets/pipe-loader/pipe_r600.c b/src/gallium/targets/pipe-loader/pipe_r600.c index 70760d0..6f21c50 100644 --- a/src/gallium/targets/pipe-loader/pipe_r600.c +++ b/src/gallium/targets/pipe-loader/pipe_r600.c @@ -1,18 +1,18 @@ #include "state_tracker/drm_driver.h" #include "target-helpers/inline_debug_helper.h" #include "radeon/drm/radeon_drm_public.h" #include "radeon/radeon_winsys.h" #include "r600/r600_public.h" static struct pipe_screen * -create_screen(int fd) +create_screen(int fd, unsigned flags) { struct radeon_winsys *rw; rw = radeon_drm_winsys_create(fd, r600_screen_create); return rw ? debug_screen_wrap(rw->screen) : NULL; } static const struct drm_conf_ret throttle_ret = { .type = DRM_CONF_INT, .val.val_int = 2, diff --git a/src/gallium/targets/pipe-loader/pipe_radeonsi.c b/src/gallium/targets/pipe-loader/pipe_radeonsi.c index 01b1d8a..b6a78e4 100644 --- a/src/gallium/targets/pipe-loader/pipe_radeonsi.c +++ b/src/gallium/targets/pipe-loader/pipe_radeonsi.c @@ -1,19 +1,19 @@ #include "state_tracker/drm_driver.h" #include "target-helpers/inline_debug_helper.h" #include "radeon/drm/radeon_drm_public.h" #include "radeon/radeon_winsys.h" #include "amdgpu/drm/amdgpu_public.h" #include "radeonsi/si_public.h" static struct pipe_screen * -create_screen(int fd) +create_screen(int fd, unsigned flags) { struct radeon_winsys *rw; /* First, try amdgpu. */ rw = amdgpu_winsys_create(fd, radeonsi_screen_create); if (!rw) rw = radeon_drm_winsys_create(fd, radeonsi_screen_create); return rw ? debug_screen_wrap(rw->screen) : NULL; diff --git a/src/gallium/targets/pipe-loader/pipe_vmwgfx.c b/src/gallium/targets/pipe-loader/pipe_vmwgfx.c index 7aa4421..6320831 100644 --- a/src/gallium/targets/pipe-loader/pipe_vmwgfx.c +++ b/src/gallium/targets/pipe-loader/pipe_vmwgfx.c @@ -1,18 +1,18 @@ #include "target-helpers/inline_debug_helper.h" #include "state_tracker/drm_driver.h" #include "svga/drm/svga_drm_public.h" #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; sws = svga_drm_winsys_screen_create(fd); if (!sws) return NULL; screen = svga_screen_create(sws); if (!screen) diff --git a/src/gallium/tests/trivial/compute.c b/src/gallium/tests/trivial/compute.c index 443451e..a2e882c 100644 --- a/src/gallium/tests/trivial/compute.c +++ b/src/gallium/tests/trivial/compute.c @@ -69,21 +69,21 @@ struct context { printf(" }\n"); \ } while (0) static void init_ctx(struct context *ctx) { int ret; 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(ctx->pipe); DUMP_COMPUTE_PARAM(p, PIPE_COMPUTE_CAP_GRID_DIMENSION); DUMP_COMPUTE_PARAM(p, PIPE_COMPUTE_CAP_MAX_GRID_SIZE); DUMP_COMPUTE_PARAM(p, PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE); } diff --git a/src/gallium/tests/trivial/quad-tex.c b/src/gallium/tests/trivial/quad-tex.c index 2ee544a..113cb92 100644 --- a/src/gallium/tests/trivial/quad-tex.c +++ b/src/gallium/tests/trivial/quad-tex.c @@ -89,21 +89,21 @@ struct program static void init_prog(struct program *p) { struct pipe_surface surf_tmpl; int ret; /* find a hardware device */ ret = pipe_loader_probe(&p->dev, 1); 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 */ p->pipe = p->screen->context_create(p->screen, NULL, 0); p->cso = cso_create_context(p->pipe, 0); /* set clear color */ p->clear_color.f[0] = 0.3; p->clear_color.f[1] = 0.1; p->clear_color.f[2] = 0.3; diff --git a/src/gallium/tests/trivial/tri.c b/src/gallium/tests/trivial/tri.c index a203169..df02e96 100644 --- a/src/gallium/tests/trivial/tri.c +++ b/src/gallium/tests/trivial/tri.c @@ -84,21 +84,21 @@ struct program static void init_prog(struct program *p) { struct pipe_surface surf_tmpl; int ret; /* find a hardware device */ ret = pipe_loader_probe(&p->dev, 1); 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 */ p->pipe = p->screen->context_create(p->screen, NULL, 0); p->cso = cso_create_context(p->pipe, 0); /* set clear color */ p->clear_color.f[0] = 0.3; p->clear_color.f[1] = 0.1; p->clear_color.f[2] = 0.3; -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev