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.roman...@intel.com>

Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>

I think the cleanups suggested by Michel and Emil sound like a good idea
too, FWIW.

> Cc: Marek Olšák <marek.ol...@amd.com>
> Cc: Michel Dänzer <michel.daen...@amd.com>
> Signed-off-by: Emil Velikov <emil.l.veli...@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)
> 

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to