Benjamin Otte
28d38cd730
Add a debug node for CSS outlines
...
All the other CSS render operations have one, so outlines should, too.
This was found by tracking down a random border node in a rendering.
2023-11-14 13:06:05 +01:00
Matthias Clasen
524d681496
Merge branch 'dmabuf-passthrough' into 'main'
...
dmabuf passthrough
Closes #6132
See merge request GNOME/gtk!6533
2023-11-14 03:20:12 +00:00
Matthias Clasen
44d977844b
testsuite: Add offload tests
...
These tests come in two variants.
The first takes .node and .offload file, parses the node file,
and compares the resulting subsurface attachments to expected results.
The second variant takes two .node/.offload file pairs and a .diff
file, parses the node files, compares the resulting subsurface
attachments, and then diffs the nodes, comparing the resulting
area to the region in the .diff file.
2023-11-13 18:41:53 -06:00
Matthias Clasen
6259800f5a
Merge branch 'matthiasc/for-main' into 'main'
...
gsk: Robustness fix
See merge request GNOME/gtk!6561
2023-11-13 23:36:58 +00:00
Matthias Clasen
d3a5aa5304
testdmabuf: Use GtkGraphicsOffload
2023-11-13 22:27:51 +01:00
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
93959ef7df
gsk: Robustness fix
...
I was seeing empty regions being passed as scissor.
2023-11-13 22:16:07 +01:00
Matthias Clasen
209a1a69cc
gtk: Use some more inline helpers
2023-11-13 22:15:57 +01:00
Matthias Clasen
982f965ea8
gsk: Use some more inline helpers
2023-11-13 22:15:45 +01:00
Matthias Clasen
f7fc90daa0
Add another inline rect helper
2023-11-13 22:15:35 +01:00
Benjamin Otte
ce4d8cc6d9
Merge branch 'wip/otte/tree-indent' into 'main'
...
theme: Halve indentation of trees
See merge request GNOME/gtk!6553
2023-11-13 16:16:38 +00: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
Benjamin Otte
7803aad872
theme: Halve indentation of trees
...
Deep trees quickly add so much empty space on the left, so that it gets
really hard to read after an indentation level of ~10.
By halving, we still keep the visual clarity of indenting but we can now
handle twice as many indentation levels, ie ~20.
It is what sysprof has been using, and it also feels right in the
inspector.
2023-11-11 10:34:57 +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