Matthias Clasen
699c6d6159
Use GLES by default
...
With the advent of dmabuf support, using GLES has become more
attractive, since we can use its external texture support to
support more dmabuf formats.
You can go back to the previous preference order by setting
GDK_DEBUG=gl-prefer-gl
2023-11-19 08:07:03 -05:00
Matthias Clasen
025b846fce
Add a debug value to prefer desktop GL
...
This will be used in the next commit, when we change the default
preference to be GLES.
2023-11-19 08:07:02 -05:00
Matthias Clasen
fcdbab3f69
gl: Tweak debug values for GL api selection
...
Replace GDK_DEBUG=gl-gles with GDK_DEBUG=gl-disable-gl, and add
a GDK_DEBUG=gl-disable-gles to match.
2023-11-19 08:07:02 -05:00
Luca Bacci
0b853f62ed
Merge branch '6203_gdk_win32_precalculate_keymap' into 'main'
...
GdkWin32: precalculate keymap at display opening
Closes #6203
See merge request GNOME/gtk!6566
2023-11-18 13:24:21 +00:00
Matthias Clasen
d4a569057f
Cosmetics: Typo fix
2023-11-16 20:54:15 -05:00
Matthias Clasen
c5727df568
dmabuf: Add support for separate alpha formats
...
Support dmabuf formats with alpha in a separate plane.
Related: #6208
2023-11-16 20:53:52 -05:00
Benjamin Otte
7406cea257
Merge branch 'wip/otte/for-main' into 'main'
...
wayland: Don't create a new wl_buffer if the texture didn't change
See merge request GNOME/gtk!6577
2023-11-16 23:54:57 +00:00
Benjamin Otte
010ff81b2f
wayland: Don't create a new wl_buffer if the texture didn't change
...
Avoids flickering in Mutter - which is probably a mutter bug.
But it also reduces traffic, so it's a good thing anyway.
2023-11-17 00:22:27 +01:00
Matthias Clasen
6eb6b0cb50
Cosmetics: typo fix
2023-11-15 06:45:52 -05:00
Matthias Clasen
c81954120a
Merge branch 'fix-giodesktopappinfo-check' into 'main'
...
Revert "Conditional check for gdesktopappinfo header"
See merge request GNOME/gtk!6568
2023-11-15 05:13:08 +00:00
Matthias Clasen
4bdc44f4af
Revert "Conditional check for gdesktopappinfo header"
...
This reverts commit 13b94dab10
.
As pointed out in #6557 , this commit is broken and causes
gio/gdesktopappinfo.h to never be found.
2023-11-14 23:45:17 -05:00
Matthias Clasen
429056c214
Merge branch 'wip/otte/for-mclasen' into 'main'
...
gl: Don't punch hole if the subsurface is above
See merge request GNOME/gtk!6567
2023-11-15 00:26:45 +00:00
Benjamin Otte
acecf519bc
offload: Reject non-integer rectangles
...
We shouldn't just fudge with coordinates if we want accurate rendering.
2023-11-14 21:55:10 +01:00
Benjamin Otte
b2fbdcda41
subsurface: Report better error messages when rejecting textures
2023-11-14 21:54:38 +01:00
Luca Bacci
2803189afd
Merge branch 'gdkwin32_modernize_clipboard' into 'main'
...
GdkWin32: switch to new clipboard API
Closes #442
See merge request GNOME/gtk!6560
2023-11-14 20:09:55 +00:00
g.willems
ad08c1444a
win32: precalculate keymap at display opening
...
The default keymap and keymap layouts are calculated on request.
If done once a surface is setup and listening at win32 events,
we may then enter in a recursive loop.
To avoid this, precalculate the keymap as soon as displays are open.
Fixes #6203
Closes #6203
2023-11-14 20:26:05 +01:00
Benjamin Otte
46d4c70cd7
offload: Only print one debug message
...
... when failing to create the wl_buffer.
2023-11-14 15:04:38 +01:00
Benjamin Otte
4920ac4a57
offload: Move a debug message
...
If we fail to attach a buffer, we don't want to print this.
2023-11-14 15:04:38 +01:00
Benjamin Otte
190e7da317
wayland: Don't g_warning() on expected error
...
Print a GDK_DEBUG() message instead.
2023-11-14 13:06:05 +01:00
Matthias Clasen
00d7d4b17b
wayland: Implement empty_frame in draw contexts
2023-11-13 22:17:35 +01:00
Matthias Clasen
9eef566b54
gdk: Introduce empty frames in GdkDrawContext
...
We need a way to commit pending subsurface changes, even when no
drawing happened for the frame. empty_frame() is that way.
2023-11-13 22:17:35 +01:00
Matthias Clasen
ca054bfdc9
wayland: Request frame callbacks on subsurfaces
...
We need this for the case when the subsurface completely covers
up the main surface. Without it, we just stop updating.
2023-11-13 22:17:35 +01:00
Matthias Clasen
59dbfb0843
wayland: Implement subsurface api
...
This is not used anywhere yet.
2023-11-13 22:17:35 +01:00
Matthias Clasen
223e27e7dc
gdk: Add private subsurface api
...
Add api to allow creating subsurfaces, attaching textures to them,
and changing the stacking order.
This is just the api, there is no implementation yet.
2023-11-13 22:17:35 +01:00
Matthias Clasen
efe1415429
gdk: Add a debug flag for subsurfaces
...
You can now use GDK_DEBUG=offload to get debug spew about
subsurfaces and graphics offload.
2023-11-13 22:17:35 +01:00
Matthias Clasen
489723916d
wayland: Get format info for dmabufs
...
For now, all we do with it is dump the formats if you
set GDK_DEBUG=misc. In the future, this will be used
when attaching dmabufs to subsurfaces.
2023-11-13 22:17:35 +01:00
g.willems
a58424588f
win32: switch to new clipboard API
...
This is a backport of !1143 to gtk4.
SetClipboardViewer() API is obsolete is prone to clipboard chain breaks
from other applications.
Use recommended AddClipboardFormatListener() instead.
Fixes #442
2023-11-13 21:29:48 +01:00
Matthias Clasen
b24ae31716
dmabuf: Improve consistency of debug messages
...
Make sure all our dmabuf debug messages are display-scoped so the
inspector doesn't trigger them, use the same formatting throughout,
and improve consistency of wording here and there.
2023-11-12 13:02:58 +01:00
Matthias Clasen
7cf805c8b3
dmabuf: Add a debug message for format fallback
...
This may be helpful in pinpointing why a dmabuf format behaves
unexpectedly.
2023-11-12 11:24:37 +01:00
Matthias Clasen
6ae9cbfe0f
dmabuf: NV12 is opaque
...
Getting this wrong matters, since we won't offload textures in
non-opaque formats. Found by Robert Mader. At the same time,
unify the two places we have for mapping from fourcc to memory
format.
2023-11-11 23:56:01 +01:00
Benjamin Otte
a9e4993184
Merge branch 'wip/otte/enable-debug' into 'main'
...
Remove G_ENABLE_DEBUG around debug checks
See merge request GNOME/gtk!6546
2023-11-07 15:12:11 +00:00
Benjamin Otte
cd7e1c1387
dmabuf: Modify gdk_gl_context_import_dmabuf()
...
Move a bunch of code - namely the target selection - into the function.
I want to use the same code in the NGL renderer, so no need to duplicate
it.
2023-11-07 05:12:57 +01:00
Benjamin Otte
61207f81c3
dmabuf: Set same YUV colorspace as elsewhere
...
We use ITU.601 full range everywhere, so ensure it's used here, too.
2023-11-07 05:12:57 +01:00
Benjamin Otte
1a93967e1f
gdk: Remove debug modes in gdk_debug_parse_var()
...
Always support all variables.
2023-11-05 11:16:23 +01:00
Benjamin Otte
310ab7b531
Remove G_ENABLE_DEBUG around debug checks
...
It started out as busywork, but it does many separate things. If I could
start over, I'd take them apart into multiple commits:
1. Remove G_ENABLE_DEBUG around GDK_DEBUG_*() calls
This is not needed at all, the calls themselves take care of it.
2. Remove G_ENABLE_DEBUG around profiling code
This now enables profiling support in release builds.
3. Stop poking _gdk_debug_flags and use GDK_DEBUG_CHECK()
This was old code that was never updated.
4. Make !G_ENABLE_DEBUG turn off GDK_DEBUG_CHECK()
The code used to
#define GDK_DEBUG_CHECK(...) false
#define GDK_DEBUG(...)
which would compile away all the code inside those macros. This
means a lot of variable definitions and debug utility functions
would suddenly no longer be used and cause compiler errors.
2023-11-05 11:16:23 +01:00
Benjamin Otte
d55801c8ba
debug: Turn gdk_debug_message() into a function
...
1. MSVC can't deal with the nonstandard ##__VA_ARGS__
2. It allows setting a breakpoint on it.
2023-11-05 10:21:54 +01:00
Matthias Clasen
1914adc344
dmabuf: Don't check for image storage
...
I was wrong about this extension, and it isn't even a GL extension
to begin with, so revert all this.
2023-10-29 14:45:20 -04:00
Matthias Clasen
6e236b9459
Revert "gl context: Check for more GL extensions"
...
This reverts commit b8b5835fc6
.
2023-10-29 14:44:46 -04:00
Matthias Clasen
11715760f9
Revert "glcontext: Better debug spew"
...
This reverts commit 30e14f73fa
.
2023-10-29 14:44:29 -04:00
Matthias Clasen
06dda4e12b
Merge branch 'memory-format-swizzle-check' into 'main'
...
gl: Check all swizzle values
See merge request GNOME/gtk!6524
2023-10-26 02:38:35 +00:00
Matthias Clasen
4a749aee6e
Fix swizzle values for some memory formats
...
For opaque formats with 3 channels, we should use the default
GL_ALPHA, but for opaque formats with an ignored 4th channel,
we must use GL_ONE.
2023-10-25 21:39:52 -04:00
Matthias Clasen
bb2b8bf2c3
dmabuf: Refine the handling of implicit modifiers
...
If all formats with a given fourcc are external, treat the
fourcc with implicit modifiers as external too, following a
sugestion by Benjamin Otte.
2023-10-24 22:33:45 -04:00
Matthias Clasen
eb048c91be
dmabuf: Allow implicit modifiers
...
Remove all the roadblocks we've put up to keep implicit modifiers
out. Our importing code already handles them as a signal that says
'No modifiers, please!'. Now we just hope for the best and pass
things along.
This is necessary since some drivers won't produce any explicit
modifiers.
2023-10-24 22:33:45 -04:00
Matthias Clasen
8f90ddb906
dmabuf: Cache egl formats
...
Only call eglQueryDmaBufModifiersEXT once, and reuse the results.
2023-10-24 21:53:09 -04:00
Matthias Clasen
a90ffb117f
docs: Some additions
...
Add a link to the kernel docs about dmabufs.
2023-10-24 10:50:46 -04:00
Matthias Clasen
29681717ed
Fix annotations
...
It is always org.gtk.Property, even if we are in gdk.
2023-10-24 07:16:42 -04:00
Benjamin Otte
51a181af7a
Merge branch 'wip/otte/for-main' into 'main'
...
dmabuf: Seek back to the start
See merge request GNOME/gtk!6526
2023-10-23 19:57:21 +00:00
Benjamin Otte
e2edf693f5
gdk: Make float32 report its true depth
...
I have no idea how this is the only value that is wrong.
2023-10-23 21:22:17 +02:00
Benjamin Otte
323300e92a
dmabuf: Seek back to the start
...
https://docs.kernel.org/driver-api/dma-buf.html recommends doing that,
so we do that.
2023-10-23 17:57:57 +02:00
Benjamin Otte
e688be1cff
gdk: Add some debug messages around dmabuf initialization
2023-10-23 17:57:57 +02:00