tests/kms/render: Add direct scanout test case
This adds a minimalistic fullscreen direct scanout test case, that runs on vkms. It doesn't use EGL, and it uses uninitialized memory, thus it lacks any kind of implicit synchronization, but it does test that the scanout selection paths are working. What is tested is: * DMA buffer allocated using gbm on top of VKMS * Buffer passes a mode setting TEST_ONLY check * Paint is omitted * Correct buffer active in KMS after presentation What isn't yet tested: * Implicit synchronization related behavior * Presented pixel content Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2417>
This commit is contained in:
@ -35,6 +35,7 @@
|
||||
#include "backends/native/meta-kms-update.h"
|
||||
|
||||
#define META_TYPE_CRTC_KMS (meta_crtc_kms_get_type ())
|
||||
META_EXPORT_TEST
|
||||
G_DECLARE_FINAL_TYPE (MetaCrtcKms, meta_crtc_kms,
|
||||
META, CRTC_KMS,
|
||||
MetaCrtcNative)
|
||||
@ -58,6 +59,7 @@ void meta_crtc_kms_set_mode (MetaCrtcKms *crtc_kms,
|
||||
void meta_crtc_kms_set_is_underscanning (MetaCrtcKms *crtc_kms,
|
||||
gboolean is_underscanning);
|
||||
|
||||
META_EXPORT_TEST
|
||||
MetaKmsCrtc * meta_crtc_kms_get_kms_crtc (MetaCrtcKms *crtc_kms);
|
||||
|
||||
GArray * meta_crtc_kms_get_modifiers (MetaCrtcKms *crtc_kms,
|
||||
|
@ -42,6 +42,7 @@ typedef enum _MetaDeviceFileTags
|
||||
typedef struct _MetaDeviceFile MetaDeviceFile;
|
||||
typedef struct _MetaDevicePool MetaDevicePool;
|
||||
|
||||
META_EXPORT_TEST
|
||||
int meta_device_file_get_fd (MetaDeviceFile *device_file);
|
||||
|
||||
const char * meta_device_file_get_path (MetaDeviceFile *device_file);
|
||||
|
@ -48,6 +48,7 @@ int meta_drm_buffer_export_fd (MetaDrmBuffer *buffer,
|
||||
gboolean meta_drm_buffer_ensure_fb_id (MetaDrmBuffer *buffer,
|
||||
GError **error);
|
||||
|
||||
META_EXPORT_TEST
|
||||
uint32_t meta_drm_buffer_get_fb_id (MetaDrmBuffer *buffer);
|
||||
|
||||
uint32_t meta_drm_buffer_get_handle (MetaDrmBuffer *buffer);
|
||||
|
@ -27,8 +27,10 @@
|
||||
#include "backends/native/meta-backend-native-types.h"
|
||||
#include "clutter/clutter.h"
|
||||
#include "cogl/cogl.h"
|
||||
#include "core/util-private.h"
|
||||
|
||||
#define META_TYPE_ONSCREEN_NATIVE (meta_onscreen_native_get_type ())
|
||||
META_EXPORT_TEST
|
||||
G_DECLARE_FINAL_TYPE (MetaOnscreenNative, meta_onscreen_native,
|
||||
META, ONSCREEN_NATIVE,
|
||||
CoglOnscreenEgl)
|
||||
@ -54,6 +56,7 @@ MetaOnscreenNative * meta_onscreen_native_new (MetaRendererNative *renderer_nati
|
||||
int width,
|
||||
int height);
|
||||
|
||||
META_EXPORT_TEST
|
||||
MetaCrtc * meta_onscreen_native_get_crtc (MetaOnscreenNative *onscreen_native);
|
||||
|
||||
#endif /* META_ONSCREEN_NATIVE_H */
|
||||
|
Reference in New Issue
Block a user