diff options
Diffstat (limited to 'src/gallium/targets/dri-i915/target.c')
-rw-r--r-- | src/gallium/targets/dri-i915/target.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/gallium/targets/dri-i915/target.c b/src/gallium/targets/dri-i915/target.c new file mode 100644 index 00000000000..5ae6ca367d8 --- /dev/null +++ b/src/gallium/targets/dri-i915/target.c @@ -0,0 +1,30 @@ + +#include "state_tracker/drm_driver.h" +#include "target-helpers/inline_wrapper_sw_helper.h" +#include "target-helpers/inline_debug_helper.h" +#include "i915/drm/i915_drm_public.h" +#include "i915/i915_public.h" + +static struct pipe_screen * +create_screen(int fd) +{ + struct i915_winsys *iws; + struct pipe_screen *screen; + + iws = i915_drm_winsys_create(fd); + if (!iws) + return NULL; + + screen = i915_screen_create(iws); + if (!screen) + return NULL; + + if (debug_get_bool_option("I915_SOFTWARE", FALSE)) + screen = sw_screen_wrap(screen); + + screen = debug_screen_wrap(screen); + + return screen; +} + +DRM_DRIVER_DESCRIPTOR("i915", "i915", create_screen) |