projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added few more stubs so that control reaches to DestroyDevice().
[mesa.git]
/
src
/
egl
/
drivers
/
dri2
/
platform_drm.c
diff --git
a/src/egl/drivers/dri2/platform_drm.c
b/src/egl/drivers/dri2/platform_drm.c
index 551b939212539786ced19db872d200b7d10006db..a0760dfebbb0b81f4d11e4d0791bbc78ec295042 100644
(file)
--- a/
src/egl/drivers/dri2/platform_drm.c
+++ b/
src/egl/drivers/dri2/platform_drm.c
@@
-36,8
+36,9
@@
#include <fcntl.h>
#include <unistd.h>
#include <fcntl.h>
#include <unistd.h>
+#include "util/os_file.h"
+
#include "egl_dri2.h"
#include "egl_dri2.h"
-#include "egl_dri2_fallbacks.h"
#include "loader.h"
static struct gbm_bo *
#include "loader.h"
static struct gbm_bo *
@@
-137,9
+138,8
@@
dri2_drm_config_is_compatible(struct dri2_egl_display *dri2_dpy,
}
static _EGLSurface *
}
static _EGLSurface *
-dri2_drm_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLConfig *conf, void *native_surface,
- const EGLint *attrib_list)
+dri2_drm_create_window_surface(_EGLDisplay *disp, _EGLConfig *conf,
+ void *native_surface, const EGLint *attrib_list)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
struct dri2_egl_config *dri2_conf = dri2_egl_config(conf);
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
struct dri2_egl_config *dri2_conf = dri2_egl_config(conf);
@@
-148,8
+148,6
@@
dri2_drm_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
struct gbm_dri_surface *surf;
const __DRIconfig *config;
struct gbm_dri_surface *surf;
const __DRIconfig *config;
- (void) drv;
-
dri2_surf = calloc(1, sizeof *dri2_surf);
if (!dri2_surf) {
_eglError(EGL_BAD_ALLOC, "dri2_create_surface");
dri2_surf = calloc(1, sizeof *dri2_surf);
if (!dri2_surf) {
_eglError(EGL_BAD_ALLOC, "dri2_create_surface");
@@
-191,9
+189,8
@@
dri2_drm_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
}
static _EGLSurface *
}
static _EGLSurface *
-dri2_drm_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLConfig *conf, void *native_window,
- const EGLint *attrib_list)
+dri2_drm_create_pixmap_surface(_EGLDisplay *disp, _EGLConfig *conf,
+ void *native_window, const EGLint *attrib_list)
{
/* From the EGL_MESA_platform_gbm spec, version 5:
*
{
/* From the EGL_MESA_platform_gbm spec, version 5:
*
@@
-206,7
+203,7
@@
dri2_drm_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
}
static EGLBoolean
}
static EGLBoolean
-dri2_drm_destroy_surface(_EGLD
river *drv, _EGLD
isplay *disp, _EGLSurface *surf)
+dri2_drm_destroy_surface(_EGLDisplay *disp, _EGLSurface *surf)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
@@
-417,7
+414,7
@@
dri2_drm_flush_front_buffer(__DRIdrawable * driDrawable, void *loaderPrivate)
}
static EGLBoolean
}
static EGLBoolean
-dri2_drm_swap_buffers(_EGLD
river *drv, _EGLD
isplay *disp, _EGLSurface *draw)
+dri2_drm_swap_buffers(_EGLDisplay *disp, _EGLSurface *draw)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw);
@@
-449,8
+446,7
@@
dri2_drm_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
}
static EGLint
}
static EGLint
-dri2_drm_query_buffer_age(_EGLDriver *drv,
- _EGLDisplay *disp, _EGLSurface *surface)
+dri2_drm_query_buffer_age(_EGLDisplay *disp, _EGLSurface *surface)
{
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surface);
{
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surface);
@@
-489,17
+485,14
@@
dri2_drm_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
}
static _EGLImage *
}
static _EGLImage *
-dri2_drm_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLContext *ctx, EGLenum target,
+dri2_drm_create_image_khr(_EGLDisplay *disp, _EGLContext *ctx, EGLenum target,
EGLClientBuffer buffer, const EGLint *attr_list)
{
EGLClientBuffer buffer, const EGLint *attr_list)
{
- (void) drv;
-
switch (target) {
case EGL_NATIVE_PIXMAP_KHR:
return dri2_drm_create_image_khr_pixmap(disp, ctx, buffer, attr_list);
default:
switch (target) {
case EGL_NATIVE_PIXMAP_KHR:
return dri2_drm_create_image_khr_pixmap(disp, ctx, buffer, attr_list);
default:
- return dri2_create_image_khr(d
rv, d
isp, ctx, target, buffer, attr_list);
+ return dri2_create_image_khr(disp, ctx, target, buffer, attr_list);
}
}
}
}
@@
-609,7
+602,7
@@
swrast_get_image(__DRIdrawable *driDrawable,
}
static EGLBoolean
}
static EGLBoolean
-drm_add_configs_for_visuals(_EGLD
river *drv, _EGLD
isplay *disp)
+drm_add_configs_for_visuals(_EGLDisplay *disp)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
const struct gbm_dri_visual *visuals = dri2_dpy->gbm_dri->visual_table;
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
const struct gbm_dri_visual *visuals = dri2_dpy->gbm_dri->visual_table;
@@
-658,8
+651,6
@@
drm_add_configs_for_visuals(_EGLDriver *drv, _EGLDisplay *disp)
}
}
}
}
- dri2_finalize_config_surface_types(disp);
-
for (unsigned i = 0; i < ARRAY_SIZE(format_count); i++) {
if (!format_count[i]) {
struct gbm_format_name_desc desc;
for (unsigned i = 0; i < ARRAY_SIZE(format_count); i++) {
if (!format_count[i]) {
struct gbm_format_name_desc desc;
@@
-675,32
+666,21
@@
static const struct dri2_egl_display_vtbl dri2_drm_display_vtbl = {
.authenticate = dri2_drm_authenticate,
.create_window_surface = dri2_drm_create_window_surface,
.create_pixmap_surface = dri2_drm_create_pixmap_surface,
.authenticate = dri2_drm_authenticate,
.create_window_surface = dri2_drm_create_window_surface,
.create_pixmap_surface = dri2_drm_create_pixmap_surface,
- .create_pbuffer_surface = dri2_fallback_create_pbuffer_surface,
.destroy_surface = dri2_drm_destroy_surface,
.create_image = dri2_drm_create_image_khr,
.swap_buffers = dri2_drm_swap_buffers,
.destroy_surface = dri2_drm_destroy_surface,
.create_image = dri2_drm_create_image_khr,
.swap_buffers = dri2_drm_swap_buffers,
- .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage,
- .swap_buffers_region = dri2_fallback_swap_buffers_region,
- .post_sub_buffer = dri2_fallback_post_sub_buffer,
- .copy_buffers = dri2_fallback_copy_buffers,
.query_buffer_age = dri2_drm_query_buffer_age,
.query_buffer_age = dri2_drm_query_buffer_age,
- .create_wayland_buffer_from_image = dri2_fallback_create_wayland_buffer_from_image,
- .get_sync_values = dri2_fallback_get_sync_values,
.get_dri_drawable = dri2_surface_get_dri_drawable,
};
EGLBoolean
.get_dri_drawable = dri2_surface_get_dri_drawable,
};
EGLBoolean
-dri2_initialize_drm(_EGLD
river *drv, _EGLD
isplay *disp)
+dri2_initialize_drm(_EGLDisplay *disp)
{
_EGLDevice *dev;
struct dri2_egl_display *dri2_dpy;
struct gbm_device *gbm;
const char *err;
{
_EGLDevice *dev;
struct dri2_egl_display *dri2_dpy;
struct gbm_device *gbm;
const char *err;
- /* Not supported yet */
- if (disp->Options.ForceSoftware)
- return EGL_FALSE;
-
dri2_dpy = calloc(1, sizeof *dri2_dpy);
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
dri2_dpy = calloc(1, sizeof *dri2_dpy);
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
@@
-721,7
+701,7
@@
dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
}
dri2_dpy->own_device = true;
} else {
}
dri2_dpy->own_device = true;
} else {
- dri2_dpy->fd =
fcntl(gbm_device_get_fd(gbm), F_DUPFD_CLOEXEC, 3
);
+ dri2_dpy->fd =
os_dupfd_cloexec(gbm_device_get_fd(gbm)
);
if (dri2_dpy->fd < 0) {
err = "DRI2: failed to fcntl() existing gbm device";
goto cleanup;
if (dri2_dpy->fd < 0) {
err = "DRI2: failed to fcntl() existing gbm device";
goto cleanup;
@@
-734,7
+714,7
@@
dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
goto cleanup;
}
goto cleanup;
}
- dev = _eglAddDevice(dri2_dpy->fd,
fals
e);
+ dev = _eglAddDevice(dri2_dpy->fd,
disp->Options.ForceSoftwar
e);
if (!dev) {
err = "DRI2: failed to find EGLDevice";
goto cleanup;
if (!dev) {
err = "DRI2: failed to find EGLDevice";
goto cleanup;
@@
-786,7
+766,7
@@
dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
dri2_setup_screen(disp);
dri2_setup_screen(disp);
- if (!drm_add_configs_for_visuals(d
rv, d
isp)) {
+ if (!drm_add_configs_for_visuals(disp)) {
err = "DRI2: failed to add configs";
goto cleanup;
}
err = "DRI2: failed to add configs";
goto cleanup;
}
@@
-798,7
+778,7
@@
dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
#ifdef HAVE_WAYLAND_PLATFORM
dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
#endif
#ifdef HAVE_WAYLAND_PLATFORM
dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
#endif
- dri2_set_WL_bind_wayland_display(d
rv, d
isp);
+ dri2_set_WL_bind_wayland_display(disp);
/* Fill vtbl last to prevent accidentally calling virtual function during
* initialization.
/* Fill vtbl last to prevent accidentally calling virtual function during
* initialization.