summaryrefslogtreecommitdiff
path: root/src/egl
diff options
context:
space:
mode:
authorYogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com>2022-12-01 14:59:34 +0530
committerMarge Bot <emma+marge@anholt.net>2023-01-24 12:51:35 +0000
commitc712419c1a1549562aea73c9533ce40edfc7b163 (patch)
tree6f8f84a2946d23344c8b0c2771a299deb73116d9 /src/egl
parent967b9ad084ecf28f639aeb21b5bdf76813e65a8a (diff)
downloadmesa-c712419c1a1549562aea73c9533ce40edfc7b163.tar.gz
egl: add render_gpu tag to dri2_dpy->fd and dri2_dpy->dri_screen variable
v1: add render_gpu_tag (Pierre-Eric) Signed-off-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com> Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13422>
Diffstat (limited to 'src/egl')
-rw-r--r--src/egl/drivers/dri2/egl_dri2.c80
-rw-r--r--src/egl/drivers/dri2/egl_dri2.h6
-rw-r--r--src/egl/drivers/dri2/platform_android.c40
-rw-r--r--src/egl/drivers/dri2/platform_device.c18
-rw-r--r--src/egl/drivers/dri2/platform_drm.c20
-rw-r--r--src/egl/drivers/dri2/platform_surfaceless.c26
-rw-r--r--src/egl/drivers/dri2/platform_wayland.c46
-rw-r--r--src/egl/drivers/dri2/platform_x11.c26
-rw-r--r--src/egl/drivers/dri2/platform_x11_dri3.c25
9 files changed, 145 insertions, 142 deletions
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index dcdf0b3d4f4..46ebaa37256 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -819,7 +819,7 @@ static int
get_screen_param(_EGLDisplay *disp, enum pipe_cap param)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
- struct dri_screen *screen = dri_screen(dri2_dpy->dri_screen);
+ struct dri_screen *screen = dri_screen(dri2_dpy->dri_screen_render_gpu);
return screen->base.screen->get_param(screen->base.screen, param);
}
@@ -827,7 +827,7 @@ void
dri2_setup_screen(_EGLDisplay *disp)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
- struct dri_screen *screen = dri_screen(dri2_dpy->dri_screen);
+ struct dri_screen *screen = dri_screen(dri2_dpy->dri_screen_render_gpu);
struct pipe_screen *pscreen = screen->base.screen;
unsigned int api_mask = screen->api_mask;
@@ -883,7 +883,7 @@ dri2_setup_screen(_EGLDisplay *disp)
if (dri2_dpy->fence->get_fence_from_cl_event)
disp->Extensions.KHR_cl_event2 = EGL_TRUE;
unsigned capabilities =
- dri2_dpy->fence->get_capabilities(dri2_dpy->dri_screen);
+ dri2_dpy->fence->get_capabilities(dri2_dpy->dri_screen_render_gpu);
disp->Extensions.ANDROID_native_fence_sync =
(capabilities & __DRI_FENCE_CAP_NATIVE_FD) != 0;
}
@@ -898,7 +898,7 @@ dri2_setup_screen(_EGLDisplay *disp)
dri2_dpy->image->getCapabilities != NULL) {
int capabilities;
- capabilities = dri2_dpy->image->getCapabilities(dri2_dpy->dri_screen);
+ capabilities = dri2_dpy->image->getCapabilities(dri2_dpy->dri_screen_render_gpu);
disp->Extensions.MESA_drm_image = (capabilities & __DRI_IMAGE_CAP_GLOBAL_NAMES) != 0;
if (dri2_dpy->image->base.version >= 11)
@@ -946,7 +946,7 @@ dri2_setup_swap_interval(_EGLDisplay *disp, int max_swap_interval)
/* Allow driconf to override applications.*/
if (dri2_dpy->config)
- dri2_dpy->config->configQueryi(dri2_dpy->dri_screen,
+ dri2_dpy->config->configQueryi(dri2_dpy->dri_screen_render_gpu,
"vblank_mode", &vblank_mode);
switch (vblank_mode) {
case DRI_CONF_VBLANK_NEVER:
@@ -1000,14 +1000,15 @@ dri2_create_screen(_EGLDisplay *disp)
}
}
- int screen_fd = dri2_dpy->swrast ? -1 : dri2_dpy->fd;
- dri2_dpy->dri_screen = dri2_dpy->mesa->createNewScreen(0, screen_fd,
- dri2_dpy->loader_extensions,
- dri2_dpy->driver_extensions,
- &dri2_dpy->driver_configs,
- disp);
+ int screen_fd = dri2_dpy->swrast ? -1 : dri2_dpy->fd_render_gpu;
+ dri2_dpy->dri_screen_render_gpu =
+ dri2_dpy->mesa->createNewScreen(0, screen_fd,
+ dri2_dpy->loader_extensions,
+ dri2_dpy->driver_extensions,
+ &dri2_dpy->driver_configs,
+ disp);
- if (dri2_dpy->dri_screen == NULL) {
+ if (dri2_dpy->dri_screen_render_gpu == NULL) {
_eglLog(_EGL_WARNING, "egl: failed to create dri2 screen");
return EGL_FALSE;
}
@@ -1022,7 +1023,7 @@ dri2_setup_extensions(_EGLDisplay *disp)
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
const __DRIextension **extensions;
- extensions = dri2_dpy->core->getExtensions(dri2_dpy->dri_screen);
+ extensions = dri2_dpy->core->getExtensions(dri2_dpy->dri_screen_render_gpu);
if (dri2_dpy->image_driver || dri2_dpy->dri2) {
if (!loader_bind_extensions(dri2_dpy, dri2_core_extensions, ARRAY_SIZE(dri2_core_extensions), extensions))
@@ -1143,13 +1144,13 @@ dri2_display_destroy(_EGLDisplay *disp)
if (dri2_dpy->vtbl && dri2_dpy->vtbl->close_screen_notify)
dri2_dpy->vtbl->close_screen_notify(disp);
- dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen);
+ dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen_render_gpu);
if (dri2_dpy->dri_screen_display_gpu)
dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen_display_gpu);
}
- if (dri2_dpy->fd >= 0)
- close(dri2_dpy->fd);
+ if (dri2_dpy->fd_render_gpu >= 0)
+ close(dri2_dpy->fd_render_gpu);
if (dri2_dpy->fd_display_gpu >= 0)
close(dri2_dpy->fd_display_gpu);
@@ -1207,7 +1208,7 @@ dri2_egl_surface_alloc_local_buffer(struct dri2_egl_surface *dri2_surf,
if (!dri2_surf->local_buffers[att]) {
dri2_surf->local_buffers[att] =
- dri2_dpy->dri2->allocateBuffer(dri2_dpy->dri_screen, att, format,
+ dri2_dpy->dri2->allocateBuffer(dri2_dpy->dri_screen_render_gpu, att, format,
dri2_surf->base.Width, dri2_surf->base.Height);
}
@@ -1222,7 +1223,7 @@ dri2_egl_surface_free_local_buffers(struct dri2_egl_surface *dri2_surf)
for (int i = 0; i < ARRAY_SIZE(dri2_surf->local_buffers); i++) {
if (dri2_surf->local_buffers[i]) {
- dri2_dpy->dri2->releaseBuffer(dri2_dpy->dri_screen,
+ dri2_dpy->dri2->releaseBuffer(dri2_dpy->dri_screen_render_gpu,
dri2_surf->local_buffers[i]);
dri2_surf->local_buffers[i] = NULL;
}
@@ -1460,7 +1461,7 @@ dri2_create_context(_EGLDisplay *disp, _EGLConfig *conf,
goto cleanup;
dri2_ctx->dri_context =
- dri2_dpy->mesa->createContext(dri2_dpy->dri_screen,
+ dri2_dpy->mesa->createContext(dri2_dpy->dri_screen_render_gpu,
api,
dri_config,
shared,
@@ -1511,7 +1512,7 @@ dri2_init_surface(_EGLSurface *surf, _EGLDisplay *disp, EGLint type,
dri2_surf->out_fence_fd = -1;
dri2_surf->enable_out_fence = false;
if (dri2_dpy->fence &&
- (dri2_dpy->fence->get_capabilities(dri2_dpy->dri_screen) &
+ (dri2_dpy->fence->get_capabilities(dri2_dpy->dri_screen_render_gpu) &
__DRI_FENCE_CAP_NATIVE_FD)) {
dri2_surf->enable_out_fence = enable_out_fence;
}
@@ -1566,9 +1567,9 @@ dri2_surf_update_fence_fd(_EGLContext *ctx,
fence = dri2_dpy->fence->create_fence_fd(dri_ctx, -1);
if (fence) {
- fence_fd = dri2_dpy->fence->get_fence_fd(dri2_dpy->dri_screen,
+ fence_fd = dri2_dpy->fence->get_fence_fd(dri2_dpy->dri_screen_render_gpu,
fence);
- dri2_dpy->fence->destroy_fence(dri2_dpy->dri_screen, fence);
+ dri2_dpy->fence->destroy_fence(dri2_dpy->dri_screen_render_gpu, fence);
}
dri2_surface_set_out_fence_fd(surf, fence_fd);
}
@@ -1581,7 +1582,8 @@ dri2_create_drawable(struct dri2_egl_display *dri2_dpy,
{
if (dri2_dpy->kopper) {
dri2_surf->dri_drawable =
- dri2_dpy->kopper->createNewDrawable(dri2_dpy->dri_screen, config, loaderPrivate,
+ dri2_dpy->kopper->createNewDrawable(dri2_dpy->dri_screen_render_gpu,
+ config, loaderPrivate,
dri2_surf->base.Type == EGL_PBUFFER_BIT ||
dri2_surf->base.Type == EGL_PIXMAP_BIT);
} else {
@@ -1595,7 +1597,7 @@ dri2_create_drawable(struct dri2_egl_display *dri2_dpy,
else
return _eglError(EGL_BAD_ALLOC, "no createNewDrawable");
- dri2_surf->dri_drawable = createNewDrawable(dri2_dpy->dri_screen,
+ dri2_surf->dri_drawable = createNewDrawable(dri2_dpy->dri_screen_render_gpu,
config, loaderPrivate);
}
if (dri2_surf->dri_drawable == NULL)
@@ -2434,7 +2436,7 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
}
dri_image =
- dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen_render_gpu,
attrs.Width,
attrs.Height,
format,
@@ -2683,7 +2685,7 @@ dri2_query_dma_buf_formats(_EGLDisplay *disp, EGLint max,
dri2_dpy->image->queryDmaBufFormats == NULL)
goto fail;
- if (!dri2_dpy->image->queryDmaBufFormats(dri2_dpy->dri_screen, max,
+ if (!dri2_dpy->image->queryDmaBufFormats(dri2_dpy->dri_screen_render_gpu, max,
formats, count))
goto fail;
@@ -2730,7 +2732,7 @@ dri2_query_dma_buf_modifiers(_EGLDisplay *disp, EGLint format,
return EGL_FALSE;
}
- if (dri2_dpy->image->queryDmaBufModifiers(dri2_dpy->dri_screen, format,
+ if (dri2_dpy->image->queryDmaBufModifiers(dri2_dpy->dri_screen_render_gpu, format,
max, modifiers,
(unsigned int *) external_only,
count) == false)
@@ -2814,7 +2816,7 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
modifier = DRM_FORMAT_MOD_INVALID;
dri_image =
- dri2_dpy->image->createImageFromDmaBufs3(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImageFromDmaBufs3(dri2_dpy->dri_screen_render_gpu,
attrs.Width, attrs.Height, attrs.DMABufFourCC.Value,
modifier, fds, num_fds, pitches, offsets,
attrs.DMABufYuvColorSpaceHint.Value,
@@ -2832,7 +2834,7 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
return EGL_NO_IMAGE_KHR;
}
dri_image =
- dri2_dpy->image->createImageFromDmaBufs2(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImageFromDmaBufs2(dri2_dpy->dri_screen_render_gpu,
attrs.Width, attrs.Height, attrs.DMABufFourCC.Value,
modifier, fds, num_fds, pitches, offsets,
attrs.DMABufYuvColorSpaceHint.Value,
@@ -2844,7 +2846,7 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
}
else {
dri_image =
- dri2_dpy->image->createImageFromDmaBufs(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImageFromDmaBufs(dri2_dpy->dri_screen_render_gpu,
attrs.Width, attrs.Height, attrs.DMABufFourCC.Value,
fds, num_fds, pitches, offsets,
attrs.DMABufYuvColorSpaceHint.Value,
@@ -2923,7 +2925,7 @@ dri2_create_drm_image_mesa(_EGLDisplay *disp, const EGLint *attr_list)
_eglInitImage(&dri2_img->base, disp);
dri2_img->dri_image =
- dri2_dpy->image->createImage(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImage(dri2_dpy->dri_screen_render_gpu,
attrs.Width, attrs.Height,
format, dri_use, dri2_img);
if (dri2_img->dri_image == NULL) {
@@ -3139,7 +3141,7 @@ dri2_wl_reference_buffer(void *user_data, uint32_t name, int fd,
int dri_components = 0;
if (fd == -1)
- img = dri2_dpy->image->createImageFromNames(dri2_dpy->dri_screen,
+ img = dri2_dpy->image->createImageFromNames(dri2_dpy->dri_screen_render_gpu,
buffer->width,
buffer->height,
buffer->format,
@@ -3148,7 +3150,7 @@ dri2_wl_reference_buffer(void *user_data, uint32_t name, int fd,
buffer->offset,
NULL);
else
- img = dri2_dpy->image->createImageFromFds(dri2_dpy->dri_screen,
+ img = dri2_dpy->image->createImageFromFds(dri2_dpy->dri_screen_render_gpu,
buffer->width,
buffer->height,
buffer->format,
@@ -3199,13 +3201,13 @@ dri2_bind_wayland_display_wl(_EGLDisplay *disp, struct wl_display *wl_dpy)
if (dri2_dpy->wl_server_drm)
goto fail;
- device_name = drmGetRenderDeviceNameFromFd(dri2_dpy->fd);
+ device_name = drmGetRenderDeviceNameFromFd(dri2_dpy->fd_render_gpu);
if (!device_name)
device_name = strdup(dri2_dpy->device_name);
if (!device_name)
goto fail;
- if (drmGetCap(dri2_dpy->fd, DRM_CAP_PRIME, &cap) == 0 &&
+ if (drmGetCap(dri2_dpy->fd_render_gpu, DRM_CAP_PRIME, &cap) == 0 &&
cap == (DRM_PRIME_CAP_IMPORT | DRM_PRIME_CAP_EXPORT) &&
dri2_dpy->image->base.version >= 7 &&
dri2_dpy->image->createImageFromFds != NULL)
@@ -3302,7 +3304,7 @@ dri2_egl_unref_sync(struct dri2_egl_display *dri2_dpy,
}
if (dri2_sync->fence)
- dri2_dpy->fence->destroy_fence(dri2_dpy->dri_screen, dri2_sync->fence);
+ dri2_dpy->fence->destroy_fence(dri2_dpy->dri_screen_render_gpu, dri2_sync->fence);
free(dri2_sync);
}
@@ -3342,7 +3344,7 @@ dri2_create_sync(_EGLDisplay *disp, EGLenum type, const EGLAttrib *attrib_list)
case EGL_SYNC_CL_EVENT_KHR:
dri2_sync->fence = dri2_dpy->fence->get_fence_from_cl_event(
- dri2_dpy->dri_screen,
+ dri2_dpy->dri_screen_render_gpu,
dri2_sync->base.CLEvent);
/* this can only happen if the cl_event passed in is invalid. */
if (!dri2_sync->fence) {
@@ -3451,7 +3453,7 @@ dri2_dup_native_fence_fd(_EGLDisplay *disp, _EGLSync *sync)
/* try to retrieve the actual native fence fd.. if rendering is
* not flushed this will just return -1, aka NO_NATIVE_FENCE_FD:
*/
- sync->SyncFd = dri2_dpy->fence->get_fence_fd(dri2_dpy->dri_screen,
+ sync->SyncFd = dri2_dpy->fence->get_fence_fd(dri2_dpy->dri_screen_render_gpu,
dri2_sync->fence);
}
@@ -3474,7 +3476,7 @@ dri2_set_blob_cache_funcs(_EGLDisplay *disp,
EGLGetBlobFuncANDROID get)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display_lock(disp);
- dri2_dpy->blob->set_cache_funcs(dri2_dpy->dri_screen, set, get);
+ dri2_dpy->blob->set_cache_funcs(dri2_dpy->dri_screen_render_gpu, set, get);
mtx_unlock(&dri2_dpy->lock);
}
diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h
index 31c0d405ca7..d97371c14b1 100644
--- a/src/egl/drivers/dri2/egl_dri2.h
+++ b/src/egl/drivers/dri2/egl_dri2.h
@@ -222,7 +222,7 @@ struct dri2_egl_display
int dri2_major;
int dri2_minor;
- __DRIscreen *dri_screen;
+ __DRIscreen *dri_screen_render_gpu;
__DRIscreen *dri_screen_display_gpu;
bool own_dri_screen;
const __DRIconfig **driver_configs;
@@ -244,7 +244,7 @@ struct dri2_egl_display
const __DRI2interopExtension *interop;
const __DRIconfigOptionsExtension *configOptions;
const __DRImutableRenderBufferDriverExtension *mutable_render_buffer;
- int fd;
+ int fd_render_gpu;
int fd_display_gpu;
/* dri2_initialize/dri2_terminate increment/decrement this count, so does
@@ -613,7 +613,7 @@ dri2_set_WL_bind_wayland_display(_EGLDisplay *disp)
int capabilities;
capabilities =
- dri2_dpy->image->getCapabilities(dri2_dpy->dri_screen);
+ dri2_dpy->image->getCapabilities(dri2_dpy->dri_screen_render_gpu);
disp->Extensions.WL_bind_wayland_display =
(capabilities & __DRI_IMAGE_CAP_GLOBAL_NAMES) != 0;
} else {
diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c
index 937a9415f3a..7a2161b8091 100644
--- a/src/egl/drivers/dri2/platform_android.c
+++ b/src/egl/drivers/dri2/platform_android.c
@@ -419,7 +419,7 @@ droid_create_image_from_buffer_info(struct dri2_egl_display *dri2_dpy,
if (dri2_dpy->image->base.version >= 15 &&
dri2_dpy->image->createImageFromDmaBufs2 != NULL) {
return dri2_dpy->image->createImageFromDmaBufs2(
- dri2_dpy->dri_screen, buf_info->width, buf_info->height,
+ dri2_dpy->dri_screen_render_gpu, buf_info->width, buf_info->height,
buf_info->drm_fourcc, buf_info->modifier, buf_info->fds,
buf_info->num_planes, buf_info->pitches, buf_info->offsets,
buf_info->yuv_color_space, buf_info->sample_range,
@@ -428,7 +428,7 @@ droid_create_image_from_buffer_info(struct dri2_egl_display *dri2_dpy,
}
return dri2_dpy->image->createImageFromDmaBufs(
- dri2_dpy->dri_screen, buf_info->width, buf_info->height,
+ dri2_dpy->dri_screen_render_gpu, buf_info->width, buf_info->height,
buf_info->drm_fourcc, buf_info->fds, buf_info->num_planes,
buf_info->pitches, buf_info->offsets, buf_info->yuv_color_space,
buf_info->sample_range, buf_info->horizontal_siting,
@@ -835,7 +835,7 @@ get_front_bo(struct dri2_egl_surface *dri2_surf, unsigned int format)
_eglLog(_EGL_DEBUG, "DRI driver requested unsupported front buffer for window surface");
} else if (dri2_surf->base.Type == EGL_PBUFFER_BIT) {
dri2_surf->dri_image_front =
- dri2_dpy->image->createImage(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImage(dri2_dpy->dri_screen_render_gpu,
dri2_surf->base.Width,
dri2_surf->base.Height,
format,
@@ -1066,7 +1066,7 @@ droid_create_image_from_name(_EGLDisplay *disp,
return NULL;
return
- dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen_render_gpu,
buf->width,
buf->height,
format,
@@ -1469,7 +1469,7 @@ droid_load_driver(_EGLDisplay *disp, bool swrast)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
- dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
+ dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd_render_gpu);
if (dri2_dpy->driver_name == NULL)
return false;
@@ -1574,11 +1574,11 @@ droid_open_device(_EGLDisplay *disp, bool swrast)
return EGL_FALSE;
}
- dri2_dpy->fd = os_dupfd_cloexec(fd);
- if (dri2_dpy->fd < 0)
+ dri2_dpy->fd_render_gpu = os_dupfd_cloexec(fd);
+ if (dri2_dpy->fd_render_gpu < 0)
return EGL_FALSE;
- if (drmGetNodeTypeFromFd(dri2_dpy->fd) == DRM_NODE_RENDER)
+ if (drmGetNodeTypeFromFd(dri2_dpy->fd_render_gpu) == DRM_NODE_RENDER)
return EGL_FALSE;
return droid_probe_device(disp, swrast);
@@ -1614,8 +1614,8 @@ droid_open_device(_EGLDisplay *disp, bool swrast)
if (!(device->available_nodes & (1 << node_type)))
continue;
- dri2_dpy->fd = loader_open_device(device->nodes[node_type]);
- if (dri2_dpy->fd < 0) {
+ dri2_dpy->fd_render_gpu = loader_open_device(device->nodes[node_type]);
+ if (dri2_dpy->fd_render_gpu < 0) {
_eglLog(_EGL_WARNING, "%s() Failed to open DRM device %s",
__func__, device->nodes[node_type]);
continue;
@@ -1625,18 +1625,18 @@ droid_open_device(_EGLDisplay *disp, bool swrast)
* Otherwise we fall-back the first device that is supported.
*/
if (vendor_name) {
- if (droid_filter_device(disp, dri2_dpy->fd, vendor_name)) {
+ if (droid_filter_device(disp, dri2_dpy->fd_render_gpu, vendor_name)) {
/* Device does not match - try next device */
- close(dri2_dpy->fd);
- dri2_dpy->fd = -1;
+ close(dri2_dpy->fd_render_gpu);
+ dri2_dpy->fd_render_gpu = -1;
continue;
}
/* If the requested device matches - use it. Regardless if
* init fails, do not fall-back to any other device.
*/
if (!droid_probe_device(disp, false)) {
- close(dri2_dpy->fd);
- dri2_dpy->fd = -1;
+ close(dri2_dpy->fd_render_gpu);
+ dri2_dpy->fd_render_gpu = -1;
}
break;
@@ -1645,12 +1645,12 @@ droid_open_device(_EGLDisplay *disp, bool swrast)
break;
/* No explicit request - attempt the next device */
- close(dri2_dpy->fd);
- dri2_dpy->fd = -1;
+ close(dri2_dpy->fd_render_gpu);
+ dri2_dpy->fd_render_gpu = -1;
}
drmFreeDevices(devices, num_devices);
- if (dri2_dpy->fd < 0) {
+ if (dri2_dpy->fd_render_gpu < 0) {
_eglLog(_EGL_WARNING, "Failed to open %s DRM device",
vendor_name ? "desired": "any");
return EGL_FALSE;
@@ -1675,7 +1675,7 @@ dri2_initialize_android(_EGLDisplay *disp)
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
ret = hw_get_module(GRALLOC_HARDWARE_MODULE_ID,
(const hw_module_t **)&dri2_dpy->gralloc);
@@ -1692,7 +1692,7 @@ dri2_initialize_android(_EGLDisplay *disp)
goto cleanup;
}
- dev = _eglAddDevice(dri2_dpy->fd, false);
+ dev = _eglAddDevice(dri2_dpy->fd_render_gpu, false);
if (!dev) {
err = "DRI2: failed to find EGLDevice";
goto cleanup;
diff --git a/src/egl/drivers/dri2/platform_device.c b/src/egl/drivers/dri2/platform_device.c
index 1181fb08053..d107697ae51 100644
--- a/src/egl/drivers/dri2/platform_device.c
+++ b/src/egl/drivers/dri2/platform_device.c
@@ -49,7 +49,7 @@ device_alloc_image(struct dri2_egl_display *dri2_dpy,
struct dri2_egl_surface *dri2_surf)
{
return dri2_dpy->image->createImage(
- dri2_dpy->dri_screen,
+ dri2_dpy->dri_screen_render_gpu,
dri2_surf->base.Width,
dri2_surf->base.Height,
dri2_surf->visual,
@@ -279,11 +279,11 @@ device_probe_device(_EGLDisplay *disp)
if (request_software)
_eglLog(_EGL_WARNING, "Not allowed to force software rendering when "
"API explicitly selects a hardware device.");
- dri2_dpy->fd = device_get_fd(disp, disp->Device);
- if (dri2_dpy->fd < 0)
+ dri2_dpy->fd_render_gpu = device_get_fd(disp, disp->Device);
+ if (dri2_dpy->fd_render_gpu < 0)
return false;
- dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
+ dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd_render_gpu);
if (!dri2_dpy->driver_name)
goto err_name;
@@ -310,8 +310,8 @@ err_load:
dri2_dpy->driver_name = NULL;
err_name:
- close(dri2_dpy->fd);
- dri2_dpy->fd = -1;
+ close(dri2_dpy->fd_render_gpu);
+ dri2_dpy->fd_render_gpu = -1;
return false;
}
@@ -321,7 +321,7 @@ device_probe_device_sw(_EGLDisplay *disp)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->driver_name = strdup(disp->Options.Zink ? "zink" : "swrast");
if (!dri2_dpy->driver_name)
return false;
@@ -351,7 +351,7 @@ dri2_initialize_device(_EGLDisplay *disp)
/* Extension requires a PlatformDisplay - the EGLDevice. */
dev = disp->PlatformDisplay;
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
disp->Device = dev;
disp->DriverData = (void *) dri2_dpy;
@@ -379,7 +379,7 @@ dri2_initialize_device(_EGLDisplay *disp)
dri2_setup_screen(disp);
#ifdef HAVE_WAYLAND_PLATFORM
- dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
+ dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd_render_gpu);
#endif
dri2_set_WL_bind_wayland_display(disp);
diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c
index ce906e97714..e506288bba1 100644
--- a/src/egl/drivers/dri2/platform_drm.c
+++ b/src/egl/drivers/dri2/platform_drm.c
@@ -507,7 +507,7 @@ dri2_drm_authenticate(_EGLDisplay *disp, uint32_t id)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
- return drmAuthMagic(dri2_dpy->fd, id);
+ return drmAuthMagic(dri2_dpy->fd_render_gpu, id);
}
static void
@@ -691,7 +691,7 @@ dri2_initialize_drm(_EGLDisplay *disp)
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
disp->DriverData = (void *) dri2_dpy;
@@ -700,16 +700,16 @@ dri2_initialize_drm(_EGLDisplay *disp)
char buf[64];
int n = snprintf(buf, sizeof(buf), DRM_DEV_NAME, DRM_DIR_NAME, 0);
if (n != -1 && n < sizeof(buf))
- dri2_dpy->fd = loader_open_device(buf);
- gbm = gbm_create_device(dri2_dpy->fd);
+ dri2_dpy->fd_render_gpu = loader_open_device(buf);
+ gbm = gbm_create_device(dri2_dpy->fd_render_gpu);
if (gbm == NULL) {
err = "DRI2: failed to create gbm device";
goto cleanup;
}
dri2_dpy->own_device = true;
} else {
- dri2_dpy->fd = os_dupfd_cloexec(gbm_device_get_fd(gbm));
- if (dri2_dpy->fd < 0) {
+ dri2_dpy->fd_render_gpu = os_dupfd_cloexec(gbm_device_get_fd(gbm));
+ if (dri2_dpy->fd_render_gpu < 0) {
err = "DRI2: failed to fcntl() existing gbm device";
goto cleanup;
}
@@ -721,7 +721,7 @@ dri2_initialize_drm(_EGLDisplay *disp)
goto cleanup;
}
- dev = _eglAddDevice(dri2_dpy->fd, dri2_dpy->gbm_dri->software);
+ dev = _eglAddDevice(dri2_dpy->fd_render_gpu, dri2_dpy->gbm_dri->software);
if (!dev) {
err = "DRI2: failed to find EGLDevice";
goto cleanup;
@@ -730,7 +730,7 @@ dri2_initialize_drm(_EGLDisplay *disp)
disp->Device = dev;
dri2_dpy->driver_name = strdup(dri2_dpy->gbm_dri->driver_name);
- dri2_dpy->is_render_node = drmGetNodeTypeFromFd(dri2_dpy->fd) == DRM_NODE_RENDER;
+ dri2_dpy->is_render_node = drmGetNodeTypeFromFd(dri2_dpy->fd_render_gpu) == DRM_NODE_RENDER;
/* render nodes cannot use Gem names, and thus do not support
* the __DRI_DRI2_LOADER extension */
@@ -746,7 +746,7 @@ dri2_initialize_drm(_EGLDisplay *disp)
}
}
- dri2_dpy->dri_screen = dri2_dpy->gbm_dri->screen;
+ dri2_dpy->dri_screen_render_gpu = dri2_dpy->gbm_dri->screen;
dri2_dpy->core = dri2_dpy->gbm_dri->core;
dri2_dpy->dri2 = dri2_dpy->gbm_dri->dri2;
dri2_dpy->swrast = dri2_dpy->gbm_dri->swrast;
@@ -786,7 +786,7 @@ dri2_initialize_drm(_EGLDisplay *disp)
disp->Extensions.EXT_buffer_age = EGL_TRUE;
#ifdef HAVE_WAYLAND_PLATFORM
- dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
+ dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd_render_gpu);
#endif
dri2_set_WL_bind_wayland_display(disp);
diff --git a/src/egl/drivers/dri2/platform_surfaceless.c b/src/egl/drivers/dri2/platform_surfaceless.c
index 82d44e3cd22..8f59aa9290c 100644
--- a/src/egl/drivers/dri2/platform_surfaceless.c
+++ b/src/egl/drivers/dri2/platform_surfaceless.c
@@ -42,7 +42,7 @@ surfaceless_alloc_image(struct dri2_egl_display *dri2_dpy,
struct dri2_egl_surface *dri2_surf)
{
return dri2_dpy->image->createImage(
- dri2_dpy->dri_screen,
+ dri2_dpy->dri_screen_render_gpu,
dri2_surf->base.Width,
dri2_surf->base.Height,
dri2_surf->visual,
@@ -250,18 +250,18 @@ surfaceless_probe_device(_EGLDisplay *disp, bool swrast)
if (!(device->available_nodes & (1 << node_type)))
continue;
- dri2_dpy->fd = loader_open_device(device->nodes[node_type]);
- if (dri2_dpy->fd < 0)
+ dri2_dpy->fd_render_gpu = loader_open_device(device->nodes[node_type]);
+ if (dri2_dpy->fd_render_gpu < 0)
continue;
- disp->Device = _eglAddDevice(dri2_dpy->fd, swrast);
+ disp->Device = _eglAddDevice(dri2_dpy->fd_render_gpu, swrast);
if (!disp->Device) {
- close(dri2_dpy->fd);
- dri2_dpy->fd = -1;
+ close(dri2_dpy->fd_render_gpu);
+ dri2_dpy->fd_render_gpu = -1;
continue;
}
- char *driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
+ char *driver_name = loader_get_driver_for_fd(dri2_dpy->fd_render_gpu);
if (swrast) {
/* Use kms swrast only with vgem / virtio_gpu.
* virtio-gpu fallbacks to software rendering when 3D features
@@ -283,8 +283,8 @@ surfaceless_probe_device(_EGLDisplay *disp, bool swrast)
free(dri2_dpy->driver_name);
dri2_dpy->driver_name = NULL;
- close(dri2_dpy->fd);
- dri2_dpy->fd = -1;
+ close(dri2_dpy->fd_render_gpu);
+ dri2_dpy->fd_render_gpu = -1;
}
drmFreeDevices(devices, num_devices);
@@ -304,8 +304,8 @@ surfaceless_probe_device_sw(_EGLDisplay *disp)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
- dri2_dpy->fd = -1;
- disp->Device = _eglAddDevice(dri2_dpy->fd, true);
+ dri2_dpy->fd_render_gpu = -1;
+ disp->Device = _eglAddDevice(dri2_dpy->fd_render_gpu, true);
assert(disp->Device);
dri2_dpy->driver_name = strdup(disp->Options.Zink ? "zink" : "swrast");
@@ -333,7 +333,7 @@ dri2_initialize_surfaceless(_EGLDisplay *disp)
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
disp->DriverData = (void *) dri2_dpy;
@@ -363,7 +363,7 @@ dri2_initialize_surfaceless(_EGLDisplay *disp)
dri2_setup_screen(disp);
#ifdef HAVE_WAYLAND_PLATFORM
- dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
+ dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd_render_gpu);
#endif
dri2_set_WL_bind_wayland_display(disp);
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index 7614389d3e4..30699836ac0 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -934,7 +934,7 @@ create_dri_image_from_dmabuf_feedback(struct dri2_egl_surface *dri2_surf,
flags |= __DRI_IMAGE_USE_SCANOUT;
dri2_surf->back->dri_image =
- loader_dri_create_image(dri2_dpy->dri_screen, dri2_dpy->image,
+ loader_dri_create_image(dri2_dpy->dri_screen_render_gpu, dri2_dpy->image,
dri2_surf->base.Width,
dri2_surf->base.Height,
dri_image_format,
@@ -972,7 +972,7 @@ create_dri_image(struct dri2_egl_surface *dri2_surf,
* then fall back to the old createImage, and hope it allocates an image
* which is acceptable to the winsys. */
dri2_surf->back->dri_image =
- loader_dri_create_image(dri2_dpy->dri_screen, dri2_dpy->image,
+ loader_dri_create_image(dri2_dpy->dri_screen_render_gpu, dri2_dpy->image,
dri2_surf->base.Width,
dri2_surf->base.Height,
dri_image_format,
@@ -1110,7 +1110,7 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
* need to make it visible to render GPU
*/
dri2_surf->back->linear_copy =
- dri2_dpy->image->createImageFromFds(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImageFromFds(dri2_dpy->dri_screen_render_gpu,
dri2_surf->base.Width,
dri2_surf->base.Height,
loader_image_format_to_fourcc(
@@ -1129,7 +1129,7 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
if (!dri2_surf->back->linear_copy) {
dri2_surf->back->linear_copy =
- loader_dri_create_image(dri2_dpy->dri_screen, dri2_dpy->image,
+ loader_dri_create_image(dri2_dpy->dri_screen_render_gpu, dri2_dpy->image,
dri2_surf->base.Width,
dri2_surf->base.Height,
linear_dri_image_format,
@@ -1776,8 +1776,8 @@ drm_handle_device(void *data, struct wl_drm *drm, const char *device)
if (!dri2_dpy->device_name)
return;
- dri2_dpy->fd = loader_open_device(dri2_dpy->device_name);
- if (dri2_dpy->fd == -1) {
+ dri2_dpy->fd_render_gpu = loader_open_device(dri2_dpy->device_name);
+ if (dri2_dpy->fd_render_gpu == -1) {
_eglLog(_EGL_WARNING, "wayland-egl: could not open %s (%s)",
dri2_dpy->device_name, strerror(errno));
free(dri2_dpy->device_name);
@@ -1785,12 +1785,12 @@ drm_handle_device(void *data, struct wl_drm *drm, const char *device)
return;
}
- if (drmGetNodeTypeFromFd(dri2_dpy->fd) == DRM_NODE_RENDER) {
+ if (drmGetNodeTypeFromFd(dri2_dpy->fd_render_gpu) == DRM_NODE_RENDER) {
dri2_dpy->authenticated = true;
} else {
- if (drmGetMagic(dri2_dpy->fd, &magic)) {
- close(dri2_dpy->fd);
- dri2_dpy->fd = -1;
+ if (drmGetMagic(dri2_dpy->fd_render_gpu, &magic)) {
+ close(dri2_dpy->fd_render_gpu);
+ dri2_dpy->fd_render_gpu = -1;
free(dri2_dpy->device_name);
dri2_dpy->device_name = NULL;
_eglLog(_EGL_WARNING, "wayland-egl: drmGetMagic failed");
@@ -1915,7 +1915,7 @@ default_dmabuf_feedback_main_device(void *data,
}
dri2_dpy->device_name = node;
- dri2_dpy->fd = fd;
+ dri2_dpy->fd_render_gpu = fd;
dri2_dpy->authenticated = true;
}
@@ -2156,7 +2156,7 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
disp->DriverData = (void *) dri2_dpy;
@@ -2213,7 +2213,7 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
/* We couldn't retrieve a render node from the dma-buf feedback (or the
* feedback was not advertised at all), so we must fallback to wl_drm. */
- if (dri2_dpy->fd == -1) {
+ if (dri2_dpy->fd_render_gpu == -1) {
/* wl_drm not advertised by compositor, so can't continue */
if (dri2_dpy->wl_drm_name == 0)
goto cleanup;
@@ -2221,7 +2221,7 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
if (dri2_dpy->wl_drm == NULL)
goto cleanup;
- if (roundtrip(dri2_dpy) < 0 || dri2_dpy->fd == -1)
+ if (roundtrip(dri2_dpy) < 0 || dri2_dpy->fd_render_gpu == -1)
goto cleanup;
if (!dri2_dpy->authenticated &&
@@ -2229,15 +2229,15 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
goto cleanup;
}
- dri2_dpy->fd_display_gpu = fcntl(dri2_dpy->fd, F_DUPFD_CLOEXEC, 3);
- dri2_dpy->fd = loader_get_user_preferred_fd(dri2_dpy->fd,
- &dri2_dpy->is_different_gpu);
+ dri2_dpy->fd_display_gpu = fcntl(dri2_dpy->fd_render_gpu, F_DUPFD_CLOEXEC, 3);
+ dri2_dpy->fd_render_gpu = loader_get_user_preferred_fd(dri2_dpy->fd_render_gpu,
+ &dri2_dpy->is_different_gpu);
if (!dri2_dpy->is_different_gpu) {
close(dri2_dpy->fd_display_gpu);
dri2_dpy->fd_display_gpu = -1;
}
- dev = _eglAddDevice(dri2_dpy->fd, false);
+ dev = _eglAddDevice(dri2_dpy->fd_render_gpu, false);
if (!dev) {
_eglError(EGL_NOT_INITIALIZED, "DRI2: failed to find EGLDevice");
goto cleanup;
@@ -2247,7 +2247,7 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
if (dri2_dpy->is_different_gpu) {
free(dri2_dpy->device_name);
- dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd);
+ dri2_dpy->device_name = loader_get_device_name_for_fd(dri2_dpy->fd_render_gpu);
if (!dri2_dpy->device_name) {
_eglError(EGL_BAD_ALLOC, "wayland-egl: failed to get device name "
"for requested GPU");
@@ -2259,9 +2259,9 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp)
* will return a render-node when the requested gpu is different
* to the server, but also if the client asks for the same gpu than
* the server by requesting its pci-id */
- dri2_dpy->is_render_node = drmGetNodeTypeFromFd(dri2_dpy->fd) == DRM_NODE_RENDER;
+ dri2_dpy->is_render_node = drmGetNodeTypeFromFd(dri2_dpy->fd_render_gpu) == DRM_NODE_RENDER;
- dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
+ dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd_render_gpu);
if (dri2_dpy->driver_name == NULL) {
_eglError(EGL_BAD_ALLOC, "DRI2: failed to get driver name");
goto cleanup;
@@ -2769,7 +2769,7 @@ dri2_initialize_wayland_swrast(_EGLDisplay *disp)
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
disp->DriverData = (void *) dri2_dpy;
if (dri2_wl_formats_init(&dri2_dpy->formats) < 0)
@@ -2784,7 +2784,7 @@ dri2_initialize_wayland_swrast(_EGLDisplay *disp)
dri2_dpy->wl_dpy = disp->PlatformDisplay;
}
- dev = _eglAddDevice(dri2_dpy->fd, true);
+ dev = _eglAddDevice(dri2_dpy->fd_render_gpu, true);
if (!dev) {
_eglError(EGL_NOT_INITIALIZED, "DRI2: failed to find EGLDevice");
goto cleanup;
diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index 93a7d6a3c70..f9b82557e08 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -634,7 +634,7 @@ dri2_x11_local_authenticate(struct dri2_egl_display *dri2_dpy)
#ifdef HAVE_LIBDRM
drm_magic_t magic;
- if (drmGetMagic(dri2_dpy->fd, &magic)) {
+ if (drmGetMagic(dri2_dpy->fd_render_gpu, &magic)) {
_eglLog(_EGL_WARNING, "DRI2: failed to get drm magic");
return EGL_FALSE;
}
@@ -716,8 +716,8 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
device_name = xcb_dri2_connect_device_name (connect);
- dri2_dpy->fd = loader_open_device(device_name);
- if (dri2_dpy->fd == -1) {
+ dri2_dpy->fd_render_gpu = loader_open_device(device_name);
+ if (dri2_dpy->fd_render_gpu == -1) {
_eglLog(_EGL_WARNING,
"DRI2: could not open %s (%s)", device_name, strerror(errno));
free(connect);
@@ -725,7 +725,7 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
}
if (!dri2_x11_local_authenticate(dri2_dpy)) {
- close(dri2_dpy->fd);
+ close(dri2_dpy->fd_render_gpu);
free(connect);
return EGL_FALSE;
}
@@ -735,7 +735,7 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
/* If Mesa knows about the appropriate driver for this fd, then trust it.
* Otherwise, default to the server's value.
*/
- loader_driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
+ loader_driver_name = loader_get_driver_for_fd(dri2_dpy->fd_render_gpu);
if (loader_driver_name) {
dri2_dpy->driver_name = loader_driver_name;
} else {
@@ -745,7 +745,7 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
}
if (dri2_dpy->driver_name == NULL) {
- close(dri2_dpy->fd);
+ close(dri2_dpy->fd_render_gpu);
free(connect);
return EGL_FALSE;
}
@@ -1142,7 +1142,7 @@ dri2_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
stride = buffers[0].pitch / buffers[0].cpp;
dri2_img->dri_image =
- dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
+ dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen_render_gpu,
buffers_reply->width,
buffers_reply->height,
format,
@@ -1451,12 +1451,12 @@ dri2_initialize_x11_swrast(_EGLDisplay *disp)
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
if (!dri2_get_xcb_connection(disp, dri2_dpy))
goto cleanup;
- dev = _eglAddDevice(dri2_dpy->fd, true);
+ dev = _eglAddDevice(dri2_dpy->fd_render_gpu, true);
if (!dev) {
_eglError(EGL_NOT_INITIALIZED, "DRI2: failed to find EGLDevice");
goto cleanup;
@@ -1541,7 +1541,7 @@ dri2_initialize_x11_dri3(_EGLDisplay *disp)
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
if (!dri2_get_xcb_connection(disp, dri2_dpy))
goto cleanup;
@@ -1549,7 +1549,7 @@ dri2_initialize_x11_dri3(_EGLDisplay *disp)
if (!dri3_x11_connect(dri2_dpy))
goto cleanup;
- dev = _eglAddDevice(dri2_dpy->fd, false);
+ dev = _eglAddDevice(dri2_dpy->fd_render_gpu, false);
if (!dev) {
_eglError(EGL_NOT_INITIALIZED, "DRI2: failed to find EGLDevice");
goto cleanup;
@@ -1651,7 +1651,7 @@ dri2_initialize_x11_dri2(_EGLDisplay *disp)
if (!dri2_dpy)
return _eglError(EGL_BAD_ALLOC, "eglInitialize");
- dri2_dpy->fd = -1;
+ dri2_dpy->fd_render_gpu = -1;
dri2_dpy->fd_display_gpu = -1;
if (!dri2_get_xcb_connection(disp, dri2_dpy))
goto cleanup;
@@ -1659,7 +1659,7 @@ dri2_initialize_x11_dri2(_EGLDisplay *disp)
if (!dri2_x11_connect(dri2_dpy))
goto cleanup;
- dev = _eglAddDevice(dri2_dpy->fd, false);
+ dev = _eglAddDevice(dri2_dpy->fd_render_gpu, false);
if (!dev) {
_eglError(EGL_NOT_INITIALIZED, "DRI2: failed to find EGLDevice");
goto cleanup;
diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c
index 04d0fe8285e..51483318aa7 100644
--- a/src/egl/drivers/dri2/platform_x11_dri3.c
+++ b/src/egl/drivers/dri2/platform_x11_dri3.c
@@ -84,7 +84,7 @@ egl_dri3_get_dri_screen(void)
if (!ctx)
return NULL;
dri2_ctx = dri2_egl_context(ctx);
- return dri2_egl_display(dri2_ctx->base.Resource.Display)->dri_screen;
+ return dri2_egl_display(dri2_ctx->base.Resource.Display)->dri_screen_render_gpu;
}
static void
@@ -188,7 +188,7 @@ dri3_create_surface(_EGLDisplay *disp, EGLint type, _EGLConfig *conf,
if (loader_dri3_drawable_init(dri2_dpy->conn, drawable,
egl_to_loader_dri3_drawable_type(type),
- dri2_dpy->dri_screen,
+ dri2_dpy->dri_screen_render_gpu,
dri2_dpy->dri_screen_display_gpu,
dri2_dpy->is_different_gpu,
dri2_dpy->multibuffers_available,
@@ -326,7 +326,7 @@ dri3_create_image_khr_pixmap(_EGLDisplay *disp, _EGLContext *ctx,
dri2_img->dri_image = loader_dri3_create_image(dri2_dpy->conn,
bp_reply,
format,
- dri2_dpy->dri_screen,
+ dri2_dpy->dri_screen_render_gpu,
dri2_dpy->image,
dri2_img);
@@ -378,7 +378,7 @@ dri3_create_image_khr_pixmap_from_buffers(_EGLDisplay *disp, _EGLContext *ctx,
dri2_img->dri_image = loader_dri3_create_image_from_buffers(dri2_dpy->conn,
bp_reply,
format,
- dri2_dpy->dri_screen,
+ dri2_dpy->dri_screen_render_gpu,
dri2_dpy->image,
dri2_img);
free(bp_reply);
@@ -511,7 +511,7 @@ dri3_close_screen_notify(_EGLDisplay *disp)
{
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
- loader_dri3_close_screen(dri2_dpy->dri_screen);
+ loader_dri3_close_screen(dri2_dpy->dri_screen_render_gpu);
}
struct dri2_egl_display_vtbl dri3_x11_display_vtbl = {
@@ -624,8 +624,8 @@ dri3_x11_connect(struct dri2_egl_display *dri2_dpy)
}
free(xfixes_query);
- dri2_dpy->fd = loader_dri3_open(dri2_dpy->conn, dri2_dpy->screen->root, 0);
- if (dri2_dpy->fd < 0) {
+ dri2_dpy->fd_render_gpu = loader_dri3_open(dri2_dpy->conn, dri2_dpy->screen->root, 0);
+ if (dri2_dpy->fd_render_gpu < 0) {
int conn_error = xcb_connection_has_error(dri2_dpy->conn);
_eglLog(_EGL_WARNING, "DRI3: Screen seems not DRI3 capable");
@@ -635,17 +635,18 @@ dri3_x11_connect(struct dri2_egl_display *dri2_dpy)
return EGL_FALSE;
}
- dri2_dpy->fd_display_gpu = fcntl(dri2_dpy->fd, F_DUPFD_CLOEXEC, 3);
- dri2_dpy->fd = loader_get_user_preferred_fd(dri2_dpy->fd, &dri2_dpy->is_different_gpu);
+ dri2_dpy->fd_display_gpu = fcntl(dri2_dpy->fd_render_gpu, F_DUPFD_CLOEXEC, 3);
+ dri2_dpy->fd_render_gpu = loader_get_user_preferred_fd(dri2_dpy->fd_render_gpu,
+ &dri2_dpy->is_different_gpu);
if (!dri2_dpy->is_different_gpu) {
close(dri2_dpy->fd_display_gpu);
dri2_dpy->fd_display_gpu = -1;
}
- dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
+ dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd_render_gpu);
if (!dri2_dpy->driver_name) {
_eglLog(_EGL_WARNING, "DRI3: No driver found");
- close(dri2_dpy->fd);
+ close(dri2_dpy->fd_render_gpu);
return EGL_FALSE;
}
@@ -653,7 +654,7 @@ dri3_x11_connect(struct dri2_egl_display *dri2_dpy)
/* Only try to get a render device name since dri3 doesn't provide a
* mechanism for authenticating client opened device node fds. If this
* fails then don't advertise the extension. */
- dri2_dpy->device_name = drmGetRenderDeviceNameFromFd(dri2_dpy->fd);
+ dri2_dpy->device_name = drmGetRenderDeviceNameFromFd(dri2_dpy->fd_render_gpu);
#endif
return EGL_TRUE;