summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXuelian Bai <xuelian.bai@samsung.com>2024-01-22 14:53:06 +0800
committerXuelian Bai <xuelian.bai@samsung.com>2024-01-26 08:10:24 +0800
commitca66fc55b4ee5ae1afa84246d56a3e216bf49cb6 (patch)
tree6d4d7f45f90e9260ae765f226542ac600f68a062
parentff0a013d5e45caaf7a0c9677acc71dd644a0248e (diff)
downloadmesa-ca66fc55b4ee5ae1afa84246d56a3e216bf49cb6.tar.gz
mesa-ca66fc55b4ee5ae1afa84246d56a3e216bf49cb6.tar.bz2
mesa-ca66fc55b4ee5ae1afa84246d56a3e216bf49cb6.zip
Upgrade to 23.3.3
-rw-r--r--packaging/mesa.spec12
-rw-r--r--src/egl/drivers/dri2/egl_dri2.c6
-rwxr-xr-xsrc/egl/drivers/dri2/platform_tizen.c37
-rw-r--r--src/vulkan/runtime/vk_object.c2
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