nouveau: get rid of winsys object
authorMarcin Slusarz <marcin.slusarz@gmail.com>
Fri, 2 Dec 2011 21:02:51 +0000 (22:02 +0100)
committerMarcin Slusarz <marcin.slusarz@gmail.com>
Tue, 13 Dec 2011 20:06:29 +0000 (21:06 +0100)
Its only purpose was to destroy itself.

17 files changed:
src/gallium/drivers/nouveau/Android.mk
src/gallium/drivers/nouveau/Makefile
src/gallium/drivers/nouveau/nouveau_screen.c
src/gallium/drivers/nouveau/nouveau_winsys.h
src/gallium/drivers/nv50/nv50_context.c
src/gallium/drivers/nv50/nv50_screen.c
src/gallium/drivers/nv50/nv50_screen.h
src/gallium/drivers/nvc0/nvc0_context.c
src/gallium/drivers/nvc0/nvc0_screen.c
src/gallium/drivers/nvc0/nvc0_screen.h
src/gallium/drivers/nvfx/nvfx_context.c
src/gallium/drivers/nvfx/nvfx_context.h
src/gallium/drivers/nvfx/nvfx_screen.c
src/gallium/drivers/nvfx/nvfx_screen.h
src/gallium/winsys/nouveau/drm/nouveau_dri.h [deleted file]
src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c
src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.h [deleted file]

index 1094497f36fac3d58182d492c280e6265737bb4d..782b7cec18820fe4c41ca1619fdeda68bb7291ba 100644 (file)
@@ -29,7 +29,9 @@ include $(LOCAL_PATH)/Makefile.sources
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
-LOCAL_C_INCLUDES := $(DRM_TOP)
+LOCAL_C_INCLUDES := $(DRM_TOP) \
+       $(DRM_TOP)/include/drm \
+       $(DRM_TOP)/nouveau
 
 LOCAL_MODULE := libmesa_pipe_nouveau
 
index eb35c1f1d4e20c37024ea1e90e4b9ea15d712365..d583324b021627e7dc9b5f17cd84f45f60bfacc2 100644 (file)
@@ -7,6 +7,9 @@ LIBRARY_INCLUDES = \
        $(LIBDRM_CFLAGS) \
        -I$(TOP)/src/gallium/drivers/nouveau/include
 
+LIBRARY_INCLUDES += $(shell $(PKG_CONFIG) libdrm libdrm_nouveau --cflags-only-I)
+LIBRARY_DEFINES += $(shell $(PKG_CONFIG) libdrm libdrm_nouveau --cflags-only-other)
+
 # get C_SOURCES
 include Makefile.sources
 
index cdc2bffee81133baea032d15c085248da2dcac4e..99546a213198538b0e8331ebb9b2641bc240c955 100644 (file)
@@ -22,6 +22,8 @@
 #include "state_tracker/drm_driver.h"
 #include "util/u_simple_screen.h"
 
+#include "nouveau_drmif.h"
+
 int nouveau_mesa_debug = 0;
 
 static const char *
@@ -234,14 +236,11 @@ nouveau_screen_init(struct nouveau_screen *screen, struct nouveau_device *dev)
 void
 nouveau_screen_fini(struct nouveau_screen *screen)
 {
-       struct pipe_winsys *ws = screen->base.winsys;
-
        nouveau_mm_destroy(screen->mm_GART);
        nouveau_mm_destroy(screen->mm_VRAM);
 
        nouveau_channel_free(&screen->channel);
 
-       if (ws)
-               ws->destroy(ws);
+       nouveau_device_close(&screen->device);
 }
 
index 524e63652f6ddab185d4bd7426ea36bd60e25ac0..1abfa790072de8dc464f1737373bf57a12f76049 100644 (file)
@@ -42,12 +42,12 @@ nouveau_screen_transfer_flags(unsigned pipe)
 }
 
 extern struct pipe_screen *
-nvfx_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
+nvfx_screen_create(struct nouveau_device *);
 
 extern struct pipe_screen *
-nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
+nv50_screen_create(struct nouveau_device *);
 
 extern struct pipe_screen *
-nvc0_screen_create(struct pipe_winsys *ws, struct nouveau_device *);
+nvc0_screen_create(struct nouveau_device *);
 
 #endif
index a48b86474d1466317936508a9a57d8c3ff47ced8..3b0f8f07d1c123bc980d2f2207eda8e52a28ee87 100644 (file)
@@ -109,7 +109,6 @@ nv50_destroy(struct pipe_context *pipe)
 struct pipe_context *
 nv50_create(struct pipe_screen *pscreen, void *priv)
 {
-   struct pipe_winsys *pipe_winsys = pscreen->winsys;
    struct nv50_screen *screen = nv50_screen(pscreen);
    struct nv50_context *nv50;
    struct pipe_context *pipe;
@@ -124,7 +123,6 @@ nv50_create(struct pipe_screen *pscreen, void *priv)
    nv50->base.copy_data = nv50_m2mf_copy_linear;
    nv50->base.push_data = nv50_sifc_linear_u8;
 
-   pipe->winsys = pipe_winsys;
    pipe->screen = pscreen;
    pipe->priv = priv;
 
index 3cd5fdfedf3e779133ccb99635001a9250e9411f..f1dec3527d2580d747a95903336636f8588baf76 100644 (file)
@@ -298,7 +298,7 @@ nv50_screen_fence_update(struct pipe_screen *pscreen)
    } while(0)
 
 struct pipe_screen *
-nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
+nv50_screen_create(struct nouveau_device *dev)
 {
    struct nv50_screen *screen;
    struct nouveau_channel *chan;
@@ -323,7 +323,6 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
    chan = screen->base.channel;
    chan->user_private = screen;
 
-   pscreen->winsys = ws;
    pscreen->destroy = nv50_screen_destroy;
    pscreen->context_create = nv50_create;
    pscreen->is_format_supported = nv50_screen_is_format_supported;
index 315ca80c0d2c51557fc1cf252756fe8a9243ecfd..cb7e956cd84b1ec7b86f410c5d031b840c533b7d 100644 (file)
@@ -25,7 +25,6 @@ struct nv50_blitctx;
 
 struct nv50_screen {
    struct nouveau_screen base;
-   struct nouveau_winsys *nvws;
 
    struct nv50_context *cur_ctx;
 
index 2927a0905bd637407212722e3bffb32377fedcae..1bb90a38725e86bfb10d8b36dad8524a862a65b1 100644 (file)
@@ -110,7 +110,6 @@ nvc0_default_flush_notify(struct nouveau_channel *chan)
 struct pipe_context *
 nvc0_create(struct pipe_screen *pscreen, void *priv)
 {
-   struct pipe_winsys *pipe_winsys = pscreen->winsys;
    struct nvc0_screen *screen = nvc0_screen(pscreen);
    struct nvc0_context *nvc0;
    struct pipe_context *pipe;
@@ -126,7 +125,6 @@ nvc0_create(struct pipe_screen *pscreen, void *priv)
    nvc0->base.push_data = nvc0_m2mf_push_linear;
    nvc0->base.push_cb = nvc0_cb_push;
 
-   pipe->winsys = pipe_winsys;
    pipe->screen = pscreen;
    pipe->priv = priv;
 
index 79c3e36b8f93890faae0971190aff81597a5eb7c..190737e224b86092fd6408247535e8d79378d4fc 100644 (file)
@@ -367,7 +367,7 @@ nvc0_screen_fence_update(struct pipe_screen *pscreen)
    } while(0)
 
 struct pipe_screen *
-nvc0_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
+nvc0_screen_create(struct nouveau_device *dev)
 {
    struct nvc0_screen *screen;
    struct nouveau_channel *chan;
@@ -390,7 +390,6 @@ nvc0_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
    chan = screen->base.channel;
    chan->user_private = screen;
 
-   pscreen->winsys = ws;
    pscreen->destroy = nvc0_screen_destroy;
    pscreen->context_create = nvc0_create;
    pscreen->is_format_supported = nvc0_screen_is_format_supported;
index 98a94c65c5b60fa4ebbfafc60bff4d2c704b98c9..be42970ca396aea2e9c4b49a9577da404e57c05a 100644 (file)
@@ -23,7 +23,6 @@ struct nvc0_blitctx;
 
 struct nvc0_screen {
    struct nouveau_screen base;
-   struct nouveau_winsys *nvws;
 
    struct nvc0_context *cur_ctx;
 
index 37425b1fc3c9974a9ae7f39dc29b06d2192e6ba7..36209cb1792f4cff38b7858ba34508d0c701fda4 100644 (file)
@@ -71,18 +71,13 @@ struct pipe_context *
 nvfx_create(struct pipe_screen *pscreen, void *priv)
 {
        struct nvfx_screen *screen = nvfx_screen(pscreen);
-       struct pipe_winsys *ws = pscreen->winsys;
        struct nvfx_context *nvfx;
-       struct nouveau_winsys *nvws = screen->nvws;
 
        nvfx = CALLOC(1, sizeof(struct nvfx_context));
        if (!nvfx)
                return NULL;
        nvfx->screen = screen;
 
-       nvfx->nvws = nvws;
-
-       nvfx->pipe.winsys = ws;
        nvfx->pipe.screen = pscreen;
        nvfx->pipe.priv = priv;
        nvfx->pipe.destroy = nvfx_destroy;
index 3d05ecc78075fa701be9e62b4191baf5faa15c5b..09d394bfeefcd01698d0115feed3ef95821652dc 100644 (file)
@@ -138,7 +138,6 @@ struct nvfx_render_target {
 struct nvfx_context {
        struct pipe_context pipe;
 
-       struct nouveau_winsys *nvws;
        struct nvfx_screen *screen;
 
        unsigned is_nv4x; /* either 0 or ~0 */
index ac03199b667ea6d20d83f413aa25a12cdbcdf885..960cd884b8a1e882cfc2e90cad2744028805bf3f 100644 (file)
@@ -464,7 +464,7 @@ static void nvfx_channel_flush_notify(struct nouveau_channel* chan)
 }
 
 struct pipe_screen *
-nvfx_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
+nvfx_screen_create(struct nouveau_device *dev)
 {
        static const unsigned query_sizes[] = {(4096 - 4 * 32) / 32, 3 * 1024 / 32, 2 * 1024 / 32, 1024 / 32};
        struct nvfx_screen *screen = CALLOC_STRUCT(nvfx_screen);
@@ -488,7 +488,6 @@ nvfx_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
        chan->user_private = screen;
        chan->flush_notify = nvfx_channel_flush_notify;
 
-       pscreen->winsys = ws;
        pscreen->destroy = nvfx_screen_destroy;
        pscreen->get_param = nvfx_screen_get_param;
        pscreen->get_shader_param = nvfx_screen_get_shader_param;
index 02e7c5d1cad5a633bb9d8741b9775ab0af7e670d..35c9d91047906562306777d15ee71b08fc43ed8c 100644 (file)
@@ -10,7 +10,6 @@ struct pipe_screen;
 struct nvfx_screen {
        struct nouveau_screen base;
 
-       struct nouveau_winsys *nvws;
        struct nouveau_bo *fence;
 
        struct nvfx_context *cur_ctx;
diff --git a/src/gallium/winsys/nouveau/drm/nouveau_dri.h b/src/gallium/winsys/nouveau/drm/nouveau_dri.h
deleted file mode 100644 (file)
index 1207c2d..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _NOUVEAU_DRI_
-#define _NOUVEAU_DRI_
-
-#include "xf86drm.h"
-#include "drm.h"
-#include "nouveau_drm.h"
-
-struct nouveau_dri {
-       uint32_t device_id;     /**< \brief PCI device ID */
-       uint32_t width;         /**< \brief width in pixels of display */
-       uint32_t height;        /**< \brief height in scanlines of display */
-       uint32_t depth;         /**< \brief depth of display (8, 15, 16, 24) */
-       uint32_t bpp;           /**< \brief bit depth of display (8, 16, 24, 32) */
-
-       uint32_t bus_type;      /**< \brief ths bus type */
-       uint32_t bus_mode;      /**< \brief bus mode (used for AGP, maybe also for PCI-E ?) */
-
-       uint32_t front_offset;  /**< \brief front buffer offset */
-       uint32_t front_pitch;   /**< \brief front buffer pitch */
-       uint32_t back_offset;   /**< \brief private back buffer offset */
-       uint32_t back_pitch;    /**< \brief private back buffer pitch */
-       uint32_t depth_offset;  /**< \brief private depth buffer offset */
-       uint32_t depth_pitch;   /**< \brief private depth buffer pitch */
-
-};
-
-#endif
-
index 7d7a2769fa4e29a9d2dadfceae3dc4cad6e0d811..084eda96b2a78b88bf0e80ac72172d218f2bb759 100644 (file)
@@ -4,7 +4,6 @@
 #include "util/u_memory.h"
 #include "util/u_inlines.h"
 
-#include "nouveau_drm_winsys.h"
 #include "nouveau_drm_public.h"
 
 #include "nouveau_drmif.h"
 #include "nouveau/nouveau_winsys.h"
 #include "nouveau/nouveau_screen.h"
 
-static void
-nouveau_drm_destroy_winsys(struct pipe_winsys *s)
-{
-       struct nouveau_winsys *nv_winsys = nouveau_winsys(s);
-       struct nouveau_screen *nv_screen= nouveau_screen(nv_winsys->pscreen);
-       if (nv_screen)
-               nouveau_device_close(&nv_screen->device);
-       FREE(nv_winsys);
-}
-
 struct pipe_screen *
 nouveau_drm_screen_create(int fd)
 {
-       struct nouveau_winsys *nvws;
-       struct pipe_winsys *ws;
        struct nouveau_device *dev = NULL;
-       struct pipe_screen *(*init)(struct pipe_winsys *,
-                                   struct nouveau_device *);
+       struct pipe_screen *(*init)(struct nouveau_device *);
        int ret;
 
        ret = nouveau_device_open_existing(&dev, 0, fd, 0);
@@ -60,19 +46,5 @@ nouveau_drm_screen_create(int fd)
                return NULL;
        }
 
-       nvws = CALLOC_STRUCT(nouveau_winsys);
-       if (!nvws) {
-               nouveau_device_close(&dev);
-               return NULL;
-       }
-       ws = &nvws->base;
-       ws->destroy = nouveau_drm_destroy_winsys;
-
-       nvws->pscreen = init(ws, dev);
-       if (!nvws->pscreen) {
-               ws->destroy(ws);
-               return NULL;
-       }
-
-       return nvws->pscreen;
+       return init(dev);
 }
diff --git a/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.h b/src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.h
deleted file mode 100644 (file)
index 9e529ec..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __NOUVEAU_DRM_WINSYS_H__
-#define __NOUVEAU_DRM_WINSYS_H__
-
-#include "util/u_simple_screen.h"
-
-#include "nouveau_dri.h"
-
-struct nouveau_winsys {
-       struct pipe_winsys base;
-
-       struct pipe_screen *pscreen;
-
-       struct pipe_surface *front;
-};
-
-static INLINE struct nouveau_winsys *
-nouveau_winsys(struct pipe_winsys *ws)
-{
-       return (struct nouveau_winsys *)ws;
-}
-
-static INLINE struct nouveau_winsys *
-nouveau_winsys_screen(struct pipe_screen *pscreen)
-{
-       return nouveau_winsys(pscreen->winsys);
-}
-
-#endif