Patches 1-4 are Reviewed-by: Ilia Mirkin <[email protected]>
On Thu, Feb 4, 2016 at 3:42 PM, Marek Olšák <[email protected]> wrote: > From: Marek Olšák <[email protected]> > > v2: assert and return if query_memory_info is not set > rebase > --- > src/mesa/state_tracker/st_context.c | 25 +++++++++++++++++++++++++ > src/mesa/state_tracker/st_extensions.c | 2 ++ > 2 files changed, 27 insertions(+) > > diff --git a/src/mesa/state_tracker/st_context.c > b/src/mesa/state_tracker/st_context.c > index 6c50a31..446ebfb 100644 > --- a/src/mesa/state_tracker/st_context.c > +++ b/src/mesa/state_tracker/st_context.c > @@ -97,6 +97,30 @@ static void st_Enable(struct gl_context * ctx, GLenum cap, > GLboolean state) > > > /** > + * Called via ctx->Driver.QueryMemoryInfo() > + */ > +static void > +st_query_memory_info(struct gl_context *ctx, struct gl_memory_info *out) > +{ > + struct pipe_screen *screen = st_context(ctx)->pipe->screen; > + struct pipe_memory_info info; > + > + assert(screen->query_memory_info); > + if (!screen->query_memory_info) > + return; > + > + screen->query_memory_info(screen, &info); > + > + out->total_device_memory = info.total_device_memory; > + out->avail_device_memory = info.avail_device_memory; > + out->total_staging_memory = info.total_staging_memory; > + out->avail_staging_memory = info.avail_staging_memory; > + out->device_memory_evicted = info.device_memory_evicted; > + out->nr_device_memory_evictions = info.nr_device_memory_evictions; > +} > + > + > +/** > * Called via ctx->Driver.UpdateState() > */ > void st_invalidate_state(struct gl_context * ctx, GLbitfield new_state) > @@ -491,4 +515,5 @@ void st_init_driver_functions(struct pipe_screen *screen, > > functions->Enable = st_Enable; > functions->UpdateState = st_invalidate_state; > + functions->QueryMemoryInfo = st_query_memory_info; > } > diff --git a/src/mesa/state_tracker/st_extensions.c > b/src/mesa/state_tracker/st_extensions.c > index d066784..f4b2e77 100644 > --- a/src/mesa/state_tracker/st_extensions.c > +++ b/src/mesa/state_tracker/st_extensions.c > @@ -526,12 +526,14 @@ void st_init_extensions(struct pipe_screen *screen, > { o(EXT_transform_feedback), > PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS }, > > { o(AMD_pinned_memory), > PIPE_CAP_RESOURCE_FROM_USER_MEMORY }, > + { o(ATI_meminfo), PIPE_CAP_QUERY_MEMORY_INFO > }, > { o(AMD_seamless_cubemap_per_texture), > PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE }, > { o(ATI_separate_stencil), PIPE_CAP_TWO_SIDED_STENCIL > }, > { o(ATI_texture_mirror_once), PIPE_CAP_TEXTURE_MIRROR_CLAMP > }, > { o(NV_conditional_render), PIPE_CAP_CONDITIONAL_RENDER > }, > { o(NV_primitive_restart), PIPE_CAP_PRIMITIVE_RESTART > }, > { o(NV_texture_barrier), PIPE_CAP_TEXTURE_BARRIER > }, > + { o(NVX_gpu_memory_info), PIPE_CAP_QUERY_MEMORY_INFO > }, > /* GL_NV_point_sprite is not supported by gallium because we don't > * support the GL_POINT_SPRITE_R_MODE_NV option. */ > > -- > 2.1.4 > > _______________________________________________ > mesa-dev mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
