goto cleanup_surface;
dri2_surf->dri_drawable =
- dri2_dpy->dri2->createNewDrawable(dri2_dpy->dri_screen, config,
- dri2_surf);
+ dri2_dpy->image_driver->createNewDrawable(dri2_dpy->dri_screen, config,
+ dri2_surf);
if (dri2_surf->dri_drawable == NULL) {
- _eglError(EGL_BAD_ALLOC, "dri2->createNewDrawable");
+ _eglError(EGL_BAD_ALLOC, "image->createNewDrawable");
goto cleanup_surface;
}
{ "RGB565", { 0x00f800, 0x07e0, 0x1f, 0x0 } },
};
unsigned int format_count[ARRAY_SIZE(visuals)] = { 0 };
- unsigned int count, i, j;
+ unsigned int config_count = 0;
- count = 0;
- for (i = 0; dri2_dpy->driver_configs[i] != NULL; i++) {
- for (j = 0; j < ARRAY_SIZE(visuals); j++) {
+ for (unsigned i = 0; dri2_dpy->driver_configs[i] != NULL; i++) {
+ for (unsigned j = 0; j < ARRAY_SIZE(visuals); j++) {
struct dri2_egl_config *dri2_conf;
dri2_conf = dri2_add_config(dpy, dri2_dpy->driver_configs[i],
- count + 1, EGL_PBUFFER_BIT, NULL, visuals[j].rgba_masks);
+ config_count + 1, EGL_PBUFFER_BIT, NULL,
+ visuals[j].rgba_masks);
if (dri2_conf) {
- count++;
+ if (dri2_conf->base.ConfigID == config_count + 1)
+ config_count++;
format_count[j]++;
}
}
}
- for (i = 0; i < ARRAY_SIZE(format_count); i++) {
+ for (unsigned i = 0; i < ARRAY_SIZE(format_count); i++) {
if (!format_count[i]) {
_eglLog(_EGL_DEBUG, "No DRI config supports native format %s",
visuals[i].format_name);
}
}
- return (count != 0);
+ return (config_count != 0);
}
static const struct dri2_egl_display_vtbl dri2_surfaceless_display_vtbl = {
.swap_buffers = surfaceless_swap_buffers,
.swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage,
.swap_buffers_region = dri2_fallback_swap_buffers_region,
+ .set_damage_region = dri2_fallback_set_damage_region,
.post_sub_buffer = dri2_fallback_post_sub_buffer,
.copy_buffers = dri2_fallback_copy_buffers,
.query_buffer_age = dri2_fallback_query_buffer_age,
{
struct dri2_egl_display *dri2_dpy;
const char* err;
- int i;
int driver_loaded = 0;
loader_set_logger(_eglLog);
const int limit = 64;
const int base = 128;
- for (i = 0; i < limit; ++i) {
+ for (int i = 0; i < limit; ++i) {
char *card_path;
if (asprintf(&card_path, DRM_RENDER_DEV_NAME, DRM_DIR_NAME, base + i) < 0)
continue;
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
if (dri2_dpy->driver_name) {
- if (dri2_load_driver(disp)) {
+ if (dri2_load_driver_dri3(disp)) {
driver_loaded = 1;
break;
}