Matthias Clasen
d32ab7544d
gtk-demo: Enable offload in the video player
2023-11-13 22:27:51 +01:00
Matthias Clasen
e2e7c931c5
gtk: Use GtkGraphicsOffload in GtkVideo
...
Video playback is one of the main use cases for graphics offload,
so it makes a lot of sense to do it in GtkVideo.
2023-11-13 22:27:51 +01:00
Matthias Clasen
e202348380
gtk: Add GtkGraphicsOffload
...
This is new widget that will attempt to pass through the content
of its child via a subsurface. This is mostly meant for internal
use, but the minimal api is available.
2023-11-13 22:27:51 +01:00
Matthias Clasen
ba5403da17
gtk: Add gtk_snapshot_push_subsurface
...
This is currently private api.
2023-11-13 22:17:36 +01:00
Matthias Clasen
904d44074f
gsk gl: Handle subsurfaces during rendering
...
During rendering, restack offloaded subsurfaces below the main
surface, and clear the area so they peek through. After rendering,
raise the last subsurface if we haven't drawn over it.
2023-11-13 22:17:36 +01:00
Matthias Clasen
c636baf6f5
gsk gl: Make it possible to clear a rectangle
...
Add a blend mode to the draw command, so it can draw transparent
black. This will be used to erase the area on top of a subsurface
when we do passthrough.
2023-11-13 22:17:36 +01:00
Matthias Clasen
b7c2528ad1
gsk: Prepare subsurface offload
...
Use a GskOffloadInfo to update subsurfaces (and collect info about
them). Pass that info to both the diff and the render vfuncs.
2023-11-13 22:17:36 +01:00
Matthias Clasen
48740de71a
gsk: Add a subsurface mode to node diffing
...
Add an extra argument to pass offload info to the diffing code.
This is then used for diffing subsurface nodes differently,
depending on their offloading status.
2023-11-13 22:17:35 +01:00
Matthias Clasen
34c16b0df2
gsk: Add code to offload to subsurfaces
...
This code walks the node tree, finds subsurface nodes, determines
if we can offload to the subsurface, and if yes, does so. This
isn't used yet.
2023-11-13 22:17:35 +01:00
Matthias Clasen
d0a675ab01
gsk: Add subsurface nodes
...
Also show them in the inspector recorder, with some information.
2023-11-13 22:17:35 +01:00
Matthias Clasen
0e0bf8ed47
gsk: Add a debug flag for graphics offload
...
Add GSK_DEBUG=offload-disable to disable graphics offload via
attaching of dmabufs to subsurfaces. This is not used anywhere yet.
2023-11-13 22:17:35 +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
272168c94b
inspector: Add a subsurface overlay
...
We have to be careful to not draw over the subsurface area with
our highlighting, otherwise this would interfere with raising
unobstructed subsurfaces.
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
Matthias Clasen
e8894ad383
gsk: Robustness fix
...
I was seeing empty regions being passed as scissor.
2023-11-13 22:17:35 +01:00
Matthias Clasen
9423d6261a
gtk: Use some more inline helpers
2023-11-13 22:17:35 +01:00
Matthias Clasen
b766f92026
gsk: Use some more inline helpers
2023-11-13 22:17:35 +01:00
Matthias Clasen
a37aacf4e4
Add another inline rect helper
2023-11-13 22:17:35 +01:00
Matthias Clasen
c85766ac71
Merge branch 'matthiasc/for-main' into 'main'
...
dmabuf: Add a debug message for format fallback
See merge request GNOME/gtk!6556
2023-11-12 12:59:22 +00: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
1f62c693cd
Merge branch 'nv12-opaque' into 'main'
...
dmabuf: NV12 is opaque
See merge request GNOME/gtk!6555
2023-11-11 23:47:59 +00: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
Ekaterine Papava
cc2d3fa7d6
Update Georgian translation
2023-11-09 09:41:14 +00: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
33703bfe01
Merge branch 'wip/otte/for-main' into 'main'
...
dmabuf: Set same YUV colorspace as elsewhere
See merge request GNOME/gtk!6548
2023-11-07 05:11:10 +00:00
Benjamin Otte
7ba5cf5309
inspector: Add more info about GL
...
Print all the variables queryable via glGetString().
And remove them from the Windows backend.
2023-11-07 05:33:48 +01:00
Benjamin Otte
bb890f6004
inspector: Don't list unused EGL extension
...
We don't use that extension and I don't even know what it is about -
which is a good reason to get rid of showing it.
2023-11-07 05:12:57 +01:00
Benjamin Otte
1c7a0e7a15
inspector: Use right name for Vulkan validation layer
...
The name got changed a while ago, so let's reflect that.
2023-11-07 05:12:57 +01: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
a2e1e727c5
testsuite: Make texture-scale-magnify tests have roundable numbers
...
Use a number that's 2^N * 255 to get floating point awesomeness combined
with uint8_t awesomeness.
Fixes rounding errors in samplers.
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
f624586a75
testsuite: Don't skip test
...
The test now works without debugging as debug messages are always
available.
2023-11-05 11:16:23 +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
b1809bfd88
Merge branch 'matthiasc/for-main' into 'main'
...
print dialog: Improve local fallback
See merge request GNOME/gtk!6547
2023-11-04 23:20:53 +00:00
Matthias Clasen
deb8a35ea0
print dialog: Improve local fallback
...
We need to set embed-page-setup for the paper size and orientation
combos to work.
2023-11-05 01:00:39 +02:00
Jordi Mas i Hernandez
c5ce24c82c
Update Catalan translation
2023-11-04 18:28:38 +00:00
Artur S0
54815e4771
Update Russian translation
2023-11-04 02:09:09 +00:00
Matthias Clasen
5a99790a87
Merge branch 'examples-gtk-widget-show' into 'main'
...
docs: Replace deprecated gtk_widget_show with gtk_widget_set_visible
See merge request GNOME/gtk!6538
2023-11-03 15:29:39 +00:00
Matthias Clasen
8aa7174bfb
Merge branch 'faster-fps-overlay' into 'main'
...
inspector: Speed up the fps overlay
See merge request GNOME/gtk!6544
2023-11-01 22:44:44 +00:00
Benjamin Otte
9df5e3cbd6
inspector: Replace "no glyph" with space glyph
...
This makes right-aligning the text work again.
2023-11-01 21:57:56 +01:00
Benjamin Otte
8b5194c016
inspector: Use the right font for the fps overlay
...
Initialize the font only when we have a widget that provides it. That
way we don't pick a terrible default font, but the widget's preferred
one.
2023-11-01 21:32:55 +01:00
Matthias Clasen
9a63172cf5
Some minor fpsoverlay improvements
...
Avoid some allocations.
2023-11-01 14:45:57 -04:00