On Thu, Jan 02, 2014 at 07:50:35PM -1000, Ben Widawsky wrote: > Will full PPGTT support it can be assumed that every file descriptor > gets its own hardware context. As such, there is no need to allocate > anew context in order to use the features provided by hardware contexts. > Eliminating this extra context allocation saves both physical memory > (currently PPGTT pages are pinned forever), GGTT space on IVB, and HSW, > as well as the associated startup cost of allocating the second context > - which can include an eviction in pathological cases. > > Unfortunately, this requires a libdrm version bump as it requires a new > interface. > > NOTE: I am uncertain if the share context idea is valid. Needs mesa > eyes. > > Cc: Kenneth Graunke <kenneth.w.graunke@xxxxxxxxx> > Signed-off-by: Ben Widawsky <ben@xxxxxxxxxxxx> Hi Ken/whomever. Everything but the actual exposing of the full PPGTT param from this series has been merged. If you can give me a pointer on what needs doing here in mesa, I'll try again now that full PPGTT is available in dinq. Thanks. > --- > configure.ac | 2 +- > src/mesa/drivers/dri/i965/brw_context.c | 9 ++++++++- > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/configure.ac b/configure.ac > index f75325d..a0ae0b3 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -29,7 +29,7 @@ AC_SUBST([OSMESA_VERSION]) > dnl Versions for external dependencies > LIBDRM_REQUIRED=2.4.24 > LIBDRM_RADEON_REQUIRED=2.4.50 > -LIBDRM_INTEL_REQUIRED=2.4.49 > +LIBDRM_INTEL_REQUIRED=2.4.51 > LIBDRM_NVVIEUX_REQUIRED=2.4.33 > LIBDRM_NOUVEAU_REQUIRED="2.4.33 libdrm >= 2.4.41" > LIBDRM_FREEDRENO_REQUIRED=2.4.39 > diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c > index 78c06fc..f5a66e1 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.c > +++ b/src/mesa/drivers/dri/i965/brw_context.c > @@ -674,7 +674,14 @@ brwCreateContext(gl_api api, > > intel_fbo_init(brw); > > - if (brw->gen >= 6) { > + /* We assume that the hw_ctx is the first created for the file descriptor if > + * this is not a share context. If that assumption turns false then we'll > + * end up having hw_ctx for two contexts using the same actual context. > + */ > + if (!shareCtx) > + brw->hw_ctx = drm_intel_gem_default_context_get(brw->bufmgr); > + > + if (!brw->hw_ctx && brw->gen >= 6) { > /* Create a new hardware context. Using a hardware context means that > * our GPU state will be saved/restored on context switch, allowing us > * to assume that the GPU is in the same state we left it in. > -- > 1.8.5.2 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ben Widawsky, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx