Mesa (master): i965/fs: Disable opt_sampler_eot for textureGather
Module: Mesa Branch: master Commit: bfdae9149e00bd5c2521db3e75669ae043eed5cc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bfdae9149e00bd5c2521db3e75669ae043eed5cc Author: Neil Roberts n...@linux.intel.com Date: Fri May 8 17:35:18 2015 +0100 i965/fs: Disable opt_sampler_eot for textureGather The opt_sampler_eot optimisation seems to break when the last instruction is SHADER_OPCODE_TG4. A bunch of Piglit tests end up doing this so it causes a lot of regressions. I can't find any documentation or known workarounds to indicate that this is expected behaviour, but considering that this is probably a pretty unlikely situation in a real use case we might as well disable it in order to avoid the regressions. In total this fixes 451 tests. Reviewed-by: Ben Widawsky b...@bwidawsk.net Reviewed-by: Chris Forbes chr...@ijw.co.nz --- src/mesa/drivers/dri/i965/brw_fs.cpp | 10 ++ 1 file changed, 10 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index b2701b8..3414d92 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -2658,6 +2658,16 @@ fs_visitor::opt_sampler_eot() if (unlikely(tex_inst-is_head_sentinel()) || !tex_inst-is_tex()) return false; + /* This optimisation doesn't seem to work for textureGather for some +* reason. I can't find any documentation or known workarounds to indicate +* that this is expected, but considering that it is probably pretty +* unlikely that a shader would directly write out the results from +* textureGather we might as well just disable it. +*/ + if (tex_inst-opcode == SHADER_OPCODE_TG4 || + tex_inst-opcode == SHADER_OPCODE_TG4_OFFSET) + return false; + /* If there's no header present, we need to munge the LOAD_PAYLOAD as well. * It's very likely to be the previous instruction. */ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): clover: Fix a bug with multi-threaded events v2
Module: Mesa Branch: master Commit: 9c4dc98b298c74015f2a7c21571bccf0a5b6cc98 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c4dc98b298c74015f2a7c21571bccf0a5b6cc98 Author: Tom Stellard thomas.stell...@amd.com Date: Thu Mar 26 19:33:24 2015 + clover: Fix a bug with multi-threaded events v2 It was possible for some events never to get triggered if one thread was creating events and another threads was waiting for them. This patch consolidates soft_event::wait() and hard_event::wait() into event::wait() so that hard_event objects will now wait for all their dependencies to be submitted before flushing the command queue. v2: - Rename variables - Use mutable varibales so we can keep event::wait() const - Open code signalled() call so mutex can be atted to signalled without deadlocking. CC: 10.5 mesa-sta...@lists.freedesktop.org Reviewed-by: Francisco Jerez curroje...@riseup.net --- src/gallium/state_trackers/clover/core/event.cpp | 15 +-- src/gallium/state_trackers/clover/core/event.hpp |5 - 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/gallium/state_trackers/clover/core/event.cpp b/src/gallium/state_trackers/clover/core/event.cpp index 58de888..5579303 100644 --- a/src/gallium/state_trackers/clover/core/event.cpp +++ b/src/gallium/state_trackers/clover/core/event.cpp @@ -39,6 +39,7 @@ event::~event() { void event::trigger() { if (!--wait_count) { + cv.notify_all(); action_ok(*this); while (!_chain.empty()) { @@ -73,6 +74,15 @@ event::chain(event ev) { ev.deps.push_back(*this); } +void +event::wait() const { + for (event ev : deps) + ev.wait(); + + std::unique_lockstd::mutex lock(mutex); + cv.wait(lock, [=]{ return !wait_count; }); +} + hard_event::hard_event(command_queue q, cl_command_type command, const ref_vectorevent deps, action action) : event(q.context(), deps, profile(q, action), [](event ev){}), @@ -120,6 +130,8 @@ void hard_event::wait() const { pipe_screen *screen = queue()-device().pipe; + event::wait(); + if (status() == CL_QUEUED) queue()-flush(); @@ -207,8 +219,7 @@ soft_event::command() const { void soft_event::wait() const { - for (event ev : deps) - ev.wait(); + event::wait(); if (status() != CL_COMPLETE) throw error(CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST); diff --git a/src/gallium/state_trackers/clover/core/event.hpp b/src/gallium/state_trackers/clover/core/event.hpp index d407c80..0914842 100644 --- a/src/gallium/state_trackers/clover/core/event.hpp +++ b/src/gallium/state_trackers/clover/core/event.hpp @@ -23,6 +23,7 @@ #ifndef CLOVER_CORE_EVENT_HPP #define CLOVER_CORE_EVENT_HPP +#include condition_variable #include functional #include core/object.hpp @@ -68,7 +69,7 @@ namespace clover { virtual cl_int status() const = 0; virtual command_queue *queue() const = 0; virtual cl_command_type command() const = 0; - virtual void wait() const = 0; + virtual void wait() const; virtual struct pipe_fence_handle *fence() const { return NULL; @@ -87,6 +88,8 @@ namespace clover { action action_ok; action action_fail; std::vectorintrusive_refevent _chain; + mutable std::condition_variable cv; + mutable std::mutex mutex; }; /// ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): egl/wayland: Implement swrast support
Module: Mesa Branch: master Commit: cdcfe48fb0431184fabb40aa5a244d086f551df5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cdcfe48fb0431184fabb40aa5a244d086f551df5 Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 11:11:20 2015 +0200 egl/wayland: Implement swrast support Reviewed-by: Dave Airlie airl...@redhat.com Reviewed-by: Daniel Stone dani...@collabora.com. Signed-off-by: Axel Davy axel.d...@ens.fr --- src/egl/drivers/dri2/egl_dri2.c |5 +- src/egl/drivers/dri2/egl_dri2.h |4 + src/egl/drivers/dri2/platform_wayland.c | 704 ++- 3 files changed, 696 insertions(+), 17 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 169abcc..467b81c 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -729,7 +729,10 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp) #endif #ifdef HAVE_WAYLAND_PLATFORM case _EGL_PLATFORM_WAYLAND: - wl_drm_destroy(dri2_dpy-wl_drm); + if (dri2_dpy-wl_drm) + wl_drm_destroy(dri2_dpy-wl_drm); + if (dri2_dpy-wl_shm) + wl_shm_destroy(dri2_dpy-wl_shm); wl_registry_destroy(dri2_dpy-wl_registry); wl_event_queue_destroy(dri2_dpy-wl_queue); if (dri2_dpy-own_device) { diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index cabeb2d..adade3d 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -196,6 +196,7 @@ struct dri2_egl_display struct wl_registry *wl_registry; struct wl_drm*wl_server_drm; struct wl_drm*wl_drm; + struct wl_shm*wl_shm; struct wl_event_queue*wl_queue; int authenticated; int formats; @@ -257,6 +258,9 @@ struct dri2_egl_surface __DRIimage *dri_image; /* for is_different_gpu case. NULL else */ __DRIimage *linear_copy; + /* for swrast */ + void *data; + int data_size; #endif #ifdef HAVE_DRM_PLATFORM struct gbm_bo *bo; diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index e9f142c..9914b68 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -1,5 +1,6 @@ /* * Copyright © 2011-2012 Intel Corporation + * Copyright © 2012 Collabora, Ltd. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the Software), @@ -35,6 +36,7 @@ #include unistd.h #include fcntl.h #include xf86drm.h +#include sys/mman.h #include egl_dri2.h #include egl_dri2_fallbacks.h @@ -233,13 +235,18 @@ dri2_wl_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf) dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].dri_image); if (dri2_surf-color_buffers[i].linear_copy) dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].linear_copy); + if (dri2_surf-color_buffers[i].data) + munmap(dri2_surf-color_buffers[i].data, +dri2_surf-color_buffers[i].data_size); } - for (i = 0; i __DRI_BUFFER_COUNT; i++) - if (dri2_surf-dri_buffers[i] - dri2_surf-dri_buffers[i]-attachment != __DRI_BUFFER_BACK_LEFT) - dri2_dpy-dri2-releaseBuffer(dri2_dpy-dri_screen, - dri2_surf-dri_buffers[i]); + if (dri2_dpy-dri2) { + for (i = 0; i __DRI_BUFFER_COUNT; i++) + if (dri2_surf-dri_buffers[i] + dri2_surf-dri_buffers[i]-attachment != __DRI_BUFFER_BACK_LEFT) +dri2_dpy-dri2-releaseBuffer(dri2_dpy-dri_screen, + dri2_surf-dri_buffers[i]); + } if (dri2_surf-throttle_callback) wl_callback_destroy(dri2_surf-throttle_callback); @@ -267,18 +274,24 @@ dri2_wl_release_buffers(struct dri2_egl_surface *dri2_surf) dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].dri_image); if (dri2_surf-color_buffers[i].linear_copy) dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].linear_copy); + if (dri2_surf-color_buffers[i].data) + munmap(dri2_surf-color_buffers[i].data, +dri2_surf-color_buffers[i].data_size); dri2_surf-color_buffers[i].wl_buffer = NULL; dri2_surf-color_buffers[i].dri_image = NULL; dri2_surf-color_buffers[i].linear_copy = NULL; + dri2_surf-color_buffers[i].data = NULL; dri2_surf-color_buffers[i].locked = 0; } - for (i = 0; i __DRI_BUFFER_COUNT; i++) - if (dri2_surf-dri_buffers[i] - dri2_surf-dri_buffers[i]-attachment != __DRI_BUFFER_BACK_LEFT) - dri2_dpy-dri2-releaseBuffer(dri2_dpy-dri_screen, - dri2_surf-dri_buffers[i]); + if (dri2_dpy-dri2) { + for (i = 0; i __DRI_BUFFER_COUNT; i++) + if
Mesa (master): egl/wayland: Implement DRI_PRIME support
Module: Mesa Branch: master Commit: 4cd546df82c557b9a765e40db2f96c4faa299846 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4cd546df82c557b9a765e40db2f96c4faa299846 Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 01:16:24 2015 +0200 egl/wayland: Implement DRI_PRIME support When the server gpu and requested gpu are different: . They likely don't support the same tiling modes . They likely do not have fast access to the same locations Thus we do: . render to a tiled buffer we do not share with the server . Copy the content at every swap to a buffer with no tiling that we share with the server. This is similar to the glx dri3 DRI_PRIME implementation. Reviewed-by: Dave Airlie airl...@redhat.com Reviewed-by: Daniel Stone dani...@collabora.com Signed-off-by: Axel Davy axel.d...@ens.fr --- src/egl/drivers/dri2/egl_dri2.h |3 + src/egl/drivers/dri2/platform_wayland.c | 104 ++- 2 files changed, 92 insertions(+), 15 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index 3ee3f80..cabeb2d 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -201,6 +201,7 @@ struct dri2_egl_display int formats; uint32_t capabilities; int is_render_node; + int is_different_gpu; #endif }; @@ -254,6 +255,8 @@ struct dri2_egl_surface #ifdef HAVE_WAYLAND_PLATFORM struct wl_buffer *wl_buffer; __DRIimage *dri_image; + /* for is_different_gpu case. NULL else */ + __DRIimage *linear_copy; #endif #ifdef HAVE_DRM_PLATFORM struct gbm_bo *bo; diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index bdb19c2..b111c3a 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -240,6 +240,8 @@ dri2_wl_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf) wl_buffer_destroy(dri2_surf-color_buffers[i].wl_buffer); if (dri2_surf-color_buffers[i].dri_image) dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].dri_image); + if (dri2_surf-color_buffers[i].linear_copy) + dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].linear_copy); } for (i = 0; i __DRI_BUFFER_COUNT; i++) @@ -274,9 +276,12 @@ dri2_wl_release_buffers(struct dri2_egl_surface *dri2_surf) wl_buffer_destroy(dri2_surf-color_buffers[i].wl_buffer); if (dri2_surf-color_buffers[i].dri_image) dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].dri_image); + if (dri2_surf-color_buffers[i].linear_copy) + dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].linear_copy); dri2_surf-color_buffers[i].wl_buffer = NULL; dri2_surf-color_buffers[i].dri_image = NULL; + dri2_surf-color_buffers[i].linear_copy = NULL; dri2_surf-color_buffers[i].locked = 0; } @@ -338,13 +343,29 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) if (dri2_surf-back == NULL) return -1; + + if (dri2_dpy-is_different_gpu + dri2_surf-back-linear_copy == NULL) { + dri2_surf-back-linear_copy = + dri2_dpy-image-createImage(dri2_dpy-dri_screen, + dri2_surf-base.Width, + dri2_surf-base.Height, + dri_image_format, + __DRI_IMAGE_USE_SHARE | + __DRI_IMAGE_USE_LINEAR, + NULL); + if (dri2_surf-back-linear_copy == NULL) + return -1; + } + if (dri2_surf-back-dri_image == NULL) { dri2_surf-back-dri_image = dri2_dpy-image-createImage(dri2_dpy-dri_screen, dri2_surf-base.Width, dri2_surf-base.Height, dri_image_format, - __DRI_IMAGE_USE_SHARE, + dri2_dpy-is_different_gpu ? + 0 : __DRI_IMAGE_USE_SHARE, NULL); dri2_surf-back-age = 0; } @@ -432,8 +453,11 @@ update_buffers(struct dri2_egl_surface *dri2_surf) dri2_surf-color_buffers[i].wl_buffer) { wl_buffer_destroy(dri2_surf-color_buffers[i].wl_buffer); dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].dri_image); + if (dri2_dpy-is_different_gpu) + dri2_dpy-image-destroyImage(dri2_surf-color_buffers[i].linear_copy); dri2_surf-color_buffers[i].wl_buffer = NULL; dri2_surf-color_buffers[i].dri_image = NULL; + dri2_surf-color_buffers[i].linear_copy = NULL; } } @@ -578,16 +602,20 @@ create_wl_buffer(struct
Mesa (master): egl/wayland: Simplify dri2_wl_create_surface
Module: Mesa Branch: master Commit: cd25e52f6bb5279cd7b1992e5907df3966b900ce URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cd25e52f6bb5279cd7b1992e5907df3966b900ce Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 11:16:41 2015 +0200 egl/wayland: Simplify dri2_wl_create_surface This function is always used with EGL_WINDOW_BIT. Pixmaps are forbidden for Wayland, and PBuffers are unimplemented. Reviewed-by: Daniel Stone dani...@collabora.com. Signed-off-by: Axel Davy axel.d...@ens.fr --- src/egl/drivers/dri2/platform_wayland.c | 38 +++ 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index b111c3a..e9f142c 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -120,7 +120,7 @@ resize_callback(struct wl_egl_window *wl_win, void *data) * Called via eglCreateWindowSurface(), drv-API.CreateWindowSurface(). */ static _EGLSurface * -dri2_wl_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type, +dri2_wl_create_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLConfig *conf, void *native_window, const EGLint *attrib_list) { @@ -137,7 +137,7 @@ dri2_wl_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type, return NULL; } - if (!_eglInitSurface(dri2_surf-base, disp, type, conf, attrib_list)) + if (!_eglInitSurface(dri2_surf-base, disp, EGL_WINDOW_BIT, conf, attrib_list)) goto cleanup_surf; if (conf-RedSize == 5) @@ -147,25 +147,17 @@ dri2_wl_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type, else dri2_surf-format = WL_DRM_FORMAT_ARGB; - switch (type) { - case EGL_WINDOW_BIT: - dri2_surf-wl_win = window; + dri2_surf-wl_win = window; - dri2_surf-wl_win-private = dri2_surf; - dri2_surf-wl_win-resize_callback = resize_callback; + dri2_surf-wl_win-private = dri2_surf; + dri2_surf-wl_win-resize_callback = resize_callback; - dri2_surf-base.Width = -1; - dri2_surf-base.Height = -1; - break; - default: - goto cleanup_surf; - } + dri2_surf-base.Width = -1; + dri2_surf-base.Height = -1; dri2_surf-dri_drawable = (*dri2_dpy-dri2-createNewDrawable) (dri2_dpy-dri_screen, - type == EGL_WINDOW_BIT ? - dri2_conf-dri_double_config : - dri2_conf-dri_single_config, + dri2_conf-dri_double_config, dri2_surf); if (dri2_surf-dri_drawable == NULL) { _eglError(EGL_BAD_ALLOC, dri2-createNewDrawable); @@ -193,8 +185,7 @@ dri2_wl_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp, struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); _EGLSurface *surf; - surf = dri2_wl_create_surface(drv, disp, EGL_WINDOW_BIT, conf, - native_window, attrib_list); + surf = dri2_wl_create_surface(drv, disp, conf, native_window, attrib_list); if (surf != NULL) dri2_wl_swap_interval(drv, disp, surf, dri2_dpy-default_swap_interval); @@ -253,10 +244,8 @@ dri2_wl_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf) if (dri2_surf-throttle_callback) wl_callback_destroy(dri2_surf-throttle_callback); - if (dri2_surf-base.Type == EGL_WINDOW_BIT) { - dri2_surf-wl_win-private = NULL; - dri2_surf-wl_win-resize_callback = NULL; - } + dri2_surf-wl_win-private = NULL; + dri2_surf-wl_win-resize_callback = NULL; free(surf); @@ -428,9 +417,8 @@ update_buffers(struct dri2_egl_surface *dri2_surf) dri2_egl_display(dri2_surf-base.Resource.Display); int i; - if (dri2_surf-base.Type == EGL_WINDOW_BIT - (dri2_surf-base.Width != dri2_surf-wl_win-width || -dri2_surf-base.Height != dri2_surf-wl_win-height)) { + if (dri2_surf-base.Width != dri2_surf-wl_win-width || + dri2_surf-base.Height != dri2_surf-wl_win-height) { dri2_wl_release_buffers(dri2_surf); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): egl/swrast: Enable config extension for swrast
Module: Mesa Branch: master Commit: 13fa84e1bcf1e07c69bb678508f8cdb0912b57c5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=13fa84e1bcf1e07c69bb678508f8cdb0912b57c5 Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 19:08:37 2015 +0200 egl/swrast: Enable config extension for swrast Enables to use dri config for swrast, like vblank_mode. Reviewed-by: Dave Airlie airl...@redhat.com Signed-off-by: Axel Davy axel.d...@ens.fr --- src/egl/drivers/dri2/egl_dri2.c| 27 +-- src/gallium/state_trackers/dri/drisw.c |1 + src/mesa/drivers/dri/swrast/swrast.c |1 + 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 467b81c..fe5cbc8 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -576,6 +576,7 @@ dri2_create_screen(_EGLDisplay *disp) { const __DRIextension **extensions; struct dri2_egl_display *dri2_dpy; + unsigned i; dri2_dpy = disp-DriverData; @@ -616,28 +617,26 @@ dri2_create_screen(_EGLDisplay *disp) extensions = dri2_dpy-core-getExtensions(dri2_dpy-dri_screen); if (dri2_dpy-dri2) { - unsigned i; - if (!dri2_bind_extensions(dri2_dpy, dri2_core_extensions, extensions)) goto cleanup_dri_screen; - - for (i = 0; extensions[i]; i++) { -if (strcmp(extensions[i]-name, __DRI2_ROBUSTNESS) == 0) { -dri2_dpy-robustness = (__DRIrobustnessExtension *) extensions[i]; -} -if (strcmp(extensions[i]-name, __DRI2_CONFIG_QUERY) == 0) { - dri2_dpy-config = (__DRI2configQueryExtension *) extensions[i]; -} - if (strcmp(extensions[i]-name, __DRI2_FENCE) == 0) { -dri2_dpy-fence = (__DRI2fenceExtension *) extensions[i]; - } - } } else { assert(dri2_dpy-swrast); if (!dri2_bind_extensions(dri2_dpy, swrast_core_extensions, extensions)) goto cleanup_dri_screen; } + for (i = 0; extensions[i]; i++) { + if (strcmp(extensions[i]-name, __DRI2_ROBUSTNESS) == 0) { + dri2_dpy-robustness = (__DRIrobustnessExtension *) extensions[i]; + } + if (strcmp(extensions[i]-name, __DRI2_CONFIG_QUERY) == 0) { + dri2_dpy-config = (__DRI2configQueryExtension *) extensions[i]; + } + if (strcmp(extensions[i]-name, __DRI2_FENCE) == 0) { + dri2_dpy-fence = (__DRI2fenceExtension *) extensions[i]; + } + } + dri2_setup_screen(disp); return EGL_TRUE; diff --git a/src/gallium/state_trackers/dri/drisw.c b/src/gallium/state_trackers/dri/drisw.c index 5f69a2d..4a2c1bb 100644 --- a/src/gallium/state_trackers/dri/drisw.c +++ b/src/gallium/state_trackers/dri/drisw.c @@ -333,6 +333,7 @@ drisw_update_tex_buffer(struct dri_drawable *drawable, static const __DRIextension *drisw_screen_extensions[] = { driTexBufferExtension.base, dri2RendererQueryExtension.base, + dri2ConfigQueryExtension.base, NULL }; diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index 2ddb474..cbc946c 100644 --- a/src/mesa/drivers/dri/swrast/swrast.c +++ b/src/mesa/drivers/dri/swrast/swrast.c @@ -958,6 +958,7 @@ static const __DRIextension *swrast_driver_extensions[] = { driCoreExtension.base, driSWRastExtension.base, driCopySubBufferExtension.base, +dri2ConfigQueryExtension.base, swrast_vtable.base, NULL }; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): doc/egl: Remove depreciated EGL_SOFTWARE
Module: Mesa Branch: master Commit: 05ac39ac497ad7835cac7a161491282b5f69d711 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=05ac39ac497ad7835cac7a161491282b5f69d711 Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 00:06:31 2015 +0200 doc/egl: Remove depreciated EGL_SOFTWARE EGL_SOFTWARE is not supported anywhere in the code, whereas LIBGL_ALWAYS_SOFTWARE is. Reviewed-by: Dave Airlie airl...@redhat.com Reviewed-by: Daniel Stone dani...@collabora.com Signed-off-by: Axel Davy axel.d...@ens.fr --- docs/egl.html |8 1 file changed, 8 deletions(-) diff --git a/docs/egl.html b/docs/egl.html index d946bb0..3ab1a60 100644 --- a/docs/egl.html +++ b/docs/egl.html @@ -184,14 +184,6 @@ values are: codedebug/code, codeinfo/code, codewarning/code, and codefatal/code./p /dd - -dtcodeEGL_SOFTWARE/code/dt -dd - -pFor drivers that support both hardware and software rendering, setting this -variable to true forces the use of software rendering./p - -/dd /dl h2EGL Drivers/h2 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): egl/wayland: properly destroy wayland objects
Module: Mesa Branch: master Commit: 6aaf09b93b668a24b557e05195b9897e8cee8559 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6aaf09b93b668a24b557e05195b9897e8cee8559 Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 00:03:32 2015 +0200 egl/wayland: properly destroy wayland objects the wl_registry and the wl_queue allocated weren't destroyed. CC: 10.5 mesa-sta...@lists.freedesktop.org Reviewed-by: Dave Airlie airl...@redhat.com Reviewed-by: Daniel Stone dani...@collabora.com Signed-off-by: Axel Davy axel.d...@ens.fr --- src/egl/drivers/dri2/egl_dri2.c |2 ++ src/egl/drivers/dri2/platform_wayland.c |5 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index f4c29da..169abcc 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -730,6 +730,8 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp) #ifdef HAVE_WAYLAND_PLATFORM case _EGL_PLATFORM_WAYLAND: wl_drm_destroy(dri2_dpy-wl_drm); + wl_registry_destroy(dri2_dpy-wl_registry); + wl_event_queue_destroy(dri2_dpy-wl_queue); if (dri2_dpy-own_device) { wl_display_disconnect(dri2_dpy-wl_dpy); } diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index e226005..a5bcf25 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -1029,7 +1029,7 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp) wl_registry_add_listener(dri2_dpy-wl_registry, registry_listener, dri2_dpy); if (roundtrip(dri2_dpy) 0 || dri2_dpy-wl_drm == NULL) - goto cleanup_dpy; + goto cleanup_registry; if (roundtrip(dri2_dpy) 0 || dri2_dpy-fd == -1) goto cleanup_drm; @@ -1112,6 +1112,9 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp) cleanup_drm: free(dri2_dpy-device_name); wl_drm_destroy(dri2_dpy-wl_drm); + cleanup_registry: + wl_registry_destroy(dri2_dpy-wl_registry); + wl_event_queue_destroy(dri2_dpy-wl_queue); cleanup_dpy: free(dri2_dpy); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): glx/dri3: Add additional check for gpu offloading case
Module: Mesa Branch: master Commit: c4ff6d00cd7dde4646ff96733f68d3ddbf540c2c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c4ff6d00cd7dde4646ff96733f68d3ddbf540c2c Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 00:20:34 2015 +0200 glx/dri3: Add additional check for gpu offloading case Checks blitImage is implemented. Initially having the __DRIimageExtension extension at version 9 at least meant blitImage was supported. However some implementation do advertise version = 9 without implementing it. CC: 10.5 mesa-sta...@lists.freedesktop.org Reviewed-by: Dave Airlie airl...@redhat.com Reviewed-by: Daniel Stone dani...@collabora.com Signed-off-by: Axel Davy axel.d...@ens.fr --- src/glx/dri3_glx.c |5 + 1 file changed, 5 insertions(+) diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index ff77a91..dfb0093 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -1985,6 +1985,11 @@ dri3_create_screen(int screen, struct glx_display * priv) goto handle_error; } + if (psc-is_different_gpu !psc-image-blitImage) { + ErrorMessageF(Different GPU, but blitImage not implemented for this driver\n); + goto handle_error; + } + if (!psc-is_different_gpu ( !psc-texBuffer || psc-texBuffer-base.version 2 || !psc-texBuffer-setTexBuffer2 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965/fs: Add missing initializer in fs_visitor().
Module: Mesa Branch: master Commit: 73f4010082cf0fc2fe34c59e2eb5801eed10762b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=73f4010082cf0fc2fe34c59e2eb5801eed10762b Author: Matt Turner matts...@gmail.com Date: Mon May 11 10:46:59 2015 -0700 i965/fs: Add missing initializer in fs_visitor(). --- src/mesa/drivers/dri/i965/brw_fs_visitor.cpp |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 80ca1b7..78f269e 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -4193,7 +4193,7 @@ fs_visitor::fs_visitor(struct brw_context *brw, reg_null_d(retype(brw_null_vec(dispatch_width), BRW_REGISTER_TYPE_D)), reg_null_ud(retype(brw_null_vec(dispatch_width), BRW_REGISTER_TYPE_UD)), key(key), prog_data(prog_data-base), - dispatch_width(dispatch_width) + dispatch_width(dispatch_width), promoted_constants(0) { this-mem_ctx = mem_ctx; init(); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): egl: Remove skeleton implementation of EGL_MESA_screen_surface
Module: Mesa Branch: master Commit: 7a58262e58d8edac3308777def0950032628edee URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7a58262e58d8edac3308777def0950032628edee Author: Adam Jackson a...@redhat.com Date: Wed Apr 1 10:39:45 2015 -0400 egl: Remove skeleton implementation of EGL_MESA_screen_surface No backend wires this up to anything, and the extension spec has been marked obsolete for 4+ years. Reviewed-by: Marek Olšák marek.ol...@amd.com Signed-off-by: Adam Jackson a...@redhat.com --- include/EGL/eglmesaext.h | 46 -- src/egl/main/Makefile.sources |4 - src/egl/main/eglapi.c | 278 src/egl/main/eglapi.h | 31 src/egl/main/eglconfig.c |4 - src/egl/main/eglcurrent.c |8 - src/egl/main/egldisplay.h |1 - src/egl/main/eglfallbacks.c | 18 --- src/egl/main/eglmode.c| 357 - src/egl/main/eglmode.h| 88 -- src/egl/main/eglscreen.c | 235 --- src/egl/main/eglscreen.h | 117 -- src/egl/main/eglsurface.c | 55 --- 13 files changed, 1242 deletions(-) diff --git a/include/EGL/eglmesaext.h b/include/EGL/eglmesaext.h index 7ce8346..27cf7eb 100644 --- a/include/EGL/eglmesaext.h +++ b/include/EGL/eglmesaext.h @@ -34,52 +34,6 @@ extern C { #include EGL/eglplatform.h -/* EGL_MESA_screen extension PRELIMINARY */ -#ifndef EGL_MESA_screen_surface -#define EGL_MESA_screen_surface 1 - -#define EGL_BAD_SCREEN_MESA0x4000 -#define EGL_BAD_MODE_MESA 0x4001 -#define EGL_SCREEN_COUNT_MESA 0x4002 -#define EGL_SCREEN_POSITION_MESA 0x4003 -#define EGL_SCREEN_POSITION_GRANULARITY_MESA 0x4004 -#define EGL_MODE_ID_MESA 0x4005 -#define EGL_REFRESH_RATE_MESA 0x4006 -#define EGL_OPTIMAL_MESA 0x4007 -#define EGL_INTERLACED_MESA0x4008 -#define EGL_SCREEN_BIT_MESA0x08 - -typedef khronos_uint32_t EGLScreenMESA; -typedef khronos_uint32_t EGLModeMESA; - -#ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI EGLBoolean EGLAPIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes); -EGLAPI EGLBoolean EGLAPIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes); -EGLAPI EGLBoolean EGLAPIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens); -EGLAPI EGLSurface EGLAPIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -EGLAPI EGLBoolean EGLAPIENTRY eglShowScreenSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode); -EGLAPI EGLBoolean EGLAPIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface); -EGLAPI EGLBoolean EGLAPIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode); -EGLAPI const char * EGLAPIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode); -#endif /* EGL_EGLEXT_PROTOTYPES */ - -typedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSEMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMODESMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGetModeATTRIBMESA) (EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSCRREENSMESA) (EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens); -typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESCREENSURFACEMESA) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSHOWSCREENSURFACEMESA) (EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLSCREENPOSIITONMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENSURFACEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface); -typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSCREENMODEMESA) (EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
Mesa (master): clover: Add a mutex to guard queue::queued_events
Module: Mesa Branch: master Commit: f546902d9597429713c83e2caf6b69856bd7ba4d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f546902d9597429713c83e2caf6b69856bd7ba4d Author: Tom Stellard thomas.stell...@amd.com Date: Thu May 7 13:57:14 2015 + clover: Add a mutex to guard queue::queued_events This fixes a potential crash where on a sequence like this: Thread 0: Check if queue is not empty. Thread 1: Remove item from queue, making it empty. Thread 0: Do something assuming queue is not empty. CC: 10.5 mesa-sta...@lists.freedesktop.org Reviewed-by: Francisco Jerez curroje...@riseup.net --- src/gallium/state_trackers/clover/core/queue.cpp |2 ++ src/gallium/state_trackers/clover/core/queue.hpp |2 ++ 2 files changed, 4 insertions(+) diff --git a/src/gallium/state_trackers/clover/core/queue.cpp b/src/gallium/state_trackers/clover/core/queue.cpp index 24f9326..87f9dcc 100644 --- a/src/gallium/state_trackers/clover/core/queue.cpp +++ b/src/gallium/state_trackers/clover/core/queue.cpp @@ -44,6 +44,7 @@ command_queue::flush() { pipe_screen *screen = device().pipe; pipe_fence_handle *fence = NULL; + std::lock_guardstd::mutex lock(queued_events_mutex); if (!queued_events.empty()) { pipe-flush(pipe, fence, 0); @@ -69,6 +70,7 @@ command_queue::profiling_enabled() const { void command_queue::sequence(hard_event ev) { + std::lock_guardstd::mutex lock(queued_events_mutex); if (!queued_events.empty()) queued_events.back()().chain(ev); diff --git a/src/gallium/state_trackers/clover/core/queue.hpp b/src/gallium/state_trackers/clover/core/queue.hpp index b7166e6..bddb86c 100644 --- a/src/gallium/state_trackers/clover/core/queue.hpp +++ b/src/gallium/state_trackers/clover/core/queue.hpp @@ -24,6 +24,7 @@ #define CLOVER_CORE_QUEUE_HPP #include deque +#include mutex #include core/object.hpp #include core/context.hpp @@ -69,6 +70,7 @@ namespace clover { cl_command_queue_properties props; pipe_context *pipe; + std::mutex queued_events_mutex; std::dequeintrusive_refhard_event queued_events; }; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa: tag mesa-10.5.5: Mesa 10.5.5 release
Module: Mesa Branch: refs/tags/mesa-10.5.5 Tag:5456aedc318e91f69b9b912fb1056f051d22e451 URL: http://cgit.freedesktop.org/mesa/mesa/tag/?id=5456aedc318e91f69b9b912fb1056f051d22e451 Tagger: Emil Velikov emil.l.veli...@gmail.com Date: Mon May 11 20:21:00 2015 +0100 Mesa 10.5.5 release ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): Add release notes for the 10.5.5 release
Module: Mesa Branch: master Commit: 22aaa746bdbe153effcbba7d5690bd9db880c76f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=22aaa746bdbe153effcbba7d5690bd9db880c76f Author: Emil Velikov emil.l.veli...@gmail.com Date: Mon May 11 20:19:33 2015 +0100 Add release notes for the 10.5.5 release Signed-off-by: Emil Velikov emil.l.veli...@gmail.com (cherry picked from commit d88fb4050561a62fa824bec59ffedf2a826c2083) --- docs/relnotes/10.5.5.html | 94 + 1 file changed, 94 insertions(+) diff --git a/docs/relnotes/10.5.5.html b/docs/relnotes/10.5.5.html new file mode 100644 index 000..06743cc --- /dev/null +++ b/docs/relnotes/10.5.5.html @@ -0,0 +1,94 @@ +!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd; +html lang=en +head + meta http-equiv=content-type content=text/html; charset=utf-8 + titleMesa Release Notes/title + link rel=stylesheet type=text/css href=../mesa.css +/head +body + +div class=header + h1The Mesa 3D Graphics Library/h1 +/div + +iframe src=../contents.html/iframe +div class=content + +h1Mesa 10.5.5 Release Notes / May 11, 2015/h1 + +p +Mesa 10.5.5 is a bug fix release which fixes bugs found since the 10.5.4 release. +/p +p +Mesa 10.5.5 implements the OpenGL 3.3 API, but the version reported by +glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / +glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 3.3. OpenGL +3.3 is strongonly/strong available if requested at context creation +because compatibility contexts are not supported. +/p + + +h2SHA256 checksums/h2 +pre +TBD +/pre + + +h2New features/h2 +pNone/p + +h2Bug fixes/h2 + +pThis list is likely incomplete./p + +ul + +lia href=https://bugs.freedesktop.org/show_bug.cgi?id=88521;Bug 88521/a - GLBenchmark 2.7 TRex renders with artifacts on Gen8 with !UXA/li + +lia href=https://bugs.freedesktop.org/show_bug.cgi?id=89455;Bug 89455/a - [NVC0/Gallium] Unigine Heaven black and white boxes/li + +lia href=https://bugs.freedesktop.org/show_bug.cgi?id=89689;Bug 89689/a - [Regression] Weston on DRM backend won't start with new version of mesa/li + +lia href=https://bugs.freedesktop.org/show_bug.cgi?id=90130;Bug 90130/a - gl_PrimitiveId seems to reset at 340/li + +/ul + + +h2Changes/h2 + +pBoyan Ding (1):/p +ul + lii965: Add XRGB format to intel_screen_make_configs/li +/ul + +pEmil Velikov (3):/p +ul + lidocs: Add sha256 sums for the 10.5.4 release/li + lir300: do not link against libdrm_intel/li + liUpdate version to 10.5.5/li +/ul + +pIlia Mirkin (4):/p +ul + linvc0/ir: flush denorms to zero in non-compute shaders/li + ligk110/ir: fix set with a register dest to not auto-set the abs flag/li + linvc0/ir: fix predicated PFETCH emission/li + linv50/ir: fix asFlow() const helper for OP_JOIN/li +/ul + +pKenneth Graunke (2):/p +ul + lii965: Make intel_emit_linear_blit handle Gen8+ alignment restrictions./li + lii965: Disallow linear blits that are not cacheline aligned./li +/ul + +pRoland Scheidegger (1):/p +ul + lidraw: fix prim ids when there's no gs/li +/ul + + +/div +/body +/html ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): st/mesa: make sure to create a clean bool when doing i2b
Module: Mesa Branch: master Commit: 2b5355c8ab383d86bb6332dd29c417a6a1bc52bd URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b5355c8ab383d86bb6332dd29c417a6a1bc52bd Author: Ilia Mirkin imir...@alum.mit.edu Date: Wed May 6 23:29:33 2015 -0400 st/mesa: make sure to create a clean bool when doing i2b i2b has to work for all integers, not just 1. INEG would not necessarily result with all bits set, which is something that other operations can rely on by e.g. using AND (or INEG for b2i). Signed-off-by: Ilia Mirkin imir...@alum.mit.edu Reviewed-by: Jason Ekstrand jason.ekstr...@intel.com Reviewed-by: Marek Olšák marek.ol...@amd.com Reviewed-by: Roland Scheidegger srol...@vmware.com Cc: mesa-sta...@lists.freedesktop.org --- src/mesa/state_tracker/st_glsl_to_tgsi.cpp |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 1fea860..f0f2a77 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -1953,7 +1953,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir) break; case ir_unop_i2b: if (native_integers) - emit(ir, TGSI_OPCODE_INEG, result_dst, op[0]); + emit(ir, TGSI_OPCODE_USNE, result_dst, op[0], st_src_reg_for_int(0)); else emit(ir, TGSI_OPCODE_SNE, result_dst, op[0], st_src_reg_for_float(0.0)); break; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (10.5): Update version to 10.5.5
Module: Mesa Branch: 10.5 Commit: 0d425c413f24b90cc38ec2e59fd010258c4dfa1e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0d425c413f24b90cc38ec2e59fd010258c4dfa1e Author: Emil Velikov emil.l.veli...@gmail.com Date: Mon May 11 20:14:23 2015 +0100 Update version to 10.5.5 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- VERSION |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 927fa80..23b7528 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.5.4 +10.5.5 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (10.5): Add release notes for the 10.5.5 release
Module: Mesa Branch: 10.5 Commit: d88fb4050561a62fa824bec59ffedf2a826c2083 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d88fb4050561a62fa824bec59ffedf2a826c2083 Author: Emil Velikov emil.l.veli...@gmail.com Date: Mon May 11 20:19:33 2015 +0100 Add release notes for the 10.5.5 release Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- docs/relnotes/10.5.5.html | 94 + 1 file changed, 94 insertions(+) diff --git a/docs/relnotes/10.5.5.html b/docs/relnotes/10.5.5.html new file mode 100644 index 000..06743cc --- /dev/null +++ b/docs/relnotes/10.5.5.html @@ -0,0 +1,94 @@ +!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd; +html lang=en +head + meta http-equiv=content-type content=text/html; charset=utf-8 + titleMesa Release Notes/title + link rel=stylesheet type=text/css href=../mesa.css +/head +body + +div class=header + h1The Mesa 3D Graphics Library/h1 +/div + +iframe src=../contents.html/iframe +div class=content + +h1Mesa 10.5.5 Release Notes / May 11, 2015/h1 + +p +Mesa 10.5.5 is a bug fix release which fixes bugs found since the 10.5.4 release. +/p +p +Mesa 10.5.5 implements the OpenGL 3.3 API, but the version reported by +glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / +glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 3.3. OpenGL +3.3 is strongonly/strong available if requested at context creation +because compatibility contexts are not supported. +/p + + +h2SHA256 checksums/h2 +pre +TBD +/pre + + +h2New features/h2 +pNone/p + +h2Bug fixes/h2 + +pThis list is likely incomplete./p + +ul + +lia href=https://bugs.freedesktop.org/show_bug.cgi?id=88521;Bug 88521/a - GLBenchmark 2.7 TRex renders with artifacts on Gen8 with !UXA/li + +lia href=https://bugs.freedesktop.org/show_bug.cgi?id=89455;Bug 89455/a - [NVC0/Gallium] Unigine Heaven black and white boxes/li + +lia href=https://bugs.freedesktop.org/show_bug.cgi?id=89689;Bug 89689/a - [Regression] Weston on DRM backend won't start with new version of mesa/li + +lia href=https://bugs.freedesktop.org/show_bug.cgi?id=90130;Bug 90130/a - gl_PrimitiveId seems to reset at 340/li + +/ul + + +h2Changes/h2 + +pBoyan Ding (1):/p +ul + lii965: Add XRGB format to intel_screen_make_configs/li +/ul + +pEmil Velikov (3):/p +ul + lidocs: Add sha256 sums for the 10.5.4 release/li + lir300: do not link against libdrm_intel/li + liUpdate version to 10.5.5/li +/ul + +pIlia Mirkin (4):/p +ul + linvc0/ir: flush denorms to zero in non-compute shaders/li + ligk110/ir: fix set with a register dest to not auto-set the abs flag/li + linvc0/ir: fix predicated PFETCH emission/li + linv50/ir: fix asFlow() const helper for OP_JOIN/li +/ul + +pKenneth Graunke (2):/p +ul + lii965: Make intel_emit_linear_blit handle Gen8+ alignment restrictions./li + lii965: Disallow linear blits that are not cacheline aligned./li +/ul + +pRoland Scheidegger (1):/p +ul + lidraw: fix prim ids when there's no gs/li +/ul + + +/div +/body +/html ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): docs: add news item and link release notes for mesa 10.5.5
Module: Mesa Branch: master Commit: 95089bfaebcff449289494267c3461704f48452e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=95089bfaebcff449289494267c3461704f48452e Author: Emil Velikov emil.l.veli...@gmail.com Date: Mon May 11 22:07:46 2015 +0100 docs: add news item and link release notes for mesa 10.5.5 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com --- docs/index.html|6 ++ docs/relnotes.html |1 + 2 files changed, 7 insertions(+) diff --git a/docs/index.html b/docs/index.html index e01790c..325e554 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,6 +16,12 @@ h1News/h1 +h2May 11, 2015/h2 +p +a href=relnotes/10.5.5.htmlMesa 10.5.5/a is released. +This is a bug-fix release. +/p + h2April 24, 2015/h2 p a href=relnotes/10.5.4.htmlMesa 10.5.4/a is released. diff --git a/docs/relnotes.html b/docs/relnotes.html index 7f2e1d8..6ba9e59 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -21,6 +21,7 @@ The release notes summarize what's new or changed in each Mesa release. /p ul +lia href=relnotes/10.5.5.html10.5.5 release notes/a lia href=relnotes/10.5.4.html10.5.4 release notes/a lia href=relnotes/10.5.3.html10.5.3 release notes/a lia href=relnotes/10.5.2.html10.5.2 release notes/a ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): docs/GL3: (trivial) mark some tf extensions as done for softpipe/llvmpipe
Module: Mesa Branch: master Commit: 971be2b7c9c4459e383059f02d20a35e469b429e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=971be2b7c9c4459e383059f02d20a35e469b429e Author: Roland Scheidegger srol...@vmware.com Date: Tue May 12 04:48:48 2015 +0200 docs/GL3: (trivial) mark some tf extensions as done for softpipe/llvmpipe Those extensions were enabled for ages already. --- docs/GL3.txt |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/GL3.txt b/docs/GL3.txt index 7a7c1bd..5590fea 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -117,8 +117,8 @@ GL 4.0, GLSL 4.00: GL_ARB_texture_cube_map_arrayDONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_texture_gatherDONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe) GL_ARB_texture_query_lod DONE (i965, nv50, nvc0, r600, radeonsi) - GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi) - GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi) + GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) + GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL 4.1, GLSL 4.10: @@ -137,7 +137,7 @@ GL 4.2, GLSL 4.20: GL_ARB_compressed_texture_pixel_storage DONE (all drivers) GL_ARB_shader_atomic_countersDONE (i965) GL_ARB_texture_storage DONE (all drivers) - GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi) + GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_shader_image_load_store in progress (curro) GL_ARB_conservative_depthDONE (all drivers that support GLSL 1.30) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): egl/wayland: Add support for render-nodes
Module: Mesa Branch: master Commit: fb0960a14bd6980aa63deef45ec3cf1ab99bcf0a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fb0960a14bd6980aa63deef45ec3cf1ab99bcf0a Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 01:30:10 2015 +0200 egl/wayland: Add support for render-nodes It is possible the server advertises a render-node. In that case no authentication is needed, and Gem names are forbidden. Reviewed-by: Dave Airlie airl...@redhat.com Reviewed-by: Daniel Stone dani...@collabora.com Signed-off-by: Axel Davy axel.d...@ens.fr v2: do not check for __DRI_IMAGE_DRIVER, but instead do not advertise __DRI_DRI2_LOADER when on a render-node. --- src/egl/drivers/dri2/egl_dri2.h |1 + src/egl/drivers/dri2/platform_wayland.c | 69 --- 2 files changed, 56 insertions(+), 14 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index 371fb4a..3ee3f80 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -200,6 +200,7 @@ struct dri2_egl_display int authenticated; int formats; uint32_t capabilities; + int is_render_node; #endif }; diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index a5bcf25..bdb19c2 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -800,12 +800,33 @@ bad_format: return NULL; } +static char +is_fd_render_node(int fd) +{ + struct stat render; + + if (fstat(fd, render)) + return 0; + + if (!S_ISCHR(render.st_mode)) + return 0; + + if (render.st_rdev 0x80) + return 1; + return 0; +} + static int dri2_wl_authenticate(_EGLDisplay *disp, uint32_t id) { struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); int ret = 0; + if (dri2_dpy-is_render_node) { + _eglLog(_EGL_WARNING, wayland-egl: client asks server to +authenticate for render-nodes); + return 0; + } dri2_dpy-authenticated = 0; wl_drm_authenticate(dri2_dpy-wl_drm, id); @@ -847,8 +868,13 @@ drm_handle_device(void *data, struct wl_drm *drm, const char *device) return; } - drmGetMagic(dri2_dpy-fd, magic); - wl_drm_authenticate(dri2_dpy-wl_drm, magic); + if (is_fd_render_node(dri2_dpy-fd)) { + dri2_dpy-is_render_node = 1; + dri2_dpy-authenticated = 1; + } else { + drmGetMagic(dri2_dpy-fd, magic); + wl_drm_authenticate(dri2_dpy-wl_drm, magic); + } } static void @@ -1046,18 +1072,23 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp) if (!dri2_load_driver(disp)) goto cleanup_driver_name; - dri2_dpy-dri2_loader_extension.base.name = __DRI_DRI2_LOADER; - dri2_dpy-dri2_loader_extension.base.version = 3; - dri2_dpy-dri2_loader_extension.getBuffers = dri2_wl_get_buffers; - dri2_dpy-dri2_loader_extension.flushFrontBuffer = dri2_wl_flush_front_buffer; - dri2_dpy-dri2_loader_extension.getBuffersWithFormat = - dri2_wl_get_buffers_with_format; - - dri2_dpy-extensions[0] = dri2_dpy-dri2_loader_extension.base; - dri2_dpy-extensions[1] = image_loader_extension.base; - dri2_dpy-extensions[2] = image_lookup_extension.base; - dri2_dpy-extensions[3] = use_invalidate.base; - dri2_dpy-extensions[4] = NULL; + dri2_dpy-extensions[0] = image_loader_extension.base; + dri2_dpy-extensions[1] = image_lookup_extension.base; + dri2_dpy-extensions[2] = use_invalidate.base; + + /* render nodes cannot use Gem names, and thus do not support +* the __DRI_DRI2_LOADER extension */ + if (!dri2_dpy-is_render_node) { + dri2_dpy-dri2_loader_extension.base.name = __DRI_DRI2_LOADER; + dri2_dpy-dri2_loader_extension.base.version = 3; + dri2_dpy-dri2_loader_extension.getBuffers = dri2_wl_get_buffers; + dri2_dpy-dri2_loader_extension.flushFrontBuffer = dri2_wl_flush_front_buffer; + dri2_dpy-dri2_loader_extension.getBuffersWithFormat = + dri2_wl_get_buffers_with_format; + dri2_dpy-extensions[3] = dri2_dpy-dri2_loader_extension.base; + dri2_dpy-extensions[4] = NULL; + } else + dri2_dpy-extensions[3] = NULL; dri2_dpy-swap_available = EGL_TRUE; @@ -1075,6 +1106,14 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp) dri2_dpy-image-createImageFromFds == NULL) dri2_dpy-capabilities = ~WL_DRM_CAPABILITY_PRIME; + /* We cannot use Gem names with render-nodes, only prime fds (dma-buf). +* The server needs to accept them */ + if (dri2_dpy-is_render_node + !(dri2_dpy-capabilities WL_DRM_CAPABILITY_PRIME)) { + _eglLog(_EGL_WARNING, wayland-egl: display is not render-node capable); + goto cleanup_screen; + } + types = EGL_WINDOW_BIT; for (i = 0; dri2_dpy-driver_configs[i]; i++) { config = dri2_dpy-driver_configs[i]; @@ -1103,6 +1142,8 @@
Mesa (master): egl/x11: move dri2_x11_swrast_create_image_khr to egl_dri2_fallback.h
Module: Mesa Branch: master Commit: f1cc478d89986c87f01fdaae510335965e19493c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1cc478d89986c87f01fdaae510335965e19493c Author: Axel Davy axel.d...@ens.fr Date: Fri May 1 11:12:46 2015 +0200 egl/x11: move dri2_x11_swrast_create_image_khr to egl_dri2_fallback.h Reviewed-by: Dave Airlie airl...@redhat.com Reviewed-by: Daniel Stone dani...@collabora.com Signed-off-by: Axel Davy axel.d...@ens.fr --- src/egl/drivers/dri2/egl_dri2_fallbacks.h |9 + src/egl/drivers/dri2/platform_x11.c | 11 +-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2_fallbacks.h b/src/egl/drivers/dri2/egl_dri2_fallbacks.h index 9cba001..e769af3 100644 --- a/src/egl/drivers/dri2/egl_dri2_fallbacks.h +++ b/src/egl/drivers/dri2/egl_dri2_fallbacks.h @@ -45,6 +45,15 @@ dri2_fallback_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp, return NULL; } +static inline _EGLImage* +dri2_fallback_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp, + _EGLContext *ctx, EGLenum target, + EGLClientBuffer buffer, + const EGLint *attr_list) +{ + return NULL; +} + static inline EGLBoolean dri2_fallback_swap_interval(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, EGLint interval) diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index ddb3b54..300072d 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -1017,15 +1017,6 @@ dri2_x11_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp, } } -static _EGLImage* -dri2_x11_swrast_create_image_khr(_EGLDriver *drv, _EGLDisplay *disp, - _EGLContext *ctx, EGLenum target, - EGLClientBuffer buffer, - const EGLint *attr_list) -{ - return NULL; -} - static EGLBoolean dri2_x11_get_sync_values(_EGLDisplay *display, _EGLSurface *surface, EGLuint64KHR *ust, EGLuint64KHR *msc, @@ -1058,7 +1049,7 @@ static struct dri2_egl_display_vtbl dri2_x11_swrast_display_vtbl = { .create_pixmap_surface = dri2_x11_create_pixmap_surface, .create_pbuffer_surface = dri2_x11_create_pbuffer_surface, .destroy_surface = dri2_x11_destroy_surface, - .create_image = dri2_x11_swrast_create_image_khr, + .create_image = dri2_fallback_create_image_khr, .swap_interval = dri2_fallback_swap_interval, .swap_buffers = dri2_x11_swap_buffers, .swap_buffers_region = dri2_fallback_swap_buffers_region, ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit