[Mesa-dev] [PATCH 03/11] radeon: remove dri_mirror state
Ian Romanick
idr at freedesktop.org
Thu Jul 9 10:43:58 PDT 2015
On 07/08/2015 10:07 AM, Emil Velikov wrote:
> Most of the data stored(duplicated) was unused, and for the one that is
> follow the approach set by other drivers.
> This eliminates the use of legacy (dri1) types.
>
> XXX: The radeon code is the only user of __DRIscreen::drm_version (the
> only __DRIversion outside of dri1 land). Should we move it into radeon
> and/or bump the min. required drm module version ?
>
> Cc: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
I think the cleanups suggested by Michel and Emil sound like a good idea
too, FWIW.
> Cc: Marek Olšák <marek.olsak at amd.com>
> Cc: Michel Dänzer <michel.daenzer at amd.com>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
> ---
> src/mesa/drivers/dri/radeon/radeon_common.c | 18 +++++++++---------
> src/mesa/drivers/dri/radeon/radeon_common_context.c | 7 ++-----
> src/mesa/drivers/dri/radeon/radeon_common_context.h | 19 +++----------------
> src/mesa/drivers/dri/radeon/radeon_texture.c | 2 +-
> 4 files changed, 15 insertions(+), 31 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c
> index 2a8bd6c9..d834d9b 100644
> --- a/src/mesa/drivers/dri/radeon/radeon_common.c
> +++ b/src/mesa/drivers/dri/radeon/radeon_common.c
> @@ -164,7 +164,7 @@ uint32_t radeonGetAge(radeonContextPtr radeon)
>
> gp.param = RADEON_PARAM_LAST_CLEAR;
> gp.value = (int *)&age;
> - ret = drmCommandWriteRead(radeon->dri.fd, DRM_RADEON_GETPARAM,
> + ret = drmCommandWriteRead(radeon->radeonScreen->driScreen->fd, DRM_RADEON_GETPARAM,
> &gp, sizeof(gp));
> if (ret) {
> fprintf(stderr, "%s: drmRadeonGetParam: %d\n", __func__,
> @@ -358,8 +358,8 @@ void radeonDrawBuffer( struct gl_context *ctx, GLenum mode )
> * that the front-buffer has actually been allocated.
> */
> if (!was_front_buffer_rendering && radeon->is_front_buffer_rendering) {
> - radeon_update_renderbuffers(radeon->dri.context,
> - radeon->dri.context->driDrawablePriv, GL_FALSE);
> + radeon_update_renderbuffers(radeon->driContext,
> + radeon->driContext->driDrawablePriv, GL_FALSE);
> }
> }
>
> @@ -375,8 +375,8 @@ void radeonReadBuffer( struct gl_context *ctx, GLenum mode )
> || (mode == GL_FRONT);
>
> if (!was_front_buffer_reading && rmesa->is_front_buffer_reading) {
> - radeon_update_renderbuffers(rmesa->dri.context,
> - rmesa->dri.context->driReadablePriv, GL_FALSE);
> + radeon_update_renderbuffers(rmesa->driContext,
> + rmesa->driContext->driReadablePriv, GL_FALSE);
> }
> }
> /* nothing, until we implement h/w glRead/CopyPixels or CopyTexImage */
> @@ -399,7 +399,7 @@ void radeon_window_moved(radeonContextPtr radeon)
> void radeon_viewport(struct gl_context *ctx)
> {
> radeonContextPtr radeon = RADEON_CONTEXT(ctx);
> - __DRIcontext *driContext = radeon->dri.context;
> + __DRIcontext *driContext = radeon->driContext;
> void (*old_viewport)(struct gl_context *ctx);
>
> if (_mesa_is_winsys_fbo(ctx->DrawBuffer)) {
> @@ -693,6 +693,7 @@ void rcommonInitCmdBuf(radeonContextPtr rmesa)
> {
> GLuint size;
> struct drm_radeon_gem_info mminfo = { 0 };
> + int fd = rmesa->radeonScreen->driScreen->fd;
>
> /* Initialize command buffer */
> size = 256 * driQueryOptioni(&rmesa->optionCache,
> @@ -711,8 +712,7 @@ void rcommonInitCmdBuf(radeonContextPtr rmesa)
> "Allocating %d bytes command buffer (max state is %d bytes)\n",
> size * 4, rmesa->hw.max_state_size * 4);
>
> - rmesa->cmdbuf.csm =
> - radeon_cs_manager_gem_ctor(rmesa->radeonScreen->driScreen->fd);
> + rmesa->cmdbuf.csm = radeon_cs_manager_gem_ctor(fd);
> if (rmesa->cmdbuf.csm == NULL) {
> /* FIXME: fatal error */
> return;
> @@ -725,7 +725,7 @@ void rcommonInitCmdBuf(radeonContextPtr rmesa)
> (void (*)(void *))rmesa->glCtx.Driver.Flush, &rmesa->glCtx);
>
>
> - if (!drmCommandWriteRead(rmesa->dri.fd, DRM_RADEON_GEM_INFO,
> + if (!drmCommandWriteRead(fd, DRM_RADEON_GEM_INFO,
> &mminfo, sizeof(mminfo))) {
> radeon_cs_set_limit(rmesa->cmdbuf.cs, RADEON_GEM_DOMAIN_VRAM,
> mminfo.vram_visible);
> diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c
> index 3d0ceda..4660d98 100644
> --- a/src/mesa/drivers/dri/radeon/radeon_common_context.c
> +++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c
> @@ -162,10 +162,7 @@ GLboolean radeonInitContext(radeonContextPtr radeon,
> _mesa_meta_init(ctx);
>
> /* DRI fields */
> - radeon->dri.context = driContextPriv;
> - radeon->dri.screen = sPriv;
> - radeon->dri.fd = sPriv->fd;
> - radeon->dri.drmMinor = sPriv->drm_version.minor;
> + radeon->driContext = driContextPriv;
>
> /* Setup IRQs */
> fthrottle_mode = driQueryOptioni(&radeon->optionCache, "fthrottle_mode");
> @@ -325,7 +322,7 @@ radeon_bits_per_pixel(const struct radeon_renderbuffer *rb)
> */
> void radeon_prepare_render(radeonContextPtr radeon)
> {
> - __DRIcontext *driContext = radeon->dri.context;
> + __DRIcontext *driContext = radeon->driContext;
> __DRIdrawable *drawable;
> __DRIscreen *screen;
>
> diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.h b/src/mesa/drivers/dri/radeon/radeon_common_context.h
> index dc72592..d142a87 100644
> --- a/src/mesa/drivers/dri/radeon/radeon_common_context.h
> +++ b/src/mesa/drivers/dri/radeon/radeon_common_context.h
> @@ -342,17 +342,6 @@ struct radeon_store {
> int elts_start;
> };
>
> -struct radeon_dri_mirror {
> - __DRIcontext *context; /* DRI context */
> - __DRIscreen *screen; /* DRI screen */
> -
> - drm_context_t hwContext;
> - drm_hw_lock_t *hwLock;
> - int hwLockCount;
> - int fd;
> - int drmMinor;
> -};
> -
> typedef void (*radeon_tri_func) (radeonContextPtr,
> radeonVertex *,
> radeonVertex *, radeonVertex *);
> @@ -385,6 +374,7 @@ struct radeon_cmdbuf {
>
> struct radeon_context {
> struct gl_context glCtx; /**< base class, must be first */
> + __DRIcontext *driContext; /* DRI context */
> radeonScreenPtr radeonScreen; /* Screen private DRI data */
>
> /* Texture object bookkeeping
> @@ -407,9 +397,6 @@ struct radeon_context {
> /* Drawable information */
> unsigned int lastStamp;
>
> - /* Mirrors of some DRI state */
> - struct radeon_dri_mirror dri;
> -
> /* Busy waiting */
> GLuint do_usleeps;
> GLuint do_irqs;
> @@ -502,12 +489,12 @@ static inline radeonContextPtr RADEON_CONTEXT(struct gl_context *ctx)
>
> static inline __DRIdrawable* radeon_get_drawable(radeonContextPtr radeon)
> {
> - return radeon->dri.context->driDrawablePriv;
> + return radeon->driContext->driDrawablePriv;
> }
>
> static inline __DRIdrawable* radeon_get_readable(radeonContextPtr radeon)
> {
> - return radeon->dri.context->driReadablePriv;
> + return radeon->driContext->driReadablePriv;
> }
>
> extern const char const *radeonVendorString;
> diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c
> index edfd48b..1a17898 100644
> --- a/src/mesa/drivers/dri/radeon/radeon_texture.c
> +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c
> @@ -531,7 +531,7 @@ void radeon_image_target_texture_2d(struct gl_context *ctx, GLenum target,
> __DRIscreen *screen;
> __DRIimage *image;
>
> - screen = radeon->dri.screen;
> + screen = radeon->radeonScreen->driScreen;
> image = screen->dri2.image->lookupEGLImage(screen, image_handle,
> screen->loaderPrivate);
> if (image == NULL)
>
More information about the mesa-dev
mailing list