ilo: add the driver to the build system
[mesa.git] / src / gallium / targets / egl-static / egl_pipe.c
index a33d419e0aa89c513aadb81aa051b48bfce7b174..7f35f6c645e51d4dff65e2377cbb42ec0b77b3e1 100644 (file)
 /* for i915 */
 #include "i915/drm/i915_drm_public.h"
 #include "i915/i915_public.h"
-/* for i965 */
 #include "target-helpers/inline_wrapper_sw_helper.h"
-#include "i965/drm/i965_drm_public.h"
-#include "i965/brw_public.h"
+/* for ilo */
+#include "intel/drm/intel_drm_public.h"
+#include "ilo/ilo_public.h"
 /* for nouveau */
 #include "nouveau/drm/nouveau_drm_public.h"
 /* for r300 */
 #include "radeon/drm/radeon_drm_public.h"
 #include "r300/r300_public.h"
 /* for r600 */
-#include "r600/drm/r600_drm_public.h"
 #include "r600/r600_public.h"
+/* for radeonsi */
+#include "radeonsi/radeonsi_public.h"
 /* for vmwgfx */
 #include "svga/drm/svga_drm_public.h"
 #include "svga/svga_public.h"
+/* for freedreno */
+#include "freedreno/drm/freedreno_drm_public.h"
 
 static struct pipe_screen *
 pipe_i915_create_screen(int fd)
@@ -72,22 +75,20 @@ pipe_i915_create_screen(int fd)
 }
 
 static struct pipe_screen *
-pipe_i965_create_screen(int fd)
+pipe_ilo_create_screen(int fd)
 {
-#if _EGL_PIPE_I965
-   struct brw_winsys_screen *bws;
+#if _EGL_PIPE_ILO
+   struct intel_winsys *iws;
    struct pipe_screen *screen;
 
-   bws = i965_drm_winsys_screen_create(fd);
-   if (!bws)
+   iws = intel_drm_winsys_create(fd);
+   if (!iws)
       return NULL;
 
-   screen = brw_screen_create(bws);
+   screen = ilo_screen_create(iws);
    if (!screen)
       return NULL;
 
-   screen = sw_screen_wrap(screen);
-
    screen = debug_screen_wrap(screen);
 
    return screen;
@@ -118,10 +119,10 @@ static struct pipe_screen *
 pipe_r300_create_screen(int fd)
 {
 #if _EGL_PIPE_R300
-   struct r300_winsys_screen *sws;
+   struct radeon_winsys *sws;
    struct pipe_screen *screen;
 
-   sws = r300_drm_winsys_screen_create(fd);
+   sws = radeon_drm_winsys_create(fd);
    if (!sws)
       return NULL;
 
@@ -141,10 +142,10 @@ static struct pipe_screen *
 pipe_r600_create_screen(int fd)
 {
 #if _EGL_PIPE_R600
-   struct radeon *rw;
+   struct radeon_winsys *rw;
    struct pipe_screen *screen;
 
-   rw = r600_drm_winsys_create(fd);
+   rw = radeon_drm_winsys_create(fd);
    if (!rw)
       return NULL;
 
@@ -160,6 +161,29 @@ pipe_r600_create_screen(int fd)
 #endif
 }
 
+static struct pipe_screen *
+pipe_radeonsi_create_screen(int fd)
+{
+#if _EGL_PIPE_RADEONSI
+   struct radeon_winsys *rw;
+   struct pipe_screen *screen;
+
+   rw = radeon_drm_winsys_create(fd);
+   if (!rw)
+      return NULL;
+
+   screen = radeonsi_screen_create(rw);
+   if (!screen)
+      return NULL;
+
+   screen = debug_screen_wrap(screen);
+
+   return screen;
+#else
+   return NULL;
+#endif
+}
+
 static struct pipe_screen *
 pipe_vmwgfx_create_screen(int fd)
 {
@@ -183,21 +207,43 @@ pipe_vmwgfx_create_screen(int fd)
 #endif
 }
 
+static struct pipe_screen *
+pipe_freedreno_create_screen(int fd)
+{
+#if _EGL_PIPE_FREEDRENO
+   struct pipe_screen *screen;
+
+   screen = fd_drm_screen_create(fd);
+   if (!screen)
+      return NULL;
+
+   screen = debug_screen_wrap(screen);
+
+   return screen;
+#else
+   return NULL;
+#endif
+}
+
 struct pipe_screen *
 egl_pipe_create_drm_screen(const char *name, int fd)
 {
    if (strcmp(name, "i915") == 0)
       return pipe_i915_create_screen(fd);
    else if (strcmp(name, "i965") == 0)
-      return pipe_i965_create_screen(fd);
+      return pipe_ilo_create_screen(fd);
    else if (strcmp(name, "nouveau") == 0)
       return pipe_nouveau_create_screen(fd);
    else if (strcmp(name, "r300") == 0)
       return pipe_r300_create_screen(fd);
    else if (strcmp(name, "r600") == 0)
       return pipe_r600_create_screen(fd);
+   else if (strcmp(name, "radeonsi") == 0)
+      return pipe_radeonsi_create_screen(fd);
    else if (strcmp(name, "vmwgfx") == 0)
       return pipe_vmwgfx_create_screen(fd);
+   else if (strcmp(name, "kgsl") == 0)
+      return pipe_freedreno_create_screen(fd);
    else
       return NULL;
 }