Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=103012
Signed-off-by: Olivier Fourdan
---
Note: I am not familiar with this so I have no idea whether or not the
fix is correct (thus the RFC), but it does fix the test case provided
in bug 103012.
Hey,
On 27 September 2017 at 18:09, Adam Jackson wrote:
> +common_wflags = []
> +foreach wflag: test_wflags
> +if cc.has_argument(wflag)
> +common_wflags += [ wflag ]
> +endif
> +endforeach
> +
> +add_global_arguments(common_wflags, language : 'c')
If you're
On Wed, 2017-09-27 at 18:20 +0100, Daniel Stone wrote:
> Hey,
>
> On 27 September 2017 at 18:09, Adam Jackson wrote:
> > +common_wflags = []
> > +foreach wflag: test_wflags
> > +if cc.has_argument(wflag)
> > +common_wflags += [ wflag ]
> > +endif
> > +endforeach
../test/sync/sync.c: In function ‘main’:
../test/sync/sync.c:288:40: warning: initialization discards ‘const’ qualifier
from pointer target type [-Wdiscarded-qualifiers]
xcb_query_extension_reply_t *ext = xcb_get_extension_data(c, _sync_id);
Without this, exa's gc swap macros trigger gcc's -Wdiscarded-qualifiers.
Signed-off-by: Adam Jackson
Reviewed-by: Daniel Stone
---
include/meson.build | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/include/meson.build
We don't really require all of C99, but enough that it's not worth
bothering with the distinction, especially if your toolchain is new
enough that meson is a thing for you. We could do strict C99 if we
really insisted on spelling it __typeof__, but who wants that? Nobody,
that's who.
Fixes several dozen cases like:
../hw/dmx/examples/ev.c: In function ‘main’:
../hw/dmx/examples/ev.c:147:29: warning: assignment discards ‘const’ qualifier
from pointer target type [-Wdiscarded-qualifiers]
tmp = "X";
^
Signed-off-by: Adam
Well, almost all of them. No -Wdeclaration-after-statement because
that's legal in C99, and in the limited ways we use it, more readable.
Signed-off-by: Adam Jackson
Reviewed-by: Daniel Stone
---
meson.build | 45
../hw/dmx/dmx.c:66:12: warning: redundant redeclaration of
‘PanoramiXNumScreens’ [-Wredundant-decls]
extern int PanoramiXNumScreens;
^~~
In file included from ../hw/dmx/dmx.c:65:0:
../Xext/panoramiXsrv.h:11:22: note: previous declaration of
‘PanoramiXNumScreens’ was
On 27 September 2017 at 19:27, Adam Jackson wrote:
> On Wed, 2017-09-27 at 18:20 +0100, Daniel Stone wrote:
>> If you're willing to take the dep, this is:
>> add_global_arguments(cc.get_supported_arguments(test_wflags), language: 'c')
>
> Neat, didn't know about that one. I just
Hi,
In general, I think the organization was great. I agree having
everything happen in a single room was a good point. Here's some of my
personal feedback:
* I didn't like the tables layout at all. I found it to be extremely
uncomfortable to have to look sideways in order to see the screens
Without this, exa's gc swap macros trigger gcc's -Wdiscarded-qualifiers.
Signed-off-by: Adam Jackson
---
include/meson.build | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/include/meson.build b/include/meson.build
index 5cea8bbcf6..90f8de3cb9 100644
---
We don't really require all of C99, but enough that it's not worth
bothering with the distinction, especially if your toolchain is new
enough that meson is a thing for you.
Signed-off-by: Adam Jackson
---
meson.build | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
Well, almost all of them. No -Wdeclaration-after-statement because
that's legal in C99, and in the limited ways we use it, more readable.
Signed-off-by: Adam Jackson
---
meson.build | 46 --
1 file changed, 44 insertions(+), 2
Signed-off-by: Peter Hutterer
---
release.sh | 155 +++--
1 file changed, 99 insertions(+), 56 deletions(-)
diff --git a/release.sh b/release.sh
index ff89d2e..afa43ac 100755
--- a/release.sh
+++ b/release.sh
@@
Initial implementation for DRI3 v1.1. Only the DRI3 implementation
is there, backends need to implement the proper hooks.
Version is still set to 1.0 so clients shouldn't use the new
requests yet.
Signed-off-by: Daniel Stone
Signed-off-by: Louis-Francis Ratté-Boulianne
Use most optimal buffer format (e.g. tiled/compressed) available
for scanout.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
hw/xfree86/drivers/modesetting/drmmode_display.c | 69
1 file changed, 69 insertions(+)
diff --git
Bump DRI3 version to v1.2 that adds requests:
* FenceFromDMAFenceFD is used to create a sync fence
from a sync file fence.
* DMAFenceFDFromFence is used to retrieve the sync
file fd from a fence.
Drivers need to check the SyncFence type to make use of it
when possible.
From: Daniel Stone
Not currently used.
Signed-off-by: Daniel Stone
---
src/amd/vulkan/radv_wsi.c | 13 +++--
src/intel/vulkan/anv_wsi.c | 9 +
src/vulkan/wsi/wsi_common.h | 9 +
From: Daniel Stone
---
src/mesa/drivers/dri/i965/brw_bufmgr.h | 3 +++
src/mesa/drivers/dri/i965/intel_screen.c | 16 ++--
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_bufmgr.h
The functions will be needed outside of the driver.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
hw/xfree86/drivers/modesetting/dri2.c| 8 +-
hw/xfree86/drivers/modesetting/driver.h | 4 -
hw/xfree86/drivers/modesetting/drmmode_display.c | 9 ++
Implement function added in DRI3 v1.1.
A newest version of libepoxy (>= 1.4.4) is required as earlier
versions use a problematic version of Khronos
EXT_image_dma_buf_import_modifiers spec.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
configure.ac
Enable DRI3 v1.1 now that all functions have been implemented and
that there is at least one backend implementing the driver hooks
(modesetting/glamor).
Signed-off-by: Louis-Francis Ratté-Boulianne
---
include/protocol-versions.h | 2 +-
1 file changed, 1 insertion(+), 1
Needed so multiple types of sync fences can exist (SHM and DMA).
Signed-off-by: Louis-Francis Ratté-Boulianne
---
miext/sync/misync.c| 25 +++--
miext/sync/misync.h| 10 +-
miext/sync/misyncshm.c | 30 +++---
3
It does the same as createImagewithModifiers but allow multiple
modifiers set to be given. The modifier used to create the image
should be selected from the first tranche if possible. If not,
then the subsequent tranches should be used.
Signed-off-by: Louis-Francis Ratté-Boulianne
Hi,
With full support for modifiers in DRIimage, this patch series adds
support for fully plumbing them through X11. This is the third
revision, more context can be found here:
https://lists.freedesktop.org/archives/mesa-dev/2017-June/158457.html
From: Daniel Stone
The only use for this boolean was to decide whether or not it should
export a dmabuf FD. Simplify things a bit by giving that directly.
Signed-off-by: Daniel Stone
---
src/amd/vulkan/radv_wsi.c | 6 --
DRI3 version 1.1 adds support for explicit format modifiers, including
multi-planar buffers.
Signed-off-by: Daniel Stone
Signed-off-by: Louis-Francis Ratté-Boulianne
---
dri3proto.h | 86 -
dri3proto.txt | 202
Add support for DRI3 v1.1, which allows pixmaps to be backed by
multi-planar buffers, or those with format modifiers. This is both
for allocating render buffers, as well as EGLImage imports from a
native pixmap (EGL_NATIVE_PIXMAP_KHR).
Signed-off-by: Louis-Francis Ratté-Boulianne
From: Daniel Stone
Adds support for multiple planes and buffer modifiers.
---
src/vulkan/wsi/wsi_common_x11.c | 178
1 file changed, 160 insertions(+), 18 deletions(-)
diff --git a/src/vulkan/wsi/wsi_common_x11.c
From: Daniel Stone
That's what it actually means; the fact it generally means a linear copy
is requires is incidental.
Signed-off-by: Daniel Stone
---
src/amd/vulkan/radv_wsi.c | 10 +-
src/intel/vulkan/anv_wsi.c | 2 +-
From: Daniel Stone
Create a new helper function which handles the actual image/memory
allocations for a swapchain image, removing the bulk of
radv_wsi_image_create. This will make it easier to move linear handling
into radv in the next patch.
Signed-off-by: Daniel Stone
The optimal modifier depends on the current CRTC as some modifiers
might not allow direct scanout. When the window is moved to a
different CRTC, available modifiers should be re-fetched and the
buffers re-allocated.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
From: Daniel Stone
Signed-off-by: Daniel Stone
---
src/intel/vulkan/anv_wsi.c | 12 +++-
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/intel/vulkan/anv_wsi.c b/src/intel/vulkan/anv_wsi.c
index f59d349b50..d8ffdfbab2
Retrieve IN_FORMATS property from the plane. It gives the
allowed formats and modifiers for BO allocation.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
configure.ac | 4 +
hw/xfree86/drivers/modesetting/drmmode_display.c | 114
Enable support for DMA fences in Glamor backend.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
glamor/glamor_sync.c | 4
1 file changed, 4 insertions(+)
diff --git a/glamor/glamor_sync.c b/glamor/glamor_sync.c
index 907e0c613..58a0a36d5 100644
---
Hello,
This is the RFC v3 for DRI3 v1.1 (X11 modifiers and multi-plane).
For context, please check previous submissions:
https://lists.x.org/archives/xorg-devel/2017-June/053854.html
https://lists.x.org/archives/xorg-devel/2017-August/054436.html
The main changes in this iteration are:
-
Signed-off-by: Louis-Francis Ratté-Boulianne
---
presentproto.h | 16
presenttokens.h | 5 -
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/presentproto.h b/presentproto.h
index 08ddc05..c59f2c0 100644
--- a/presentproto.h
+++
Using modifier might allow the driver to use a more optimal format
(e.g. tiled/compressed). Let's try to use those if possible.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
glamor/glamor_egl.c | 44 ++-
The planar_format image property was always set even for
non-planar formats. This was breaking CCS support as
intel_from_planar is now making sure we can't have both
a modifier and an planar format.
Signed-off-by: Louis-Francis Ratté-Boulianne
Reviewed-by: Daniel Stone
While transitionning from CARD64 to int64, the GreaterThan call
as mistakenly been transformed into ">=". That was at least
causing problems with Mutter.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
Xext/sync.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff
DRI3 version 1.2 adds support for creating DMA fences and
retrieving the file descriptor backing one.
Signed-off-by: Daniel Stone
Signed-off-by: Louis-Francis Ratté-Boulianne
---
dri3proto.h | 45 --
dri3proto.txt
Drivers need to implement flip_with_fence and flush_with_fence
to create out-fences.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
present/present.c | 68 +++
present/present.h | 8 ++
present/present_priv.h
When the window has changed CRTC, send the event.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
present/present.c | 5 +
present/present_event.c | 35 +++
present/present_priv.h | 3 +++
3 files changed, 43 insertions(+)
diff
Hello,
This patchset implements of what we would like to see become DRI3 v1.2,
that is the implementation of DMA fences.
For some context, please see previous submission:
https://lists.x.org/archives/xorg-devel/2017-August/054439.html
The main changes in this iteration are:
- The DMA fences
Functions are available to create a SyncFence from a DMA fence
fd and to retrieve the file descriptor from a SyncFence.
DMA fences can't be triggered/reset externally.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
Xext/sync.c| 34 +++-
Xext/syncsrv.h
This allows the uses of CCS compressed or tiled pixmaps as BOs when
page-flipping.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
hw/xfree86/drivers/modesetting/drmmode_display.c | 46
hw/xfree86/drivers/modesetting/drmmode_display.h | 4 +++
When it is detected that a window has changed CRTC, the
current format modifier for the surface might no longer be
optimal (e.g. it might not allow direct scanout on the new
CRTC). The Vulkan client should then re-create the swapchain.
Note: It might be more performant to actually check the
new
Instead of relying on the present module to wait on in-fences,
we added some hooks to allow the drivers/hardware to do the work.
Drivers need to implement can_wait, wait and flip_with_fence
to handle it.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
present/present.c
Allow the modesetting present implementation to wait on
in-fences using ANDROID_native_fence_sync if the fence
was created with DRI3 FenceFromDMAFenceFD.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
configure.ac | 1 +
From: Daniel Stone
Signed-off-by: Daniel Stone
---
src/egl/main/eglapi.c | 1 +
src/egl/main/egldisplay.h | 1 +
src/egl/main/eglimage.c | 26 ++
src/egl/main/eglimage.h | 3 +++
4 files changed, 31 insertions(+)
If the server has that capability, and the client is using this
option, the idle fence given to PresentPixamp can be modified to
point to an out-fence created by the driver.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
presenttokens.h | 8 ++--
1 file changed, 6
From: Daniel Stone
If we fail in the alloc, just use the (mostly) identical
radv_wsi_image_free() to clean up after us.
Signed-off-by: Daniel Stone
---
src/amd/vulkan/radv_wsi.c | 39 ---
1 file changed, 16
From: Daniel Stone
zwp_linux_dmabuf_v1 lets us use multi-planar images and buffer
modifiers.
Signed-off-by: Daniel Stone
---
src/vulkan/Makefile.am | 10 +++
src/vulkan/Makefile.sources | 4 +-
Later events are sometimes added in front of the queue (e.g.
if page flipping fails) so we need to check the whole queue
on event.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
present/present.c | 4
1 file changed, 4 deletions(-)
diff --git a/present/present.c
In order to flip between compressed and uncompressed buffers -
something drmModePageFlip explicitly bans us from doing - we need
to port use the atomic modesetting API. It's only 'fake' atomic
though given we still commit for each CRTC separately and
CRTC and connector properties are not set with
Create out-fence using eglCreateSyncKHR or OUT_FENCE_PTR DRM
property when page-flipping.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
glamor/glamor.c | 9 ++
glamor/glamor.h | 2 ++
From: Daniel Stone
Not yet used anywhere.
Signed-off-by: Daniel Stone
---
src/amd/vulkan/Makefile.am | 1 +
src/amd/vulkan/radv_wsi.c | 2 ++
src/intel/vulkan/anv_wsi.c | 8
src/vulkan/wsi/wsi_common.h | 1 +
4 files changed, 12
From: Daniel Stone
This is used to hold information about the allocated image, rather than
an ever-growing function argument list.
Signed-off-by: Daniel Stone
---
src/amd/vulkan/radv_wsi.c | 31 ++
From: Daniel Stone
Given a tiling mode and an aux usage, return the DRM modifier.
Signed-off-by: Daniel Stone
---
src/intel/isl/isl.h | 6 +-
src/intel/isl/isl_drm.c | 17 +
2 files changed, 22 insertions(+), 1 deletion(-)
From: Daniel Stone
Allow the winsys to provide a set of acceptable modifiers to the driver
when creating WSI images.
Signed-off-by: Daniel Stone
---
src/amd/vulkan/radv_wsi.c | 36 +--
Modesetting/glamor can handle DMA fences if extensions EGL_KHR_wait_sync and
EGL_ANDROID_native_fence_sync are available and if IN_FENCE_FD
and OUT_FENCE_PTR DRM properties are implemented.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
glamor/glamor.c
It relies on GBM >= 17.1.0 where we can import BO with multiple
planes and a format modifier (GBM_BO_IMPORT_FD_MODIFIER).
Signed-off-by: Louis-Francis Ratté-Boulianne
---
configure.ac | 4 +
glamor/glamor.c | 34 ---
glamor/glamor.h
The caller might want to discriminate between two possible
sets of tiling flags. For example, some tiling modes might
allow direct scanout, and so should be preferred even if
GPU operations are a little less performant.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
From: Daniel Stone
Provide a hook to inform the driver that implicit synchronization should
be suppressed.
---
include/GL/internal/dri_interface.h | 10 +-
src/egl/drivers/dri2/egl_dri2.c | 27 +++
2 files changed, 36 insertions(+), 1
From: Daniel Stone
This is pretty much radv-specific anyway.
Signed-off-by: Daniel Stone
---
src/amd/vulkan/radv_wsi.c | 49 +++--
src/intel/vulkan/anv_wsi.c | 23 -
To make sure we also use the same primary plane and to avoid
mixing uses of two APIs, it is better to always use the atomic
modesetting API when possible.
Signed-off-by: Louis-Francis Ratté-Boulianne
---
hw/xfree86/drivers/modesetting/drmmode_display.c | 402
On Wed, 2017-09-27 at 01:24 -0400, Louis-Francis Ratté-Boulianne wrote:
> While transitionning from CARD64 to int64, the GreaterThan call
> as mistakenly been transformed into ">=". That was at least
> causing problems with Mutter.
>
> Signed-off-by: Louis-Francis Ratté-Boulianne
68 matches
Mail list logo