diff options
author | Xuelian Bai <xuelian.bai@samsung.com> | 2024-01-22 14:53:06 +0800 |
---|---|---|
committer | Xuelian Bai <xuelian.bai@samsung.com> | 2024-01-26 08:10:24 +0800 |
commit | ca66fc55b4ee5ae1afa84246d56a3e216bf49cb6 (patch) | |
tree | 6d4d7f45f90e9260ae765f226542ac600f68a062 | |
parent | ff0a013d5e45caaf7a0c9677acc71dd644a0248e (diff) | |
download | mesa-ca66fc55b4ee5ae1afa84246d56a3e216bf49cb6.tar.gz mesa-ca66fc55b4ee5ae1afa84246d56a3e216bf49cb6.tar.bz2 mesa-ca66fc55b4ee5ae1afa84246d56a3e216bf49cb6.zip |
Upgrade to 23.3.3
-rw-r--r-- | packaging/mesa.spec | 12 | ||||
-rw-r--r-- | src/egl/drivers/dri2/egl_dri2.c | 6 | ||||
-rwxr-xr-x | src/egl/drivers/dri2/platform_tizen.c | 37 | ||||
-rw-r--r-- | src/vulkan/runtime/vk_object.c | 2 |
4 files changed, 30 insertions, 27 deletions
diff --git a/packaging/mesa.spec b/packaging/mesa.spec index daaf2907e75..7d39fcdc5a6 100644 --- a/packaging/mesa.spec +++ b/packaging/mesa.spec @@ -1,5 +1,5 @@ Name: mesa -Version: 22.3.5 +Version: 23.3.3 Release: 0 License: MIT and Apache-2.0 and SGI Free Software License B v2.0 and BSD-3-Clause Summary: System for rendering interactive 3-D graphics @@ -83,15 +83,15 @@ cp %{SOURCE1002} . %{?asan:/usr/bin/gcc-unforce-options} mkdir build -meson --prefix %{_hal_prefix} build/ \ +meson setup --prefix %{_hal_prefix} build/ \ -Dc_link_args="-lttrace" \ -Dcpp_link_args="-lttrace" \ -Dlibdir=%{_hal_libdir} \ - -Dgallium-va=false \ - -Dgallium-vdpau=false \ - -Dgallium-xa=false \ + -Dgallium-va=disabled \ + -Dgallium-vdpau=disabled \ + -Dgallium-xa=disabled \ -Dglx=disabled \ - -Ddri3=false \ + -Ddri3=disabled \ -Ddraw-use-llvm=false \ -Dllvm=disabled \ -Dgbm=%{?enable_gbm:enabled}%{?!enable_gbm:disabled} \ diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 50809ac0ddc..cad71326248 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1437,6 +1437,12 @@ dri2_fill_context_attribs(struct dri2_egl_context *dri2_ctx, ctx_attribs[pos++] = dri2_ctx->base.ClientMinorVersion; if (dri2_ctx->base.Flags != 0) { +#ifdef HAVE_TIZEN_PLATFORM/* Fix for dEQP-EGL.functional.create_context_ext.robust_gl_3* cases */ + if ((dri2_ctx->base.Flags & EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR) != 0) { + _eglError(EGL_BAD_MATCH, "eglCreateContext"); + return false; + } +#endif ctx_attribs[pos++] = __DRI_CTX_ATTRIB_FLAGS; ctx_attribs[pos++] = dri2_ctx->base.Flags; } diff --git a/src/egl/drivers/dri2/platform_tizen.c b/src/egl/drivers/dri2/platform_tizen.c index 88d999137a1..b0e9cd09070 100755 --- a/src/egl/drivers/dri2/platform_tizen.c +++ b/src/egl/drivers/dri2/platform_tizen.c @@ -1565,6 +1565,7 @@ dri2_initialize_tizen(_EGLDisplay *disp) error in __tpl_wayland_egl_display_init() */ if (disp->PlatformDisplay == NULL) { disp->PlatformDisplay = wl_display_connect(NULL); + if (disp->PlatformDisplay == NULL) { err = "DRI2: failed to get native display"; goto cleanup_display; @@ -1580,6 +1581,7 @@ dri2_initialize_tizen(_EGLDisplay *disp) tpl_backend = TPL_BACKEND_WAYLAND_THREAD; tpl_display = tpl_display_create(tpl_backend, disp->PlatformDisplay); + if (!tpl_display) { err = "DRI2: failed to create tpl_display"; goto cleanup_display; @@ -1588,6 +1590,7 @@ dri2_initialize_tizen(_EGLDisplay *disp) /* Get tbm_bufmgr's fd */ tbm_bufmgr_fd = tbm_drm_helper_get_fd(); + if (tbm_bufmgr_fd == -1) { err = "DRI2: failed to get tbm_bufmgr fd"; goto cleanup_device; @@ -1618,14 +1621,12 @@ dri2_initialize_tizen(_EGLDisplay *disp) #endif if (drmGetNodeTypeFromFd(tbm_bufmgr_fd) == DRM_NODE_RENDER) { - tbm_bufmgr_device_name = loader_get_device_name_for_fd(tbm_bufmgr_fd); if (tbm_bufmgr_device_name == NULL) { err = "DRI2: failed to get tbm_bufmgr device name"; goto cleanup_device; } - dri2_dpy->fd = loader_open_device(tbm_bufmgr_device_name); - + dri2_dpy->fd_render_gpu = loader_open_device(tbm_bufmgr_device_name); } else if ((master_fd = tbm_drm_helper_get_master_fd()) >= 0) { close(master_fd); // display server always has master_fd, @@ -1635,21 +1636,21 @@ dri2_initialize_tizen(_EGLDisplay *disp) err = "DRI2: failed to get tbm_bufmgr device name"; goto cleanup_device; } - dri2_dpy->fd = loader_open_device(tbm_bufmgr_device_name); + dri2_dpy->fd_render_gpu = loader_open_device(tbm_bufmgr_device_name); } else { - if (!tbm_drm_helper_get_auth_info(&dri2_dpy->fd, NULL, NULL)) { + if (!tbm_drm_helper_get_auth_info(&dri2_dpy->fd_render_gpu, NULL, NULL)) { err = "DRI2: failed to get fd from tbm_drm_helper_get_auth_info()"; goto cleanup_device; } } - 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) { err = "DRI2: failed to get driver name"; goto cleanup_device; } - 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 */ @@ -1667,7 +1668,7 @@ dri2_initialize_tizen(_EGLDisplay *disp) } } } else { - dri2_dpy->fd = tbm_bufmgr_fd; + dri2_dpy->fd_render_gpu = tbm_bufmgr_fd; dri2_dpy->driver_name = strdup("swrast"); if (!dri2_load_driver_swrast(disp)) { err = "DRI2: failed to load swrast driver"; @@ -1681,21 +1682,17 @@ dri2_initialize_tizen(_EGLDisplay *disp) goto cleanup_driver; } - - dev = _eglAddDevice(dri2_dpy->fd, false); - if (!dev) { - err = "DRI2: failed to find EGLDevice"; - goto cleanup_screen;; + if (!dri2_setup_device(disp, false)) { + _eglError(EGL_NOT_INITIALIZED, "DRI2: failed to setup EGLDevice"); + goto cleanup_driver; } - disp->Device = dev; - - if(dri2_dpy->fd != tbm_bufmgr_fd) { - close(dri2_dpy->fd); + if(dri2_dpy->fd_render_gpu != tbm_bufmgr_fd) { + close(dri2_dpy->fd_render_gpu); } close(tbm_bufmgr_fd); tbm_bufmgr_fd = -1; - dri2_dpy->fd = -1; + dri2_dpy->fd_render_gpu = -1; if (!dri2_setup_extensions(disp)) { err = "DRI2: failed to find required DRI extensions"; @@ -1729,7 +1726,7 @@ dri2_initialize_tizen(_EGLDisplay *disp) if (dri2_dpy->fence->base.version >= 2 && dri2_dpy->fence->get_capabilities) { unsigned capabilities = - dri2_dpy->fence->get_capabilities(dri2_dpy->dri_screen); + dri2_dpy->fence->get_capabilities(dri2_dpy->dri_screen_render_gpu); disp->Extensions.TIZEN_native_fence_sync = (capabilities & __DRI_FENCE_CAP_NATIVE_FD) != 0; disp->Extensions.ANDROID_native_fence_sync = disp->Extensions.TIZEN_native_fence_sync; @@ -1738,7 +1735,7 @@ dri2_initialize_tizen(_EGLDisplay *disp) return EGL_TRUE; cleanup_screen: - dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen); + dri2_dpy->core->destroyScreen(dri2_dpy->dri_screen_render_gpu); cleanup_driver: dlclose(dri2_dpy->driver); cleanup_driver_name: diff --git a/src/vulkan/runtime/vk_object.c b/src/vulkan/runtime/vk_object.c index 753640b77b8..4ee4e037947 100644 --- a/src/vulkan/runtime/vk_object.c +++ b/src/vulkan/runtime/vk_object.c @@ -243,7 +243,7 @@ vk_object_base_private_data(struct vk_device *device, * vkGet/SetPrivateDataEXT call on a swapchain because the loader will * handle it. */ -#ifdef ANDROID +#if defined(ANDROID) || defined(HAVE_TIZEN_PLATFORM) if (objectType == VK_OBJECT_TYPE_SWAPCHAIN_KHR || objectType == VK_OBJECT_TYPE_SURFACE_KHR) { #else |