gallium/radeon: pass create_screen flags to r600_common_screen_init
authorMarek Olšák <marek.olsak@amd.com>
Tue, 20 Jun 2017 22:38:06 +0000 (00:38 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 23 Jun 2017 17:50:20 +0000 (19:50 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
16 files changed:
src/gallium/auxiliary/target-helpers/drm_helper.h
src/gallium/drivers/r300/r300_public.h
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/r600/r600_public.h
src/gallium/drivers/radeon/r600_pipe_common.c
src/gallium/drivers/radeon/r600_pipe_common.h
src/gallium/drivers/radeonsi/si_pipe.c
src/gallium/drivers/radeonsi/si_public.h
src/gallium/targets/pipe-loader/pipe_r300.c
src/gallium/targets/pipe-loader/pipe_r600.c
src/gallium/targets/pipe-loader/pipe_radeonsi.c
src/gallium/winsys/amdgpu/drm/amdgpu_public.h
src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
src/gallium/winsys/radeon/drm/radeon_drm_public.h
src/gallium/winsys/radeon/drm/radeon_drm_winsys.c

index 65231cf3ebad09149bba2f0b8d3a783f9d87f9aa..0027ede23a1b2c9768eaaaadef938afd84f6b0e5 100644 (file)
@@ -90,7 +90,7 @@ pipe_r300_create_screen(int fd, unsigned flags)
 {
    struct radeon_winsys *rw;
 
-   rw = radeon_drm_winsys_create(fd, r300_screen_create);
+   rw = radeon_drm_winsys_create(fd, flags, r300_screen_create);
    return rw ? debug_screen_wrap(rw->screen) : NULL;
 }
 
@@ -115,7 +115,7 @@ pipe_r600_create_screen(int fd, unsigned flags)
 {
    struct radeon_winsys *rw;
 
-   rw = radeon_drm_winsys_create(fd, r600_screen_create);
+   rw = radeon_drm_winsys_create(fd, flags, r600_screen_create);
    return rw ? debug_screen_wrap(rw->screen) : NULL;
 }
 
@@ -142,10 +142,10 @@ pipe_radeonsi_create_screen(int fd, unsigned flags)
    struct radeon_winsys *rw;
 
    /* First, try amdgpu. */
-   rw = amdgpu_winsys_create(fd, radeonsi_screen_create);
+   rw = amdgpu_winsys_create(fd, flags, radeonsi_screen_create);
 
    if (!rw)
-      rw = radeon_drm_winsys_create(fd, radeonsi_screen_create);
+      rw = radeon_drm_winsys_create(fd, flags, radeonsi_screen_create);
 
    return rw ? debug_screen_wrap(rw->screen) : NULL;
 }
index 57a69cb7c9ffbb1529cde7bdf7dd882f7254cc07..d2300103aaa9fb76d71d348256cc91739b3b5109 100644 (file)
@@ -8,7 +8,7 @@ extern "C" {
 
 struct radeon_winsys;
 
-struct pipe_screen* r300_screen_create(struct radeon_winsys *rws);
+struct pipe_screen* r300_screen_create(struct radeon_winsys *rws, unsigned flags);
 
 #ifdef __cplusplus
 } // extern "C"
index 937f9aed883509673a301915481a944ef0e51c90..5cdb24871c3f19fec989ca1d5b9c1ff9a284cc24 100644 (file)
@@ -724,7 +724,7 @@ static boolean r300_fence_finish(struct pipe_screen *screen,
     return rws->fence_wait(rws, fence, timeout);
 }
 
-struct pipe_screen* r300_screen_create(struct radeon_winsys *rws)
+struct pipe_screen* r300_screen_create(struct radeon_winsys *rws, unsigned flags)
 {
     struct r300_screen *r300screen = CALLOC_STRUCT(r300_screen);
 
index a225f417f278a036f404df5dbd46c94fd80f49f6..f0ea4095762869b7548005ac827af1edcb248d89 100644 (file)
@@ -632,7 +632,7 @@ static struct pipe_resource *r600_resource_create(struct pipe_screen *screen,
        return r600_resource_create_common(screen, templ);
 }
 
-struct pipe_screen *r600_screen_create(struct radeon_winsys *ws)
+struct pipe_screen *r600_screen_create(struct radeon_winsys *ws, unsigned flags)
 {
        struct r600_screen *rscreen = CALLOC_STRUCT(r600_screen);
 
@@ -647,7 +647,7 @@ struct pipe_screen *r600_screen_create(struct radeon_winsys *ws)
        rscreen->b.b.get_shader_param = r600_get_shader_param;
        rscreen->b.b.resource_create = r600_resource_create;
 
-       if (!r600_common_screen_init(&rscreen->b, ws)) {
+       if (!r600_common_screen_init(&rscreen->b, ws, flags)) {
                FREE(rscreen);
                return NULL;
        }
index e4fe23a87b7a4b5269dbdb391dea9a24d6d072f4..2018440070da93699454a81c7b37eaaa9cabb2ea 100644 (file)
@@ -25,6 +25,6 @@
 
 struct radeon_winsys;
 
-struct pipe_screen *r600_screen_create(struct radeon_winsys *ws);
+struct pipe_screen *r600_screen_create(struct radeon_winsys *ws, unsigned flags);
 
 #endif
index 1cec6d5ea6809275ab1678c989e2b41d2111e236..04f7fc19e9d8395f511917624d2730471ab4d988 100644 (file)
@@ -1322,7 +1322,7 @@ struct pipe_resource *r600_resource_create_common(struct pipe_screen *screen,
 }
 
 bool r600_common_screen_init(struct r600_common_screen *rscreen,
-                            struct radeon_winsys *ws)
+                            struct radeon_winsys *ws, unsigned flags)
 {
        char family_name[32] = {}, llvm_string[32] = {}, kernel_version[128] = {};
        struct utsname uname_data;
index 310fb57684703bf45337dd1def70643184609ec9..e67982a4094e91857c4e4bb021fe7bde43e6d0cb 100644 (file)
@@ -745,7 +745,7 @@ void r600_draw_rectangle(struct blitter_context *blitter,
                         enum blitter_attrib_type type,
                         const union pipe_color_union *attrib);
 bool r600_common_screen_init(struct r600_common_screen *rscreen,
-                            struct radeon_winsys *ws);
+                            struct radeon_winsys *ws, unsigned flags);
 void r600_destroy_common_screen(struct r600_common_screen *rscreen);
 void r600_preflush_suspend_features(struct r600_common_context *ctx);
 void r600_postflush_resume_features(struct r600_common_context *ctx);
index 74ac0ec038936afb57ae265cc8ac00692bd753fa..ff787adcf340e7860046f14cd99549e63ebc8904 100644 (file)
@@ -916,7 +916,8 @@ static void si_test_vmfault(struct si_screen *sscreen)
        exit(0);
 }
 
-struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws)
+struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws,
+                                          unsigned flags)
 {
        struct si_screen *sscreen = CALLOC_STRUCT(si_screen);
        unsigned num_threads, num_compiler_threads, num_compiler_threads_lowprio, i;
@@ -934,7 +935,7 @@ struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws)
 
        si_init_screen_state_functions(sscreen);
 
-       if (!r600_common_screen_init(&sscreen->b, ws) ||
+       if (!r600_common_screen_init(&sscreen->b, ws, flags) ||
            !si_init_gs_info(sscreen) ||
            !si_init_shader_cache(sscreen)) {
                FREE(sscreen);
index 7cf36c8407a37ccefa2c5f9a4545fd93041aab05..13b1731bc3c4d41405f50efae811a655e96bb97d 100644 (file)
@@ -25,6 +25,7 @@
 
 struct radeon_winsys;
 
-struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws);
+struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws,
+                                          unsigned flags);
 
 #endif
index ffd6ba84bf07e7fc48e3d02d339a35b498b98b7e..da72859f0193aaf99a80c2587404f64ba2cbab2c 100644 (file)
@@ -9,7 +9,7 @@ create_screen(int fd, unsigned flags)
 {
    struct radeon_winsys *sws;
 
-   sws = radeon_drm_winsys_create(fd, r300_screen_create);
+   sws = radeon_drm_winsys_create(fd, flags, r300_screen_create);
    return sws ? debug_screen_wrap(sws->screen) : NULL;
 }
 
index 6f21c50a8bb64b6f755fb0ea14b76407a0ed3577..dfe130a2fc2a4426ab78c623d1c7207a236c79e9 100644 (file)
@@ -9,7 +9,7 @@ create_screen(int fd, unsigned flags)
 {
    struct radeon_winsys *rw;
 
-   rw = radeon_drm_winsys_create(fd, r600_screen_create);
+   rw = radeon_drm_winsys_create(fd, flags, r600_screen_create);
    return rw ? debug_screen_wrap(rw->screen) : NULL;
 }
 
index b6a78e42cbe6cf29a01ef5a0a47ec7280961a939..1bbd97ff802a9ab2c42d18cd2d8ceea349163d85 100644 (file)
@@ -11,10 +11,10 @@ create_screen(int fd, unsigned flags)
    struct radeon_winsys *rw;
 
    /* First, try amdgpu. */
-   rw = amdgpu_winsys_create(fd, radeonsi_screen_create);
+   rw = amdgpu_winsys_create(fd, flags, radeonsi_screen_create);
 
    if (!rw)
-      rw = radeon_drm_winsys_create(fd, radeonsi_screen_create);
+      rw = radeon_drm_winsys_create(fd, flags, radeonsi_screen_create);
 
    return rw ? debug_screen_wrap(rw->screen) : NULL;
 }
index ad133b20bf65b1468ffbdf8a1fccc23f1766f244..3cb5a1bf42939407fc74a8e2167e6c5dc89b3c8d 100644 (file)
 struct radeon_winsys;
 struct pipe_screen;
 
-typedef struct pipe_screen *(*radeon_screen_create_t)(struct radeon_winsys *);
+typedef struct pipe_screen *(*radeon_screen_create_t)(struct radeon_winsys *,
+                                                     unsigned);
 
 struct radeon_winsys *
-amdgpu_winsys_create(int fd, radeon_screen_create_t screen_create);
+amdgpu_winsys_create(int fd, unsigned flags,
+                    radeon_screen_create_t screen_create);
 
 #endif
index 2cbc39c0c7005975fe489dc934f5e4ab80f74195..c4d52166fb7a9933c6637e37f96008b0d65699ce 100644 (file)
@@ -229,7 +229,8 @@ static const char* amdgpu_get_chip_name(struct radeon_winsys *ws)
 
 
 PUBLIC struct radeon_winsys *
-amdgpu_winsys_create(int fd, radeon_screen_create_t screen_create)
+amdgpu_winsys_create(int fd, unsigned flags,
+                    radeon_screen_create_t screen_create)
 {
    struct amdgpu_winsys *ws;
    drmVersionPtr version = drmGetVersion(fd);
@@ -324,7 +325,7 @@ amdgpu_winsys_create(int fd, radeon_screen_create_t screen_create)
     *
     * Alternatively, we could create the screen based on "ws->gen"
     * and link all drivers into one binary blob. */
-   ws->base.screen = screen_create(&ws->base);
+   ws->base.screen = screen_create(&ws->base, flags);
    if (!ws->base.screen) {
       amdgpu_winsys_destroy(&ws->base);
       mtx_unlock(&dev_tab_mutex);
index dfcaaa4b6efcd0814ba997a79d50b36c89e10f8a..2192aa68ef61fb34aa5c11174269d30f67be560c 100644 (file)
@@ -6,9 +6,11 @@
 struct radeon_winsys;
 struct pipe_screen;
 
-typedef struct pipe_screen *(*radeon_screen_create_t)(struct radeon_winsys *);
+typedef struct pipe_screen *(*radeon_screen_create_t)(struct radeon_winsys *,
+                                                     unsigned);
 
 struct radeon_winsys *
-radeon_drm_winsys_create(int fd, radeon_screen_create_t screen_create);
+radeon_drm_winsys_create(int fd, unsigned flags,
+                        radeon_screen_create_t screen_create);
 
 #endif
index e0d4cc8d773d048853fc2b2eb8ad21b10a87a5d6..2a6ce2ca216e2c0e0656b6b35400c0a20e7263ff 100644 (file)
@@ -735,7 +735,8 @@ static int handle_compare(void *key1, void *key2)
 }
 
 PUBLIC struct radeon_winsys *
-radeon_drm_winsys_create(int fd, radeon_screen_create_t screen_create)
+radeon_drm_winsys_create(int fd, unsigned flags,
+                        radeon_screen_create_t screen_create)
 {
     struct radeon_drm_winsys *ws;
 
@@ -830,7 +831,7 @@ radeon_drm_winsys_create(int fd, radeon_screen_create_t screen_create)
      *
      * Alternatively, we could create the screen based on "ws->gen"
      * and link all drivers into one binary blob. */
-    ws->base.screen = screen_create(&ws->base);
+    ws->base.screen = screen_create(&ws->base, flags);
     if (!ws->base.screen) {
         radeon_winsys_destroy(&ws->base);
         mtx_unlock(&fd_tab_mutex);