Michel Dänzer
1ad3d265e3
cogl/pipeline: Rename and export cogl_pipeline_get_layer_filters
...
For symmetry with cogl_pipeline_set_layer_filters.
Suggested by Jonas Ådahl.
v2:
* Align function parameters. (Jonas Ådahl)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2757 >
2022-12-15 11:54:21 +00:00
Michel Dänzer
1f65ab4be1
cogl/pipeline: Remove cogl_pipeline_get_layer_min/mag_filter
...
Unused since https://gitlab.gnome.org/GNOME/mutter/merge_requests/932
AFAICT.
As a bonus, gets rid of these compiler warnings:
../cogl/cogl/cogl-pipeline-layer-state.c: In function ‘cogl_pipeline_get_layer_min_filter’:
../cogl/cogl/cogl-pipeline-layer-state.c:1279:10: warning: ‘min_filter’ may be used uninitialized [-Wmaybe-uninitialized]
1279 | return min_filter;
| ^~~~~~~~~~
../cogl/cogl/cogl-pipeline-layer-state.c:1274:22: note: ‘min_filter’ was declared here
1274 | CoglPipelineFilter min_filter;
| ^~~~~~~~~~
../cogl/cogl/cogl-pipeline-layer-state.c: In function ‘cogl_pipeline_get_layer_mag_filter’:
../cogl/cogl/cogl-pipeline-layer-state.c:1291:10: warning: ‘mag_filter’ may be used uninitialized [-Wmaybe-uninitialized]
1291 | return mag_filter;
| ^~~~~~~~~~
../cogl/cogl/cogl-pipeline-layer-state.c:1287:22: note: ‘mag_filter’ was declared here
1287 | CoglPipelineFilter mag_filter;
| ^~~~~~~~~~
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2757 >
2022-12-15 11:54:21 +00:00
Bilal Elmoussaoui
bb5af3a6bd
g-i: Drop unneeded since/stability annotations
...
They are no longer useful since the merge of cogl inside mutter
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2708 >
2022-11-22 13:32:52 +01:00
Bilal Elmoussaoui
3393db942a
docs/cogl-pango: Make use of gi-docgen annotations
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2708 >
2022-11-22 13:32:43 +01:00
Daniel van Vugt
cc19547b8c
cogl: Set LOD bias to -0.5 for single mipmap modes
...
So that whenever forced to choose between two levels of detail (two mipmaps)
we will land on the sharpest looking one (highest resolution). That's the
mipmap level equal to the floor of the current level of detail requested.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5920
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2644 >
2022-11-04 19:29:25 +00:00
Jonas Ådahl
5767d2f129
cogl/trace: Don't enable/disable in idle callback if thread matches
...
This makes it possible to start profiling immediately on startup, during
context/backend/display setup, as well as flush during tear down.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2678 >
2022-11-01 21:04:21 +00:00
Jonas Ådahl
9117419940
cogl/texture: Type check introspected calls
...
CoglTexture can be used by e.g. Javascript, and the convention is to be
more forgiving regarding passed input so that invalid Javascript calls
doesn't cause actual SIGSEGV/SIGABRT. As elsewhere, do this by
sprinkeling g_return(_val)_if_fail() on introspected functions.
Related: https://bugzilla.redhat.com/show_bug.cgi?id=2124322
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2616 >
2022-09-20 13:38:41 +00:00
Daniel van Vugt
dc5130ac01
cogl: Don't check glGetError for functions that don't return errors
...
This will at least make debug builds a tiny bit faster.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2615 >
2022-09-19 14:24:39 +00:00
Daniel van Vugt
f1d7ccfa79
cogl: Add a quirk on Mali to glFlush before glGenerateMipmap
...
But only when the texture in question has associated framebuffers that
actually need flushing.
Workaround for: https://github.com/Xilinx/mali-userspace-binaries/issues/3
Related to: https://gitlab.gnome.org/GNOME/mutter/-/issues/2354
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2614 >
2022-09-19 13:57:05 +00:00
Jonas Ådahl
efaf5a25b3
cogl: Remove the now unused test framework
...
All tests have been moved into src/tests/, so no need for it anymore.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
30daad4da5
cogl/pipeline/vertend/glsl: Move out unit test to its own file
...
Fix a memory leak while at it.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
04bbe31287
cogl/pipeline/glsl: Distinguish between pipeline state types
...
Both the fragend and vertend shader state was called
"CoglPipelineShaderState", which was rather annoying, especially when
the type needs to be exposed outside of the .c file as part of moving
out unit tests. Make the types unique. This also avoids confusing what
type one is looking at.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
07f8edde22
cogl/pipeline/opengl: Move out unit test to separate file
...
Also rename the suffix to "-glsl" to not confuse OpenGL with GLES2
since this test covers both.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
16a7f77701
cogl/pipeline-state: Move out working unit test to separate file
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
ae0f6c549f
cogl/pipeline-state: Move out failing test to its own file
...
This test is a known failure, so mark it as such. It's stored in its own
file since keeping it in the same as the passing test isn't markable
using meson.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
4905a55f64
cogl/pipeline-cache: Move unit test to its own file
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
d0861c8ae2
cogl: Move out bitmask unit test to separate file
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
9a9e7e471c
tests/cogl: Add unit test framework
...
It consists of only a macro and build description logic.
Adds a macro for simpler tests that doesn't require a context; unit
tests requiring a context should use the same framework as conform
tests.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
4ebaa433ee
cogl: Remove now empty conform test suite
...
All working tests have already migrated to the test suite using mutter;
move the old unported tests over too, and remove the conform test
framework, as it is no longer used.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:13 +00:00
Jonas Ådahl
5d40a5eeea
tests/cogl: Migrate fence test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
2b43ff5963
tests/cogl: Migrate texture rg test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
e7f535a21d
tests/cogl: Migrate pipeline shader state test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
94744061de
tests/cogl: Migrate texture no allocate test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
d066fb5380
tests/cogl: Migrate pipeline cache unrefs texture test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
68dcde0bdb
tests/cogl: Migrate copy/replace texture test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
20111fa8ca
tests/cogl: Migrate primitive and journal test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
3750ed6a26
tests/cogl: Migrate framebuffer bits test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
09990f8bcc
tests/cogl: Migrate texture get/set data test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
85ad013b2d
tests/cogl: Migrate alpha texture test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
629c23b229
tests/cogl: Migrate npot texture test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
33c582d33a
tests/cogl: Migrate map buffer range test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
0a841ce846
tests/cogl: Migrate alpha test test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
5b0fa9cff4
tests/cogl: Migrate layer remove test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
7a91c30149
cogl: Remove version
...
The cogl version was unused, and not relevant, as the version and API is
tied to the mutter API version, not the old pre fork cogl version.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
c0746a04f9
tests/cogl: Migrate no-gl header test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
590290cd6d
tests/cogl: Migrate point sprite tests
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
41e5ee63d3
tests/cogl: Migrate point size attribute tests
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
2746861c6a
tests/cogl: Migrate point size test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
ae9b4a1bcf
tests/cogl: Migrate write texture formats test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
ddb982ba6e
tests/cogl: Migrate read texture formats test
...
This test fails on gl and gl3, but not on gles2; mark is at such.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
400cc89364
tests/cogl: Migrate sparse pipeline test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
8dc0489b33
tests/cogl: Migrate primitive tests
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
559c9c8795
tests/cogl: Migrate journal test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
0c6eb86698
tests/cogl: Migrate offscreen test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
fd99884063
tests/cogl: Migrate custom attributes test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
6ac0c196cb
tests/cogl: Migrate sub-texture test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
18dd64dd45
tests/cogl: Migrate wrap modes test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
a8f9466978
tests/cogl: Migrate snippets test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
a53fdfb733
tests/cogl: Migrate premult test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
6c8b12c4de
tests/cogl: Migrate pixel buffer tests
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
9305f8d9d8
tests/cogl: Migrate pipeline uniforms test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
63af78d049
tests/cogl: Migrate pipeline user matrix test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
a3b21188c9
tests/cogl: Migrate just-vertex-shader
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
f3a821b4cd
tests/cogl: Migrate backface-culling test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
66004d82c7
cogl/tests: Remove a few defunct 'test requirements'
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
3839fb49cb
tests/cogl: Migrate color-hsl test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
8c41b3b4a1
tests/cogl: Migrate depth test test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
67a9226e92
tests/cogl: Migrate blend test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
5e92500a9a
tests/cogl: Migrate blend-strings test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Jonas Ådahl
eaed0e4b46
tests/cogl: Migrate atlas-migration test
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2555 >
2022-08-08 21:59:12 +00:00
Georges Basile Stavracas Neto
62330f273d
cogl: Drop CoglHandleObject and CoglHandleClass
...
They're just typedefs to CoglObject and CoglObjectClass, respectively,
and the latter is unused already. The former is used in a couple of
deprecated headers, which can easily be changed.
Change all CoglHandleObject instances to CoglObject, and drop the types
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2355 >
2022-05-31 16:28:16 -03:00
Georges Basile Stavracas Neto
631056bf49
cogl/journal: Make CoglJournal a free-form struct
...
There is no need to make CoglJournal a CoglObject, nor any kind of
object for that matter, since it doesn't require refcounting at all.
CoglJournal is entirely private to, and managed by, CoglFramebuffer,
and it only needs to create and destroy it.
Make CoglJournal a free-form struct, and adjust CoglFramebuffer to
call _cogl_journal_free() instead of cogl_object_unref().
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2087
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2355 >
2022-05-31 16:28:16 -03:00
Georges Basile Stavracas Neto
2c520f76b5
cogl: Drop cogl_texture_new_from_data
...
And, since this is the last public function of cogl-auto-texture.h,
drop the files entirely too.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2355 >
2022-05-31 16:28:16 -03:00
Georges Basile Stavracas Neto
8ca20e709c
cogl/tests: Port to cogl_texture_2d_new_from_data
...
Drop cogl_texture_new_from_data() in favour of the undeprecated
cogl_texture_2d_new_from_data().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2355 >
2022-05-31 16:28:16 -03:00
Georges Basile Stavracas Neto
f927e692c7
cogl: Drop cogl_texture_new_from_file
...
It is now unused.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2355 >
2022-05-31 16:25:11 -03:00
Georges Basile Stavracas Neto
f25360677f
clutter/canvas: Use cogl_texture_2d_new_from_bitmap
...
cogl_texture_new_from_bitmap() is deprecated. Since this was the
last usage of it, also drop cogl_texture_new_from_bitmap().
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2355 >
2022-05-31 16:25:11 -03:00
Georges Basile Stavracas Neto
20bfd10f0c
cogl: Remove cogl_get_option_group
...
It's unused.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2355 >
2022-05-31 16:25:11 -03:00
Simon Schneegans
86d3a6b4bc
cogl/snippet: Use "Returns:" for introspection annotations
...
According to the GObject introspection documentation, "Returns:" should
be used (rather than the previous "Return value:").
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2422 >
2022-05-31 11:38:20 +00:00
Simon Schneegans
2fd63724af
cogl/snippet: Make API introspectable
...
This change ensures that the Snippet API of Cogl is exposed to GJS,
making it possible to create custom shader programs in GJS.
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2280
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2422 >
2022-05-31 11:38:20 +00:00
Simon Schneegans
d7c0ecc21b
cogl/pipeline: Make Snippet API introspectable
...
These methods are required to add snippets to a pipeline.
This change makes it possible to use them from GJS.
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2280
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2422 >
2022-05-31 11:38:20 +00:00
Bilal Elmoussaoui
bd94adaf74
cogl: Unify HAS_X11/HAS_XLIB build configs
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2354 >
2022-05-25 16:42:04 +02:00
Christian Rauch
9ba510646c
cogl: Fix build without X11
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2354 >
2022-05-25 16:42:04 +02:00
Bilal Elmoussaoui
a81b2a49ed
meson: Split x11 option into backend/xwayland
...
Allow disabling either the xwayland or backend implementation of x11.
Meson options were not added as this is more of a groundwork than the
actual implementation.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2354 >
2022-05-25 16:42:04 +02:00
Jonas Ådahl
2b4a24132b
screen-cast: Test allocate DMA buffer with implicit API
...
DMA buffers might be allocatable, but it doesn't mean the driver doesn't
fail when we try to allocate a buffer with an implicit modifier. Using
the proprietary NVIDIA driver for example, it will fail. Lets catch this
up front and avoid advertising DMA buffer support when we know it won't
work.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2383 >
2022-04-22 12:08:04 +00:00
Corentin Noël
e4c8125c31
cogl/context: Add transfer full annotation to destroy timestamp query
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2362 >
2022-04-05 12:40:56 +02:00
Christian Hergert
858f89084e
winsys: Check for KHR_swap_buffers_with_damage
...
Previously, we would only check for EXT_swap_buffers_with_damage which
generally will find an implementation. However, some EGL implementations
do not appear to support that naming of the extension, preferring to
only advertise KHR_swap_buffers_with_damage.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2316 >
2022-03-28 15:23:28 +00:00
Jonas Ådahl
63cc69b342
cogl/tests: Fix warning about passing a double to fabs
...
The warning was in a home baked g_assert_float_with_epsilon(). Change to
use the glib one directly.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2319 >
2022-03-04 23:12:24 +00:00
Jonas Ådahl
c9125aba73
cogl/gl: Fix switch passthrough warnings
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2319 >
2022-03-04 23:12:24 +00:00
Ivan Molodetskikh
bcf6ee5e55
Name unnamed sources
...
These names show up in GLib traces in sysprof, so let's make sure they
exist.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1928 >
2022-03-04 10:10:05 +03:00
Jonas Ådahl
49ac60e346
cogl/renderer: Add 'is_dma_buf_supported()' vfunc
...
Returns TRUE if the active renderer backend can allocate DMA buffers.
This is the case hardware accelerated GBM backends, but FALSE for
surfaceless (i.e. no render node) and EGLDevice (legacy NVIDIA paths).
While software based gbm devices can allocate DMA buffers, we don't want
to allocate them for offscreen rendering, as we really only use these
for inter process transfers, and as buffers allocated for scanout
doesn't use the relevant API, making it return FALSE for these solves
that.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1939 >
2022-02-07 10:56:57 +00:00
Daniel van Vugt
c970bb3e6c
cogl: Merge FEATURE_ID_GET_GPU_TIME into FEATURE_ID_TIMESTAMP_QUERY
...
Because both code paths require the existence of `GL_TIMESTAMP[_EXT]`
which is only guaranteed if `ARB_timer_query` (included in GL core 3.3)
is implemented.
We know when that is true because `context->glGenQueries` and
`context->glQueryCounter` are non-NULL. So that is the minimum
requirement for any use of `GL_TIMESTAMP`, even when it is used in
`glGetInteger64v`.
Until now, Raspberry Pi (OpenGL 2.1) would find a working implementation
of `glGetInteger64v` but failed to check whether the driver understands
`GL_TIMESTAMP` (it doesn't).
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2107
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2253 >
2022-01-27 22:58:59 +00:00
Neil Roberts
ad071c64f9
cogl: Rebind the EGL image when handling damage
...
When Cogl gained support for importing pixmaps, I think there was a
misunderstanding that there is a difference in how it works in GLX and
EGL where GLX needs to rebind the pixmap in order to guarantee that
changes are reflected in the texture after it detects damage, whereas
with EGL it doesn’t. The GLX spec makes it pretty clear that it does
need to rebind whereas the EGL spec is a bit harder to follow. As a
fallout from Mesa MR 12869, it seems like the compositor really does
need to rebind the image to comply with the spec. Notably, in
OES_EGL_image_external there is:
"Binding (or re-binding if already bound) an external texture by calling
BindTexture after all modifications are complete guarantees that
sampling done in future draw calls will return values corresponding to
the values in the buffer at or after the time that BindTexture is
called."
So this commit changes the x11_damage_notify handler for EGL to lazily
queue a rebind like GLX does. The code that binds the image while
allocating the texture has been moved into a reusable helper function.
It seems like there is a bit of a layering violation when accessing the
GL driver internals from the EGL winsys code, but I noticed that the GLX
code also includes the driver GL headers and otherwise it seems pretty
tricky to do properly.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2062 >
2021-12-13 16:09:56 +00:00
Georges Basile Stavracas Neto
3cd77f8a79
cogl: Drop COGL_HAS_WAYLAND_EGL_SERVER_SUPPORT
...
The only place where this define is used can be replaced by
checking EGL_WL_bind_wayland_display, which is done in that
same file already.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2145 >
2021-12-07 18:36:27 -03:00
Georges Basile Stavracas Neto
87a66830dc
cogl: Drop cogl-wayland-server.h
...
This header only defines one function that doesn't exist anymore,
and nothing else. It can be safely dropped.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2145 >
2021-12-07 18:34:00 -03:00
Fernando Monteiro
44aa6ab735
cogl: Remove cogl_texture_new_with_size
...
Replace the deprecated function with the suggested alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
612da58c72
cogl: Remove cogl_texture_new_from_sub_texture
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
0c5cf1ec58
tests: Rename 'material' variables to 'pipeline'
...
This should replace all usages of the material variable to
the pipeline variable.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
9f9e64f077
cogl: Remove cogl_material_new
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
6cd4489e55
cogl: Remove cogl_material_set_color
...
This is unused anywhere.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
edae2fff72
cogl: Remove cogl_material_set_color4ub
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
5a5f57d533
cogl: Remove cogl_material_set_alpha_test_function
...
This is unused anywhere.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
afdbb71926
cogl: Remove cogl_material_set_blend
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
f90f8f84c3
cogl: Remove cogl_material_set_blend_constant
...
This is unused anywhere.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
403f44e7b0
cogl: Remove cogl_material_set_user_program
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
06de4e241d
cogl: Remove cogl_pipeline_set_point_size
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
a14d3d6e17
cogl: Remove cogl_pipeline_set_layer
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
68ec76e4ee
cogl: Remove cogl_pipeline_set_layer_combine
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
a8cd59e029
cogl: Remove cogl_material_set_layer_combine_constant
...
This is unused anywhere.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
ca25c5543a
cogl: Remove cogl_material_set_layer_matrix
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00
Fernando Monteiro
29c62fabac
cogl: Remove cogl_material_set_layer_point_sprite_coords_enabled
...
This function is deprecated and must be replaced to the alternative.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2058 >
2021-12-07 15:32:21 +00:00