Quoting Jason Ekstrand (2017-12-15 16:21:42) > On Fri, Dec 15, 2017 at 5:42 AM, Chris Wilson <ch...@chris-wilson.co.uk> > wrote: > > Every client (everyone instance that opens /dev/dri/card0 or the render > nodes), receives a unique per-process GTT (where supported by the > hardware, unfortunately that means only Broadwell and later). Every > context created by each client, in turns receives its own unique ppGTT. > This is overkill in terms of allocations and tracking, both in the > kernel and in the hardware, as we could be sharing the per-client GTT > amongst all of its contexts. The downside is that context segregation is > reduced, a stray write from one context may affect another, and so we > must honour any client requests that require robust segregation (e.g. > ARB_robustness). > > Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> > --- > src/mesa/drivers/dri/i965/brw_bufmgr.c | 23 +++++++++++++++++------ > src/mesa/drivers/dri/i965/brw_bufmgr.h | 2 +- > src/mesa/drivers/dri/i965/brw_context.c | 2 +- > 3 files changed, 19 insertions(+), 8 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_bufmgr.c > b/src/mesa/drivers/dri/ > i965/brw_bufmgr.c > index 52b5bf97a1..d8a9635f5d 100644 > --- a/src/mesa/drivers/dri/i965/brw_bufmgr.c > +++ b/src/mesa/drivers/dri/i965/brw_bufmgr.c > @@ -1297,13 +1297,24 @@ init_cache_buckets(struct brw_bufmgr *bufmgr) > } > > uint32_t > -brw_create_hw_context(struct brw_bufmgr *bufmgr) > +brw_create_hw_context(struct brw_bufmgr *bufmgr, unsigned int flags) > { > - struct drm_i915_gem_context_create create = { }; > - int ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, & > create); > - if (ret != 0) { > - DBG("DRM_IOCTL_I915_GEM_CONTEXT_CREATE failed: %s\n", strerror > (errno)); > - return 0; > + struct local_i915_gem_context_create_v2 { > + uint32_t ctx_id; /* out */ > + uint32_t flags; > +#define I915_GEM_CONTEXT_SHARE_GTT 0x1 > + uint32_t share_ctx; > > > So, we've left share_ctx as 0. What does that mean? Does that mean that we > share with some context that was implicitly created by opening > /dev/dri/card0? > Does it mean we share with the default context and therefore other processes?
The default context, 0, is per fd. -Chris _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev