diff --git a/android/mesa3d_cross.mk b/android/mesa3d_cross.mk index 4bcbd43d170..37020d3ad61 100644 --- a/android/mesa3d_cross.mk +++ b/android/mesa3d_cross.mk @@ -308,13 +308,17 @@ endef $(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), $(eval $(call vulkan_target,$(driver)))) -$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp: MESA3D_GALLIUM_DRI_DIR:=$(MESA3D_GALLIUM_DRI_DIR) -$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp: $(MESON_OUT_DIR)/install/.install.timestamp - # Create Symlinks +$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.targets.timestamp: MESA3D_GALLIUM_DRI_DIR:=$(MESA3D_GALLIUM_DRI_DIR) +$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.targets.timestamp: $(MESON_OUT_DIR)/install/.install.timestamp mkdir -p $(dir $@) + # Create Symlinks for gallium and kmsro drivers ls -1 $(MESA3D_GALLIUM_DRI_DIR)/ | PATH=/usr/bin:$$PATH xargs -I{} ln -s -f libgallium_dri.so $(dir $@)/{} + # Remove unwanted Symlinks created for classic dri drivers + $(foreach d,$(BOARD_MESA3D_CLASSIC_DRIVERS), rm $(dir $@)/$(d)_dri.so;) + # Copy classic dri drivers + $(foreach d,$(BOARD_MESA3D_CLASSIC_DRIVERS), cp $(MESA3D_GALLIUM_DRI_DIR)/$(d)_dri.so $(dir $@)/$(d)_dri.so;) touch $@ -$($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN): $(TARGET_OUT_VENDOR)/$(MESA3D_LIB_DIR)/dri/.symlinks.timestamp +$($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN): $(TARGET_OUT_VENDOR)/$(MESA3D_LIB_DIR)/dri/.targets.timestamp echo "Build $@" touch $@ diff --git a/cross_file b/cross_file new file mode 100644 index 00000000000..5b44db25f6f --- /dev/null +++ b/cross_file @@ -0,0 +1,54 @@ + +[properties] +needs_exe_wrapper = true + +c_args = [ + '--target=aarch64-linux-ohosmusl', + '--sysroot=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/dyrk3568/obj/third_party/musl', + '-fno-emulated-tls', + '-fPIC'] + +cpp_args = [ + '--target=aarch64-linux-ohosmusl', + '--sysroot=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/dyrk3568/obj/third_party/musl', + '-fno-emulated-tls', + '-fPIC'] + +c_link_args = [ + '--target=aarch64-linux-ohosmusl', + '-fPIC', + '--sysroot=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/dyrk3568/obj/third_party/musl', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/dyrk3568/obj/third_party/musl/usr/lib/aarch64-linux-ohos', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/current/lib/aarch64-linux-ohos', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/lib/aarch64-linux-ohos/c++', + '--rtlib=compiler-rt', + ] + +cpp_link_args = [ + '--target=aarch64-linux-ohosmusl', + '--sysroot=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/dyrk3568/obj/third_party/musl', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/dyrk3568/obj/third_party/musl/usr/lib/aarch64-linux-ohos', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/current/lib/aarch64-linux-ohos', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/lib/aarch64-linux-ohos/c++', + '-fPIC', + '-Wl,--exclude-libs=libunwind_llvm.a', + '-Wl,--exclude-libs=libc++_static.a', + '-Wl,--exclude-libs=libvpx_assembly_arm.a', + '-Wl,--warn-shared-textrel', + '--rtlib=compiler-rt', + ] + +[binaries] +ar = '/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/bin/llvm-ar' +c = ['ccache', '/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang'] +cpp = ['ccache', '/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang++'] +c_ld= 'lld' +cpp_ld = 'lld' +strip = '/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/bin/llvm-strip' +pkgconfig = '/usr/bin/pkg-config' + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'armv8' +endian = 'little' diff --git a/include/EGL/eglext.h b/include/EGL/eglext.h index d58da70e6b3..ab26ca48891 100644 --- a/include/EGL/eglext.h +++ b/include/EGL/eglext.h @@ -276,6 +276,11 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface #define EGL_PLATFORM_GBM_KHR 0x31D7 #endif /* EGL_KHR_platform_gbm */ +#ifndef EGL_KHR_platform_ohos +#define EGL_KHR_platform_ohos 1 +#define EGL_PLATFORM_OHOS_KHR 0x34E0 +#endif /* EGL_KHR_platform_ohos */ + #ifndef EGL_KHR_platform_wayland #define EGL_KHR_platform_wayland 1 #define EGL_PLATFORM_WAYLAND_KHR 0x31D8 @@ -1432,6 +1437,11 @@ EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); #define EGL_TRIPLE_BUFFER_NV 0x3230 #endif /* EGL_NV_triple_buffer */ +#ifndef EGL_OHOS_image_native_buffer +#define EGL_OHOS_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_OHOS 0x34E1 +#endif /* EGL_OHOS_image_native_buffer */ + #ifndef EGL_TIZEN_image_native_buffer #define EGL_TIZEN_image_native_buffer 1 #define EGL_NATIVE_BUFFER_TIZEN 0x32A0 diff --git a/include/EGL/eglext.h.orig b/include/EGL/eglext.h.orig new file mode 100644 index 00000000000..d58da70e6b3 --- /dev/null +++ b/include/EGL/eglext.h.orig @@ -0,0 +1,1483 @@ +#ifndef __eglext_h_ +#define __eglext_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright 2013-2020 The Khronos Group Inc. +** SPDX-License-Identifier: Apache-2.0 +** +** This header is generated from the Khronos EGL XML API Registry. +** The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** http://www.khronos.org/registry/egl +** +** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $ +*/ + +#include + +#define EGL_EGLEXT_VERSION 20220525 + +/* Generated C header for: + * API: egl + * Versions considered: .* + * Versions emitted: _nomatch_^ + * Default extensions included: egl + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef EGL_KHR_cl_event +#define EGL_KHR_cl_event 1 +#define EGL_CL_EVENT_HANDLE_KHR 0x309C +#define EGL_SYNC_CL_EVENT_KHR 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF +#endif /* EGL_KHR_cl_event */ + +#ifndef EGL_KHR_cl_event2 +#define EGL_KHR_cl_event2 1 +typedef void *EGLSyncKHR; +typedef intptr_t EGLAttribKHR; +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); +#endif +#endif /* EGL_KHR_cl_event2 */ + +#ifndef EGL_KHR_client_get_all_proc_addresses +#define EGL_KHR_client_get_all_proc_addresses 1 +#endif /* EGL_KHR_client_get_all_proc_addresses */ + +#ifndef EGL_KHR_config_attribs +#define EGL_KHR_config_attribs 1 +#define EGL_CONFORMANT_KHR 0x3042 +#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 +#endif /* EGL_KHR_config_attribs */ + +#ifndef EGL_KHR_context_flush_control +#define EGL_KHR_context_flush_control 1 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098 +#endif /* EGL_KHR_context_flush_control */ + +#ifndef EGL_KHR_create_context +#define EGL_KHR_create_context 1 +#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 +#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +#define EGL_CONTEXT_FLAGS_KHR 0x30FC +#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF +#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 +#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 +#endif /* EGL_KHR_create_context */ + +#ifndef EGL_KHR_create_context_no_error +#define EGL_KHR_create_context_no_error 1 +#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 +#endif /* EGL_KHR_create_context_no_error */ + +#ifndef EGL_KHR_debug +#define EGL_KHR_debug 1 +typedef void *EGLLabelKHR; +typedef void *EGLObjectKHR; +typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); +#define EGL_OBJECT_THREAD_KHR 0x33B0 +#define EGL_OBJECT_DISPLAY_KHR 0x33B1 +#define EGL_OBJECT_CONTEXT_KHR 0x33B2 +#define EGL_OBJECT_SURFACE_KHR 0x33B3 +#define EGL_OBJECT_IMAGE_KHR 0x33B4 +#define EGL_OBJECT_SYNC_KHR 0x33B5 +#define EGL_OBJECT_STREAM_KHR 0x33B6 +#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 +#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA +#define EGL_DEBUG_MSG_WARN_KHR 0x33BB +#define EGL_DEBUG_MSG_INFO_KHR 0x33BC +#define EGL_DEBUG_CALLBACK_KHR 0x33B8 +typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value); +typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value); +EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); +#endif +#endif /* EGL_KHR_debug */ + +#ifndef EGL_KHR_display_reference +#define EGL_KHR_display_reference 1 +#define EGL_TRACK_REFERENCES_KHR 0x3352 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib *value); +#endif +#endif /* EGL_KHR_display_reference */ + +#ifndef EGL_KHR_fence_sync +#define EGL_KHR_fence_sync 1 +typedef khronos_utime_nanoseconds_t EGLTimeKHR; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 +#define EGL_SYNC_CONDITION_KHR 0x30F8 +#define EGL_SYNC_FENCE_KHR 0x30F9 +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_fence_sync */ + +#ifndef EGL_KHR_get_all_proc_addresses +#define EGL_KHR_get_all_proc_addresses 1 +#endif /* EGL_KHR_get_all_proc_addresses */ + +#ifndef EGL_KHR_gl_colorspace +#define EGL_KHR_gl_colorspace 1 +#define EGL_GL_COLORSPACE_KHR 0x309D +#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 +#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A +#endif /* EGL_KHR_gl_colorspace */ + +#ifndef EGL_KHR_gl_renderbuffer_image +#define EGL_KHR_gl_renderbuffer_image 1 +#define EGL_GL_RENDERBUFFER_KHR 0x30B9 +#endif /* EGL_KHR_gl_renderbuffer_image */ + +#ifndef EGL_KHR_gl_texture_2D_image +#define EGL_KHR_gl_texture_2D_image 1 +#define EGL_GL_TEXTURE_2D_KHR 0x30B1 +#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC +#endif /* EGL_KHR_gl_texture_2D_image */ + +#ifndef EGL_KHR_gl_texture_3D_image +#define EGL_KHR_gl_texture_3D_image 1 +#define EGL_GL_TEXTURE_3D_KHR 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD +#endif /* EGL_KHR_gl_texture_3D_image */ + +#ifndef EGL_KHR_gl_texture_cubemap_image +#define EGL_KHR_gl_texture_cubemap_image 1 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 +#endif /* EGL_KHR_gl_texture_cubemap_image */ + +#ifndef EGL_KHR_image +#define EGL_KHR_image 1 +typedef void *EGLImageKHR; +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 +#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0) +typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); +#endif +#endif /* EGL_KHR_image */ + +#ifndef EGL_KHR_image_base +#define EGL_KHR_image_base 1 +#define EGL_IMAGE_PRESERVED_KHR 0x30D2 +#endif /* EGL_KHR_image_base */ + +#ifndef EGL_KHR_image_pixmap +#define EGL_KHR_image_pixmap 1 +#endif /* EGL_KHR_image_pixmap */ + +#ifndef EGL_KHR_lock_surface +#define EGL_KHR_lock_surface 1 +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 +#define EGL_MATCH_FORMAT_KHR 0x3043 +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 +#define EGL_FORMAT_RGB_565_KHR 0x30C1 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD +#define EGL_LOWER_LEFT_KHR 0x30CE +#define EGL_UPPER_LEFT_KHR 0x30CF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); +#endif +#endif /* EGL_KHR_lock_surface */ + +#ifndef EGL_KHR_lock_surface2 +#define EGL_KHR_lock_surface2 1 +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 +#endif /* EGL_KHR_lock_surface2 */ + +#ifndef EGL_KHR_lock_surface3 +#define EGL_KHR_lock_surface3 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); +#endif +#endif /* EGL_KHR_lock_surface3 */ + +#ifndef EGL_KHR_mutable_render_buffer +#define EGL_KHR_mutable_render_buffer 1 +#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000 +#endif /* EGL_KHR_mutable_render_buffer */ + +#ifndef EGL_KHR_no_config_context +#define EGL_KHR_no_config_context 1 +#define EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0) +#endif /* EGL_KHR_no_config_context */ + +#ifndef EGL_KHR_partial_update +#define EGL_KHR_partial_update 1 +#define EGL_BUFFER_AGE_KHR 0x313D +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_KHR_partial_update */ + +#ifndef EGL_KHR_platform_android +#define EGL_KHR_platform_android 1 +#define EGL_PLATFORM_ANDROID_KHR 0x3141 +#endif /* EGL_KHR_platform_android */ + +#ifndef EGL_KHR_platform_gbm +#define EGL_KHR_platform_gbm 1 +#define EGL_PLATFORM_GBM_KHR 0x31D7 +#endif /* EGL_KHR_platform_gbm */ + +#ifndef EGL_KHR_platform_wayland +#define EGL_KHR_platform_wayland 1 +#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 +#endif /* EGL_KHR_platform_wayland */ + +#ifndef EGL_KHR_platform_x11 +#define EGL_KHR_platform_x11 1 +#define EGL_PLATFORM_X11_KHR 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 +#endif /* EGL_KHR_platform_x11 */ + +#ifndef EGL_KHR_reusable_sync +#define EGL_KHR_reusable_sync 1 +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_STATUS_KHR 0x30F1 +#define EGL_SIGNALED_KHR 0x30F2 +#define EGL_UNSIGNALED_KHR 0x30F3 +#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 +#define EGL_CONDITION_SATISFIED_KHR 0x30F6 +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_REUSABLE_KHR 0x30FA +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 +#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull +#define EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0) +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_reusable_sync */ + +#ifndef EGL_KHR_stream +#define EGL_KHR_stream 1 +typedef void *EGLStreamKHR; +typedef khronos_uint64_t EGLuint64KHR; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0) +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_PRODUCER_FRAME_KHR 0x3212 +#define EGL_CONSUMER_FRAME_KHR 0x3213 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 +#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 +#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 +#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 +#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A +#define EGL_BAD_STREAM_KHR 0x321B +#define EGL_BAD_STATE_KHR 0x321C +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_stream */ + +#ifndef EGL_KHR_stream_attrib +#define EGL_KHR_stream_attrib 1 +#ifdef KHRONOS_SUPPORT_INT64 +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamAttribKHR (EGLDisplay dpy, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_stream_attrib */ + +#ifndef EGL_KHR_stream_consumer_gltexture +#define EGL_KHR_stream_consumer_gltexture 1 +#ifdef EGL_KHR_stream +#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_consumer_gltexture */ + +#ifndef EGL_KHR_stream_cross_process_fd +#define EGL_KHR_stream_cross_process_fd 1 +typedef int EGLNativeFileDescriptorKHR; +#ifdef EGL_KHR_stream +#define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1) +typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_cross_process_fd */ + +#ifndef EGL_KHR_stream_fifo +#define EGL_KHR_stream_fifo 1 +#ifdef EGL_KHR_stream +#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC +#define EGL_STREAM_TIME_NOW_KHR 0x31FD +#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE +#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_fifo */ + +#ifndef EGL_KHR_stream_producer_aldatalocator +#define EGL_KHR_stream_producer_aldatalocator 1 +#ifdef EGL_KHR_stream +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_producer_aldatalocator */ + +#ifndef EGL_KHR_stream_producer_eglsurface +#define EGL_KHR_stream_producer_eglsurface 1 +#ifdef EGL_KHR_stream +#define EGL_STREAM_BIT_KHR 0x0800 +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_producer_eglsurface */ + +#ifndef EGL_KHR_surfaceless_context +#define EGL_KHR_surfaceless_context 1 +#endif /* EGL_KHR_surfaceless_context */ + +#ifndef EGL_KHR_swap_buffers_with_damage +#define EGL_KHR_swap_buffers_with_damage 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_KHR_swap_buffers_with_damage */ + +#ifndef EGL_KHR_vg_parent_image +#define EGL_KHR_vg_parent_image 1 +#define EGL_VG_PARENT_IMAGE_KHR 0x30BA +#endif /* EGL_KHR_vg_parent_image */ + +#ifndef EGL_KHR_wait_sync +#define EGL_KHR_wait_sync 1 +typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#endif +#endif /* EGL_KHR_wait_sync */ + +#ifndef EGL_ANDROID_GLES_layers +#define EGL_ANDROID_GLES_layers 1 +#endif /* EGL_ANDROID_GLES_layers */ + +#ifndef EGL_ANDROID_blob_cache +#define EGL_ANDROID_blob_cache 1 +typedef khronos_ssize_t EGLsizeiANDROID; +typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); +typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); +typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#endif +#endif /* EGL_ANDROID_blob_cache */ + +#ifndef EGL_ANDROID_create_native_client_buffer +#define EGL_ANDROID_create_native_client_buffer 1 +#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143 +#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001 +#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002 +#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004 +typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list); +#endif +#endif /* EGL_ANDROID_create_native_client_buffer */ + +#ifndef EGL_ANDROID_framebuffer_target +#define EGL_ANDROID_framebuffer_target 1 +#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 +#endif /* EGL_ANDROID_framebuffer_target */ + +#ifndef EGL_ANDROID_front_buffer_auto_refresh +#define EGL_ANDROID_front_buffer_auto_refresh 1 +#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C +#endif /* EGL_ANDROID_front_buffer_auto_refresh */ + +#ifndef EGL_ANDROID_get_frame_timestamps +#define EGL_ANDROID_get_frame_timestamps 1 +typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; +#define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2) +#define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1) +#define EGL_TIMESTAMPS_ANDROID 0x3430 +#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431 +#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432 +#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433 +#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434 +#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435 +#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436 +#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437 +#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438 +#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439 +#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A +#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B +#define EGL_READS_DONE_TIME_ANDROID 0x343C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); +EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); +EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); +EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); +#endif +#endif /* EGL_ANDROID_get_frame_timestamps */ + +#ifndef EGL_ANDROID_get_native_client_buffer +#define EGL_ANDROID_get_native_client_buffer 1 +struct AHardwareBuffer; +typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer); +#endif +#endif /* EGL_ANDROID_get_native_client_buffer */ + +#ifndef EGL_ANDROID_image_native_buffer +#define EGL_ANDROID_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_ANDROID 0x3140 +#endif /* EGL_ANDROID_image_native_buffer */ + +#ifndef EGL_ANDROID_native_fence_sync +#define EGL_ANDROID_native_fence_sync 1 +#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 +#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 +#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 +#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 +typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); +#endif +#endif /* EGL_ANDROID_native_fence_sync */ + +#ifndef EGL_ANDROID_presentation_time +#define EGL_ANDROID_presentation_time 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); +#endif +#endif /* EGL_ANDROID_presentation_time */ + +#ifndef EGL_ANDROID_recordable +#define EGL_ANDROID_recordable 1 +#define EGL_RECORDABLE_ANDROID 0x3142 +#endif /* EGL_ANDROID_recordable */ + +#ifndef EGL_ANGLE_d3d_share_handle_client_buffer +#define EGL_ANGLE_d3d_share_handle_client_buffer 1 +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 +#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ + +#ifndef EGL_ANGLE_device_d3d +#define EGL_ANGLE_device_d3d 1 +#define EGL_D3D9_DEVICE_ANGLE 0x33A0 +#define EGL_D3D11_DEVICE_ANGLE 0x33A1 +#endif /* EGL_ANGLE_device_d3d */ + +#ifndef EGL_ANGLE_query_surface_pointer +#define EGL_ANGLE_query_surface_pointer 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#endif +#endif /* EGL_ANGLE_query_surface_pointer */ + +#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle +#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 +#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ + +#ifndef EGL_ANGLE_sync_control_rate +#define EGL_ANGLE_sync_control_rate 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator); +#endif +#endif /* EGL_ANGLE_sync_control_rate */ + +#ifndef EGL_ANGLE_window_fixed_size +#define EGL_ANGLE_window_fixed_size 1 +#define EGL_FIXED_SIZE_ANGLE 0x3201 +#endif /* EGL_ANGLE_window_fixed_size */ + +#ifndef EGL_ARM_image_format +#define EGL_ARM_image_format 1 +#define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287 +#define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288 +#endif /* EGL_ARM_image_format */ + +#ifndef EGL_ARM_implicit_external_sync +#define EGL_ARM_implicit_external_sync 1 +#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A +#endif /* EGL_ARM_implicit_external_sync */ + +#ifndef EGL_ARM_pixmap_multisample_discard +#define EGL_ARM_pixmap_multisample_discard 1 +#define EGL_DISCARD_SAMPLES_ARM 0x3286 +#endif /* EGL_ARM_pixmap_multisample_discard */ + +#ifndef EGL_EXT_bind_to_front +#define EGL_EXT_bind_to_front 1 +#define EGL_FRONT_BUFFER_EXT 0x3464 +#endif /* EGL_EXT_bind_to_front */ + +#ifndef EGL_EXT_buffer_age +#define EGL_EXT_buffer_age 1 +#define EGL_BUFFER_AGE_EXT 0x313D +#endif /* EGL_EXT_buffer_age */ + +#ifndef EGL_EXT_client_extensions +#define EGL_EXT_client_extensions 1 +#endif /* EGL_EXT_client_extensions */ + +#ifndef EGL_EXT_client_sync +#define EGL_EXT_client_sync 1 +#define EGL_SYNC_CLIENT_EXT 0x3364 +#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); +#endif +#endif /* EGL_EXT_client_sync */ + +#ifndef EGL_EXT_compositor +#define EGL_EXT_compositor 1 +#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460 +#define EGL_EXTERNAL_REF_ID_EXT 0x3461 +#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462 +#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint *external_ref_ids, EGLint num_entries); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextListEXT (const EGLint *external_ref_ids, EGLint num_entries); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextAttributesEXT (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowListEXT (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowAttributesEXT (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorBindTexWindowEXT (EGLint external_win_id); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy); +#endif +#endif /* EGL_EXT_compositor */ + +#ifndef EGL_EXT_config_select_group +#define EGL_EXT_config_select_group 1 +#define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0 +#endif /* EGL_EXT_config_select_group */ + +#ifndef EGL_EXT_create_context_robustness +#define EGL_EXT_create_context_robustness 1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 +#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF +#endif /* EGL_EXT_create_context_robustness */ + +#ifndef EGL_EXT_device_base +#define EGL_EXT_device_base 1 +typedef void *EGLDeviceEXT; +#define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) +#define EGL_BAD_DEVICE_EXT 0x322B +#define EGL_DEVICE_EXT 0x322C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +#endif +#endif /* EGL_EXT_device_base */ + +#ifndef EGL_EXT_device_drm +#define EGL_EXT_device_drm 1 +#define EGL_DRM_DEVICE_FILE_EXT 0x3233 +#define EGL_DRM_MASTER_FD_EXT 0x333C +#endif /* EGL_EXT_device_drm */ + +#ifndef EGL_EXT_device_drm_render_node +#define EGL_EXT_device_drm_render_node 1 +#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 +#endif /* EGL_EXT_device_drm_render_node */ + +#ifndef EGL_EXT_device_enumeration +#define EGL_EXT_device_enumeration 1 +#endif /* EGL_EXT_device_enumeration */ + +#ifndef EGL_EXT_device_openwf +#define EGL_EXT_device_openwf 1 +#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 +#define EGL_OPENWF_DEVICE_EXT 0x333D +#endif /* EGL_EXT_device_openwf */ + +#ifndef EGL_EXT_device_persistent_id +#define EGL_EXT_device_persistent_id 1 +#define EGL_DEVICE_UUID_EXT 0x335C +#define EGL_DRIVER_UUID_EXT 0x335D +#define EGL_DRIVER_NAME_EXT 0x335E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEBINARYEXTPROC) (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceBinaryEXT (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size); +#endif +#endif /* EGL_EXT_device_persistent_id */ + +#ifndef EGL_EXT_device_query +#define EGL_EXT_device_query 1 +#endif /* EGL_EXT_device_query */ + +#ifndef EGL_EXT_device_query_name +#define EGL_EXT_device_query_name 1 +#define EGL_RENDERER_EXT 0x335F +#endif /* EGL_EXT_device_query_name */ + +#ifndef EGL_EXT_explicit_device +#define EGL_EXT_explicit_device 1 +#endif /* EGL_EXT_explicit_device */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_linear +#define EGL_EXT_gl_colorspace_bt2020_linear 1 +#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F +#endif /* EGL_EXT_gl_colorspace_bt2020_linear */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_pq +#define EGL_EXT_gl_colorspace_bt2020_pq 1 +#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340 +#endif /* EGL_EXT_gl_colorspace_bt2020_pq */ + +#ifndef EGL_EXT_gl_colorspace_display_p3 +#define EGL_EXT_gl_colorspace_display_p3 1 +#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363 +#endif /* EGL_EXT_gl_colorspace_display_p3 */ + +#ifndef EGL_EXT_gl_colorspace_display_p3_linear +#define EGL_EXT_gl_colorspace_display_p3_linear 1 +#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362 +#endif /* EGL_EXT_gl_colorspace_display_p3_linear */ + +#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough +#define EGL_EXT_gl_colorspace_display_p3_passthrough 1 +#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490 +#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */ + +#ifndef EGL_EXT_gl_colorspace_scrgb +#define EGL_EXT_gl_colorspace_scrgb 1 +#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351 +#endif /* EGL_EXT_gl_colorspace_scrgb */ + +#ifndef EGL_EXT_gl_colorspace_scrgb_linear +#define EGL_EXT_gl_colorspace_scrgb_linear 1 +#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350 +#endif /* EGL_EXT_gl_colorspace_scrgb_linear */ + +#ifndef EGL_EXT_image_dma_buf_import +#define EGL_EXT_image_dma_buf_import 1 +#define EGL_LINUX_DMA_BUF_EXT 0x3270 +#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 +#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 +#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 +#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 +#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 +#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 +#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 +#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 +#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 +#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B +#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C +#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D +#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E +#define EGL_ITU_REC601_EXT 0x327F +#define EGL_ITU_REC709_EXT 0x3280 +#define EGL_ITU_REC2020_EXT 0x3281 +#define EGL_YUV_FULL_RANGE_EXT 0x3282 +#define EGL_YUV_NARROW_RANGE_EXT 0x3283 +#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 +#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 +#endif /* EGL_EXT_image_dma_buf_import */ + +#ifndef EGL_EXT_image_dma_buf_import_modifiers +#define EGL_EXT_image_dma_buf_import_modifiers 1 +#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 +#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 +#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 +#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 +#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 +#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 +#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 +#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 +#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 +#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 +#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); +#endif +#endif /* EGL_EXT_image_dma_buf_import_modifiers */ + +#ifndef EGL_EXT_image_gl_colorspace +#define EGL_EXT_image_gl_colorspace 1 +#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D +#endif /* EGL_EXT_image_gl_colorspace */ + +#ifndef EGL_EXT_image_implicit_sync_control +#define EGL_EXT_image_implicit_sync_control 1 +#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470 +#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471 +#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472 +#endif /* EGL_EXT_image_implicit_sync_control */ + +#ifndef EGL_EXT_multiview_window +#define EGL_EXT_multiview_window 1 +#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 +#endif /* EGL_EXT_multiview_window */ + +#ifndef EGL_EXT_output_base +#define EGL_EXT_output_base 1 +typedef void *EGLOutputLayerEXT; +typedef void *EGLOutputPortEXT; +#define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0) +#define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0) +#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D +#define EGL_BAD_OUTPUT_PORT_EXT 0x322E +#define EGL_SWAP_INTERVAL_EXT 0x322F +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); +EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); +EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); +#endif +#endif /* EGL_EXT_output_base */ + +#ifndef EGL_EXT_output_drm +#define EGL_EXT_output_drm 1 +#define EGL_DRM_CRTC_EXT 0x3234 +#define EGL_DRM_PLANE_EXT 0x3235 +#define EGL_DRM_CONNECTOR_EXT 0x3236 +#endif /* EGL_EXT_output_drm */ + +#ifndef EGL_EXT_output_openwf +#define EGL_EXT_output_openwf 1 +#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 +#define EGL_OPENWF_PORT_ID_EXT 0x3239 +#endif /* EGL_EXT_output_openwf */ + +#ifndef EGL_EXT_pixel_format_float +#define EGL_EXT_pixel_format_float 1 +#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339 +#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A +#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B +#endif /* EGL_EXT_pixel_format_float */ + +#ifndef EGL_EXT_platform_base +#define EGL_EXT_platform_base 1 +typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); +#endif +#endif /* EGL_EXT_platform_base */ + +#ifndef EGL_EXT_platform_device +#define EGL_EXT_platform_device 1 +#define EGL_PLATFORM_DEVICE_EXT 0x313F +#endif /* EGL_EXT_platform_device */ + +#ifndef EGL_EXT_platform_wayland +#define EGL_EXT_platform_wayland 1 +#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 +#endif /* EGL_EXT_platform_wayland */ + +#ifndef EGL_EXT_platform_x11 +#define EGL_EXT_platform_x11 1 +#define EGL_PLATFORM_X11_EXT 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 +#endif /* EGL_EXT_platform_x11 */ + +#ifndef EGL_EXT_platform_xcb +#define EGL_EXT_platform_xcb 1 +#define EGL_PLATFORM_XCB_EXT 0x31DC +#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE +#endif /* EGL_EXT_platform_xcb */ + +#ifndef EGL_EXT_present_opaque +#define EGL_EXT_present_opaque 1 +#define EGL_PRESENT_OPAQUE_EXT 0x31DF +#endif /* EGL_EXT_present_opaque */ + +#ifndef EGL_EXT_protected_content +#define EGL_EXT_protected_content 1 +#define EGL_PROTECTED_CONTENT_EXT 0x32C0 +#endif /* EGL_EXT_protected_content */ + +#ifndef EGL_EXT_protected_surface +#define EGL_EXT_protected_surface 1 +#endif /* EGL_EXT_protected_surface */ + +#ifndef EGL_EXT_stream_consumer_egloutput +#define EGL_EXT_stream_consumer_egloutput 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); +#endif +#endif /* EGL_EXT_stream_consumer_egloutput */ + +#ifndef EGL_EXT_surface_CTA861_3_metadata +#define EGL_EXT_surface_CTA861_3_metadata 1 +#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360 +#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361 +#endif /* EGL_EXT_surface_CTA861_3_metadata */ + +#ifndef EGL_EXT_surface_SMPTE2086_metadata +#define EGL_EXT_surface_SMPTE2086_metadata 1 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346 +#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347 +#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348 +#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349 +#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A +#define EGL_METADATA_SCALING_EXT 50000 +#endif /* EGL_EXT_surface_SMPTE2086_metadata */ + +#ifndef EGL_EXT_surface_compression +#define EGL_EXT_surface_compression 1 +#define EGL_SURFACE_COMPRESSION_EXT 0x34B0 +#define EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E +#define EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x34B2 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x34B4 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x34B5 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x34B6 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x34B7 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x34B8 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x34B9 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x34BA +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x34BB +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x34BC +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x34BD +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x34BE +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x34BF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC) (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySupportedCompressionRatesEXT (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates); +#endif +#endif /* EGL_EXT_surface_compression */ + +#ifndef EGL_EXT_swap_buffers_with_damage +#define EGL_EXT_swap_buffers_with_damage 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_EXT_swap_buffers_with_damage */ + +#ifndef EGL_EXT_sync_reuse +#define EGL_EXT_sync_reuse 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); +#endif +#endif /* EGL_EXT_sync_reuse */ + +#ifndef EGL_EXT_yuv_surface +#define EGL_EXT_yuv_surface 1 +#define EGL_YUV_ORDER_EXT 0x3301 +#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 +#define EGL_YUV_SUBSAMPLE_EXT 0x3312 +#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 +#define EGL_YUV_CSC_STANDARD_EXT 0x330A +#define EGL_YUV_PLANE_BPP_EXT 0x331A +#define EGL_YUV_BUFFER_EXT 0x3300 +#define EGL_YUV_ORDER_YUV_EXT 0x3302 +#define EGL_YUV_ORDER_YVU_EXT 0x3303 +#define EGL_YUV_ORDER_YUYV_EXT 0x3304 +#define EGL_YUV_ORDER_UYVY_EXT 0x3305 +#define EGL_YUV_ORDER_YVYU_EXT 0x3306 +#define EGL_YUV_ORDER_VYUY_EXT 0x3307 +#define EGL_YUV_ORDER_AYUV_EXT 0x3308 +#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 +#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 +#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 +#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 +#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 +#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B +#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C +#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D +#define EGL_YUV_PLANE_BPP_0_EXT 0x331B +#define EGL_YUV_PLANE_BPP_8_EXT 0x331C +#define EGL_YUV_PLANE_BPP_10_EXT 0x331D +#endif /* EGL_EXT_yuv_surface */ + +#ifndef EGL_HI_clientpixmap +#define EGL_HI_clientpixmap 1 +struct EGLClientPixmapHI { + void *pData; + EGLint iWidth; + EGLint iHeight; + EGLint iStride; +}; +#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); +#endif +#endif /* EGL_HI_clientpixmap */ + +#ifndef EGL_HI_colorformats +#define EGL_HI_colorformats 1 +#define EGL_COLOR_FORMAT_HI 0x8F70 +#define EGL_COLOR_RGB_HI 0x8F71 +#define EGL_COLOR_RGBA_HI 0x8F72 +#define EGL_COLOR_ARGB_HI 0x8F73 +#endif /* EGL_HI_colorformats */ + +#ifndef EGL_IMG_context_priority +#define EGL_IMG_context_priority 1 +#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 +#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 +#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 +#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 +#endif /* EGL_IMG_context_priority */ + +#ifndef EGL_IMG_image_plane_attribs +#define EGL_IMG_image_plane_attribs 1 +#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 +#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 +#endif /* EGL_IMG_image_plane_attribs */ + +#ifndef EGL_MESA_drm_image +#define EGL_MESA_drm_image 1 +#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 +#define EGL_DRM_BUFFER_USE_MESA 0x31D1 +#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 +#define EGL_DRM_BUFFER_MESA 0x31D3 +#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 +#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 +#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 +#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004 +typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#endif +#endif /* EGL_MESA_drm_image */ + +#ifndef EGL_MESA_image_dma_buf_export +#define EGL_MESA_image_dma_buf_export 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#endif +#endif /* EGL_MESA_image_dma_buf_export */ + +#ifndef EGL_MESA_platform_gbm +#define EGL_MESA_platform_gbm 1 +#define EGL_PLATFORM_GBM_MESA 0x31D7 +#endif /* EGL_MESA_platform_gbm */ + +#ifndef EGL_MESA_platform_surfaceless +#define EGL_MESA_platform_surfaceless 1 +#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD +#endif /* EGL_MESA_platform_surfaceless */ + +#ifndef EGL_MESA_query_driver +#define EGL_MESA_query_driver 1 +typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy); +typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy); +EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy); +#endif +#endif /* EGL_MESA_query_driver */ + +#ifndef EGL_NOK_swap_region +#define EGL_NOK_swap_region 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#endif +#endif /* EGL_NOK_swap_region */ + +#ifndef EGL_NOK_swap_region2 +#define EGL_NOK_swap_region2 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#endif +#endif /* EGL_NOK_swap_region2 */ + +#ifndef EGL_NOK_texture_from_pixmap +#define EGL_NOK_texture_from_pixmap 1 +#define EGL_Y_INVERTED_NOK 0x307F +#endif /* EGL_NOK_texture_from_pixmap */ + +#ifndef EGL_NV_3dvision_surface +#define EGL_NV_3dvision_surface 1 +#define EGL_AUTO_STEREO_NV 0x3136 +#endif /* EGL_NV_3dvision_surface */ + +#ifndef EGL_NV_context_priority_realtime +#define EGL_NV_context_priority_realtime 1 +#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357 +#endif /* EGL_NV_context_priority_realtime */ + +#ifndef EGL_NV_coverage_sample +#define EGL_NV_coverage_sample 1 +#define EGL_COVERAGE_BUFFERS_NV 0x30E0 +#define EGL_COVERAGE_SAMPLES_NV 0x30E1 +#endif /* EGL_NV_coverage_sample */ + +#ifndef EGL_NV_coverage_sample_resolve +#define EGL_NV_coverage_sample_resolve 1 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 +#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 +#endif /* EGL_NV_coverage_sample_resolve */ + +#ifndef EGL_NV_cuda_event +#define EGL_NV_cuda_event 1 +#define EGL_CUDA_EVENT_HANDLE_NV 0x323B +#define EGL_SYNC_CUDA_EVENT_NV 0x323C +#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D +#endif /* EGL_NV_cuda_event */ + +#ifndef EGL_NV_depth_nonlinear +#define EGL_NV_depth_nonlinear 1 +#define EGL_DEPTH_ENCODING_NV 0x30E2 +#define EGL_DEPTH_ENCODING_NONE_NV 0 +#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 +#endif /* EGL_NV_depth_nonlinear */ + +#ifndef EGL_NV_device_cuda +#define EGL_NV_device_cuda 1 +#define EGL_CUDA_DEVICE_NV 0x323A +#endif /* EGL_NV_device_cuda */ + +#ifndef EGL_NV_native_query +#define EGL_NV_native_query 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#endif +#endif /* EGL_NV_native_query */ + +#ifndef EGL_NV_post_convert_rounding +#define EGL_NV_post_convert_rounding 1 +#endif /* EGL_NV_post_convert_rounding */ + +#ifndef EGL_NV_post_sub_buffer +#define EGL_NV_post_sub_buffer 1 +#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE +typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#endif +#endif /* EGL_NV_post_sub_buffer */ + +#ifndef EGL_NV_quadruple_buffer +#define EGL_NV_quadruple_buffer 1 +#define EGL_QUADRUPLE_BUFFER_NV 0x3231 +#endif /* EGL_NV_quadruple_buffer */ + +#ifndef EGL_NV_robustness_video_memory_purge +#define EGL_NV_robustness_video_memory_purge 1 +#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C +#endif /* EGL_NV_robustness_video_memory_purge */ + +#ifndef EGL_NV_stream_consumer_eglimage +#define EGL_NV_stream_consumer_eglimage 1 +#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373 +#define EGL_STREAM_IMAGE_ADD_NV 0x3374 +#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375 +#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list); +typedef EGLint (EGLAPIENTRYP PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list); +EGLAPI EGLint EGLAPIENTRY eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); +#endif +#endif /* EGL_NV_stream_consumer_eglimage */ + +#ifndef EGL_NV_stream_consumer_gltexture_yuv +#define EGL_NV_stream_consumer_gltexture_yuv 1 +#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C +#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D +#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +#endif +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ + +#ifndef EGL_NV_stream_cross_display +#define EGL_NV_stream_cross_display 1 +#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E +#endif /* EGL_NV_stream_cross_display */ + +#ifndef EGL_NV_stream_cross_object +#define EGL_NV_stream_cross_object 1 +#define EGL_STREAM_CROSS_OBJECT_NV 0x334D +#endif /* EGL_NV_stream_cross_object */ + +#ifndef EGL_NV_stream_cross_partition +#define EGL_NV_stream_cross_partition 1 +#define EGL_STREAM_CROSS_PARTITION_NV 0x323F +#endif /* EGL_NV_stream_cross_partition */ + +#ifndef EGL_NV_stream_cross_process +#define EGL_NV_stream_cross_process 1 +#define EGL_STREAM_CROSS_PROCESS_NV 0x3245 +#endif /* EGL_NV_stream_cross_process */ + +#ifndef EGL_NV_stream_cross_system +#define EGL_NV_stream_cross_system 1 +#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F +#endif /* EGL_NV_stream_cross_system */ + +#ifndef EGL_NV_stream_dma +#define EGL_NV_stream_dma 1 +#define EGL_STREAM_DMA_NV 0x3371 +#define EGL_STREAM_DMA_SERVER_NV 0x3372 +#endif /* EGL_NV_stream_dma */ + +#ifndef EGL_NV_stream_fifo_next +#define EGL_NV_stream_fifo_next 1 +#define EGL_PENDING_FRAME_NV 0x3329 +#define EGL_STREAM_TIME_PENDING_NV 0x332A +#endif /* EGL_NV_stream_fifo_next */ + +#ifndef EGL_NV_stream_fifo_synchronous +#define EGL_NV_stream_fifo_synchronous 1 +#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336 +#endif /* EGL_NV_stream_fifo_synchronous */ + +#ifndef EGL_NV_stream_flush +#define EGL_NV_stream_flush 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif /* EGL_NV_stream_flush */ + +#ifndef EGL_NV_stream_frame_limits +#define EGL_NV_stream_frame_limits 1 +#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337 +#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338 +#endif /* EGL_NV_stream_frame_limits */ + +#ifndef EGL_NV_stream_metadata +#define EGL_NV_stream_metadata 1 +#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 +#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 +#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 +#define EGL_PRODUCER_METADATA_NV 0x3253 +#define EGL_CONSUMER_METADATA_NV 0x3254 +#define EGL_PENDING_METADATA_NV 0x3328 +#define EGL_METADATA0_SIZE_NV 0x3255 +#define EGL_METADATA1_SIZE_NV 0x3256 +#define EGL_METADATA2_SIZE_NV 0x3257 +#define EGL_METADATA3_SIZE_NV 0x3258 +#define EGL_METADATA0_TYPE_NV 0x3259 +#define EGL_METADATA1_TYPE_NV 0x325A +#define EGL_METADATA2_TYPE_NV 0x325B +#define EGL_METADATA3_TYPE_NV 0x325C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); +#endif +#endif /* EGL_NV_stream_metadata */ + +#ifndef EGL_NV_stream_origin +#define EGL_NV_stream_origin 1 +#define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366 +#define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367 +#define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368 +#define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369 +#define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A +#define EGL_LEFT_NV 0x336B +#define EGL_RIGHT_NV 0x336C +#define EGL_TOP_NV 0x336D +#define EGL_BOTTOM_NV 0x336E +#define EGL_X_AXIS_NV 0x336F +#define EGL_Y_AXIS_NV 0x3370 +#endif /* EGL_NV_stream_origin */ + +#ifndef EGL_NV_stream_remote +#define EGL_NV_stream_remote 1 +#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240 +#define EGL_STREAM_TYPE_NV 0x3241 +#define EGL_STREAM_PROTOCOL_NV 0x3242 +#define EGL_STREAM_ENDPOINT_NV 0x3243 +#define EGL_STREAM_LOCAL_NV 0x3244 +#define EGL_STREAM_PRODUCER_NV 0x3247 +#define EGL_STREAM_CONSUMER_NV 0x3248 +#define EGL_STREAM_PROTOCOL_FD_NV 0x3246 +#endif /* EGL_NV_stream_remote */ + +#ifndef EGL_NV_stream_reset +#define EGL_NV_stream_reset 1 +#define EGL_SUPPORT_RESET_NV 0x3334 +#define EGL_SUPPORT_REUSE_NV 0x3335 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif /* EGL_NV_stream_reset */ + +#ifndef EGL_NV_stream_socket +#define EGL_NV_stream_socket 1 +#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B +#define EGL_SOCKET_HANDLE_NV 0x324C +#define EGL_SOCKET_TYPE_NV 0x324D +#endif /* EGL_NV_stream_socket */ + +#ifndef EGL_NV_stream_socket_inet +#define EGL_NV_stream_socket_inet 1 +#define EGL_SOCKET_TYPE_INET_NV 0x324F +#endif /* EGL_NV_stream_socket_inet */ + +#ifndef EGL_NV_stream_socket_unix +#define EGL_NV_stream_socket_unix 1 +#define EGL_SOCKET_TYPE_UNIX_NV 0x324E +#endif /* EGL_NV_stream_socket_unix */ + +#ifndef EGL_NV_stream_sync +#define EGL_NV_stream_sync 1 +#define EGL_SYNC_NEW_FRAME_NV 0x321F +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); +#endif +#endif /* EGL_NV_stream_sync */ + +#ifndef EGL_NV_sync +#define EGL_NV_sync 1 +typedef void *EGLSyncNV; +typedef khronos_utime_nanoseconds_t EGLTimeNV; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 +#define EGL_SYNC_STATUS_NV 0x30E7 +#define EGL_SIGNALED_NV 0x30E8 +#define EGL_UNSIGNALED_NV 0x30E9 +#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 +#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull +#define EGL_ALREADY_SIGNALED_NV 0x30EA +#define EGL_TIMEOUT_EXPIRED_NV 0x30EB +#define EGL_CONDITION_SATISFIED_NV 0x30EC +#define EGL_SYNC_TYPE_NV 0x30ED +#define EGL_SYNC_CONDITION_NV 0x30EE +#define EGL_SYNC_FENCE_NV 0x30EF +#define EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0) +typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); +EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_NV_sync */ + +#ifndef EGL_NV_system_time +#define EGL_NV_system_time 1 +typedef khronos_utime_nanoseconds_t EGLuint64NV; +#ifdef KHRONOS_SUPPORT_INT64 +typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); +typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); +EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_NV_system_time */ + +#ifndef EGL_NV_triple_buffer +#define EGL_NV_triple_buffer 1 +#define EGL_TRIPLE_BUFFER_NV 0x3230 +#endif /* EGL_NV_triple_buffer */ + +#ifndef EGL_TIZEN_image_native_buffer +#define EGL_TIZEN_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 +#endif /* EGL_TIZEN_image_native_buffer */ + +#ifndef EGL_TIZEN_image_native_surface +#define EGL_TIZEN_image_native_surface 1 +#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 +#endif /* EGL_TIZEN_image_native_surface */ + +#ifndef EGL_WL_bind_wayland_display +#define EGL_WL_bind_wayland_display 1 +#define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC +#define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC +#define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC +struct wl_display; +struct wl_resource; +#define EGL_WAYLAND_BUFFER_WL 0x31D5 +#define EGL_WAYLAND_PLANE_WL 0x31D6 +#define EGL_TEXTURE_Y_U_V_WL 0x31D7 +#define EGL_TEXTURE_Y_UV_WL 0x31D8 +#define EGL_TEXTURE_Y_XUXV_WL 0x31D9 +#define EGL_TEXTURE_EXTERNAL_WL 0x31DA +#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB +typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWLPROC) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display); +EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); +#endif +#endif /* EGL_WL_bind_wayland_display */ + +#ifndef EGL_WL_create_wayland_buffer_from_image +#define EGL_WL_create_wayland_buffer_from_image 1 +#define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC +struct wl_buffer; +typedef struct wl_buffer *(EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) (EGLDisplay dpy, EGLImageKHR image); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI struct wl_buffer *EGLAPIENTRY eglCreateWaylandBufferFromImageWL (EGLDisplay dpy, EGLImageKHR image); +#endif +#endif /* EGL_WL_create_wayland_buffer_from_image */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/ohos_log.h b/include/ohos_log.h new file mode 100644 index 00000000000..e3f4e299f2f --- /dev/null +++ b/include/ohos_log.h @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef DISP_COMMON_H +#define DISP_COMMON_H +#include +#include +#include "hilog/log.h" +#ifdef HDF_LOG_TAG +#undef HDF_LOG_TAG +#endif + +#if defined(__cplusplus) +extern "C" { +#endif + +#define FENCE_TIMEOUT 3000 + +#undef LOG_TAG +#undef LOG_DOMAIN +#define LOG_TAG "DISP" +#define LOG_DOMAIN 0xD001400 + +#ifndef DISPLAY_UNUSED +#define DISPLAY_UNUSED(x) ((void)(x)) +#endif + +#define DISP_FILENAME (strrchr(__FILE__, '/') ? (strrchr(__FILE__, '/') + 1) : __FILE__) + +#ifndef DISPLAY_DEBUG_ENABLE +#define DISPLAY_DEBUG_ENABLE 1 +#endif + +#ifndef DISPLAY_LOGD +#define DISPLAY_LOGD(format, ...) \ + do { \ + if (DISPLAY_DEBUG_ENABLE) { \ + HILOG_DEBUG(LOG_CORE, "[%{public}s@%{public}s:%{public}d] " format "\n", \ + __FUNCTION__, DISP_FILENAME, __LINE__, \ + ##__VA_ARGS__); \ + } \ + } while (0) +#endif + +#ifndef DISPLAY_LOGI +#define DISPLAY_LOGI(format, ...) \ + do { \ + HILOG_INFO(LOG_CORE, "[%{public}s@%{public}s:%{public}d] " format "\n", __FUNCTION__, DISP_FILENAME, __LINE__, \ + ##__VA_ARGS__); \ + } while (0) +#endif + +#ifndef DISPLAY_LOGW +#define DISPLAY_LOGW(format, ...) \ + do { \ + HILOG_WARN(LOG_CORE, "[%{public}s@%{public}s:%{public}d] " format "\n", __FUNCTION__, DISP_FILENAME, __LINE__, \ + ##__VA_ARGS__); \ + } while (0) +#endif + +#ifndef DISPLAY_LOGE +#define DISPLAY_LOGE(format, ...) \ + do { \ + HILOG_ERROR(LOG_CORE, \ + "\033[0;32;31m" \ + "[%{public}s@%{public}s:%{public}d] " format "\033[m" \ + "\n", \ + __FUNCTION__, DISP_FILENAME, __LINE__, ##__VA_ARGS__); \ + } while (0) +#endif + +#ifndef CHECK_NULLPOINTER_RETURN_VALUE +#define CHECK_NULLPOINTER_RETURN_VALUE(pointer, ret) \ + do { \ + if ((pointer) == NULL) { \ + DISPLAY_LOGE("pointer is null and return ret\n"); \ + return (ret); \ + } \ + } while (0) +#endif + +#ifndef CHECK_NULLPOINTER_RETURN +#define CHECK_NULLPOINTER_RETURN(pointer) \ + do { \ + if ((pointer) == NULL) { \ + DISPLAY_LOGE("pointer is null and return\n"); \ + return; \ + } \ + } while (0) +#endif + +#ifndef DISPLAY_CHK_RETURN +#define DISPLAY_CHK_RETURN(val, ret, ...) \ + do { \ + if (val) { \ + __VA_ARGS__; \ + return (ret); \ + } \ + } while (0)extern "C" { + +#endif + +#ifndef DISPLAY_CHK_RETURN_NOT_VALUE +#define DISPLAY_CHK_RETURN_NOT_VALUE(val, ...) \ + do { \ + if (val) { \ + __VA_ARGS__; \ + return; \ + } \ + } while (0) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* DISP_COMMON_H */ diff --git a/meson.build b/meson.build index 9b892065a4b..f8380b0cd38 100644 --- a/meson.build +++ b/meson.build @@ -356,6 +356,7 @@ with_platform_x11 = _platforms.contains('x11') with_platform_wayland = _platforms.contains('wayland') with_platform_haiku = _platforms.contains('haiku') with_platform_windows = _platforms.contains('windows') +with_platform_ohos = _platforms.contains('ohos') with_glx = get_option('glx') if with_glx == 'auto' @@ -417,7 +418,7 @@ with_egl = get_option('egl') \ if with_egl _platforms += 'surfaceless' - if with_gbm and not with_platform_android + if with_gbm and not with_platform_android and not with_platform_ohos _platforms += 'drm' endif @@ -882,7 +883,18 @@ if get_option('allow-kcmp') \ pre_args += '-DALLOW_KCMP' endif -prog_python = import('python').find_installation('python3') +if with_platform_ohos + pre_args += '-DHAVE_OHOS_PLATFORM' + dep_ohos = [ + dependency('libsurface'), + dependency('libhilog'), + ] + c_args += '-I../ohos' +endif + +#prog_python = import('python').find_installation('python3') +prog_python = '/usr/bin/python3' + has_mako = run_command( prog_python, '-c', ''' @@ -1636,6 +1648,10 @@ foreach d : _libdrm_checks endif endforeach +dep_hilog = dependency( + 'libhilog' +) + with_gallium_drisw_kms = false if system_has_kms_drm dep_libdrm = dependency( diff --git a/meson_options.txt b/meson_options.txt index e885ba61a8a..34886908bf3 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -6,7 +6,7 @@ option( type : 'array', value : ['auto'], choices : [ - 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', + 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', 'ohos', ], description : 'window systems to support. If this is set to `auto`, all ' + 'platforms applicable will be enabled.' @@ -18,7 +18,7 @@ option( value : 'auto', choices : [ 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', - 'surfaceless', 'drm', + 'surfaceless', 'drm', 'ohos', ], description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY', ) diff --git a/ohos/BUILD.gn b/ohos/BUILD.gn new file mode 100755 index 00000000000..d89c760a176 --- /dev/null +++ b/ohos/BUILD.gn @@ -0,0 +1,106 @@ +# Copyright (c) 2022 Huawei Device Co., Ltd. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +import("//build/config/clang/clang.gni") + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import("//build/ohos.gni") +import("dependency_inputs.gni") +mesa3d_libs_dir = "$root_build_dir/packages/phone/mesa3d" + +mesa3d_gallium_symlinks = [ "panfrost_dri.so" ] + +mesa3d_all_lib_items = [ + [ + "libEGL.so.1.0.0", + [ + "libEGL.so", + "libEGL.so.1", + "libEGL_impl.so", + ], + ], + [ + "libgbm.so.1.0.0", + [ + "libgbm.so", + "libgbm.so.1", + ], + ], + [ + "libglapi.so.0.0.0", + [ + "libglapi.so", + "libglapi.so.0", + ], + ], + [ + "libGLESv1_CM.so.1.1.0", + [ + "libGLESv1_CM.so", + "libGLESv1_CM.so.1", + "libGLESv1_impl.so", + ], + ], + [ + "libGLESv2.so.2.0.0", + [ + "libGLESv2.so", + "libGLESv2.so.2", + "libGLESv3.so", + "libGLESv2_impl.so", + "libGLESv3_impl.so", + ], + ], + [ + "libgallium_dri.so", + mesa3d_gallium_symlinks, + ], +] + +action("mesa3d_build") { + inputs = deps_inputs + script = "build_mesa3d.py" + deps = [ "//third_party/expat:expat" ] + external_deps = [ "graphic_surface:surface" ] + outputs = [] + foreach(item, mesa3d_all_lib_items) { + name = item[0] + outputs += [ "$mesa3d_libs_dir/$name" ] + } + args = [ rebase_path(root_build_dir) ] +} + +mesa3d_all_lib_deps = [] + +foreach(item, mesa3d_all_lib_items) { + name = item[0] + ohos_prebuilt_shared_library(name) { + source = "$mesa3d_libs_dir/$name" + deps = [ ":mesa3d_build" ] + symlink_target_name = item[1] + install_enable = true + install_images = [ system_base_dir ] + subsystem_name = "rockchip_products" + part_name = "rockchip_products" + } + mesa3d_all_lib_deps += [ ":$name" ] +} + +group("mesa3d_all_libs") { + deps = mesa3d_all_lib_deps +} diff --git a/ohos/README_zh.md b/ohos/README_zh.md new file mode 100644 index 00000000000..17a7331a1a3 --- /dev/null +++ b/ohos/README_zh.md @@ -0,0 +1,41 @@ +### 编译环境依赖: +1. meson +mesa是使用meson进行编译的并要求版本>= 0.52,可执行以下命令安装meson +``` +sudo apt-get install python3 python3-pip ninja-build +pip3 install --user meson +``` +2. pkg-config +meson配置编译环境时会使用pkg-config查找依赖库和头文件,可以执行以下命令安装 +``` +sudo apt-get install pkg-config +``` + +### 编译步骤如下: +1. 下载openharmony整个工程代码,并完成编译 +2. 因为有些依赖库是静态库,整编后会被删除需要执行以下命令单独编译以rk3568为例 +``` +./build.sh --product-name=rk3568 --build-target=expat +./build.sh --product-name=rk3568 --build-target=libwayland_server.0 +./build.sh --product-name=rk3568 --build-target=libwayland_client.0 +./build.sh --product-name=rk3568 --build-target=libwayland_server +./build.sh --product-name=rk3568 --build-target=libwayland_client +``` + +3. 编译mesa +编译鸿蒙系统下的mesa库时,需要配置鸿蒙的交叉编译链和依赖的库,相关配置和编译步骤已经封装到ohos目录下的python脚本中,编译时只需执行 build_wayland_and_gbm.py 脚本即可,执行命名需要输入三个参数 + +| 参数 | 说明 | +| ---- | ---- | +| arg1 | openharmony代码路径 | +| arg2 | 产品名字,实际上为out目录下存放系统编译结果的那个目录 如hi3516dv300 或者 rk3568, 注: LTS3.0 的版本必须是 ohos-arm-release| +| arg3 | mesa 源码路径| + +示例如下: +~/openharmony 是openharmony源码路径, rk3568是对应的产品输出目录,~/mesa3d为mesa源码路径, 执行完命令后会生成一个名叫builddir的文件夹,该文件夹是mesa的编译目录. 编译完成后相关的库存放在builddir/install/lib 下 + +``` +cd ~/mesa3d +python ohos/build_ohos.py ~/openharmony rk3568 ~/mesa3d + +``` \ No newline at end of file diff --git a/ohos/build_mesa3d.py b/ohos/build_mesa3d.py new file mode 100755 index 00000000000..16b466becd3 --- /dev/null +++ b/ohos/build_mesa3d.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (c) 2022 Institute of Software, CAS +# Author: xiaofan@iscas.ac.cn + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import sys +import os +import os.path +import subprocess +import multiprocessing +import glob +import shutil +from meson_cross_process import prepare_environment + +# input /path/to/openharmony/out/rk3568 + +nproc = multiprocessing.cpu_count() +out_dir = sys.argv[1] +mesa3d_install_dir = os.path.join(out_dir, 'packages', 'phone', 'mesa3d') +product = os.path.basename(out_dir) +project_dir = os.path.dirname(os.path.dirname(out_dir)) +project_dir = os.path.abspath(project_dir) +mesa3d_dir = os.path.dirname(os.path.dirname(__file__)) +mesa3d_dir = os.path.abspath(mesa3d_dir) +pkgconf_dir = os.path.join(mesa3d_dir, './pkgconfig') +os.environ['PKG_CONFIG_PATH'] = pkgconf_dir + +# workaround: using system python instead of prebuilt python +path_old = os.environ['PATH'].split(':') +path_filter = lambda p: not p.endswith('/prebuilts/python/linux-x86/3.8.5/bin') +path_new = ':'.join(filter(path_filter, path_old)) +os.environ['PATH'] = path_new + +os.chdir(mesa3d_dir) +prepare_environment(project_dir, product) + +meson_cmd = [ + 'meson', + 'setup', + mesa3d_dir, + 'build-ohos', + '-Dplatforms=ohos', + '-Degl-native-platform=ohos', + '-Ddri-drivers=', + '-Dgallium-drivers=panfrost', + '-Dvulkan-drivers=', + '-Dgbm=enabled', + '-Degl=enabled', + '-Dcpp_rtti=false', + '-Dglx=disabled', + '-Dtools=panfrost', + '-Ddri-search-path=/system/lib', + '--cross-file=cross_file', + F'--prefix={mesa3d_dir}/build-ohos/install', +] + +subprocess.run(meson_cmd, check=True) +subprocess.run(F'ninja -C build-ohos -j{nproc}', shell=True, check=True) +subprocess.run(F'ninja -C build-ohos install', shell=True, check=True) + +build_lib = os.path.join(mesa3d_dir, 'build-ohos', 'install', 'lib') +build_lib_dri = os.path.join(build_lib, 'dri') + +# install to out/rk3568/packages/phone/mesa3d +shutil.rmtree(mesa3d_install_dir, ignore_errors=True) +os.makedirs(mesa3d_install_dir, exist_ok=True) +for item in glob.glob(os.path.join(build_lib, 'lib*.so.*.*.*')): + shutil.copy(item, mesa3d_install_dir) +for item in glob.glob(os.path.join(build_lib_dri, '*_dri.so')): + # all *_dir.so are same file, we need only copy one and rename it to libgallium_dri.so + shutil.copy(item, os.path.join(mesa3d_install_dir, 'libgallium_dri.so')) # consider create symlink or hardlink + break diff --git a/ohos/build_ohos.py b/ohos/build_ohos.py new file mode 100644 index 00000000000..8f2485922ed --- /dev/null +++ b/ohos/build_ohos.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2022 Huawei Device Co., Ltd. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import sys +import ntpath +import os +if __name__ == '__main__': + if len(sys.argv) < 4: + print("must input the OpenHarmony directory and the product name and the source dir") + exit(-1) + script_dir = os.path.split(os.path.abspath( __file__))[0] + run_cross_pross_cmd = 'python3 ' + script_dir + '/meson_cross_process.py ' + sys.argv[1] + ' ' + sys.argv[2] + os.system(run_cross_pross_cmd) + + run_build_cmd = 'PKG_CONFIG_PATH=./pkgconfig ' + run_build_cmd += 'meson setup '+ sys.argv[3] + ' build-ohos ' + run_build_cmd += '-Dplatforms=ohos -Degl-native-platform=ohos -Ddri-drivers= -Dgallium-drivers=panfrost \ + -Dvulkan-drivers= -Dgbm=enabled -Degl=enabled -Dcpp_rtti=false -Dglx=disabled -Dtools=panfrost -Ddri-search-path=/system/lib ' + run_build_cmd += '--cross-file=cross_file ' + run_build_cmd += '--prefix=' + os.getcwd() + '/build-ohos/install' + print("build command: %s" %run_build_cmd) + os.system(run_build_cmd) + os.system('ninja -C build-ohos -j26') + os.system('ninja -C build-ohos install') diff --git a/ohos/build_ohos_arm64.py b/ohos/build_ohos_arm64.py new file mode 100644 index 00000000000..0fec6b1bfec --- /dev/null +++ b/ohos/build_ohos_arm64.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2022 Huawei Device Co., Ltd. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +import sys +import ntpath +import os +if __name__ == '__main__': + if len(sys.argv) < 4: + print("must input the OpenHarmony directory and the product name and the source dir") + exit(-1) + script_dir = os.path.split(os.path.abspath( __file__))[0] + run_cross_pross_cmd = 'python3 ' + script_dir + '/meson_cross_process_arm64.py ' + sys.argv[1] + ' ' + sys.argv[2] + os.system(run_cross_pross_cmd) + + run_build_cmd = 'PKG_CONFIG_PATH=./pkgconfig ' + run_build_cmd += 'meson setup '+ sys.argv[3] + ' build-ohos ' + run_build_cmd += '-Dplatforms=ohos -Degl-native-platform=ohos -Ddri-drivers= -Dgallium-drivers=panfrost \ + -Dvulkan-drivers= -Dgbm=enabled -Degl=enabled -Dgles1=enabled -Dgles2=enabled -Dcpp_rtti=false -Dglx=disabled -Dtools=panfrost -Ddri-search-path=/vendor/lib64/chipsetsdk ' + run_build_cmd += '--cross-file=cross_file ' + run_build_cmd += '--prefix=' + os.getcwd() + '/build-ohos/install' + print("build command: %s" %run_build_cmd) + os.system(run_build_cmd) + os.system('ninja -C build-ohos -j126') + os.system('ninja -C build-ohos install') diff --git a/ohos/build_wayland_and_gbm.py b/ohos/build_wayland_and_gbm.py new file mode 100644 index 00000000000..a5ce071de3a --- /dev/null +++ b/ohos/build_wayland_and_gbm.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2022 Huawei Device Co., Ltd. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import sys +import ntpath +import os +if __name__ == '__main__': + if len(sys.argv) < 4: + print("must input the OpenHarmony directory and the product name and the source dir") + exit(-1) + script_dir = os.path.split(os.path.abspath( __file__))[0] + run_cross_pross_cmd = 'python3 ' + script_dir + '/meson_cross_process.py ' + sys.argv[1] + ' ' + sys.argv[2] + os.system(run_cross_pross_cmd) + + run_build_cmd = 'PKG_CONFIG_PATH=./pkgconfig ' + run_build_cmd += 'meson setup '+ sys.argv[3] + ' builddir ' + run_build_cmd += '-Dvulkan-drivers= -Ddri-drivers= -Dgallium-drivers=panfrost \ + -Dplatforms=wayland -Dglx=disabled -Dtools=panfrost --buildtype=release ' + run_build_cmd += '--cross-file=cross_file ' + run_build_cmd += '--prefix=' + os.getcwd() + '/builddir/install' + print("build command: %s" %run_build_cmd) + os.system(run_build_cmd) + os.system('ninja -C builddir -j26') + os.system('ninja -C builddir install') diff --git a/ohos/dependency_inputs.gni b/ohos/dependency_inputs.gni new file mode 100644 index 00000000000..65b8710fc9a --- /dev/null +++ b/ohos/dependency_inputs.gni @@ -0,0 +1,6980 @@ +# Copyright (c) 2022 Huawei Device Co., Ltd. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +declare_args() { + deps_inputs = [ + "../CODEOWNERS", + "../OAT.xml", + "../VERSION", + "../meson.build", + "../meson_options.txt", + + "../android/Android.mk", + "../android/mesa3d_cross.mk", + + "../bin/__init__.py", + "../bin/commit_in_branch.py", + "../bin/commit_in_branch_test.py", + "../bin/gen_calendar_entries.py", + "../bin/gen_calendar_entries_test.py", + "../bin/gen_release_notes.py", + "../bin/gen_release_notes_test.py", + "../bin/git_sha1_gen.py", + "../bin/install_megadrivers.py", + "../bin/khronos-update.py", + "../bin/meson-cmd-extract.py", + "../bin/meson-options.py", + "../bin/meson.build", + "../bin/meson_get_version.py", + "../bin/perf-annotate-jit.py", + "../bin/pick-ui.py", + "../bin/post_version.py", + "../bin/post_version_test.py", + "../bin/symbols-check.py", + "../bin/update-android-headers.sh", + + "../bin/pick/__init__.py", + "../bin/pick/core.py", + "../bin/pick/core_test.py", + "../bin/pick/ui.py", + + "../build-support/conftest.dyn", + "../build-support/conftest.map", + + "../include/c11_compat.h", + "../include/c99_alloca.h", + "../include/c99_compat.h", + "../include/c99_math.h", + "../include/meson.build", + "../include/no_extern_c.h", + + "../include/CL/cl.h", + "../include/CL/cl.hpp", + "../include/CL/cl2.hpp", + "../include/CL/cl_d3d10.h", + "../include/CL/cl_d3d11.h", + "../include/CL/cl_dx9_media_sharing.h", + "../include/CL/cl_dx9_media_sharing_intel.h", + "../include/CL/cl_egl.h", + "../include/CL/cl_ext.h", + "../include/CL/cl_ext_intel.h", + "../include/CL/cl_gl.h", + "../include/CL/cl_gl_ext.h", + "../include/CL/cl_icd.h", + "../include/CL/cl_platform.h", + "../include/CL/cl_va_api_media_sharing_intel.h", + "../include/CL/cl_version.h", + "../include/CL/opencl.h", + + "../include/D3D9/d3d9.h", + "../include/D3D9/d3d9caps.h", + "../include/D3D9/d3d9types.h", + + "../include/EGL/egl.h", + "../include/EGL/eglext.h", + "../include/EGL/eglextchromium.h", + "../include/EGL/eglmesaext.h", + "../include/EGL/eglplatform.h", + + "../include/GL/gl.h", + "../include/GL/glcorearb.h", + "../include/GL/glext.h", + "../include/GL/glx.h", + "../include/GL/glxext.h", + "../include/GL/mesa_glinterop.h", + "../include/GL/osmesa.h", + "../include/GL/wglext.h", + + "../include/GL/internal/dri_interface.h", + + "../include/GLES/egl.h", + "../include/GLES/gl.h", + "../include/GLES/glext.h", + "../include/GLES/glplatform.h", + + "../include/GLES2/gl2.h", + "../include/GLES2/gl2ext.h", + "../include/GLES2/gl2platform.h", + + "../include/GLES3/gl3.h", + "../include/GLES3/gl31.h", + "../include/GLES3/gl32.h", + "../include/GLES3/gl3ext.h", + "../include/GLES3/gl3platform.h", + + "../include/HaikuGL/GLRenderer.h", + "../include/HaikuGL/GLView.h", + "../include/HaikuGL/OpenGLKit.h", + + "../include/KHR/khrplatform.h", + + "../include/android_stub/android/data_space.h", + "../include/android_stub/android/hardware_buffer.h", + "../include/android_stub/android/hdr_metadata.h", + "../include/android_stub/android/log.h", + "../include/android_stub/android/native_window.h", + "../include/android_stub/android/rect.h", + "../include/android_stub/android/sync.h", + + "../include/android_stub/backtrace/Backtrace.h", + "../include/android_stub/backtrace/BacktraceMap.h", + "../include/android_stub/backtrace/backtrace_constants.h", + + "../include/android_stub/cutils/compiler.h", + "../include/android_stub/cutils/log.h", + "../include/android_stub/cutils/native_handle.h", + "../include/android_stub/cutils/properties.h", + "../include/android_stub/cutils/trace.h", + + "../include/android_stub/hardware/fb.h", + "../include/android_stub/hardware/gralloc.h", + "../include/android_stub/hardware/gralloc1.h", + "../include/android_stub/hardware/hardware.h", + "../include/android_stub/hardware/hwvulkan.h", + + "../include/android_stub/log/event_tag_map.h", + "../include/android_stub/log/log.h", + "../include/android_stub/log/log_event_list.h", + "../include/android_stub/log/log_id.h", + "../include/android_stub/log/log_main.h", + "../include/android_stub/log/log_properties.h", + "../include/android_stub/log/log_radio.h", + "../include/android_stub/log/log_read.h", + "../include/android_stub/log/log_safetynet.h", + "../include/android_stub/log/log_system.h", + "../include/android_stub/log/log_time.h", + "../include/android_stub/log/logprint.h", + + "../include/android_stub/nativebase/nativebase.h", + + "../include/android_stub/ndk/sync.h", + + "../include/android_stub/sync/sync.h", + + "../include/android_stub/system/camera.h", + "../include/android_stub/system/graphics-base-v1.0.h", + "../include/android_stub/system/graphics-base-v1.1.h", + "../include/android_stub/system/graphics-base-v1.2.h", + "../include/android_stub/system/graphics-base.h", + "../include/android_stub/system/graphics-sw.h", + "../include/android_stub/system/graphics.h", + "../include/android_stub/system/radio.h", + "../include/android_stub/system/thread_defs.h", + "../include/android_stub/system/window.h", + + "../include/android_stub/vndk/hardware_buffer.h", + "../include/android_stub/vndk/window.h", + + "../include/c11/threads.h", + "../include/c11/threads_posix.h", + "../include/c11/threads_win32.h", + + "../include/d3dadapter/d3dadapter9.h", + "../include/d3dadapter/drm.h", + "../include/d3dadapter/present.h", + + "../include/drm-uapi/amdgpu_drm.h", + "../include/drm-uapi/drm.h", + "../include/drm-uapi/drm_fourcc.h", + "../include/drm-uapi/drm_mode.h", + "../include/drm-uapi/etnaviv_drm.h", + "../include/drm-uapi/i915_drm.h", + "../include/drm-uapi/lima_drm.h", + "../include/drm-uapi/msm_drm.h", + "../include/drm-uapi/panfrost_drm.h", + "../include/drm-uapi/sync_file.h", + "../include/drm-uapi/tegra_drm.h", + "../include/drm-uapi/v3d_drm.h", + "../include/drm-uapi/vc4_drm.h", + "../include/drm-uapi/virtgpu_drm.h", + + "../include/pci_ids/crocus_pci_ids.h", + "../include/pci_ids/i830_pci_ids.h", + "../include/pci_ids/i915_pci_ids.h", + "../include/pci_ids/i965_pci_ids.h", + "../include/pci_ids/iris_pci_ids.h", + "../include/pci_ids/r200_pci_ids.h", + "../include/pci_ids/r300_pci_ids.h", + "../include/pci_ids/r600_pci_ids.h", + "../include/pci_ids/radeon_pci_ids.h", + "../include/pci_ids/radeonsi_pci_ids.h", + "../include/pci_ids/virtio_gpu_pci_ids.h", + "../include/pci_ids/vmwgfx_pci_ids.h", + + "../include/vulkan/vk_android_native_buffer.h", + "../include/vulkan/vk_icd.h", + "../include/vulkan/vk_layer.h", + "../include/vulkan/vk_platform.h", + "../include/vulkan/vulkan.h", + "../include/vulkan/vulkan_android.h", + "../include/vulkan/vulkan_beta.h", + "../include/vulkan/vulkan_core.h", + "../include/vulkan/vulkan_directfb.h", + "../include/vulkan/vulkan_fuchsia.h", + "../include/vulkan/vulkan_ggp.h", + "../include/vulkan/vulkan_ios.h", + "../include/vulkan/vulkan_macos.h", + "../include/vulkan/vulkan_metal.h", + "../include/vulkan/vulkan_screen.h", + "../include/vulkan/vulkan_vi.h", + "../include/vulkan/vulkan_wayland.h", + "../include/vulkan/vulkan_win32.h", + "../include/vulkan/vulkan_xcb.h", + "../include/vulkan/vulkan_xlib.h", + "../include/vulkan/vulkan_xlib_xrandr.h", + + "../include/winddk/winddk_compat.h", + + "../ohos/BUILD.gn", + "../ohos/build_mesa3d.py", + "../ohos/build_ohos.py", + "../ohos/build_wayland_and_gbm.py", + "../ohos/dependency_inputs.gni", + "../ohos/meson_cross_process.py", + "../ohos/modifyDtsi.py", + + "../ohos/pkgconfig_template/expat.pc", + "../ohos/pkgconfig_template/gbm.pc", + "../ohos/pkgconfig_template/libdrm.pc", + "../ohos/pkgconfig_template/libhilog.pc", + "../ohos/pkgconfig_template/libjpeg.pc", + "../ohos/pkgconfig_template/libpng.pc", + "../ohos/pkgconfig_template/libsurface.pc", + "../ohos/pkgconfig_template/libudev.pc", + "../ohos/pkgconfig_template/wayland-client.pc", + "../ohos/pkgconfig_template/wayland-cursor.pc", + "../ohos/pkgconfig_template/wayland-egl-backend.pc", + "../ohos/pkgconfig_template/wayland-egl.pc", + "../ohos/pkgconfig_template/wayland-protocols.pc", + "../ohos/pkgconfig_template/wayland-scanner.pc", + "../ohos/pkgconfig_template/wayland-server.pc", + "../ohos/pkgconfig_template/zlib.pc", + + "../src/meson.build", + + "../src/amd/meson.build", + + "../src/amd/addrlib/meson.build", + + "../src/amd/addrlib/inc/addrinterface.h", + "../src/amd/addrlib/inc/addrtypes.h", + + "../src/amd/addrlib/src/addrinterface.cpp", + "../src/amd/addrlib/src/amdgpu_asic_addr.h", + + "../src/amd/addrlib/src/chip/gfx10/gfx10_gb_reg.h", + + "../src/amd/addrlib/src/chip/gfx9/gfx9_gb_reg.h", + + "../src/amd/addrlib/src/chip/r800/si_gb_reg.h", + + "../src/amd/addrlib/src/core/addrcommon.h", + "../src/amd/addrlib/src/core/addrelemlib.cpp", + "../src/amd/addrlib/src/core/addrelemlib.h", + "../src/amd/addrlib/src/core/addrlib.cpp", + "../src/amd/addrlib/src/core/addrlib.h", + "../src/amd/addrlib/src/core/addrlib1.cpp", + "../src/amd/addrlib/src/core/addrlib1.h", + "../src/amd/addrlib/src/core/addrlib2.cpp", + "../src/amd/addrlib/src/core/addrlib2.h", + "../src/amd/addrlib/src/core/addrobject.cpp", + "../src/amd/addrlib/src/core/addrobject.h", + "../src/amd/addrlib/src/core/coord.cpp", + "../src/amd/addrlib/src/core/coord.h", + + "../src/amd/addrlib/src/gfx10/gfx10SwizzlePattern.h", + "../src/amd/addrlib/src/gfx10/gfx10addrlib.cpp", + "../src/amd/addrlib/src/gfx10/gfx10addrlib.h", + + "../src/amd/addrlib/src/gfx9/gfx9addrlib.cpp", + "../src/amd/addrlib/src/gfx9/gfx9addrlib.h", + + "../src/amd/addrlib/src/r800/ciaddrlib.cpp", + "../src/amd/addrlib/src/r800/ciaddrlib.h", + "../src/amd/addrlib/src/r800/egbaddrlib.cpp", + "../src/amd/addrlib/src/r800/egbaddrlib.h", + "../src/amd/addrlib/src/r800/siaddrlib.cpp", + "../src/amd/addrlib/src/r800/siaddrlib.h", + + "../src/amd/ci/gitlab-ci.yml", + "../src/amd/ci/radv-bonaire-aco-fails.txt", + "../src/amd/ci/radv-bonaire-aco-skips.txt", + "../src/amd/ci/radv-fiji-aco-fails.txt", + "../src/amd/ci/radv-hawaii-aco-fails.txt", + "../src/amd/ci/radv-hawaii-aco-skips.txt", + "../src/amd/ci/radv-navi10-aco-fails.txt", + "../src/amd/ci/radv-navi14-aco-fails.txt", + "../src/amd/ci/radv-oland-aco-fails.txt", + "../src/amd/ci/radv-pitcairn-aco-fails.txt", + "../src/amd/ci/radv-polaris10-aco-fails.txt", + "../src/amd/ci/radv-raven-aco-fails.txt", + "../src/amd/ci/radv-raven-aco-flakes.txt", + "../src/amd/ci/radv-raven-aco-skips.txt", + "../src/amd/ci/radv-renoir-aco-fails.txt", + "../src/amd/ci/radv-renoir-aco-flakes.txt", + "../src/amd/ci/radv-sienna_cichlid-aco-fails.txt", + "../src/amd/ci/radv-skips.txt", + "../src/amd/ci/radv-stoney-aco-fails.txt", + "../src/amd/ci/radv-stoney-aco-flakes.txt", + "../src/amd/ci/radv-stoney-aco-skips.txt", + "../src/amd/ci/radv-vangogh-aco-fails.txt", + "../src/amd/ci/radv-vega10-aco-fails.txt", + "../src/amd/ci/radv-vega10-aco-flakes.txt", + "../src/amd/ci/traces-radv.yml", + "../src/amd/ci/vkd3d-proton-navy_flounder.txt", + + "../src/amd/common/ac_binary.c", + "../src/amd/common/ac_binary.h", + "../src/amd/common/ac_debug.c", + "../src/amd/common/ac_debug.h", + "../src/amd/common/ac_drm_fourcc.h", + "../src/amd/common/ac_exp_param.h", + "../src/amd/common/ac_gpu_info.c", + "../src/amd/common/ac_gpu_info.h", + "../src/amd/common/ac_msgpack.c", + "../src/amd/common/ac_msgpack.h", + "../src/amd/common/ac_nir.c", + "../src/amd/common/ac_nir.h", + "../src/amd/common/ac_nir_cull.c", + "../src/amd/common/ac_nir_lower_esgs_io_to_mem.c", + "../src/amd/common/ac_nir_lower_ngg.c", + "../src/amd/common/ac_nir_lower_tess_io_to_mem.c", + "../src/amd/common/ac_perfcounter.c", + "../src/amd/common/ac_perfcounter.h", + "../src/amd/common/ac_rgp.c", + "../src/amd/common/ac_rgp.h", + "../src/amd/common/ac_rgp_elf_object_pack.c", + "../src/amd/common/ac_rtld.c", + "../src/amd/common/ac_rtld.h", + "../src/amd/common/ac_shader_args.c", + "../src/amd/common/ac_shader_args.h", + "../src/amd/common/ac_shader_util.c", + "../src/amd/common/ac_shader_util.h", + "../src/amd/common/ac_shadowed_regs.c", + "../src/amd/common/ac_shadowed_regs.h", + "../src/amd/common/ac_sqtt.c", + "../src/amd/common/ac_sqtt.h", + "../src/amd/common/ac_surface.c", + "../src/amd/common/ac_surface.h", + "../src/amd/common/ac_surface_meta_address_test.c", + "../src/amd/common/ac_surface_modifier_test.c", + "../src/amd/common/ac_surface_test_common.h", + "../src/amd/common/amd_family.c", + "../src/amd/common/amd_family.h", + "../src/amd/common/amd_kernel_code_t.h", + "../src/amd/common/gfx10_format_table.h", + "../src/amd/common/gfx10_format_table.py", + "../src/amd/common/meson.build", + "../src/amd/common/sid.h", + "../src/amd/common/sid_tables.py", + + "../src/amd/compiler/aco_assembler.cpp", + "../src/amd/compiler/aco_builder_h.py", + "../src/amd/compiler/aco_dead_code_analysis.cpp", + "../src/amd/compiler/aco_dominance.cpp", + "../src/amd/compiler/aco_form_hard_clauses.cpp", + "../src/amd/compiler/aco_insert_NOPs.cpp", + "../src/amd/compiler/aco_insert_exec_mask.cpp", + "../src/amd/compiler/aco_insert_waitcnt.cpp", + "../src/amd/compiler/aco_instruction_selection.cpp", + "../src/amd/compiler/aco_instruction_selection.h", + "../src/amd/compiler/aco_instruction_selection_setup.cpp", + "../src/amd/compiler/aco_interface.cpp", + "../src/amd/compiler/aco_interface.h", + "../src/amd/compiler/aco_ir.cpp", + "../src/amd/compiler/aco_ir.h", + "../src/amd/compiler/aco_live_var_analysis.cpp", + "../src/amd/compiler/aco_lower_phis.cpp", + "../src/amd/compiler/aco_lower_to_cssa.cpp", + "../src/amd/compiler/aco_lower_to_hw_instr.cpp", + "../src/amd/compiler/aco_opcodes.py", + "../src/amd/compiler/aco_opcodes_cpp.py", + "../src/amd/compiler/aco_opcodes_h.py", + "../src/amd/compiler/aco_opt_value_numbering.cpp", + "../src/amd/compiler/aco_optimizer.cpp", + "../src/amd/compiler/aco_optimizer_postRA.cpp", + "../src/amd/compiler/aco_print_asm.cpp", + "../src/amd/compiler/aco_print_ir.cpp", + "../src/amd/compiler/aco_reduce_assign.cpp", + "../src/amd/compiler/aco_register_allocation.cpp", + "../src/amd/compiler/aco_reindex_ssa.cpp", + "../src/amd/compiler/aco_scheduler.cpp", + "../src/amd/compiler/aco_spill.cpp", + "../src/amd/compiler/aco_ssa_elimination.cpp", + "../src/amd/compiler/aco_statistics.cpp", + "../src/amd/compiler/aco_util.h", + "../src/amd/compiler/aco_validate.cpp", + "../src/amd/compiler/meson.build", + + "../src/amd/llvm/ac_llvm_build.c", + "../src/amd/llvm/ac_llvm_build.h", + "../src/amd/llvm/ac_llvm_cull.c", + "../src/amd/llvm/ac_llvm_cull.h", + "../src/amd/llvm/ac_llvm_helper.cpp", + "../src/amd/llvm/ac_llvm_util.c", + "../src/amd/llvm/ac_llvm_util.h", + "../src/amd/llvm/ac_nir_to_llvm.c", + "../src/amd/llvm/ac_nir_to_llvm.h", + "../src/amd/llvm/ac_shader_abi.h", + "../src/amd/llvm/meson.build", + + "../src/amd/registers/canonicalize.py", + "../src/amd/registers/gfx10-rsrc.json", + "../src/amd/registers/gfx10.json", + "../src/amd/registers/gfx103.json", + "../src/amd/registers/gfx6.json", + "../src/amd/registers/gfx7.json", + "../src/amd/registers/gfx8.json", + "../src/amd/registers/gfx81.json", + "../src/amd/registers/gfx9.json", + "../src/amd/registers/makeregheader.py", + "../src/amd/registers/mergedbs.py", + "../src/amd/registers/parse_kernel_headers.py", + "../src/amd/registers/parseheader.py", + "../src/amd/registers/pkt3.json", + "../src/amd/registers/regdb.py", + "../src/amd/registers/registers-manually-defined.json", + + "../src/amd/vulkan/meson.build", + "../src/amd/vulkan/radv_acceleration_structure.c", + "../src/amd/vulkan/radv_acceleration_structure.h", + "../src/amd/vulkan/radv_android.c", + "../src/amd/vulkan/radv_check_va.py", + "../src/amd/vulkan/radv_cmd_buffer.c", + "../src/amd/vulkan/radv_constants.h", + "../src/amd/vulkan/radv_cs.h", + "../src/amd/vulkan/radv_debug.c", + "../src/amd/vulkan/radv_debug.h", + "../src/amd/vulkan/radv_descriptor_set.c", + "../src/amd/vulkan/radv_descriptor_set.h", + "../src/amd/vulkan/radv_device.c", + "../src/amd/vulkan/radv_formats.c", + "../src/amd/vulkan/radv_image.c", + "../src/amd/vulkan/radv_llvm_helper.cpp", + "../src/amd/vulkan/radv_llvm_helper.h", + "../src/amd/vulkan/radv_meta.c", + "../src/amd/vulkan/radv_meta.h", + "../src/amd/vulkan/radv_meta_blit.c", + "../src/amd/vulkan/radv_meta_blit2d.c", + "../src/amd/vulkan/radv_meta_buffer.c", + "../src/amd/vulkan/radv_meta_bufimage.c", + "../src/amd/vulkan/radv_meta_clear.c", + "../src/amd/vulkan/radv_meta_copy.c", + "../src/amd/vulkan/radv_meta_copy_vrs_htile.c", + "../src/amd/vulkan/radv_meta_dcc_retile.c", + "../src/amd/vulkan/radv_meta_decompress.c", + "../src/amd/vulkan/radv_meta_fast_clear.c", + "../src/amd/vulkan/radv_meta_fmask_expand.c", + "../src/amd/vulkan/radv_meta_resolve.c", + "../src/amd/vulkan/radv_meta_resolve_cs.c", + "../src/amd/vulkan/radv_meta_resolve_fs.c", + "../src/amd/vulkan/radv_nir_lower_ycbcr_textures.c", + "../src/amd/vulkan/radv_nir_to_llvm.c", + "../src/amd/vulkan/radv_pass.c", + "../src/amd/vulkan/radv_pipeline.c", + "../src/amd/vulkan/radv_pipeline_cache.c", + "../src/amd/vulkan/radv_pipeline_rt.c", + "../src/amd/vulkan/radv_private.h", + "../src/amd/vulkan/radv_query.c", + "../src/amd/vulkan/radv_radeon_winsys.h", + "../src/amd/vulkan/radv_shader.c", + "../src/amd/vulkan/radv_shader.h", + "../src/amd/vulkan/radv_shader_args.c", + "../src/amd/vulkan/radv_shader_args.h", + "../src/amd/vulkan/radv_shader_info.c", + "../src/amd/vulkan/radv_sqtt.c", + "../src/amd/vulkan/radv_util.c", + "../src/amd/vulkan/radv_wsi.c", + "../src/amd/vulkan/radv_wsi_display.c", + "../src/amd/vulkan/si_cmd_buffer.c", + "../src/amd/vulkan/vk_format.h", + "../src/amd/vulkan/vulkan.sym", + "../src/amd/vulkan/vulkan_radv.def", + + "../src/amd/vulkan/layers/radv_metro_exodus.c", + "../src/amd/vulkan/layers/radv_sqtt_layer.c", + + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c", + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.h", + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c", + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.h", + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.c", + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.h", + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c", + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h", + "../src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys_public.h", + + "../src/amd/vulkan/winsys/null/radv_null_bo.c", + "../src/amd/vulkan/winsys/null/radv_null_bo.h", + "../src/amd/vulkan/winsys/null/radv_null_cs.c", + "../src/amd/vulkan/winsys/null/radv_null_cs.h", + "../src/amd/vulkan/winsys/null/radv_null_winsys.c", + "../src/amd/vulkan/winsys/null/radv_null_winsys.h", + "../src/amd/vulkan/winsys/null/radv_null_winsys_public.h", + + "../src/android_stub/backtrace_stub.cpp", + "../src/android_stub/cutils_stub.cpp", + "../src/android_stub/hardware_stub.cpp", + "../src/android_stub/log_stub.cpp", + "../src/android_stub/meson.build", + "../src/android_stub/nativewindow_stub.cpp", + "../src/android_stub/sync_stub.cpp", + + "../src/asahi/meson.build", + + "../src/asahi/compiler/agx_builder.h.py", + "../src/asahi/compiler/agx_compile.c", + "../src/asahi/compiler/agx_compile.h", + "../src/asahi/compiler/agx_compiler.h", + "../src/asahi/compiler/agx_dce.c", + "../src/asahi/compiler/agx_liveness.c", + "../src/asahi/compiler/agx_minifloat.h", + "../src/asahi/compiler/agx_opcodes.c.py", + "../src/asahi/compiler/agx_opcodes.h.py", + "../src/asahi/compiler/agx_opcodes.py", + "../src/asahi/compiler/agx_optimizer.c", + "../src/asahi/compiler/agx_pack.c", + "../src/asahi/compiler/agx_print.c", + "../src/asahi/compiler/agx_register_allocate.c", + "../src/asahi/compiler/agx_uniforms.c", + "../src/asahi/compiler/cmdline.c", + "../src/asahi/compiler/meson.build", + + "../src/asahi/lib/agx_bo.h", + "../src/asahi/lib/agx_device.c", + "../src/asahi/lib/agx_device.h", + "../src/asahi/lib/agx_formats.c", + "../src/asahi/lib/agx_formats.h", + "../src/asahi/lib/cmdbuf.xml", + "../src/asahi/lib/decode.c", + "../src/asahi/lib/decode.h", + "../src/asahi/lib/gen_pack.py", + "../src/asahi/lib/hexdump.h", + "../src/asahi/lib/io.h", + "../src/asahi/lib/meson.build", + "../src/asahi/lib/pool.c", + "../src/asahi/lib/pool.h", + "../src/asahi/lib/tiling.c", + "../src/asahi/lib/tiling.h", + + "../src/broadcom/meson.build", + + "../src/broadcom/ci/deqp-v3d-rpi4-gles.toml", + "../src/broadcom/ci/deqp-v3dv-rpi4-fails.txt", + "../src/broadcom/ci/deqp-vc4-rpi3-gles.toml", + "../src/broadcom/ci/gitlab-ci.yml", + "../src/broadcom/ci/v3d-rpi4-fails.txt", + "../src/broadcom/ci/v3d-rpi4-flakes.txt", + "../src/broadcom/ci/v3d-rpi4-skips.txt", + "../src/broadcom/ci/v3dv-rpi4-flakes.txt", + "../src/broadcom/ci/v3dv-rpi4-skips.txt", + "../src/broadcom/ci/vc4-rpi3-fails.txt", + "../src/broadcom/ci/vc4-rpi3-flakes.txt", + "../src/broadcom/ci/vc4-rpi3-skips.txt", + + "../src/broadcom/cle/gen_pack_header.py", + "../src/broadcom/cle/meson.build", + "../src/broadcom/cle/v3d_decoder.c", + "../src/broadcom/cle/v3d_decoder.h", + "../src/broadcom/cle/v3d_packet_helpers.h", + "../src/broadcom/cle/v3d_packet_v21.xml", + "../src/broadcom/cle/v3d_packet_v33.xml", + "../src/broadcom/cle/v3dx_pack.h", + + "../src/broadcom/clif/clif_dump.c", + "../src/broadcom/clif/clif_dump.h", + "../src/broadcom/clif/clif_private.h", + "../src/broadcom/clif/v3dx_dump.c", + + "../src/broadcom/common/v3d_cpu_tiling.h", + "../src/broadcom/common/v3d_debug.c", + "../src/broadcom/common/v3d_debug.h", + "../src/broadcom/common/v3d_device_info.c", + "../src/broadcom/common/v3d_device_info.h", + "../src/broadcom/common/v3d_limits.h", + "../src/broadcom/common/v3d_macros.h", + "../src/broadcom/common/v3d_tiling.c", + "../src/broadcom/common/v3d_tiling.h", + "../src/broadcom/common/v3d_util.c", + "../src/broadcom/common/v3d_util.h", + + "../src/broadcom/compiler/meson.build", + "../src/broadcom/compiler/nir_to_vir.c", + "../src/broadcom/compiler/qpu_schedule.c", + "../src/broadcom/compiler/qpu_validate.c", + "../src/broadcom/compiler/v3d33_tex.c", + "../src/broadcom/compiler/v3d33_vpm_setup.c", + "../src/broadcom/compiler/v3d40_tex.c", + "../src/broadcom/compiler/v3d_compiler.h", + "../src/broadcom/compiler/v3d_nir_lower_image_load_store.c", + "../src/broadcom/compiler/v3d_nir_lower_io.c", + "../src/broadcom/compiler/v3d_nir_lower_line_smooth.c", + "../src/broadcom/compiler/v3d_nir_lower_logic_ops.c", + "../src/broadcom/compiler/v3d_nir_lower_robust_buffer_access.c", + "../src/broadcom/compiler/v3d_nir_lower_scratch.c", + "../src/broadcom/compiler/v3d_nir_lower_txf_ms.c", + "../src/broadcom/compiler/vir.c", + "../src/broadcom/compiler/vir_dump.c", + "../src/broadcom/compiler/vir_live_variables.c", + "../src/broadcom/compiler/vir_opt_constant_alu.c", + "../src/broadcom/compiler/vir_opt_copy_propagate.c", + "../src/broadcom/compiler/vir_opt_dead_code.c", + "../src/broadcom/compiler/vir_opt_redundant_flags.c", + "../src/broadcom/compiler/vir_opt_small_immediates.c", + "../src/broadcom/compiler/vir_register_allocate.c", + "../src/broadcom/compiler/vir_to_qpu.c", + + "../src/broadcom/drm-shim/meson.build", + "../src/broadcom/drm-shim/v3d.c", + "../src/broadcom/drm-shim/v3d.h", + "../src/broadcom/drm-shim/v3d_noop.c", + "../src/broadcom/drm-shim/v3dx.c", + "../src/broadcom/drm-shim/vc4_noop.c", + + "../src/broadcom/qpu/meson.build", + "../src/broadcom/qpu/qpu_disasm.c", + "../src/broadcom/qpu/qpu_disasm.h", + "../src/broadcom/qpu/qpu_instr.c", + "../src/broadcom/qpu/qpu_instr.h", + "../src/broadcom/qpu/qpu_pack.c", + "../src/broadcom/qpu/qpu_validate.c", + + "../src/broadcom/simulator/meson.build", + "../src/broadcom/simulator/v3d_simulator.c", + "../src/broadcom/simulator/v3d_simulator.h", + "../src/broadcom/simulator/v3d_simulator_wrapper.cpp", + "../src/broadcom/simulator/v3d_simulator_wrapper.h", + "../src/broadcom/simulator/v3dx_simulator.c", + "../src/broadcom/simulator/v3dx_simulator.h", + + "../src/broadcom/vulkan/meson.build", + "../src/broadcom/vulkan/v3dv_bo.c", + "../src/broadcom/vulkan/v3dv_bo.h", + "../src/broadcom/vulkan/v3dv_cl.c", + "../src/broadcom/vulkan/v3dv_cl.h", + "../src/broadcom/vulkan/v3dv_cmd_buffer.c", + "../src/broadcom/vulkan/v3dv_debug.c", + "../src/broadcom/vulkan/v3dv_debug.h", + "../src/broadcom/vulkan/v3dv_descriptor_set.c", + "../src/broadcom/vulkan/v3dv_device.c", + "../src/broadcom/vulkan/v3dv_formats.c", + "../src/broadcom/vulkan/v3dv_image.c", + "../src/broadcom/vulkan/v3dv_limits.h", + "../src/broadcom/vulkan/v3dv_meta_clear.c", + "../src/broadcom/vulkan/v3dv_meta_common.h", + "../src/broadcom/vulkan/v3dv_meta_copy.c", + "../src/broadcom/vulkan/v3dv_pass.c", + "../src/broadcom/vulkan/v3dv_pipeline.c", + "../src/broadcom/vulkan/v3dv_pipeline_cache.c", + "../src/broadcom/vulkan/v3dv_private.h", + "../src/broadcom/vulkan/v3dv_query.c", + "../src/broadcom/vulkan/v3dv_queue.c", + "../src/broadcom/vulkan/v3dv_uniforms.c", + "../src/broadcom/vulkan/v3dv_wsi.c", + "../src/broadcom/vulkan/v3dvx_cmd_buffer.c", + "../src/broadcom/vulkan/v3dvx_descriptor_set.c", + "../src/broadcom/vulkan/v3dvx_device.c", + "../src/broadcom/vulkan/v3dvx_formats.c", + "../src/broadcom/vulkan/v3dvx_image.c", + "../src/broadcom/vulkan/v3dvx_meta_common.c", + "../src/broadcom/vulkan/v3dvx_pipeline.c", + "../src/broadcom/vulkan/v3dvx_private.h", + "../src/broadcom/vulkan/v3dvx_queue.c", + "../src/broadcom/vulkan/vk_format_info.h", + + "../src/compiler/builtin_type_macros.h", + "../src/compiler/glsl_types.cpp", + "../src/compiler/glsl_types.h", + "../src/compiler/meson.build", + "../src/compiler/nir_types.cpp", + "../src/compiler/nir_types.h", + "../src/compiler/shader_enums.c", + "../src/compiler/shader_enums.h", + "../src/compiler/shader_info.h", + + "../src/compiler/clc/clc.c", + "../src/compiler/clc/clc.h", + "../src/compiler/clc/clc_helpers.cpp", + "../src/compiler/clc/clc_helpers.h", + "../src/compiler/clc/meson.build", + + "../src/compiler/glsl/ast.h", + "../src/compiler/glsl/ast_array_index.cpp", + "../src/compiler/glsl/ast_expr.cpp", + "../src/compiler/glsl/ast_function.cpp", + "../src/compiler/glsl/ast_to_hir.cpp", + "../src/compiler/glsl/ast_type.cpp", + "../src/compiler/glsl/builtin_functions.cpp", + "../src/compiler/glsl/builtin_functions.h", + "../src/compiler/glsl/builtin_int64.h", + "../src/compiler/glsl/builtin_types.cpp", + "../src/compiler/glsl/builtin_variables.cpp", + "../src/compiler/glsl/float64.glsl", + "../src/compiler/glsl/generate_ir.cpp", + "../src/compiler/glsl/gl_nir.h", + "../src/compiler/glsl/gl_nir_link_atomics.c", + "../src/compiler/glsl/gl_nir_link_uniform_blocks.c", + "../src/compiler/glsl/gl_nir_link_uniform_initializers.c", + "../src/compiler/glsl/gl_nir_link_uniforms.c", + "../src/compiler/glsl/gl_nir_link_xfb.c", + "../src/compiler/glsl/gl_nir_linker.c", + "../src/compiler/glsl/gl_nir_linker.h", + "../src/compiler/glsl/gl_nir_lower_atomics.c", + "../src/compiler/glsl/gl_nir_lower_buffers.c", + "../src/compiler/glsl/gl_nir_lower_images.c", + "../src/compiler/glsl/gl_nir_lower_samplers.c", + "../src/compiler/glsl/gl_nir_lower_samplers_as_deref.c", + "../src/compiler/glsl/glsl_lexer.ll", + "../src/compiler/glsl/glsl_parser.yy", + "../src/compiler/glsl/glsl_parser_extras.cpp", + "../src/compiler/glsl/glsl_parser_extras.h", + "../src/compiler/glsl/glsl_symbol_table.cpp", + "../src/compiler/glsl/glsl_symbol_table.h", + "../src/compiler/glsl/glsl_to_nir.cpp", + "../src/compiler/glsl/glsl_to_nir.h", + "../src/compiler/glsl/hir_field_selection.cpp", + "../src/compiler/glsl/int64.glsl", + "../src/compiler/glsl/ir.cpp", + "../src/compiler/glsl/ir.h", + "../src/compiler/glsl/ir_array_refcount.cpp", + "../src/compiler/glsl/ir_array_refcount.h", + "../src/compiler/glsl/ir_basic_block.cpp", + "../src/compiler/glsl/ir_basic_block.h", + "../src/compiler/glsl/ir_builder.cpp", + "../src/compiler/glsl/ir_builder.h", + "../src/compiler/glsl/ir_builder_print_visitor.cpp", + "../src/compiler/glsl/ir_builder_print_visitor.h", + "../src/compiler/glsl/ir_clone.cpp", + "../src/compiler/glsl/ir_constant_expression.cpp", + "../src/compiler/glsl/ir_equals.cpp", + "../src/compiler/glsl/ir_expression_flattening.cpp", + "../src/compiler/glsl/ir_expression_flattening.h", + "../src/compiler/glsl/ir_expression_operation.py", + "../src/compiler/glsl/ir_function.cpp", + "../src/compiler/glsl/ir_function_can_inline.cpp", + "../src/compiler/glsl/ir_function_detect_recursion.cpp", + "../src/compiler/glsl/ir_function_inlining.h", + "../src/compiler/glsl/ir_hierarchical_visitor.cpp", + "../src/compiler/glsl/ir_hierarchical_visitor.h", + "../src/compiler/glsl/ir_hv_accept.cpp", + "../src/compiler/glsl/ir_optimization.h", + "../src/compiler/glsl/ir_print_visitor.cpp", + "../src/compiler/glsl/ir_print_visitor.h", + "../src/compiler/glsl/ir_reader.cpp", + "../src/compiler/glsl/ir_reader.h", + "../src/compiler/glsl/ir_rvalue_visitor.cpp", + "../src/compiler/glsl/ir_rvalue_visitor.h", + "../src/compiler/glsl/ir_set_program_inouts.cpp", + "../src/compiler/glsl/ir_uniform.h", + "../src/compiler/glsl/ir_validate.cpp", + "../src/compiler/glsl/ir_variable_refcount.cpp", + "../src/compiler/glsl/ir_variable_refcount.h", + "../src/compiler/glsl/ir_visitor.h", + "../src/compiler/glsl/link_atomics.cpp", + "../src/compiler/glsl/link_functions.cpp", + "../src/compiler/glsl/link_interface_blocks.cpp", + "../src/compiler/glsl/link_uniform_block_active_visitor.cpp", + "../src/compiler/glsl/link_uniform_block_active_visitor.h", + "../src/compiler/glsl/link_uniform_blocks.cpp", + "../src/compiler/glsl/link_uniform_initializers.cpp", + "../src/compiler/glsl/link_uniforms.cpp", + "../src/compiler/glsl/link_varyings.cpp", + "../src/compiler/glsl/link_varyings.h", + "../src/compiler/glsl/linker.cpp", + "../src/compiler/glsl/linker.h", + "../src/compiler/glsl/linker_util.cpp", + "../src/compiler/glsl/linker_util.h", + "../src/compiler/glsl/list.h", + "../src/compiler/glsl/loop_analysis.cpp", + "../src/compiler/glsl/loop_analysis.h", + "../src/compiler/glsl/loop_unroll.cpp", + "../src/compiler/glsl/lower_blend_equation_advanced.cpp", + "../src/compiler/glsl/lower_buffer_access.cpp", + "../src/compiler/glsl/lower_buffer_access.h", + "../src/compiler/glsl/lower_builtins.cpp", + "../src/compiler/glsl/lower_const_arrays_to_uniforms.cpp", + "../src/compiler/glsl/lower_cs_derived.cpp", + "../src/compiler/glsl/lower_discard.cpp", + "../src/compiler/glsl/lower_discard_flow.cpp", + "../src/compiler/glsl/lower_distance.cpp", + "../src/compiler/glsl/lower_if_to_cond_assign.cpp", + "../src/compiler/glsl/lower_instructions.cpp", + "../src/compiler/glsl/lower_int64.cpp", + "../src/compiler/glsl/lower_jumps.cpp", + "../src/compiler/glsl/lower_mat_op_to_vec.cpp", + "../src/compiler/glsl/lower_named_interface_blocks.cpp", + "../src/compiler/glsl/lower_offset_array.cpp", + "../src/compiler/glsl/lower_output_reads.cpp", + "../src/compiler/glsl/lower_packed_varyings.cpp", + "../src/compiler/glsl/lower_packing_builtins.cpp", + "../src/compiler/glsl/lower_precision.cpp", + "../src/compiler/glsl/lower_shared_reference.cpp", + "../src/compiler/glsl/lower_subroutine.cpp", + "../src/compiler/glsl/lower_tess_level.cpp", + "../src/compiler/glsl/lower_ubo_reference.cpp", + "../src/compiler/glsl/lower_variable_index_to_cond_assign.cpp", + "../src/compiler/glsl/lower_vec_index_to_cond_assign.cpp", + "../src/compiler/glsl/lower_vec_index_to_swizzle.cpp", + "../src/compiler/glsl/lower_vector.cpp", + "../src/compiler/glsl/lower_vector_derefs.cpp", + "../src/compiler/glsl/lower_vector_insert.cpp", + "../src/compiler/glsl/lower_vertex_id.cpp", + "../src/compiler/glsl/lower_xfb_varying.cpp", + "../src/compiler/glsl/main.cpp", + "../src/compiler/glsl/meson.build", + "../src/compiler/glsl/opt_add_neg_to_sub.h", + "../src/compiler/glsl/opt_algebraic.cpp", + "../src/compiler/glsl/opt_array_splitting.cpp", + "../src/compiler/glsl/opt_conditional_discard.cpp", + "../src/compiler/glsl/opt_constant_folding.cpp", + "../src/compiler/glsl/opt_constant_propagation.cpp", + "../src/compiler/glsl/opt_constant_variable.cpp", + "../src/compiler/glsl/opt_copy_propagation_elements.cpp", + "../src/compiler/glsl/opt_dead_builtin_variables.cpp", + "../src/compiler/glsl/opt_dead_builtin_varyings.cpp", + "../src/compiler/glsl/opt_dead_code.cpp", + "../src/compiler/glsl/opt_dead_code_local.cpp", + "../src/compiler/glsl/opt_dead_functions.cpp", + "../src/compiler/glsl/opt_flatten_nested_if_blocks.cpp", + "../src/compiler/glsl/opt_flip_matrices.cpp", + "../src/compiler/glsl/opt_function_inlining.cpp", + "../src/compiler/glsl/opt_if_simplification.cpp", + "../src/compiler/glsl/opt_minmax.cpp", + "../src/compiler/glsl/opt_rebalance_tree.cpp", + "../src/compiler/glsl/opt_redundant_jumps.cpp", + "../src/compiler/glsl/opt_structure_splitting.cpp", + "../src/compiler/glsl/opt_swizzle.cpp", + "../src/compiler/glsl/opt_tree_grafting.cpp", + "../src/compiler/glsl/opt_vectorize.cpp", + "../src/compiler/glsl/program.h", + "../src/compiler/glsl/propagate_invariance.cpp", + "../src/compiler/glsl/s_expression.cpp", + "../src/compiler/glsl/s_expression.h", + "../src/compiler/glsl/serialize.cpp", + "../src/compiler/glsl/serialize.h", + "../src/compiler/glsl/shader_cache.cpp", + "../src/compiler/glsl/shader_cache.h", + "../src/compiler/glsl/standalone.cpp", + "../src/compiler/glsl/standalone.h", + "../src/compiler/glsl/standalone_scaffolding.cpp", + "../src/compiler/glsl/standalone_scaffolding.h", + "../src/compiler/glsl/string_to_uint_map.cpp", + "../src/compiler/glsl/string_to_uint_map.h", + + "../src/compiler/glsl/glcpp/glcpp-lex.l", + "../src/compiler/glsl/glcpp/glcpp-parse.y", + "../src/compiler/glsl/glcpp/glcpp.c", + "../src/compiler/glsl/glcpp/glcpp.h", + "../src/compiler/glsl/glcpp/meson.build", + "../src/compiler/glsl/glcpp/pp.c", + "../src/compiler/glsl/glcpp/pp_standalone_scaffolding.c", + "../src/compiler/glsl/glcpp/pp_standalone_scaffolding.h", + + "../src/compiler/isaspec/decode.c", + "../src/compiler/isaspec/decode.h", + "../src/compiler/isaspec/decode.py", + "../src/compiler/isaspec/encode.py", + "../src/compiler/isaspec/isa.py", + "../src/compiler/isaspec/meson.build", + + "../src/compiler/nir/meson.build", + "../src/compiler/nir/nir.c", + "../src/compiler/nir/nir.h", + "../src/compiler/nir/nir_algebraic.py", + "../src/compiler/nir/nir_builder.h", + "../src/compiler/nir/nir_builder_opcodes_h.py", + "../src/compiler/nir/nir_builtin_builder.c", + "../src/compiler/nir/nir_builtin_builder.h", + "../src/compiler/nir/nir_clone.c", + "../src/compiler/nir/nir_constant_expressions.h", + "../src/compiler/nir/nir_constant_expressions.py", + "../src/compiler/nir/nir_control_flow.c", + "../src/compiler/nir/nir_control_flow.h", + "../src/compiler/nir/nir_control_flow_private.h", + "../src/compiler/nir/nir_conversion_builder.h", + "../src/compiler/nir/nir_convert_ycbcr.c", + "../src/compiler/nir/nir_deref.c", + "../src/compiler/nir/nir_deref.h", + "../src/compiler/nir/nir_divergence_analysis.c", + "../src/compiler/nir/nir_dominance.c", + "../src/compiler/nir/nir_format_convert.h", + "../src/compiler/nir/nir_from_ssa.c", + "../src/compiler/nir/nir_gather_info.c", + "../src/compiler/nir/nir_gather_ssa_types.c", + "../src/compiler/nir/nir_gather_xfb_info.c", + "../src/compiler/nir/nir_gs_count_vertices.c", + "../src/compiler/nir/nir_inline_functions.c", + "../src/compiler/nir/nir_inline_helpers.h", + "../src/compiler/nir/nir_inline_uniforms.c", + "../src/compiler/nir/nir_instr_set.c", + "../src/compiler/nir/nir_instr_set.h", + "../src/compiler/nir/nir_intrinsics.py", + "../src/compiler/nir/nir_intrinsics_c.py", + "../src/compiler/nir/nir_intrinsics_h.py", + "../src/compiler/nir/nir_intrinsics_indices_h.py", + "../src/compiler/nir/nir_linking_helpers.c", + "../src/compiler/nir/nir_liveness.c", + "../src/compiler/nir/nir_loop_analyze.c", + "../src/compiler/nir/nir_loop_analyze.h", + "../src/compiler/nir/nir_lower_alpha_test.c", + "../src/compiler/nir/nir_lower_alu.c", + "../src/compiler/nir/nir_lower_alu_to_scalar.c", + "../src/compiler/nir/nir_lower_amul.c", + "../src/compiler/nir/nir_lower_array_deref_of_vec.c", + "../src/compiler/nir/nir_lower_atomics_to_ssbo.c", + "../src/compiler/nir/nir_lower_bit_size.c", + "../src/compiler/nir/nir_lower_bitmap.c", + "../src/compiler/nir/nir_lower_blend.c", + "../src/compiler/nir/nir_lower_blend.h", + "../src/compiler/nir/nir_lower_bool_to_bitsize.c", + "../src/compiler/nir/nir_lower_bool_to_float.c", + "../src/compiler/nir/nir_lower_bool_to_int32.c", + "../src/compiler/nir/nir_lower_clamp_color_outputs.c", + "../src/compiler/nir/nir_lower_clip.c", + "../src/compiler/nir/nir_lower_clip_cull_distance_arrays.c", + "../src/compiler/nir/nir_lower_clip_disable.c", + "../src/compiler/nir/nir_lower_clip_halfz.c", + "../src/compiler/nir/nir_lower_convert_alu_types.c", + "../src/compiler/nir/nir_lower_discard_or_demote.c", + "../src/compiler/nir/nir_lower_double_ops.c", + "../src/compiler/nir/nir_lower_drawpixels.c", + "../src/compiler/nir/nir_lower_fb_read.c", + "../src/compiler/nir/nir_lower_flatshade.c", + "../src/compiler/nir/nir_lower_flrp.c", + "../src/compiler/nir/nir_lower_fp16_conv.c", + "../src/compiler/nir/nir_lower_fragcolor.c", + "../src/compiler/nir/nir_lower_fragcoord_wtrans.c", + "../src/compiler/nir/nir_lower_frexp.c", + "../src/compiler/nir/nir_lower_global_vars_to_local.c", + "../src/compiler/nir/nir_lower_goto_ifs.c", + "../src/compiler/nir/nir_lower_gs_intrinsics.c", + "../src/compiler/nir/nir_lower_idiv.c", + "../src/compiler/nir/nir_lower_image.c", + "../src/compiler/nir/nir_lower_indirect_derefs.c", + "../src/compiler/nir/nir_lower_input_attachments.c", + "../src/compiler/nir/nir_lower_int64.c", + "../src/compiler/nir/nir_lower_int_to_float.c", + "../src/compiler/nir/nir_lower_interpolation.c", + "../src/compiler/nir/nir_lower_io.c", + "../src/compiler/nir/nir_lower_io_arrays_to_elements.c", + "../src/compiler/nir/nir_lower_io_to_scalar.c", + "../src/compiler/nir/nir_lower_io_to_temporaries.c", + "../src/compiler/nir/nir_lower_io_to_vector.c", + "../src/compiler/nir/nir_lower_is_helper_invocation.c", + "../src/compiler/nir/nir_lower_load_const_to_scalar.c", + "../src/compiler/nir/nir_lower_locals_to_regs.c", + "../src/compiler/nir/nir_lower_mediump.c", + "../src/compiler/nir/nir_lower_memcpy.c", + "../src/compiler/nir/nir_lower_memory_model.c", + "../src/compiler/nir/nir_lower_multiview.c", + "../src/compiler/nir/nir_lower_non_uniform_access.c", + "../src/compiler/nir/nir_lower_packing.c", + "../src/compiler/nir/nir_lower_passthrough_edgeflags.c", + "../src/compiler/nir/nir_lower_patch_vertices.c", + "../src/compiler/nir/nir_lower_phis_to_scalar.c", + "../src/compiler/nir/nir_lower_pntc_ytransform.c", + "../src/compiler/nir/nir_lower_point_size.c", + "../src/compiler/nir/nir_lower_point_size_mov.c", + "../src/compiler/nir/nir_lower_printf.c", + "../src/compiler/nir/nir_lower_readonly_images_to_tex.c", + "../src/compiler/nir/nir_lower_regs_to_ssa.c", + "../src/compiler/nir/nir_lower_returns.c", + "../src/compiler/nir/nir_lower_samplers.c", + "../src/compiler/nir/nir_lower_scratch.c", + "../src/compiler/nir/nir_lower_shader_calls.c", + "../src/compiler/nir/nir_lower_ssbo.c", + "../src/compiler/nir/nir_lower_subgroups.c", + "../src/compiler/nir/nir_lower_system_values.c", + "../src/compiler/nir/nir_lower_sysvals_to_varyings.c", + "../src/compiler/nir/nir_lower_tex.c", + "../src/compiler/nir/nir_lower_texcoord_replace.c", + "../src/compiler/nir/nir_lower_to_source_mods.c", + "../src/compiler/nir/nir_lower_two_sided_color.c", + "../src/compiler/nir/nir_lower_ubo_vec4.c", + "../src/compiler/nir/nir_lower_undef_to_zero.c", + "../src/compiler/nir/nir_lower_uniforms_to_ubo.c", + "../src/compiler/nir/nir_lower_var_copies.c", + "../src/compiler/nir/nir_lower_variable_initializers.c", + "../src/compiler/nir/nir_lower_vars_to_ssa.c", + "../src/compiler/nir/nir_lower_vec3_to_vec4.c", + "../src/compiler/nir/nir_lower_vec_to_movs.c", + "../src/compiler/nir/nir_lower_viewport_transform.c", + "../src/compiler/nir/nir_lower_wpos_center.c", + "../src/compiler/nir/nir_lower_wpos_ytransform.c", + "../src/compiler/nir/nir_lower_wrmasks.c", + "../src/compiler/nir/nir_metadata.c", + "../src/compiler/nir/nir_move_vec_src_uses_to_dest.c", + "../src/compiler/nir/nir_normalize_cubemap_coords.c", + "../src/compiler/nir/nir_opcodes.py", + "../src/compiler/nir/nir_opcodes_c.py", + "../src/compiler/nir/nir_opcodes_h.py", + "../src/compiler/nir/nir_opt_access.c", + "../src/compiler/nir/nir_opt_algebraic.py", + "../src/compiler/nir/nir_opt_barriers.c", + "../src/compiler/nir/nir_opt_combine_stores.c", + "../src/compiler/nir/nir_opt_comparison_pre.c", + "../src/compiler/nir/nir_opt_conditional_discard.c", + "../src/compiler/nir/nir_opt_constant_folding.c", + "../src/compiler/nir/nir_opt_copy_prop_vars.c", + "../src/compiler/nir/nir_opt_copy_propagate.c", + "../src/compiler/nir/nir_opt_cse.c", + "../src/compiler/nir/nir_opt_dce.c", + "../src/compiler/nir/nir_opt_dead_cf.c", + "../src/compiler/nir/nir_opt_dead_write_vars.c", + "../src/compiler/nir/nir_opt_find_array_copies.c", + "../src/compiler/nir/nir_opt_fragdepth.c", + "../src/compiler/nir/nir_opt_gcm.c", + "../src/compiler/nir/nir_opt_idiv_const.c", + "../src/compiler/nir/nir_opt_if.c", + "../src/compiler/nir/nir_opt_intrinsics.c", + "../src/compiler/nir/nir_opt_large_constants.c", + "../src/compiler/nir/nir_opt_load_store_vectorize.c", + "../src/compiler/nir/nir_opt_loop_unroll.c", + "../src/compiler/nir/nir_opt_memcpy.c", + "../src/compiler/nir/nir_opt_move.c", + "../src/compiler/nir/nir_opt_move_discards_to_top.c", + "../src/compiler/nir/nir_opt_offsets.c", + "../src/compiler/nir/nir_opt_peephole_select.c", + "../src/compiler/nir/nir_opt_phi_precision.c", + "../src/compiler/nir/nir_opt_rematerialize_compares.c", + "../src/compiler/nir/nir_opt_remove_phis.c", + "../src/compiler/nir/nir_opt_shrink_vectors.c", + "../src/compiler/nir/nir_opt_sink.c", + "../src/compiler/nir/nir_opt_trivial_continues.c", + "../src/compiler/nir/nir_opt_undef.c", + "../src/compiler/nir/nir_opt_uniform_atomics.c", + "../src/compiler/nir/nir_opt_vectorize.c", + "../src/compiler/nir/nir_phi_builder.c", + "../src/compiler/nir/nir_phi_builder.h", + "../src/compiler/nir/nir_print.c", + "../src/compiler/nir/nir_propagate_invariant.c", + "../src/compiler/nir/nir_range_analysis.c", + "../src/compiler/nir/nir_range_analysis.h", + "../src/compiler/nir/nir_remove_dead_variables.c", + "../src/compiler/nir/nir_repair_ssa.c", + "../src/compiler/nir/nir_schedule.c", + "../src/compiler/nir/nir_schedule.h", + "../src/compiler/nir/nir_search.c", + "../src/compiler/nir/nir_search.h", + "../src/compiler/nir/nir_search_helpers.h", + "../src/compiler/nir/nir_serialize.c", + "../src/compiler/nir/nir_serialize.h", + "../src/compiler/nir/nir_split_per_member_structs.c", + "../src/compiler/nir/nir_split_var_copies.c", + "../src/compiler/nir/nir_split_vars.c", + "../src/compiler/nir/nir_sweep.c", + "../src/compiler/nir/nir_to_lcssa.c", + "../src/compiler/nir/nir_validate.c", + "../src/compiler/nir/nir_vla.h", + "../src/compiler/nir/nir_vulkan.h", + "../src/compiler/nir/nir_worklist.c", + "../src/compiler/nir/nir_worklist.h", + "../src/compiler/nir/nir_xfb_info.h", + + "../src/compiler/spirv/GLSL.ext.AMD.h", + "../src/compiler/spirv/GLSL.std.450.h", + "../src/compiler/spirv/OpenCL.std.h", + "../src/compiler/spirv/gl_spirv.c", + "../src/compiler/spirv/meson.build", + "../src/compiler/spirv/nir_load_libclc.c", + "../src/compiler/spirv/nir_lower_libclc.c", + "../src/compiler/spirv/nir_spirv.h", + "../src/compiler/spirv/spir-v.xml", + "../src/compiler/spirv/spirv.core.grammar.json", + "../src/compiler/spirv/spirv.h", + "../src/compiler/spirv/spirv2nir.c", + "../src/compiler/spirv/spirv_info.h", + "../src/compiler/spirv/spirv_info_c.py", + "../src/compiler/spirv/spirv_to_nir.c", + "../src/compiler/spirv/vtn_alu.c", + "../src/compiler/spirv/vtn_amd.c", + "../src/compiler/spirv/vtn_cfg.c", + "../src/compiler/spirv/vtn_gather_types_c.py", + "../src/compiler/spirv/vtn_generator_ids_h.py", + "../src/compiler/spirv/vtn_glsl450.c", + "../src/compiler/spirv/vtn_opencl.c", + "../src/compiler/spirv/vtn_private.h", + "../src/compiler/spirv/vtn_subgroup.c", + "../src/compiler/spirv/vtn_variables.c", + + "../src/drm-shim/device.c", + "../src/drm-shim/drm_shim.c", + "../src/drm-shim/drm_shim.h", + "../src/drm-shim/meson.build", + + "../src/egl/egl-entrypoint-check.py", + "../src/egl/egl-glvnd-symbols.txt", + "../src/egl/egl-symbols.txt", + "../src/egl/meson.build", + + "../src/egl/drivers/dri2/egl_dri2.c", + "../src/egl/drivers/dri2/egl_dri2.h", + "../src/egl/drivers/dri2/platform_android.c", + "../src/egl/drivers/dri2/platform_android.h", + "../src/egl/drivers/dri2/platform_android_mapper.cpp", + "../src/egl/drivers/dri2/platform_device.c", + "../src/egl/drivers/dri2/platform_drm.c", + "../src/egl/drivers/dri2/platform_ohos.c", + "../src/egl/drivers/dri2/platform_ohos.h", + "../src/egl/drivers/dri2/platform_surfaceless.c", + "../src/egl/drivers/dri2/platform_wayland.c", + "../src/egl/drivers/dri2/platform_x11.c", + "../src/egl/drivers/dri2/platform_x11_dri3.c", + "../src/egl/drivers/dri2/platform_x11_dri3.h", + + "../src/egl/drivers/haiku/egl_haiku.cpp", + + "../src/egl/drivers/wgl/egl_wgl.c", + "../src/egl/drivers/wgl/egl_wgl.h", + + "../src/egl/generate/egl.xml", + "../src/egl/generate/eglFunctionList.py", + "../src/egl/generate/egl_other.xml", + "../src/egl/generate/gen_egl_dispatch.py", + + "../src/egl/main/50_mesa.json", + "../src/egl/main/egl.def", + "../src/egl/main/eglapi.c", + "../src/egl/main/eglarray.c", + "../src/egl/main/eglarray.h", + "../src/egl/main/eglconfig.c", + "../src/egl/main/eglconfig.h", + "../src/egl/main/eglcontext.c", + "../src/egl/main/eglcontext.h", + "../src/egl/main/eglcurrent.c", + "../src/egl/main/eglcurrent.h", + "../src/egl/main/egldefines.h", + "../src/egl/main/egldevice.c", + "../src/egl/main/egldevice.h", + "../src/egl/main/egldispatchstubs.c", + "../src/egl/main/egldispatchstubs.h", + "../src/egl/main/egldisplay.c", + "../src/egl/main/egldisplay.h", + "../src/egl/main/egldriver.h", + "../src/egl/main/eglentrypoint.h", + "../src/egl/main/eglglobals.c", + "../src/egl/main/eglglobals.h", + "../src/egl/main/eglglvnd.c", + "../src/egl/main/eglimage.c", + "../src/egl/main/eglimage.h", + "../src/egl/main/egllog.c", + "../src/egl/main/egllog.h", + "../src/egl/main/eglsurface.c", + "../src/egl/main/eglsurface.h", + "../src/egl/main/eglsync.c", + "../src/egl/main/eglsync.h", + "../src/egl/main/egltypedefs.h", + + "../src/egl/wayland/wayland-drm/meson.build", + "../src/egl/wayland/wayland-drm/wayland-drm.c", + "../src/egl/wayland/wayland-drm/wayland-drm.h", + "../src/egl/wayland/wayland-drm/wayland-drm.xml", + + "../src/etnaviv/meson.build", + + "../src/etnaviv/ci/etnaviv-gc2000-fails.txt", + "../src/etnaviv/ci/etnaviv-gc2000-flakes.txt", + "../src/etnaviv/ci/gitlab-ci.yml", + + "../src/etnaviv/drm-shim/etnaviv_noop.c", + "../src/etnaviv/drm-shim/meson.build", + + "../src/etnaviv/drm/etnaviv_bo.c", + "../src/etnaviv/drm/etnaviv_bo_cache.c", + "../src/etnaviv/drm/etnaviv_cmd_stream.c", + "../src/etnaviv/drm/etnaviv_device.c", + "../src/etnaviv/drm/etnaviv_drmif.h", + "../src/etnaviv/drm/etnaviv_gpu.c", + "../src/etnaviv/drm/etnaviv_perfmon.c", + "../src/etnaviv/drm/etnaviv_pipe.c", + "../src/etnaviv/drm/etnaviv_priv.h", + "../src/etnaviv/drm/meson.build", + + "../src/freedreno/meson.build", + + "../src/freedreno/afuc/Makefile", + "../src/freedreno/afuc/afuc.h", + "../src/freedreno/afuc/asm.c", + "../src/freedreno/afuc/asm.h", + "../src/freedreno/afuc/disasm.c", + "../src/freedreno/afuc/emu-ds.c", + "../src/freedreno/afuc/emu-regs.c", + "../src/freedreno/afuc/emu-ui.c", + "../src/freedreno/afuc/emu.c", + "../src/freedreno/afuc/emu.h", + "../src/freedreno/afuc/lexer.l", + "../src/freedreno/afuc/meson.build", + "../src/freedreno/afuc/parser.y", + "../src/freedreno/afuc/util.c", + "../src/freedreno/afuc/util.h", + + "../src/freedreno/ci/deqp-freedreno-a307.toml", + "../src/freedreno/ci/deqp-freedreno-a530.toml", + "../src/freedreno/ci/deqp-freedreno-a630-vk-full.toml", + "../src/freedreno/ci/deqp-freedreno-a630-vk.toml", + "../src/freedreno/ci/deqp-freedreno-a630.toml", + "../src/freedreno/ci/freedreno-a307-fails.txt", + "../src/freedreno/ci/freedreno-a307-flakes.txt", + "../src/freedreno/ci/freedreno-a530-fails.txt", + "../src/freedreno/ci/freedreno-a530-flakes.txt", + "../src/freedreno/ci/freedreno-a530-skips.txt", + "../src/freedreno/ci/freedreno-a630-asan-fails.txt", + "../src/freedreno/ci/freedreno-a630-bypass-flakes.txt", + "../src/freedreno/ci/freedreno-a630-fails.txt", + "../src/freedreno/ci/freedreno-a630-flakes.txt", + "../src/freedreno/ci/freedreno-a630-premerge-skips.txt", + "../src/freedreno/ci/freedreno-a630-skips.txt", + "../src/freedreno/ci/gitlab-ci.yml", + "../src/freedreno/ci/restricted-traces-freedreno.yml", + "../src/freedreno/ci/traces-freedreno.yml", + + "../src/freedreno/common/disasm.h", + "../src/freedreno/common/freedreno_dev_info.c", + "../src/freedreno/common/freedreno_dev_info.h", + "../src/freedreno/common/freedreno_devices.py", + "../src/freedreno/common/freedreno_guardband.h", + "../src/freedreno/common/freedreno_pm4.h", + "../src/freedreno/common/freedreno_uuid.c", + "../src/freedreno/common/freedreno_uuid.h", + "../src/freedreno/common/meson.build", + + "../src/freedreno/computerator/a4xx.c", + "../src/freedreno/computerator/a6xx.c", + "../src/freedreno/computerator/ir3_asm.c", + "../src/freedreno/computerator/ir3_asm.h", + "../src/freedreno/computerator/main.c", + "../src/freedreno/computerator/main.h", + "../src/freedreno/computerator/meson.build", + + "../src/freedreno/computerator/examples/branch.asm", + "../src/freedreno/computerator/examples/invocationid.asm", + "../src/freedreno/computerator/examples/pvtmem.asm", + "../src/freedreno/computerator/examples/simple.asm", + "../src/freedreno/computerator/examples/stg_ldg_offset.asm", + + "../src/freedreno/decode/buffers.c", + "../src/freedreno/decode/buffers.h", + "../src/freedreno/decode/cffdec.c", + "../src/freedreno/decode/cffdec.h", + "../src/freedreno/decode/cffdump.c", + "../src/freedreno/decode/crashdec.c", + "../src/freedreno/decode/io.c", + "../src/freedreno/decode/io.h", + "../src/freedreno/decode/meson.build", + "../src/freedreno/decode/pager.c", + "../src/freedreno/decode/pager.h", + "../src/freedreno/decode/pgmdump.c", + "../src/freedreno/decode/pgmdump2.c", + "../src/freedreno/decode/redump.h", + "../src/freedreno/decode/rnnutil.c", + "../src/freedreno/decode/rnnutil.h", + "../src/freedreno/decode/script.c", + "../src/freedreno/decode/script.h", + "../src/freedreno/decode/util.h", + + "../src/freedreno/decode/scripts/analyze.lua", + "../src/freedreno/decode/scripts/parse-submits.lua", + "../src/freedreno/decode/scripts/sanity-a6xx.lua", + "../src/freedreno/decode/scripts/tex3d-layout.lua", + "../src/freedreno/decode/scripts/texturator-to-unit-test-5xx.lua", + "../src/freedreno/decode/scripts/texturator-to-unit-test.lua", + + "../src/freedreno/drm-shim/freedreno_noop.c", + "../src/freedreno/drm-shim/meson.build", + + "../src/freedreno/drm/freedreno_bo.c", + "../src/freedreno/drm/freedreno_bo_cache.c", + "../src/freedreno/drm/freedreno_device.c", + "../src/freedreno/drm/freedreno_drmif.h", + "../src/freedreno/drm/freedreno_pipe.c", + "../src/freedreno/drm/freedreno_priv.h", + "../src/freedreno/drm/freedreno_ringbuffer.c", + "../src/freedreno/drm/freedreno_ringbuffer.h", + "../src/freedreno/drm/meson.build", + "../src/freedreno/drm/msm_bo.c", + "../src/freedreno/drm/msm_device.c", + "../src/freedreno/drm/msm_pipe.c", + "../src/freedreno/drm/msm_priv.h", + "../src/freedreno/drm/msm_ringbuffer.c", + "../src/freedreno/drm/msm_ringbuffer_sp.c", + "../src/freedreno/drm/msm_ringbuffer_sp.h", + + "../src/freedreno/ds/fd_pps_driver.cc", + "../src/freedreno/ds/fd_pps_driver.h", + "../src/freedreno/ds/meson.build", + + "../src/freedreno/fdl/fd5_layout.c", + "../src/freedreno/fdl/fd5_layout_test.c", + "../src/freedreno/fdl/fd6_format_table.c", + "../src/freedreno/fdl/fd6_format_table.h", + "../src/freedreno/fdl/fd6_layout.c", + "../src/freedreno/fdl/fd6_layout_test.c", + "../src/freedreno/fdl/fd_layout_test.c", + "../src/freedreno/fdl/fd_layout_test.h", + "../src/freedreno/fdl/freedreno_layout.c", + "../src/freedreno/fdl/freedreno_layout.h", + "../src/freedreno/fdl/meson.build", + + "../src/freedreno/ir2/disasm-a2xx.c", + "../src/freedreno/ir2/instr-a2xx.h", + "../src/freedreno/ir2/meson.build", + + "../src/freedreno/ir3/disasm-a3xx.c", + "../src/freedreno/ir3/instr-a3xx.h", + "../src/freedreno/ir3/ir3.c", + "../src/freedreno/ir3/ir3.h", + "../src/freedreno/ir3/ir3_a4xx.c", + "../src/freedreno/ir3/ir3_a6xx.c", + "../src/freedreno/ir3/ir3_array_to_ssa.c", + "../src/freedreno/ir3/ir3_assembler.c", + "../src/freedreno/ir3/ir3_assembler.h", + "../src/freedreno/ir3/ir3_cf.c", + "../src/freedreno/ir3/ir3_compiler.c", + "../src/freedreno/ir3/ir3_compiler.h", + "../src/freedreno/ir3/ir3_compiler_nir.c", + "../src/freedreno/ir3/ir3_context.c", + "../src/freedreno/ir3/ir3_context.h", + "../src/freedreno/ir3/ir3_cp.c", + "../src/freedreno/ir3/ir3_cp_postsched.c", + "../src/freedreno/ir3/ir3_cse.c", + "../src/freedreno/ir3/ir3_dce.c", + "../src/freedreno/ir3/ir3_delay.c", + "../src/freedreno/ir3/ir3_disk_cache.c", + "../src/freedreno/ir3/ir3_dominance.c", + "../src/freedreno/ir3/ir3_image.c", + "../src/freedreno/ir3/ir3_image.h", + "../src/freedreno/ir3/ir3_legalize.c", + "../src/freedreno/ir3/ir3_lexer.l", + "../src/freedreno/ir3/ir3_liveness.c", + "../src/freedreno/ir3/ir3_lower_parallelcopy.c", + "../src/freedreno/ir3/ir3_lower_spill.c", + "../src/freedreno/ir3/ir3_lower_subgroups.c", + "../src/freedreno/ir3/ir3_merge_regs.c", + "../src/freedreno/ir3/ir3_nir.c", + "../src/freedreno/ir3/ir3_nir.h", + "../src/freedreno/ir3/ir3_nir_analyze_ubo_ranges.c", + "../src/freedreno/ir3/ir3_nir_imul.py", + "../src/freedreno/ir3/ir3_nir_lower_io_offsets.c", + "../src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_offset.c", + "../src/freedreno/ir3/ir3_nir_lower_load_barycentric_at_sample.c", + "../src/freedreno/ir3/ir3_nir_lower_tess.c", + "../src/freedreno/ir3/ir3_nir_lower_tex_prefetch.c", + "../src/freedreno/ir3/ir3_nir_lower_tg4_to_tex.c", + "../src/freedreno/ir3/ir3_nir_move_varying_inputs.c", + "../src/freedreno/ir3/ir3_nir_trig.py", + "../src/freedreno/ir3/ir3_parser.y", + "../src/freedreno/ir3/ir3_postsched.c", + "../src/freedreno/ir3/ir3_print.c", + "../src/freedreno/ir3/ir3_ra.c", + "../src/freedreno/ir3/ir3_ra.h", + "../src/freedreno/ir3/ir3_ra_validate.c", + "../src/freedreno/ir3/ir3_remove_unreachable.c", + "../src/freedreno/ir3/ir3_sched.c", + "../src/freedreno/ir3/ir3_shader.c", + "../src/freedreno/ir3/ir3_shader.h", + "../src/freedreno/ir3/ir3_spill.c", + "../src/freedreno/ir3/ir3_validate.c", + "../src/freedreno/ir3/meson.build", + + "../src/freedreno/isa/encode.c", + "../src/freedreno/isa/ir3-cat0.xml", + "../src/freedreno/isa/ir3-cat1.xml", + "../src/freedreno/isa/ir3-cat2.xml", + "../src/freedreno/isa/ir3-cat3.xml", + "../src/freedreno/isa/ir3-cat4.xml", + "../src/freedreno/isa/ir3-cat5.xml", + "../src/freedreno/isa/ir3-cat6.xml", + "../src/freedreno/isa/ir3-cat7.xml", + "../src/freedreno/isa/ir3-common.xml", + "../src/freedreno/isa/ir3-disasm.c", + "../src/freedreno/isa/ir3.xml", + "../src/freedreno/isa/isa.h", + "../src/freedreno/isa/meson.build", + + "../src/freedreno/perfcntrs/fd2_perfcntr.c", + "../src/freedreno/perfcntrs/fd5_perfcntr.c", + "../src/freedreno/perfcntrs/fd6_perfcntr.c", + "../src/freedreno/perfcntrs/fdperf.c", + "../src/freedreno/perfcntrs/freedreno_dt.c", + "../src/freedreno/perfcntrs/freedreno_dt.h", + "../src/freedreno/perfcntrs/freedreno_perfcntr.c", + "../src/freedreno/perfcntrs/freedreno_perfcntr.h", + "../src/freedreno/perfcntrs/meson.build", + + "../src/freedreno/registers/adreno.xml", + "../src/freedreno/registers/freedreno_copyright.xml", + "../src/freedreno/registers/gen_header.py", + "../src/freedreno/registers/meson.build", + "../src/freedreno/registers/msm.xml", + "../src/freedreno/registers/rules-ng-ng.txt", + "../src/freedreno/registers/rules-ng.xsd", + "../src/freedreno/registers/text-format.txt", + + "../src/freedreno/registers/adreno/a2xx.xml", + "../src/freedreno/registers/adreno/a3xx.xml", + "../src/freedreno/registers/adreno/a4xx.xml", + "../src/freedreno/registers/adreno/a5xx.xml", + "../src/freedreno/registers/adreno/a6xx.xml", + "../src/freedreno/registers/adreno/a6xx_gmu.xml", + "../src/freedreno/registers/adreno/adreno_common.xml", + "../src/freedreno/registers/adreno/adreno_control_regs.xml", + "../src/freedreno/registers/adreno/adreno_pipe_regs.xml", + "../src/freedreno/registers/adreno/adreno_pm4.xml", + "../src/freedreno/registers/adreno/meson.build", + "../src/freedreno/registers/adreno/ocmem.xml", + + "../src/freedreno/registers/dsi/dsi.xml", + "../src/freedreno/registers/dsi/dsi_phy_10nm.xml", + "../src/freedreno/registers/dsi/dsi_phy_14nm.xml", + "../src/freedreno/registers/dsi/dsi_phy_20nm.xml", + "../src/freedreno/registers/dsi/dsi_phy_28nm.xml", + "../src/freedreno/registers/dsi/dsi_phy_28nm_8960.xml", + "../src/freedreno/registers/dsi/dsi_phy_5nm.xml", + "../src/freedreno/registers/dsi/dsi_phy_7nm.xml", + "../src/freedreno/registers/dsi/dsi_phy_v2.xml", + "../src/freedreno/registers/dsi/mmss_cc.xml", + "../src/freedreno/registers/dsi/sfpb.xml", + + "../src/freedreno/registers/edp/edp.xml", + + "../src/freedreno/registers/hdmi/hdmi.xml", + "../src/freedreno/registers/hdmi/qfprom.xml", + + "../src/freedreno/registers/mdp/mdp4.xml", + "../src/freedreno/registers/mdp/mdp5.xml", + "../src/freedreno/registers/mdp/mdp_common.xml", + + "../src/freedreno/rnn/aprintf.c", + "../src/freedreno/rnn/colors.c", + "../src/freedreno/rnn/colors.h", + "../src/freedreno/rnn/headergen2.c", + "../src/freedreno/rnn/meson.build", + "../src/freedreno/rnn/path.c", + "../src/freedreno/rnn/rnn.c", + "../src/freedreno/rnn/rnn.h", + "../src/freedreno/rnn/rnndec.c", + "../src/freedreno/rnn/rnndec.h", + "../src/freedreno/rnn/util.h", + + "../src/freedreno/vulkan/meson.build", + "../src/freedreno/vulkan/msm_kgsl.h", + "../src/freedreno/vulkan/tu_android.c", + "../src/freedreno/vulkan/tu_clear_blit.c", + "../src/freedreno/vulkan/tu_cmd_buffer.c", + "../src/freedreno/vulkan/tu_cs.c", + "../src/freedreno/vulkan/tu_cs.h", + "../src/freedreno/vulkan/tu_descriptor_set.c", + "../src/freedreno/vulkan/tu_descriptor_set.h", + "../src/freedreno/vulkan/tu_device.c", + "../src/freedreno/vulkan/tu_drm.c", + "../src/freedreno/vulkan/tu_formats.c", + "../src/freedreno/vulkan/tu_image.c", + "../src/freedreno/vulkan/tu_kgsl.c", + "../src/freedreno/vulkan/tu_legacy.c", + "../src/freedreno/vulkan/tu_nir_lower_multiview.c", + "../src/freedreno/vulkan/tu_pass.c", + "../src/freedreno/vulkan/tu_perfetto.cc", + "../src/freedreno/vulkan/tu_perfetto.h", + "../src/freedreno/vulkan/tu_perfetto_util.c", + "../src/freedreno/vulkan/tu_pipeline.c", + "../src/freedreno/vulkan/tu_pipeline_cache.c", + "../src/freedreno/vulkan/tu_private.h", + "../src/freedreno/vulkan/tu_query.c", + "../src/freedreno/vulkan/tu_shader.c", + "../src/freedreno/vulkan/tu_tracepoints.py", + "../src/freedreno/vulkan/tu_util.c", + "../src/freedreno/vulkan/tu_util.h", + "../src/freedreno/vulkan/tu_wsi.c", + "../src/freedreno/vulkan/tu_wsi_display.c", + "../src/freedreno/vulkan/vk_format.h", + + "../src/gallium/meson.build", + + "../src/gallium/auxiliary/meson.build", + + "../src/gallium/auxiliary/cso_cache/cso_cache.c", + "../src/gallium/auxiliary/cso_cache/cso_cache.h", + "../src/gallium/auxiliary/cso_cache/cso_context.c", + "../src/gallium/auxiliary/cso_cache/cso_context.h", + "../src/gallium/auxiliary/cso_cache/cso_hash.c", + "../src/gallium/auxiliary/cso_cache/cso_hash.h", + + "../src/gallium/auxiliary/draw/draw_cliptest_tmp.h", + "../src/gallium/auxiliary/draw/draw_context.c", + "../src/gallium/auxiliary/draw/draw_context.h", + "../src/gallium/auxiliary/draw/draw_decompose_tmp.h", + "../src/gallium/auxiliary/draw/draw_fs.c", + "../src/gallium/auxiliary/draw/draw_fs.h", + "../src/gallium/auxiliary/draw/draw_gs.c", + "../src/gallium/auxiliary/draw/draw_gs.h", + "../src/gallium/auxiliary/draw/draw_gs_tmp.h", + "../src/gallium/auxiliary/draw/draw_llvm.c", + "../src/gallium/auxiliary/draw/draw_llvm.h", + "../src/gallium/auxiliary/draw/draw_llvm_sample.c", + "../src/gallium/auxiliary/draw/draw_pipe.c", + "../src/gallium/auxiliary/draw/draw_pipe.h", + "../src/gallium/auxiliary/draw/draw_pipe_aaline.c", + "../src/gallium/auxiliary/draw/draw_pipe_aapoint.c", + "../src/gallium/auxiliary/draw/draw_pipe_clip.c", + "../src/gallium/auxiliary/draw/draw_pipe_cull.c", + "../src/gallium/auxiliary/draw/draw_pipe_flatshade.c", + "../src/gallium/auxiliary/draw/draw_pipe_offset.c", + "../src/gallium/auxiliary/draw/draw_pipe_pstipple.c", + "../src/gallium/auxiliary/draw/draw_pipe_stipple.c", + "../src/gallium/auxiliary/draw/draw_pipe_twoside.c", + "../src/gallium/auxiliary/draw/draw_pipe_unfilled.c", + "../src/gallium/auxiliary/draw/draw_pipe_user_cull.c", + "../src/gallium/auxiliary/draw/draw_pipe_util.c", + "../src/gallium/auxiliary/draw/draw_pipe_validate.c", + "../src/gallium/auxiliary/draw/draw_pipe_vbuf.c", + "../src/gallium/auxiliary/draw/draw_pipe_wide_line.c", + "../src/gallium/auxiliary/draw/draw_pipe_wide_point.c", + "../src/gallium/auxiliary/draw/draw_prim_assembler.c", + "../src/gallium/auxiliary/draw/draw_prim_assembler.h", + "../src/gallium/auxiliary/draw/draw_prim_assembler_tmp.h", + "../src/gallium/auxiliary/draw/draw_private.h", + "../src/gallium/auxiliary/draw/draw_pt.c", + "../src/gallium/auxiliary/draw/draw_pt.h", + "../src/gallium/auxiliary/draw/draw_pt_decompose.h", + "../src/gallium/auxiliary/draw/draw_pt_emit.c", + "../src/gallium/auxiliary/draw/draw_pt_fetch.c", + "../src/gallium/auxiliary/draw/draw_pt_fetch_shade_emit.c", + "../src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c", + "../src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c", + "../src/gallium/auxiliary/draw/draw_pt_post_vs.c", + "../src/gallium/auxiliary/draw/draw_pt_so_emit.c", + "../src/gallium/auxiliary/draw/draw_pt_util.c", + "../src/gallium/auxiliary/draw/draw_pt_vsplit.c", + "../src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h", + "../src/gallium/auxiliary/draw/draw_so_emit_tmp.h", + "../src/gallium/auxiliary/draw/draw_split_tmp.h", + "../src/gallium/auxiliary/draw/draw_tess.c", + "../src/gallium/auxiliary/draw/draw_tess.h", + "../src/gallium/auxiliary/draw/draw_vbuf.h", + "../src/gallium/auxiliary/draw/draw_vertex.c", + "../src/gallium/auxiliary/draw/draw_vertex.h", + "../src/gallium/auxiliary/draw/draw_vs.c", + "../src/gallium/auxiliary/draw/draw_vs.h", + "../src/gallium/auxiliary/draw/draw_vs_exec.c", + "../src/gallium/auxiliary/draw/draw_vs_llvm.c", + "../src/gallium/auxiliary/draw/draw_vs_variant.c", + + "../src/gallium/auxiliary/driver_ddebug/dd_context.c", + "../src/gallium/auxiliary/driver_ddebug/dd_draw.c", + "../src/gallium/auxiliary/driver_ddebug/dd_pipe.h", + "../src/gallium/auxiliary/driver_ddebug/dd_public.h", + "../src/gallium/auxiliary/driver_ddebug/dd_screen.c", + "../src/gallium/auxiliary/driver_ddebug/dd_util.h", + + "../src/gallium/auxiliary/driver_noop/noop_pipe.c", + "../src/gallium/auxiliary/driver_noop/noop_public.h", + "../src/gallium/auxiliary/driver_noop/noop_state.c", + + "../src/gallium/auxiliary/driver_rbug/rbug_context.c", + "../src/gallium/auxiliary/driver_rbug/rbug_context.h", + "../src/gallium/auxiliary/driver_rbug/rbug_core.c", + "../src/gallium/auxiliary/driver_rbug/rbug_objects.c", + "../src/gallium/auxiliary/driver_rbug/rbug_objects.h", + "../src/gallium/auxiliary/driver_rbug/rbug_public.h", + "../src/gallium/auxiliary/driver_rbug/rbug_screen.c", + "../src/gallium/auxiliary/driver_rbug/rbug_screen.h", + + "../src/gallium/auxiliary/driver_trace/tr_context.c", + "../src/gallium/auxiliary/driver_trace/tr_context.h", + "../src/gallium/auxiliary/driver_trace/tr_dump.c", + "../src/gallium/auxiliary/driver_trace/tr_dump.h", + "../src/gallium/auxiliary/driver_trace/tr_dump_defines.h", + "../src/gallium/auxiliary/driver_trace/tr_dump_state.c", + "../src/gallium/auxiliary/driver_trace/tr_dump_state.h", + "../src/gallium/auxiliary/driver_trace/tr_public.h", + "../src/gallium/auxiliary/driver_trace/tr_screen.c", + "../src/gallium/auxiliary/driver_trace/tr_screen.h", + "../src/gallium/auxiliary/driver_trace/tr_texture.c", + "../src/gallium/auxiliary/driver_trace/tr_texture.h", + "../src/gallium/auxiliary/driver_trace/trace.xsl", + + "../src/gallium/auxiliary/gallivm/f.cpp", + "../src/gallium/auxiliary/gallivm/lp_bld.h", + "../src/gallium/auxiliary/gallivm/lp_bld_arit.c", + "../src/gallium/auxiliary/gallivm/lp_bld_arit.h", + "../src/gallium/auxiliary/gallivm/lp_bld_arit_overflow.c", + "../src/gallium/auxiliary/gallivm/lp_bld_arit_overflow.h", + "../src/gallium/auxiliary/gallivm/lp_bld_assert.c", + "../src/gallium/auxiliary/gallivm/lp_bld_assert.h", + "../src/gallium/auxiliary/gallivm/lp_bld_bitarit.c", + "../src/gallium/auxiliary/gallivm/lp_bld_bitarit.h", + "../src/gallium/auxiliary/gallivm/lp_bld_const.c", + "../src/gallium/auxiliary/gallivm/lp_bld_const.h", + "../src/gallium/auxiliary/gallivm/lp_bld_conv.c", + "../src/gallium/auxiliary/gallivm/lp_bld_conv.h", + "../src/gallium/auxiliary/gallivm/lp_bld_coro.c", + "../src/gallium/auxiliary/gallivm/lp_bld_coro.h", + "../src/gallium/auxiliary/gallivm/lp_bld_debug.cpp", + "../src/gallium/auxiliary/gallivm/lp_bld_debug.h", + "../src/gallium/auxiliary/gallivm/lp_bld_flow.c", + "../src/gallium/auxiliary/gallivm/lp_bld_flow.h", + "../src/gallium/auxiliary/gallivm/lp_bld_format.c", + "../src/gallium/auxiliary/gallivm/lp_bld_format.h", + "../src/gallium/auxiliary/gallivm/lp_bld_format_aos.c", + "../src/gallium/auxiliary/gallivm/lp_bld_format_aos_array.c", + "../src/gallium/auxiliary/gallivm/lp_bld_format_float.c", + "../src/gallium/auxiliary/gallivm/lp_bld_format_s3tc.c", + "../src/gallium/auxiliary/gallivm/lp_bld_format_soa.c", + "../src/gallium/auxiliary/gallivm/lp_bld_format_srgb.c", + "../src/gallium/auxiliary/gallivm/lp_bld_format_yuv.c", + "../src/gallium/auxiliary/gallivm/lp_bld_gather.c", + "../src/gallium/auxiliary/gallivm/lp_bld_gather.h", + "../src/gallium/auxiliary/gallivm/lp_bld_init.c", + "../src/gallium/auxiliary/gallivm/lp_bld_init.h", + "../src/gallium/auxiliary/gallivm/lp_bld_intr.c", + "../src/gallium/auxiliary/gallivm/lp_bld_intr.h", + "../src/gallium/auxiliary/gallivm/lp_bld_ir_common.c", + "../src/gallium/auxiliary/gallivm/lp_bld_ir_common.h", + "../src/gallium/auxiliary/gallivm/lp_bld_limits.h", + "../src/gallium/auxiliary/gallivm/lp_bld_logic.c", + "../src/gallium/auxiliary/gallivm/lp_bld_logic.h", + "../src/gallium/auxiliary/gallivm/lp_bld_misc.cpp", + "../src/gallium/auxiliary/gallivm/lp_bld_misc.h", + "../src/gallium/auxiliary/gallivm/lp_bld_nir.c", + "../src/gallium/auxiliary/gallivm/lp_bld_nir.h", + "../src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c", + "../src/gallium/auxiliary/gallivm/lp_bld_pack.c", + "../src/gallium/auxiliary/gallivm/lp_bld_pack.h", + "../src/gallium/auxiliary/gallivm/lp_bld_printf.c", + "../src/gallium/auxiliary/gallivm/lp_bld_printf.h", + "../src/gallium/auxiliary/gallivm/lp_bld_quad.c", + "../src/gallium/auxiliary/gallivm/lp_bld_quad.h", + "../src/gallium/auxiliary/gallivm/lp_bld_sample.c", + "../src/gallium/auxiliary/gallivm/lp_bld_sample.h", + "../src/gallium/auxiliary/gallivm/lp_bld_sample_aos.c", + "../src/gallium/auxiliary/gallivm/lp_bld_sample_aos.h", + "../src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c", + "../src/gallium/auxiliary/gallivm/lp_bld_struct.c", + "../src/gallium/auxiliary/gallivm/lp_bld_struct.h", + "../src/gallium/auxiliary/gallivm/lp_bld_swizzle.c", + "../src/gallium/auxiliary/gallivm/lp_bld_swizzle.h", + "../src/gallium/auxiliary/gallivm/lp_bld_tgsi.c", + "../src/gallium/auxiliary/gallivm/lp_bld_tgsi.h", + "../src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.c", + "../src/gallium/auxiliary/gallivm/lp_bld_tgsi_action.h", + "../src/gallium/auxiliary/gallivm/lp_bld_tgsi_aos.c", + "../src/gallium/auxiliary/gallivm/lp_bld_tgsi_info.c", + "../src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c", + "../src/gallium/auxiliary/gallivm/lp_bld_type.c", + "../src/gallium/auxiliary/gallivm/lp_bld_type.h", + + "../src/gallium/auxiliary/hud/font.c", + "../src/gallium/auxiliary/hud/font.h", + "../src/gallium/auxiliary/hud/hud_context.c", + "../src/gallium/auxiliary/hud/hud_context.h", + "../src/gallium/auxiliary/hud/hud_cpu.c", + "../src/gallium/auxiliary/hud/hud_cpufreq.c", + "../src/gallium/auxiliary/hud/hud_diskstat.c", + "../src/gallium/auxiliary/hud/hud_driver_query.c", + "../src/gallium/auxiliary/hud/hud_fps.c", + "../src/gallium/auxiliary/hud/hud_nic.c", + "../src/gallium/auxiliary/hud/hud_private.h", + "../src/gallium/auxiliary/hud/hud_sensors_temp.c", + + "../src/gallium/auxiliary/indices/u_indices.c", + "../src/gallium/auxiliary/indices/u_indices.h", + "../src/gallium/auxiliary/indices/u_indices_gen.py", + "../src/gallium/auxiliary/indices/u_indices_priv.h", + "../src/gallium/auxiliary/indices/u_primconvert.c", + "../src/gallium/auxiliary/indices/u_primconvert.h", + "../src/gallium/auxiliary/indices/u_unfilled_gen.py", + "../src/gallium/auxiliary/indices/u_unfilled_indices.c", + + "../src/gallium/auxiliary/nir/nir_draw_helpers.c", + "../src/gallium/auxiliary/nir/nir_draw_helpers.h", + "../src/gallium/auxiliary/nir/nir_to_tgsi.c", + "../src/gallium/auxiliary/nir/nir_to_tgsi.h", + "../src/gallium/auxiliary/nir/nir_to_tgsi_info.c", + "../src/gallium/auxiliary/nir/nir_to_tgsi_info.h", + "../src/gallium/auxiliary/nir/tgsi_to_nir.c", + "../src/gallium/auxiliary/nir/tgsi_to_nir.h", + + "../src/gallium/auxiliary/os/os_mman.h", + "../src/gallium/auxiliary/os/os_process.c", + "../src/gallium/auxiliary/os/os_process.h", + "../src/gallium/auxiliary/os/os_thread.h", + + "../src/gallium/auxiliary/pipe-loader/driinfo_gallium.h", + "../src/gallium/auxiliary/pipe-loader/meson.build", + "../src/gallium/auxiliary/pipe-loader/pipe_loader.c", + "../src/gallium/auxiliary/pipe-loader/pipe_loader.h", + "../src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c", + "../src/gallium/auxiliary/pipe-loader/pipe_loader_priv.h", + "../src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c", + + "../src/gallium/auxiliary/pipebuffer/pb_buffer.h", + "../src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c", + "../src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.h", + "../src/gallium/auxiliary/pipebuffer/pb_bufmgr.h", + "../src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c", + "../src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c", + "../src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c", + "../src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c", + "../src/gallium/auxiliary/pipebuffer/pb_cache.c", + "../src/gallium/auxiliary/pipebuffer/pb_cache.h", + "../src/gallium/auxiliary/pipebuffer/pb_slab.c", + "../src/gallium/auxiliary/pipebuffer/pb_slab.h", + "../src/gallium/auxiliary/pipebuffer/pb_validate.c", + "../src/gallium/auxiliary/pipebuffer/pb_validate.h", + + "../src/gallium/auxiliary/postprocess/ADDING", + "../src/gallium/auxiliary/postprocess/filters.h", + "../src/gallium/auxiliary/postprocess/postprocess.h", + "../src/gallium/auxiliary/postprocess/pp_celshade.c", + "../src/gallium/auxiliary/postprocess/pp_celshade.h", + "../src/gallium/auxiliary/postprocess/pp_colors.c", + "../src/gallium/auxiliary/postprocess/pp_colors.h", + "../src/gallium/auxiliary/postprocess/pp_filters.h", + "../src/gallium/auxiliary/postprocess/pp_init.c", + "../src/gallium/auxiliary/postprocess/pp_mlaa.c", + "../src/gallium/auxiliary/postprocess/pp_mlaa.h", + "../src/gallium/auxiliary/postprocess/pp_mlaa_areamap.h", + "../src/gallium/auxiliary/postprocess/pp_private.h", + "../src/gallium/auxiliary/postprocess/pp_program.c", + "../src/gallium/auxiliary/postprocess/pp_run.c", + + "../src/gallium/auxiliary/rbug/rbug.h", + "../src/gallium/auxiliary/rbug/rbug_connection.c", + "../src/gallium/auxiliary/rbug/rbug_connection.h", + "../src/gallium/auxiliary/rbug/rbug_context.c", + "../src/gallium/auxiliary/rbug/rbug_context.h", + "../src/gallium/auxiliary/rbug/rbug_core.c", + "../src/gallium/auxiliary/rbug/rbug_core.h", + "../src/gallium/auxiliary/rbug/rbug_demarshal.c", + "../src/gallium/auxiliary/rbug/rbug_internal.h", + "../src/gallium/auxiliary/rbug/rbug_proto.h", + "../src/gallium/auxiliary/rbug/rbug_shader.c", + "../src/gallium/auxiliary/rbug/rbug_shader.h", + "../src/gallium/auxiliary/rbug/rbug_texture.c", + "../src/gallium/auxiliary/rbug/rbug_texture.h", + + "../src/gallium/auxiliary/renderonly/renderonly.c", + "../src/gallium/auxiliary/renderonly/renderonly.h", + + "../src/gallium/auxiliary/rtasm/rtasm_cpu.c", + "../src/gallium/auxiliary/rtasm/rtasm_cpu.h", + "../src/gallium/auxiliary/rtasm/rtasm_execmem.c", + "../src/gallium/auxiliary/rtasm/rtasm_execmem.h", + "../src/gallium/auxiliary/rtasm/rtasm_x86sse.c", + "../src/gallium/auxiliary/rtasm/rtasm_x86sse.h", + + "../src/gallium/auxiliary/target-helpers/drm_helper.h", + "../src/gallium/auxiliary/target-helpers/drm_helper_public.h", + "../src/gallium/auxiliary/target-helpers/inline_debug_helper.h", + "../src/gallium/auxiliary/target-helpers/inline_sw_helper.h", + "../src/gallium/auxiliary/target-helpers/sw_helper.h", + "../src/gallium/auxiliary/target-helpers/sw_helper_public.h", + + "../src/gallium/auxiliary/tessellator/p_tessellator.cpp", + "../src/gallium/auxiliary/tessellator/p_tessellator.h", + "../src/gallium/auxiliary/tessellator/tessellator.cpp", + "../src/gallium/auxiliary/tessellator/tessellator.hpp", + + "../src/gallium/auxiliary/tgsi/tgsi_aa_point.c", + "../src/gallium/auxiliary/tgsi/tgsi_aa_point.h", + "../src/gallium/auxiliary/tgsi/tgsi_build.c", + "../src/gallium/auxiliary/tgsi/tgsi_build.h", + "../src/gallium/auxiliary/tgsi/tgsi_dump.c", + "../src/gallium/auxiliary/tgsi/tgsi_dump.h", + "../src/gallium/auxiliary/tgsi/tgsi_dynamic_indexing.c", + "../src/gallium/auxiliary/tgsi/tgsi_dynamic_indexing.h", + "../src/gallium/auxiliary/tgsi/tgsi_emulate.c", + "../src/gallium/auxiliary/tgsi/tgsi_emulate.h", + "../src/gallium/auxiliary/tgsi/tgsi_exec.c", + "../src/gallium/auxiliary/tgsi/tgsi_exec.h", + "../src/gallium/auxiliary/tgsi/tgsi_from_mesa.c", + "../src/gallium/auxiliary/tgsi/tgsi_from_mesa.h", + "../src/gallium/auxiliary/tgsi/tgsi_info.c", + "../src/gallium/auxiliary/tgsi/tgsi_info.h", + "../src/gallium/auxiliary/tgsi/tgsi_info_opcodes.h", + "../src/gallium/auxiliary/tgsi/tgsi_iterate.c", + "../src/gallium/auxiliary/tgsi/tgsi_iterate.h", + "../src/gallium/auxiliary/tgsi/tgsi_lowering.c", + "../src/gallium/auxiliary/tgsi/tgsi_lowering.h", + "../src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h", + "../src/gallium/auxiliary/tgsi/tgsi_parse.c", + "../src/gallium/auxiliary/tgsi/tgsi_parse.h", + "../src/gallium/auxiliary/tgsi/tgsi_point_sprite.c", + "../src/gallium/auxiliary/tgsi/tgsi_point_sprite.h", + "../src/gallium/auxiliary/tgsi/tgsi_sanity.c", + "../src/gallium/auxiliary/tgsi/tgsi_sanity.h", + "../src/gallium/auxiliary/tgsi/tgsi_scan.c", + "../src/gallium/auxiliary/tgsi/tgsi_scan.h", + "../src/gallium/auxiliary/tgsi/tgsi_strings.c", + "../src/gallium/auxiliary/tgsi/tgsi_strings.h", + "../src/gallium/auxiliary/tgsi/tgsi_text.c", + "../src/gallium/auxiliary/tgsi/tgsi_text.h", + "../src/gallium/auxiliary/tgsi/tgsi_transform.c", + "../src/gallium/auxiliary/tgsi/tgsi_transform.h", + "../src/gallium/auxiliary/tgsi/tgsi_two_side.c", + "../src/gallium/auxiliary/tgsi/tgsi_two_side.h", + "../src/gallium/auxiliary/tgsi/tgsi_ureg.c", + "../src/gallium/auxiliary/tgsi/tgsi_ureg.h", + "../src/gallium/auxiliary/tgsi/tgsi_util.c", + "../src/gallium/auxiliary/tgsi/tgsi_util.h", + "../src/gallium/auxiliary/tgsi/tgsi_vpos.c", + "../src/gallium/auxiliary/tgsi/tgsi_vpos.h", + + "../src/gallium/auxiliary/translate/translate.c", + "../src/gallium/auxiliary/translate/translate.h", + "../src/gallium/auxiliary/translate/translate_cache.c", + "../src/gallium/auxiliary/translate/translate_cache.h", + "../src/gallium/auxiliary/translate/translate_generic.c", + "../src/gallium/auxiliary/translate/translate_sse.c", + + "../src/gallium/auxiliary/util/dbghelp.h", + "../src/gallium/auxiliary/util/u_async_debug.c", + "../src/gallium/auxiliary/util/u_async_debug.h", + "../src/gallium/auxiliary/util/u_bitcast.h", + "../src/gallium/auxiliary/util/u_bitmask.c", + "../src/gallium/auxiliary/util/u_bitmask.h", + "../src/gallium/auxiliary/util/u_blend.h", + "../src/gallium/auxiliary/util/u_blitter.c", + "../src/gallium/auxiliary/util/u_blitter.h", + "../src/gallium/auxiliary/util/u_box.h", + "../src/gallium/auxiliary/util/u_cache.c", + "../src/gallium/auxiliary/util/u_cache.h", + "../src/gallium/auxiliary/util/u_compute.c", + "../src/gallium/auxiliary/util/u_compute.h", + "../src/gallium/auxiliary/util/u_debug_flush.c", + "../src/gallium/auxiliary/util/u_debug_flush.h", + "../src/gallium/auxiliary/util/u_debug_image.c", + "../src/gallium/auxiliary/util/u_debug_image.h", + "../src/gallium/auxiliary/util/u_dirty_flags.h", + "../src/gallium/auxiliary/util/u_dirty_surfaces.h", + "../src/gallium/auxiliary/util/u_dl.c", + "../src/gallium/auxiliary/util/u_dl.h", + "../src/gallium/auxiliary/util/u_draw.c", + "../src/gallium/auxiliary/util/u_draw.h", + "../src/gallium/auxiliary/util/u_draw_quad.c", + "../src/gallium/auxiliary/util/u_draw_quad.h", + "../src/gallium/auxiliary/util/u_driconf.c", + "../src/gallium/auxiliary/util/u_driconf.h", + "../src/gallium/auxiliary/util/u_dual_blend.h", + "../src/gallium/auxiliary/util/u_dump.h", + "../src/gallium/auxiliary/util/u_dump_defines.c", + "../src/gallium/auxiliary/util/u_dump_state.c", + "../src/gallium/auxiliary/util/u_file.h", + "../src/gallium/auxiliary/util/u_framebuffer.c", + "../src/gallium/auxiliary/util/u_framebuffer.h", + "../src/gallium/auxiliary/util/u_gen_mipmap.c", + "../src/gallium/auxiliary/util/u_gen_mipmap.h", + "../src/gallium/auxiliary/util/u_handle_table.c", + "../src/gallium/auxiliary/util/u_handle_table.h", + "../src/gallium/auxiliary/util/u_helpers.c", + "../src/gallium/auxiliary/util/u_helpers.h", + "../src/gallium/auxiliary/util/u_index_modify.c", + "../src/gallium/auxiliary/util/u_index_modify.h", + "../src/gallium/auxiliary/util/u_inlines.h", + "../src/gallium/auxiliary/util/u_linear.c", + "../src/gallium/auxiliary/util/u_linear.h", + "../src/gallium/auxiliary/util/u_live_shader_cache.c", + "../src/gallium/auxiliary/util/u_live_shader_cache.h", + "../src/gallium/auxiliary/util/u_log.c", + "../src/gallium/auxiliary/util/u_log.h", + "../src/gallium/auxiliary/util/u_network.c", + "../src/gallium/auxiliary/util/u_network.h", + "../src/gallium/auxiliary/util/u_pack_color.h", + "../src/gallium/auxiliary/util/u_pointer.h", + "../src/gallium/auxiliary/util/u_prim.c", + "../src/gallium/auxiliary/util/u_prim.h", + "../src/gallium/auxiliary/util/u_prim_restart.c", + "../src/gallium/auxiliary/util/u_prim_restart.h", + "../src/gallium/auxiliary/util/u_pstipple.c", + "../src/gallium/auxiliary/util/u_pstipple.h", + "../src/gallium/auxiliary/util/u_pwr8.h", + "../src/gallium/auxiliary/util/u_range.h", + "../src/gallium/auxiliary/util/u_rect.h", + "../src/gallium/auxiliary/util/u_resource.c", + "../src/gallium/auxiliary/util/u_resource.h", + "../src/gallium/auxiliary/util/u_sampler.c", + "../src/gallium/auxiliary/util/u_sampler.h", + "../src/gallium/auxiliary/util/u_screen.c", + "../src/gallium/auxiliary/util/u_screen.h", + "../src/gallium/auxiliary/util/u_simple_shaders.c", + "../src/gallium/auxiliary/util/u_simple_shaders.h", + "../src/gallium/auxiliary/util/u_split_draw.c", + "../src/gallium/auxiliary/util/u_split_draw.h", + "../src/gallium/auxiliary/util/u_split_prim.h", + "../src/gallium/auxiliary/util/u_sse.h", + "../src/gallium/auxiliary/util/u_suballoc.c", + "../src/gallium/auxiliary/util/u_suballoc.h", + "../src/gallium/auxiliary/util/u_surface.c", + "../src/gallium/auxiliary/util/u_surface.h", + "../src/gallium/auxiliary/util/u_tests.c", + "../src/gallium/auxiliary/util/u_tests.h", + "../src/gallium/auxiliary/util/u_texture.c", + "../src/gallium/auxiliary/util/u_texture.h", + "../src/gallium/auxiliary/util/u_threaded_context.c", + "../src/gallium/auxiliary/util/u_threaded_context.h", + "../src/gallium/auxiliary/util/u_threaded_context_calls.h", + "../src/gallium/auxiliary/util/u_tile.c", + "../src/gallium/auxiliary/util/u_tile.h", + "../src/gallium/auxiliary/util/u_trace_gallium.c", + "../src/gallium/auxiliary/util/u_trace_gallium.h", + "../src/gallium/auxiliary/util/u_tracepoints.py", + "../src/gallium/auxiliary/util/u_transfer.c", + "../src/gallium/auxiliary/util/u_transfer.h", + "../src/gallium/auxiliary/util/u_transfer_helper.c", + "../src/gallium/auxiliary/util/u_transfer_helper.h", + "../src/gallium/auxiliary/util/u_upload_mgr.c", + "../src/gallium/auxiliary/util/u_upload_mgr.h", + "../src/gallium/auxiliary/util/u_vbuf.c", + "../src/gallium/auxiliary/util/u_vbuf.h", + "../src/gallium/auxiliary/util/u_vertex_state_cache.c", + "../src/gallium/auxiliary/util/u_vertex_state_cache.h", + "../src/gallium/auxiliary/util/u_video.h", + "../src/gallium/auxiliary/util/u_viewport.h", + + "../src/gallium/auxiliary/vl/vl_bicubic_filter.c", + "../src/gallium/auxiliary/vl/vl_bicubic_filter.h", + "../src/gallium/auxiliary/vl/vl_compositor.c", + "../src/gallium/auxiliary/vl/vl_compositor.h", + "../src/gallium/auxiliary/vl/vl_compositor_cs.c", + "../src/gallium/auxiliary/vl/vl_compositor_cs.h", + "../src/gallium/auxiliary/vl/vl_compositor_gfx.c", + "../src/gallium/auxiliary/vl/vl_compositor_gfx.h", + "../src/gallium/auxiliary/vl/vl_csc.c", + "../src/gallium/auxiliary/vl/vl_csc.h", + "../src/gallium/auxiliary/vl/vl_decoder.c", + "../src/gallium/auxiliary/vl/vl_decoder.h", + "../src/gallium/auxiliary/vl/vl_defines.h", + "../src/gallium/auxiliary/vl/vl_deint_filter.c", + "../src/gallium/auxiliary/vl/vl_deint_filter.h", + "../src/gallium/auxiliary/vl/vl_idct.c", + "../src/gallium/auxiliary/vl/vl_idct.h", + "../src/gallium/auxiliary/vl/vl_matrix_filter.c", + "../src/gallium/auxiliary/vl/vl_matrix_filter.h", + "../src/gallium/auxiliary/vl/vl_mc.c", + "../src/gallium/auxiliary/vl/vl_mc.h", + "../src/gallium/auxiliary/vl/vl_median_filter.c", + "../src/gallium/auxiliary/vl/vl_median_filter.h", + "../src/gallium/auxiliary/vl/vl_mpeg12_bitstream.c", + "../src/gallium/auxiliary/vl/vl_mpeg12_bitstream.h", + "../src/gallium/auxiliary/vl/vl_mpeg12_decoder.c", + "../src/gallium/auxiliary/vl/vl_mpeg12_decoder.h", + "../src/gallium/auxiliary/vl/vl_probs_table.h", + "../src/gallium/auxiliary/vl/vl_rbsp.h", + "../src/gallium/auxiliary/vl/vl_stubs.c", + "../src/gallium/auxiliary/vl/vl_types.h", + "../src/gallium/auxiliary/vl/vl_vertex_buffers.c", + "../src/gallium/auxiliary/vl/vl_vertex_buffers.h", + "../src/gallium/auxiliary/vl/vl_video_buffer.c", + "../src/gallium/auxiliary/vl/vl_video_buffer.h", + "../src/gallium/auxiliary/vl/vl_vlc.h", + "../src/gallium/auxiliary/vl/vl_winsys.h", + "../src/gallium/auxiliary/vl/vl_winsys_dri.c", + "../src/gallium/auxiliary/vl/vl_winsys_dri3.c", + "../src/gallium/auxiliary/vl/vl_winsys_drm.c", + "../src/gallium/auxiliary/vl/vl_zscan.c", + "../src/gallium/auxiliary/vl/vl_zscan.h", + + "../src/gallium/drivers/asahi/agx_blit.c", + "../src/gallium/drivers/asahi/agx_pipe.c", + "../src/gallium/drivers/asahi/agx_public.h", + "../src/gallium/drivers/asahi/agx_state.c", + "../src/gallium/drivers/asahi/agx_state.h", + "../src/gallium/drivers/asahi/agx_uniforms.c", + "../src/gallium/drivers/asahi/magic.c", + "../src/gallium/drivers/asahi/magic.h", + "../src/gallium/drivers/asahi/meson.build", + + "../src/gallium/drivers/crocus/crocus_batch.c", + "../src/gallium/drivers/crocus/crocus_batch.h", + "../src/gallium/drivers/crocus/crocus_blit.c", + "../src/gallium/drivers/crocus/crocus_blorp.c", + "../src/gallium/drivers/crocus/crocus_blt.c", + "../src/gallium/drivers/crocus/crocus_bufmgr.c", + "../src/gallium/drivers/crocus/crocus_bufmgr.h", + "../src/gallium/drivers/crocus/crocus_clear.c", + "../src/gallium/drivers/crocus/crocus_context.c", + "../src/gallium/drivers/crocus/crocus_context.h", + "../src/gallium/drivers/crocus/crocus_defines.h", + "../src/gallium/drivers/crocus/crocus_disk_cache.c", + "../src/gallium/drivers/crocus/crocus_draw.c", + "../src/gallium/drivers/crocus/crocus_fence.c", + "../src/gallium/drivers/crocus/crocus_fence.h", + "../src/gallium/drivers/crocus/crocus_fine_fence.c", + "../src/gallium/drivers/crocus/crocus_fine_fence.h", + "../src/gallium/drivers/crocus/crocus_formats.c", + "../src/gallium/drivers/crocus/crocus_genx_macros.h", + "../src/gallium/drivers/crocus/crocus_genx_protos.h", + "../src/gallium/drivers/crocus/crocus_monitor.c", + "../src/gallium/drivers/crocus/crocus_monitor.h", + "../src/gallium/drivers/crocus/crocus_pipe.h", + "../src/gallium/drivers/crocus/crocus_pipe_control.c", + "../src/gallium/drivers/crocus/crocus_program.c", + "../src/gallium/drivers/crocus/crocus_program_cache.c", + "../src/gallium/drivers/crocus/crocus_query.c", + "../src/gallium/drivers/crocus/crocus_resolve.c", + "../src/gallium/drivers/crocus/crocus_resource.c", + "../src/gallium/drivers/crocus/crocus_resource.h", + "../src/gallium/drivers/crocus/crocus_screen.c", + "../src/gallium/drivers/crocus/crocus_screen.h", + "../src/gallium/drivers/crocus/crocus_state.c", + "../src/gallium/drivers/crocus/driinfo_crocus.h", + "../src/gallium/drivers/crocus/gen4_blorp_exec.h", + "../src/gallium/drivers/crocus/meson.build", + + "../src/gallium/drivers/d3d12/d3d12_batch.cpp", + "../src/gallium/drivers/d3d12/d3d12_batch.h", + "../src/gallium/drivers/d3d12/d3d12_blit.cpp", + "../src/gallium/drivers/d3d12/d3d12_blit.h", + "../src/gallium/drivers/d3d12/d3d12_bufmgr.cpp", + "../src/gallium/drivers/d3d12/d3d12_bufmgr.h", + "../src/gallium/drivers/d3d12/d3d12_compiler.cpp", + "../src/gallium/drivers/d3d12/d3d12_compiler.h", + "../src/gallium/drivers/d3d12/d3d12_context.cpp", + "../src/gallium/drivers/d3d12/d3d12_context.h", + "../src/gallium/drivers/d3d12/d3d12_debug.h", + "../src/gallium/drivers/d3d12/d3d12_descriptor_pool.cpp", + "../src/gallium/drivers/d3d12/d3d12_descriptor_pool.h", + "../src/gallium/drivers/d3d12/d3d12_draw.cpp", + "../src/gallium/drivers/d3d12/d3d12_dxcore_screen.cpp", + "../src/gallium/drivers/d3d12/d3d12_dxgi_screen.cpp", + "../src/gallium/drivers/d3d12/d3d12_fence.cpp", + "../src/gallium/drivers/d3d12/d3d12_fence.h", + "../src/gallium/drivers/d3d12/d3d12_format.c", + "../src/gallium/drivers/d3d12/d3d12_format.h", + "../src/gallium/drivers/d3d12/d3d12_gs_variant.cpp", + "../src/gallium/drivers/d3d12/d3d12_lower_int_cubemap_to_array.c", + "../src/gallium/drivers/d3d12/d3d12_lower_point_sprite.c", + "../src/gallium/drivers/d3d12/d3d12_nir_lower_texcmp.c", + "../src/gallium/drivers/d3d12/d3d12_nir_lower_texcmp.h", + "../src/gallium/drivers/d3d12/d3d12_nir_lower_vs_vertex_conversion.c", + "../src/gallium/drivers/d3d12/d3d12_nir_passes.c", + "../src/gallium/drivers/d3d12/d3d12_nir_passes.h", + "../src/gallium/drivers/d3d12/d3d12_pipeline_state.cpp", + "../src/gallium/drivers/d3d12/d3d12_pipeline_state.h", + "../src/gallium/drivers/d3d12/d3d12_public.h", + "../src/gallium/drivers/d3d12/d3d12_query.cpp", + "../src/gallium/drivers/d3d12/d3d12_query.h", + "../src/gallium/drivers/d3d12/d3d12_resource.cpp", + "../src/gallium/drivers/d3d12/d3d12_resource.h", + "../src/gallium/drivers/d3d12/d3d12_root_signature.cpp", + "../src/gallium/drivers/d3d12/d3d12_root_signature.h", + "../src/gallium/drivers/d3d12/d3d12_screen.cpp", + "../src/gallium/drivers/d3d12/d3d12_screen.h", + "../src/gallium/drivers/d3d12/d3d12_surface.cpp", + "../src/gallium/drivers/d3d12/d3d12_surface.h", + "../src/gallium/drivers/d3d12/meson.build", + + "../src/gallium/drivers/etnaviv/etnaviv_asm.c", + "../src/gallium/drivers/etnaviv/etnaviv_asm.h", + "../src/gallium/drivers/etnaviv/etnaviv_blend.c", + "../src/gallium/drivers/etnaviv/etnaviv_blend.h", + "../src/gallium/drivers/etnaviv/etnaviv_blt.c", + "../src/gallium/drivers/etnaviv/etnaviv_blt.h", + "../src/gallium/drivers/etnaviv/etnaviv_clear_blit.c", + "../src/gallium/drivers/etnaviv/etnaviv_clear_blit.h", + "../src/gallium/drivers/etnaviv/etnaviv_compiler.c", + "../src/gallium/drivers/etnaviv/etnaviv_compiler.h", + "../src/gallium/drivers/etnaviv/etnaviv_compiler_cmdline.c", + "../src/gallium/drivers/etnaviv/etnaviv_compiler_nir.c", + "../src/gallium/drivers/etnaviv/etnaviv_compiler_nir.h", + "../src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c", + "../src/gallium/drivers/etnaviv/etnaviv_compiler_nir_liveness.c", + "../src/gallium/drivers/etnaviv/etnaviv_compiler_nir_ra.c", + "../src/gallium/drivers/etnaviv/etnaviv_compiler_tgsi.c", + "../src/gallium/drivers/etnaviv/etnaviv_context.c", + "../src/gallium/drivers/etnaviv/etnaviv_context.h", + "../src/gallium/drivers/etnaviv/etnaviv_debug.h", + "../src/gallium/drivers/etnaviv/etnaviv_disasm.c", + "../src/gallium/drivers/etnaviv/etnaviv_disasm.h", + "../src/gallium/drivers/etnaviv/etnaviv_disk_cache.c", + "../src/gallium/drivers/etnaviv/etnaviv_disk_cache.h", + "../src/gallium/drivers/etnaviv/etnaviv_emit.c", + "../src/gallium/drivers/etnaviv/etnaviv_emit.h", + "../src/gallium/drivers/etnaviv/etnaviv_etc2.c", + "../src/gallium/drivers/etnaviv/etnaviv_etc2.h", + "../src/gallium/drivers/etnaviv/etnaviv_fence.c", + "../src/gallium/drivers/etnaviv/etnaviv_fence.h", + "../src/gallium/drivers/etnaviv/etnaviv_format.c", + "../src/gallium/drivers/etnaviv/etnaviv_format.h", + "../src/gallium/drivers/etnaviv/etnaviv_internal.h", + "../src/gallium/drivers/etnaviv/etnaviv_nir.c", + "../src/gallium/drivers/etnaviv/etnaviv_nir.h", + "../src/gallium/drivers/etnaviv/etnaviv_nir_lower_ubo_to_uniform.c", + "../src/gallium/drivers/etnaviv/etnaviv_perfmon.c", + "../src/gallium/drivers/etnaviv/etnaviv_perfmon.h", + "../src/gallium/drivers/etnaviv/etnaviv_query.c", + "../src/gallium/drivers/etnaviv/etnaviv_query.h", + "../src/gallium/drivers/etnaviv/etnaviv_query_acc.c", + "../src/gallium/drivers/etnaviv/etnaviv_query_acc.h", + "../src/gallium/drivers/etnaviv/etnaviv_query_acc_occlusion.c", + "../src/gallium/drivers/etnaviv/etnaviv_query_acc_perfmon.c", + "../src/gallium/drivers/etnaviv/etnaviv_query_sw.c", + "../src/gallium/drivers/etnaviv/etnaviv_query_sw.h", + "../src/gallium/drivers/etnaviv/etnaviv_rasterizer.c", + "../src/gallium/drivers/etnaviv/etnaviv_rasterizer.h", + "../src/gallium/drivers/etnaviv/etnaviv_resource.c", + "../src/gallium/drivers/etnaviv/etnaviv_resource.h", + "../src/gallium/drivers/etnaviv/etnaviv_rs.c", + "../src/gallium/drivers/etnaviv/etnaviv_rs.h", + "../src/gallium/drivers/etnaviv/etnaviv_screen.c", + "../src/gallium/drivers/etnaviv/etnaviv_screen.h", + "../src/gallium/drivers/etnaviv/etnaviv_shader.c", + "../src/gallium/drivers/etnaviv/etnaviv_shader.h", + "../src/gallium/drivers/etnaviv/etnaviv_state.c", + "../src/gallium/drivers/etnaviv/etnaviv_state.h", + "../src/gallium/drivers/etnaviv/etnaviv_surface.c", + "../src/gallium/drivers/etnaviv/etnaviv_surface.h", + "../src/gallium/drivers/etnaviv/etnaviv_texture.c", + "../src/gallium/drivers/etnaviv/etnaviv_texture.h", + "../src/gallium/drivers/etnaviv/etnaviv_texture_desc.c", + "../src/gallium/drivers/etnaviv/etnaviv_texture_desc.h", + "../src/gallium/drivers/etnaviv/etnaviv_texture_state.c", + "../src/gallium/drivers/etnaviv/etnaviv_texture_state.h", + "../src/gallium/drivers/etnaviv/etnaviv_tiling.c", + "../src/gallium/drivers/etnaviv/etnaviv_tiling.h", + "../src/gallium/drivers/etnaviv/etnaviv_transfer.c", + "../src/gallium/drivers/etnaviv/etnaviv_transfer.h", + "../src/gallium/drivers/etnaviv/etnaviv_translate.h", + "../src/gallium/drivers/etnaviv/etnaviv_uniforms.c", + "../src/gallium/drivers/etnaviv/etnaviv_uniforms.h", + "../src/gallium/drivers/etnaviv/etnaviv_util.h", + "../src/gallium/drivers/etnaviv/etnaviv_zsa.c", + "../src/gallium/drivers/etnaviv/etnaviv_zsa.h", + "../src/gallium/drivers/etnaviv/meson.build", + + "../src/gallium/drivers/etnaviv/hw/cmdstream.xml.h", + "../src/gallium/drivers/etnaviv/hw/common.xml.h", + "../src/gallium/drivers/etnaviv/hw/common_3d.xml.h", + "../src/gallium/drivers/etnaviv/hw/isa.xml.h", + "../src/gallium/drivers/etnaviv/hw/state.xml.h", + "../src/gallium/drivers/etnaviv/hw/state_3d.xml.h", + "../src/gallium/drivers/etnaviv/hw/state_blt.xml.h", + "../src/gallium/drivers/etnaviv/hw/texdesc_3d.xml.h", + + "../src/gallium/drivers/freedreno/freedreno_autotune.c", + "../src/gallium/drivers/freedreno/freedreno_autotune.h", + "../src/gallium/drivers/freedreno/freedreno_batch.c", + "../src/gallium/drivers/freedreno/freedreno_batch.h", + "../src/gallium/drivers/freedreno/freedreno_batch_cache.c", + "../src/gallium/drivers/freedreno/freedreno_batch_cache.h", + "../src/gallium/drivers/freedreno/freedreno_blitter.c", + "../src/gallium/drivers/freedreno/freedreno_blitter.h", + "../src/gallium/drivers/freedreno/freedreno_context.c", + "../src/gallium/drivers/freedreno/freedreno_context.h", + "../src/gallium/drivers/freedreno/freedreno_draw.c", + "../src/gallium/drivers/freedreno/freedreno_draw.h", + "../src/gallium/drivers/freedreno/freedreno_fence.c", + "../src/gallium/drivers/freedreno/freedreno_fence.h", + "../src/gallium/drivers/freedreno/freedreno_gmem.c", + "../src/gallium/drivers/freedreno/freedreno_gmem.h", + "../src/gallium/drivers/freedreno/freedreno_perfetto.cc", + "../src/gallium/drivers/freedreno/freedreno_perfetto.h", + "../src/gallium/drivers/freedreno/freedreno_program.c", + "../src/gallium/drivers/freedreno/freedreno_program.h", + "../src/gallium/drivers/freedreno/freedreno_query.c", + "../src/gallium/drivers/freedreno/freedreno_query.h", + "../src/gallium/drivers/freedreno/freedreno_query_acc.c", + "../src/gallium/drivers/freedreno/freedreno_query_acc.h", + "../src/gallium/drivers/freedreno/freedreno_query_hw.c", + "../src/gallium/drivers/freedreno/freedreno_query_hw.h", + "../src/gallium/drivers/freedreno/freedreno_query_sw.c", + "../src/gallium/drivers/freedreno/freedreno_query_sw.h", + "../src/gallium/drivers/freedreno/freedreno_resource.c", + "../src/gallium/drivers/freedreno/freedreno_resource.h", + "../src/gallium/drivers/freedreno/freedreno_screen.c", + "../src/gallium/drivers/freedreno/freedreno_screen.h", + "../src/gallium/drivers/freedreno/freedreno_state.c", + "../src/gallium/drivers/freedreno/freedreno_state.h", + "../src/gallium/drivers/freedreno/freedreno_surface.c", + "../src/gallium/drivers/freedreno/freedreno_surface.h", + "../src/gallium/drivers/freedreno/freedreno_texture.c", + "../src/gallium/drivers/freedreno/freedreno_texture.h", + "../src/gallium/drivers/freedreno/freedreno_tracepoints.py", + "../src/gallium/drivers/freedreno/freedreno_util.c", + "../src/gallium/drivers/freedreno/freedreno_util.h", + "../src/gallium/drivers/freedreno/gmemtool.c", + "../src/gallium/drivers/freedreno/meson.build", + "../src/gallium/drivers/freedreno/trace-parser.py", + + "../src/gallium/drivers/freedreno/a2xx/fd2_blend.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_blend.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_context.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_context.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_draw.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_draw.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_emit.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_emit.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_gmem.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_gmem.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_program.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_program.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_query.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_query.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_rasterizer.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_rasterizer.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_resource.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_resource.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_screen.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_screen.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_texture.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_texture.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_util.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_util.h", + "../src/gallium/drivers/freedreno/a2xx/fd2_zsa.c", + "../src/gallium/drivers/freedreno/a2xx/fd2_zsa.h", + "../src/gallium/drivers/freedreno/a2xx/ir2.c", + "../src/gallium/drivers/freedreno/a2xx/ir2.h", + "../src/gallium/drivers/freedreno/a2xx/ir2_assemble.c", + "../src/gallium/drivers/freedreno/a2xx/ir2_cp.c", + "../src/gallium/drivers/freedreno/a2xx/ir2_nir.c", + "../src/gallium/drivers/freedreno/a2xx/ir2_private.h", + "../src/gallium/drivers/freedreno/a2xx/ir2_ra.c", + + "../src/gallium/drivers/freedreno/a3xx/fd3_blend.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_blend.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_context.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_context.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_draw.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_draw.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_emit.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_emit.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_format.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_format.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_gmem.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_gmem.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_program.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_program.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_query.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_query.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_resource.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_resource.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_screen.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_screen.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_texture.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_texture.h", + "../src/gallium/drivers/freedreno/a3xx/fd3_zsa.c", + "../src/gallium/drivers/freedreno/a3xx/fd3_zsa.h", + + "../src/gallium/drivers/freedreno/a4xx/fd4_blend.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_blend.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_context.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_context.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_draw.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_draw.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_emit.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_emit.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_format.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_format.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_gmem.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_gmem.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_program.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_program.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_query.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_query.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_rasterizer.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_rasterizer.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_resource.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_resource.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_screen.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_screen.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_texture.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_texture.h", + "../src/gallium/drivers/freedreno/a4xx/fd4_zsa.c", + "../src/gallium/drivers/freedreno/a4xx/fd4_zsa.h", + + "../src/gallium/drivers/freedreno/a5xx/fd5_blend.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_blend.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_blitter.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_blitter.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_compute.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_compute.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_context.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_context.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_draw.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_draw.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_emit.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_emit.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_format.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_format.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_gmem.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_gmem.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_image.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_image.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_program.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_program.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_query.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_query.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_rasterizer.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_rasterizer.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_resource.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_resource.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_screen.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_screen.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_texture.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_texture.h", + "../src/gallium/drivers/freedreno/a5xx/fd5_zsa.c", + "../src/gallium/drivers/freedreno/a5xx/fd5_zsa.h", + + "../src/gallium/drivers/freedreno/a6xx/fd6_blend.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_blend.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_blitter.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_blitter.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_compute.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_compute.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_const.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_const.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_context.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_context.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_draw.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_draw.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_emit.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_emit.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_format.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_format.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_gmem.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_gmem.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_image.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_image.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_pack.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_program.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_program.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_query.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_query.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_rasterizer.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_rasterizer.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_resource.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_resource.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_screen.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_screen.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_texture.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_texture.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_vsc.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_vsc.h", + "../src/gallium/drivers/freedreno/a6xx/fd6_zsa.c", + "../src/gallium/drivers/freedreno/a6xx/fd6_zsa.h", + + "../src/gallium/drivers/freedreno/ir3/ir3_cache.c", + "../src/gallium/drivers/freedreno/ir3/ir3_cache.h", + "../src/gallium/drivers/freedreno/ir3/ir3_cmdline.c", + "../src/gallium/drivers/freedreno/ir3/ir3_const.h", + "../src/gallium/drivers/freedreno/ir3/ir3_gallium.c", + "../src/gallium/drivers/freedreno/ir3/ir3_gallium.h", + + "../src/gallium/drivers/i915/i915_batch.h", + "../src/gallium/drivers/i915/i915_batchbuffer.h", + "../src/gallium/drivers/i915/i915_blit.c", + "../src/gallium/drivers/i915/i915_blit.h", + "../src/gallium/drivers/i915/i915_clear.c", + "../src/gallium/drivers/i915/i915_context.c", + "../src/gallium/drivers/i915/i915_context.h", + "../src/gallium/drivers/i915/i915_debug.c", + "../src/gallium/drivers/i915/i915_debug.h", + "../src/gallium/drivers/i915/i915_debug_fp.c", + "../src/gallium/drivers/i915/i915_debug_private.h", + "../src/gallium/drivers/i915/i915_flush.c", + "../src/gallium/drivers/i915/i915_fpc.h", + "../src/gallium/drivers/i915/i915_fpc_emit.c", + "../src/gallium/drivers/i915/i915_fpc_optimize.c", + "../src/gallium/drivers/i915/i915_fpc_translate.c", + "../src/gallium/drivers/i915/i915_nir.c", + "../src/gallium/drivers/i915/i915_prim_emit.c", + "../src/gallium/drivers/i915/i915_prim_vbuf.c", + "../src/gallium/drivers/i915/i915_public.h", + "../src/gallium/drivers/i915/i915_query.c", + "../src/gallium/drivers/i915/i915_query.h", + "../src/gallium/drivers/i915/i915_reg.h", + "../src/gallium/drivers/i915/i915_resource.c", + "../src/gallium/drivers/i915/i915_resource.h", + "../src/gallium/drivers/i915/i915_resource_buffer.c", + "../src/gallium/drivers/i915/i915_resource_texture.c", + "../src/gallium/drivers/i915/i915_screen.c", + "../src/gallium/drivers/i915/i915_screen.h", + "../src/gallium/drivers/i915/i915_state.c", + "../src/gallium/drivers/i915/i915_state.h", + "../src/gallium/drivers/i915/i915_state_derived.c", + "../src/gallium/drivers/i915/i915_state_dynamic.c", + "../src/gallium/drivers/i915/i915_state_emit.c", + "../src/gallium/drivers/i915/i915_state_fpc.c", + "../src/gallium/drivers/i915/i915_state_immediate.c", + "../src/gallium/drivers/i915/i915_state_inlines.h", + "../src/gallium/drivers/i915/i915_state_sampler.c", + "../src/gallium/drivers/i915/i915_state_static.c", + "../src/gallium/drivers/i915/i915_surface.c", + "../src/gallium/drivers/i915/i915_surface.h", + "../src/gallium/drivers/i915/i915_winsys.h", + "../src/gallium/drivers/i915/meson.build", + + "../src/gallium/drivers/i915/ci/deqp-i915g.toml", + "../src/gallium/drivers/i915/ci/gitlab-ci.yml", + "../src/gallium/drivers/i915/ci/i915-g33-fails.txt", + "../src/gallium/drivers/i915/ci/i915-g33-skips.txt", + "../src/gallium/drivers/i915/ci/traces-i915.yml", + + "../src/gallium/drivers/iris/driinfo_iris.h", + "../src/gallium/drivers/iris/iris_batch.c", + "../src/gallium/drivers/iris/iris_batch.h", + "../src/gallium/drivers/iris/iris_binder.c", + "../src/gallium/drivers/iris/iris_binder.h", + "../src/gallium/drivers/iris/iris_blit.c", + "../src/gallium/drivers/iris/iris_blorp.c", + "../src/gallium/drivers/iris/iris_border_color.c", + "../src/gallium/drivers/iris/iris_bufmgr.c", + "../src/gallium/drivers/iris/iris_bufmgr.h", + "../src/gallium/drivers/iris/iris_clear.c", + "../src/gallium/drivers/iris/iris_context.c", + "../src/gallium/drivers/iris/iris_context.h", + "../src/gallium/drivers/iris/iris_defines.h", + "../src/gallium/drivers/iris/iris_disk_cache.c", + "../src/gallium/drivers/iris/iris_draw.c", + "../src/gallium/drivers/iris/iris_fence.c", + "../src/gallium/drivers/iris/iris_fence.h", + "../src/gallium/drivers/iris/iris_fine_fence.c", + "../src/gallium/drivers/iris/iris_fine_fence.h", + "../src/gallium/drivers/iris/iris_formats.c", + "../src/gallium/drivers/iris/iris_genx_macros.h", + "../src/gallium/drivers/iris/iris_genx_protos.h", + "../src/gallium/drivers/iris/iris_measure.c", + "../src/gallium/drivers/iris/iris_measure.h", + "../src/gallium/drivers/iris/iris_monitor.c", + "../src/gallium/drivers/iris/iris_monitor.h", + "../src/gallium/drivers/iris/iris_perf.c", + "../src/gallium/drivers/iris/iris_perf.h", + "../src/gallium/drivers/iris/iris_performance_query.c", + "../src/gallium/drivers/iris/iris_pipe.h", + "../src/gallium/drivers/iris/iris_pipe_control.c", + "../src/gallium/drivers/iris/iris_program.c", + "../src/gallium/drivers/iris/iris_program_cache.c", + "../src/gallium/drivers/iris/iris_query.c", + "../src/gallium/drivers/iris/iris_resolve.c", + "../src/gallium/drivers/iris/iris_resource.c", + "../src/gallium/drivers/iris/iris_resource.h", + "../src/gallium/drivers/iris/iris_screen.c", + "../src/gallium/drivers/iris/iris_screen.h", + "../src/gallium/drivers/iris/iris_state.c", + "../src/gallium/drivers/iris/meson.build", + + "../src/gallium/drivers/iris/ci/deqp-iris-amly.toml", + "../src/gallium/drivers/iris/ci/deqp-iris-apl.toml", + "../src/gallium/drivers/iris/ci/deqp-iris-cml.toml", + "../src/gallium/drivers/iris/ci/deqp-iris-glk.toml", + "../src/gallium/drivers/iris/ci/deqp-iris-kbl.toml", + "../src/gallium/drivers/iris/ci/deqp-iris-whl.toml", + "../src/gallium/drivers/iris/ci/gitlab-ci.yml", + "../src/gallium/drivers/iris/ci/iris-amly-fails.txt", + "../src/gallium/drivers/iris/ci/iris-amly-flakes.txt", + "../src/gallium/drivers/iris/ci/iris-amly-skips.txt", + "../src/gallium/drivers/iris/ci/iris-apl-fails.txt", + "../src/gallium/drivers/iris/ci/iris-cml-fails.txt", + "../src/gallium/drivers/iris/ci/iris-glk-fails.txt", + "../src/gallium/drivers/iris/ci/iris-glk-flakes.txt", + "../src/gallium/drivers/iris/ci/iris-kbl-fails.txt", + "../src/gallium/drivers/iris/ci/iris-skips.txt", + "../src/gallium/drivers/iris/ci/iris-whl-fails.txt", + "../src/gallium/drivers/iris/ci/traces-iris.yml", + + "../src/gallium/drivers/lima/lima_bo.c", + "../src/gallium/drivers/lima/lima_bo.h", + "../src/gallium/drivers/lima/lima_context.c", + "../src/gallium/drivers/lima/lima_context.h", + "../src/gallium/drivers/lima/lima_disk_cache.c", + "../src/gallium/drivers/lima/lima_disk_cache.h", + "../src/gallium/drivers/lima/lima_draw.c", + "../src/gallium/drivers/lima/lima_fence.c", + "../src/gallium/drivers/lima/lima_fence.h", + "../src/gallium/drivers/lima/lima_format.c", + "../src/gallium/drivers/lima/lima_format.h", + "../src/gallium/drivers/lima/lima_gpu.h", + "../src/gallium/drivers/lima/lima_job.c", + "../src/gallium/drivers/lima/lima_job.h", + "../src/gallium/drivers/lima/lima_parser.c", + "../src/gallium/drivers/lima/lima_parser.h", + "../src/gallium/drivers/lima/lima_program.c", + "../src/gallium/drivers/lima/lima_program.h", + "../src/gallium/drivers/lima/lima_query.c", + "../src/gallium/drivers/lima/lima_resource.c", + "../src/gallium/drivers/lima/lima_resource.h", + "../src/gallium/drivers/lima/lima_screen.c", + "../src/gallium/drivers/lima/lima_screen.h", + "../src/gallium/drivers/lima/lima_state.c", + "../src/gallium/drivers/lima/lima_texture.c", + "../src/gallium/drivers/lima/lima_texture.h", + "../src/gallium/drivers/lima/lima_util.c", + "../src/gallium/drivers/lima/lima_util.h", + "../src/gallium/drivers/lima/meson.build", + + "../src/gallium/drivers/lima/ci/gitlab-ci.yml", + "../src/gallium/drivers/lima/ci/lima-fails.txt", + "../src/gallium/drivers/lima/ci/lima-skips.txt", + + "../src/gallium/drivers/lima/drm-shim/lima_noop.c", + "../src/gallium/drivers/lima/drm-shim/meson.build", + + "../src/gallium/drivers/lima/ir/lima_ir.h", + "../src/gallium/drivers/lima/ir/lima_nir_algebraic.py", + "../src/gallium/drivers/lima/ir/lima_nir_duplicate_consts.c", + "../src/gallium/drivers/lima/ir/lima_nir_duplicate_intrinsic.c", + "../src/gallium/drivers/lima/ir/lima_nir_lower_uniform_to_scalar.c", + "../src/gallium/drivers/lima/ir/lima_nir_split_load_input.c", + "../src/gallium/drivers/lima/ir/lima_nir_split_loads.c", + + "../src/gallium/drivers/lima/ir/gp/codegen.c", + "../src/gallium/drivers/lima/ir/gp/codegen.h", + "../src/gallium/drivers/lima/ir/gp/disasm.c", + "../src/gallium/drivers/lima/ir/gp/gpir.h", + "../src/gallium/drivers/lima/ir/gp/instr.c", + "../src/gallium/drivers/lima/ir/gp/lower.c", + "../src/gallium/drivers/lima/ir/gp/nir.c", + "../src/gallium/drivers/lima/ir/gp/node.c", + "../src/gallium/drivers/lima/ir/gp/optimize.c", + "../src/gallium/drivers/lima/ir/gp/reduce_scheduler.c", + "../src/gallium/drivers/lima/ir/gp/regalloc.c", + "../src/gallium/drivers/lima/ir/gp/scheduler.c", + + "../src/gallium/drivers/lima/ir/pp/codegen.c", + "../src/gallium/drivers/lima/ir/pp/codegen.h", + "../src/gallium/drivers/lima/ir/pp/disasm.c", + "../src/gallium/drivers/lima/ir/pp/instr.c", + "../src/gallium/drivers/lima/ir/pp/liveness.c", + "../src/gallium/drivers/lima/ir/pp/lower.c", + "../src/gallium/drivers/lima/ir/pp/nir.c", + "../src/gallium/drivers/lima/ir/pp/node.c", + "../src/gallium/drivers/lima/ir/pp/node_to_instr.c", + "../src/gallium/drivers/lima/ir/pp/ppir.h", + "../src/gallium/drivers/lima/ir/pp/regalloc.c", + "../src/gallium/drivers/lima/ir/pp/scheduler.c", + + "../src/gallium/drivers/lima/standalone/glsl.cpp", + "../src/gallium/drivers/lima/standalone/glsl.h", + "../src/gallium/drivers/lima/standalone/lima_compiler_cmdline.c", + "../src/gallium/drivers/lima/standalone/lima_disasm.c", + + "../src/gallium/drivers/llvmpipe/lp_bld_alpha.c", + "../src/gallium/drivers/llvmpipe/lp_bld_alpha.h", + "../src/gallium/drivers/llvmpipe/lp_bld_blend.c", + "../src/gallium/drivers/llvmpipe/lp_bld_blend.h", + "../src/gallium/drivers/llvmpipe/lp_bld_blend_aos.c", + "../src/gallium/drivers/llvmpipe/lp_bld_blend_logicop.c", + "../src/gallium/drivers/llvmpipe/lp_bld_depth.c", + "../src/gallium/drivers/llvmpipe/lp_bld_depth.h", + "../src/gallium/drivers/llvmpipe/lp_bld_interp.c", + "../src/gallium/drivers/llvmpipe/lp_bld_interp.h", + "../src/gallium/drivers/llvmpipe/lp_clear.c", + "../src/gallium/drivers/llvmpipe/lp_clear.h", + "../src/gallium/drivers/llvmpipe/lp_context.c", + "../src/gallium/drivers/llvmpipe/lp_context.h", + "../src/gallium/drivers/llvmpipe/lp_cs_tpool.c", + "../src/gallium/drivers/llvmpipe/lp_cs_tpool.h", + "../src/gallium/drivers/llvmpipe/lp_debug.h", + "../src/gallium/drivers/llvmpipe/lp_draw_arrays.c", + "../src/gallium/drivers/llvmpipe/lp_fence.c", + "../src/gallium/drivers/llvmpipe/lp_fence.h", + "../src/gallium/drivers/llvmpipe/lp_flush.c", + "../src/gallium/drivers/llvmpipe/lp_flush.h", + "../src/gallium/drivers/llvmpipe/lp_jit.c", + "../src/gallium/drivers/llvmpipe/lp_jit.h", + "../src/gallium/drivers/llvmpipe/lp_limits.h", + "../src/gallium/drivers/llvmpipe/lp_linear.c", + "../src/gallium/drivers/llvmpipe/lp_linear_fastpath.c", + "../src/gallium/drivers/llvmpipe/lp_linear_interp.c", + "../src/gallium/drivers/llvmpipe/lp_linear_priv.h", + "../src/gallium/drivers/llvmpipe/lp_linear_sampler.c", + "../src/gallium/drivers/llvmpipe/lp_memory.c", + "../src/gallium/drivers/llvmpipe/lp_memory.h", + "../src/gallium/drivers/llvmpipe/lp_perf.c", + "../src/gallium/drivers/llvmpipe/lp_perf.h", + "../src/gallium/drivers/llvmpipe/lp_public.h", + "../src/gallium/drivers/llvmpipe/lp_query.c", + "../src/gallium/drivers/llvmpipe/lp_query.h", + "../src/gallium/drivers/llvmpipe/lp_rast.c", + "../src/gallium/drivers/llvmpipe/lp_rast.h", + "../src/gallium/drivers/llvmpipe/lp_rast_debug.c", + "../src/gallium/drivers/llvmpipe/lp_rast_linear.c", + "../src/gallium/drivers/llvmpipe/lp_rast_linear_fallback.c", + "../src/gallium/drivers/llvmpipe/lp_rast_priv.h", + "../src/gallium/drivers/llvmpipe/lp_rast_rect.c", + "../src/gallium/drivers/llvmpipe/lp_rast_tri.c", + "../src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h", + "../src/gallium/drivers/llvmpipe/lp_scene.c", + "../src/gallium/drivers/llvmpipe/lp_scene.h", + "../src/gallium/drivers/llvmpipe/lp_scene_queue.c", + "../src/gallium/drivers/llvmpipe/lp_scene_queue.h", + "../src/gallium/drivers/llvmpipe/lp_screen.c", + "../src/gallium/drivers/llvmpipe/lp_screen.h", + "../src/gallium/drivers/llvmpipe/lp_setup.c", + "../src/gallium/drivers/llvmpipe/lp_setup.h", + "../src/gallium/drivers/llvmpipe/lp_setup_analysis.c", + "../src/gallium/drivers/llvmpipe/lp_setup_context.h", + "../src/gallium/drivers/llvmpipe/lp_setup_line.c", + "../src/gallium/drivers/llvmpipe/lp_setup_point.c", + "../src/gallium/drivers/llvmpipe/lp_setup_rect.c", + "../src/gallium/drivers/llvmpipe/lp_setup_tri.c", + "../src/gallium/drivers/llvmpipe/lp_setup_vbuf.c", + "../src/gallium/drivers/llvmpipe/lp_state.h", + "../src/gallium/drivers/llvmpipe/lp_state_blend.c", + "../src/gallium/drivers/llvmpipe/lp_state_clip.c", + "../src/gallium/drivers/llvmpipe/lp_state_cs.c", + "../src/gallium/drivers/llvmpipe/lp_state_cs.h", + "../src/gallium/drivers/llvmpipe/lp_state_derived.c", + "../src/gallium/drivers/llvmpipe/lp_state_fs.c", + "../src/gallium/drivers/llvmpipe/lp_state_fs.h", + "../src/gallium/drivers/llvmpipe/lp_state_fs_analysis.c", + "../src/gallium/drivers/llvmpipe/lp_state_fs_fastpath.c", + "../src/gallium/drivers/llvmpipe/lp_state_fs_linear.c", + "../src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c", + "../src/gallium/drivers/llvmpipe/lp_state_gs.c", + "../src/gallium/drivers/llvmpipe/lp_state_rasterizer.c", + "../src/gallium/drivers/llvmpipe/lp_state_sampler.c", + "../src/gallium/drivers/llvmpipe/lp_state_setup.c", + "../src/gallium/drivers/llvmpipe/lp_state_setup.h", + "../src/gallium/drivers/llvmpipe/lp_state_so.c", + "../src/gallium/drivers/llvmpipe/lp_state_surface.c", + "../src/gallium/drivers/llvmpipe/lp_state_tess.c", + "../src/gallium/drivers/llvmpipe/lp_state_vertex.c", + "../src/gallium/drivers/llvmpipe/lp_state_vs.c", + "../src/gallium/drivers/llvmpipe/lp_surface.c", + "../src/gallium/drivers/llvmpipe/lp_surface.h", + "../src/gallium/drivers/llvmpipe/lp_test.h", + "../src/gallium/drivers/llvmpipe/lp_test_arit.c", + "../src/gallium/drivers/llvmpipe/lp_test_blend.c", + "../src/gallium/drivers/llvmpipe/lp_test_conv.c", + "../src/gallium/drivers/llvmpipe/lp_test_format.c", + "../src/gallium/drivers/llvmpipe/lp_test_main.c", + "../src/gallium/drivers/llvmpipe/lp_test_printf.c", + "../src/gallium/drivers/llvmpipe/lp_tex_sample.c", + "../src/gallium/drivers/llvmpipe/lp_tex_sample.h", + "../src/gallium/drivers/llvmpipe/lp_texture.c", + "../src/gallium/drivers/llvmpipe/lp_texture.h", + "../src/gallium/drivers/llvmpipe/meson.build", + + "../src/gallium/drivers/llvmpipe/ci/deqp-llvmpipe-asan.toml", + "../src/gallium/drivers/llvmpipe/ci/deqp-llvmpipe.toml", + "../src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml", + "../src/gallium/drivers/llvmpipe/ci/llvmpipe-cl.txt", + "../src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt", + "../src/gallium/drivers/llvmpipe/ci/llvmpipe-flakes.txt", + "../src/gallium/drivers/llvmpipe/ci/llvmpipe-glslparser.txt", + "../src/gallium/drivers/llvmpipe/ci/llvmpipe-quick_gl.txt", + "../src/gallium/drivers/llvmpipe/ci/llvmpipe-quick_shader.txt", + "../src/gallium/drivers/llvmpipe/ci/llvmpipe-skips.txt", + "../src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml", + + "../src/gallium/drivers/nouveau/meson.build", + "../src/gallium/drivers/nouveau/nouveau_buffer.c", + "../src/gallium/drivers/nouveau/nouveau_buffer.h", + "../src/gallium/drivers/nouveau/nouveau_compiler.c", + "../src/gallium/drivers/nouveau/nouveau_context.h", + "../src/gallium/drivers/nouveau/nouveau_debug.h", + "../src/gallium/drivers/nouveau/nouveau_fence.c", + "../src/gallium/drivers/nouveau/nouveau_fence.h", + "../src/gallium/drivers/nouveau/nouveau_gldefs.h", + "../src/gallium/drivers/nouveau/nouveau_heap.c", + "../src/gallium/drivers/nouveau/nouveau_heap.h", + "../src/gallium/drivers/nouveau/nouveau_mm.c", + "../src/gallium/drivers/nouveau/nouveau_mm.h", + "../src/gallium/drivers/nouveau/nouveau_screen.c", + "../src/gallium/drivers/nouveau/nouveau_screen.h", + "../src/gallium/drivers/nouveau/nouveau_video.c", + "../src/gallium/drivers/nouveau/nouveau_video.h", + "../src/gallium/drivers/nouveau/nouveau_vp3_video.c", + "../src/gallium/drivers/nouveau/nouveau_vp3_video.h", + "../src/gallium/drivers/nouveau/nouveau_vp3_video_bsp.c", + "../src/gallium/drivers/nouveau/nouveau_vp3_video_vp.c", + "../src/gallium/drivers/nouveau/nouveau_winsys.h", + "../src/gallium/drivers/nouveau/nv17_mpeg.xml.h", + "../src/gallium/drivers/nouveau/nv31_mpeg.xml.h", + "../src/gallium/drivers/nouveau/nv_m2mf.xml.h", + "../src/gallium/drivers/nouveau/nv_object.xml.h", + + "../src/gallium/drivers/nouveau/codegen/nv50_ir.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_build_util.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_build_util.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_graph.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_sched_gm107.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_serialize.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_ssa.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_util.cpp", + "../src/gallium/drivers/nouveau/codegen/nv50_ir_util.h", + "../src/gallium/drivers/nouveau/codegen/unordered_set.h", + + "../src/gallium/drivers/nouveau/codegen/lib/Makefile", + "../src/gallium/drivers/nouveau/codegen/lib/gf100.asm", + "../src/gallium/drivers/nouveau/codegen/lib/gf100.asm.h", + "../src/gallium/drivers/nouveau/codegen/lib/gk104.asm", + "../src/gallium/drivers/nouveau/codegen/lib/gk104.asm.h", + "../src/gallium/drivers/nouveau/codegen/lib/gk110.asm", + "../src/gallium/drivers/nouveau/codegen/lib/gk110.asm.h", + "../src/gallium/drivers/nouveau/codegen/lib/gm107.asm", + "../src/gallium/drivers/nouveau/codegen/lib/gm107.asm.h", + + "../src/gallium/drivers/nouveau/nv30/nv01_2d.xml.h", + "../src/gallium/drivers/nouveau/nv30/nv30-40_3d.xml.h", + "../src/gallium/drivers/nouveau/nv30/nv30_clear.c", + "../src/gallium/drivers/nouveau/nv30/nv30_context.c", + "../src/gallium/drivers/nouveau/nv30/nv30_context.h", + "../src/gallium/drivers/nouveau/nv30/nv30_draw.c", + "../src/gallium/drivers/nouveau/nv30/nv30_format.c", + "../src/gallium/drivers/nouveau/nv30/nv30_format.h", + "../src/gallium/drivers/nouveau/nv30/nv30_fragprog.c", + "../src/gallium/drivers/nouveau/nv30/nv30_fragtex.c", + "../src/gallium/drivers/nouveau/nv30/nv30_miptree.c", + "../src/gallium/drivers/nouveau/nv30/nv30_push.c", + "../src/gallium/drivers/nouveau/nv30/nv30_query.c", + "../src/gallium/drivers/nouveau/nv30/nv30_resource.c", + "../src/gallium/drivers/nouveau/nv30/nv30_resource.h", + "../src/gallium/drivers/nouveau/nv30/nv30_screen.c", + "../src/gallium/drivers/nouveau/nv30/nv30_screen.h", + "../src/gallium/drivers/nouveau/nv30/nv30_state.c", + "../src/gallium/drivers/nouveau/nv30/nv30_state.h", + "../src/gallium/drivers/nouveau/nv30/nv30_state_validate.c", + "../src/gallium/drivers/nouveau/nv30/nv30_texture.c", + "../src/gallium/drivers/nouveau/nv30/nv30_transfer.c", + "../src/gallium/drivers/nouveau/nv30/nv30_transfer.h", + "../src/gallium/drivers/nouveau/nv30/nv30_vbo.c", + "../src/gallium/drivers/nouveau/nv30/nv30_vertprog.c", + "../src/gallium/drivers/nouveau/nv30/nv30_vertprog.h", + "../src/gallium/drivers/nouveau/nv30/nv30_winsys.h", + "../src/gallium/drivers/nouveau/nv30/nv40_vertprog.h", + "../src/gallium/drivers/nouveau/nv30/nv40_verttex.c", + "../src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c", + "../src/gallium/drivers/nouveau/nv30/nvfx_shader.h", + "../src/gallium/drivers/nouveau/nv30/nvfx_vertprog.c", + + "../src/gallium/drivers/nouveau/nv50/g80_defs.xml.h", + "../src/gallium/drivers/nouveau/nv50/g80_texture.xml.h", + "../src/gallium/drivers/nouveau/nv50/nv50_2d.xml.h", + "../src/gallium/drivers/nouveau/nv50/nv50_3d.xml.h", + "../src/gallium/drivers/nouveau/nv50/nv50_3ddefs.xml.h", + "../src/gallium/drivers/nouveau/nv50/nv50_blit.h", + "../src/gallium/drivers/nouveau/nv50/nv50_compute.c", + "../src/gallium/drivers/nouveau/nv50/nv50_compute.xml.h", + "../src/gallium/drivers/nouveau/nv50/nv50_context.c", + "../src/gallium/drivers/nouveau/nv50/nv50_context.h", + "../src/gallium/drivers/nouveau/nv50/nv50_formats.c", + "../src/gallium/drivers/nouveau/nv50/nv50_miptree.c", + "../src/gallium/drivers/nouveau/nv50/nv50_program.c", + "../src/gallium/drivers/nouveau/nv50/nv50_program.h", + "../src/gallium/drivers/nouveau/nv50/nv50_push.c", + "../src/gallium/drivers/nouveau/nv50/nv50_query.c", + "../src/gallium/drivers/nouveau/nv50/nv50_query.h", + "../src/gallium/drivers/nouveau/nv50/nv50_query_hw.c", + "../src/gallium/drivers/nouveau/nv50/nv50_query_hw.h", + "../src/gallium/drivers/nouveau/nv50/nv50_query_hw_metric.c", + "../src/gallium/drivers/nouveau/nv50/nv50_query_hw_metric.h", + "../src/gallium/drivers/nouveau/nv50/nv50_query_hw_sm.c", + "../src/gallium/drivers/nouveau/nv50/nv50_query_hw_sm.h", + "../src/gallium/drivers/nouveau/nv50/nv50_resource.c", + "../src/gallium/drivers/nouveau/nv50/nv50_resource.h", + "../src/gallium/drivers/nouveau/nv50/nv50_screen.c", + "../src/gallium/drivers/nouveau/nv50/nv50_screen.h", + "../src/gallium/drivers/nouveau/nv50/nv50_shader_state.c", + "../src/gallium/drivers/nouveau/nv50/nv50_state.c", + "../src/gallium/drivers/nouveau/nv50/nv50_state_validate.c", + "../src/gallium/drivers/nouveau/nv50/nv50_stateobj.h", + "../src/gallium/drivers/nouveau/nv50/nv50_stateobj_tex.h", + "../src/gallium/drivers/nouveau/nv50/nv50_surface.c", + "../src/gallium/drivers/nouveau/nv50/nv50_tex.c", + "../src/gallium/drivers/nouveau/nv50/nv50_transfer.c", + "../src/gallium/drivers/nouveau/nv50/nv50_transfer.h", + "../src/gallium/drivers/nouveau/nv50/nv50_vbo.c", + "../src/gallium/drivers/nouveau/nv50/nv50_winsys.h", + "../src/gallium/drivers/nouveau/nv50/nv84_video.c", + "../src/gallium/drivers/nouveau/nv50/nv84_video.h", + "../src/gallium/drivers/nouveau/nv50/nv84_video_bsp.c", + "../src/gallium/drivers/nouveau/nv50/nv84_video_vp.c", + "../src/gallium/drivers/nouveau/nv50/nv98_video.c", + "../src/gallium/drivers/nouveau/nv50/nv98_video.h", + "../src/gallium/drivers/nouveau/nv50/nv98_video_bsp.c", + "../src/gallium/drivers/nouveau/nv50/nv98_video_ppp.c", + "../src/gallium/drivers/nouveau/nv50/nv98_video_vp.c", + + "../src/gallium/drivers/nouveau/nvc0/cla0c0qmd.h", + "../src/gallium/drivers/nouveau/nvc0/clc0c0qmd.h", + "../src/gallium/drivers/nouveau/nvc0/clc3c0qmd.h", + "../src/gallium/drivers/nouveau/nvc0/drf.h", + "../src/gallium/drivers/nouveau/nvc0/gm107_texture.xml.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_compute.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_compute.xml.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_context.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_context.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_formats.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_m2mf.xml.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_macros.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_program.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_program.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query_hw.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query_hw.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_metric.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_metric.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_sm.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_sm.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query_sw.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_query_sw.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_resource.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_resource.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_screen.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_screen.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_state.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_state_validate.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_stateobj.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_surface.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_tex.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_transfer.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_vbo_translate.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_video.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_video.h", + "../src/gallium/drivers/nouveau/nvc0/nvc0_video_bsp.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_video_ppp.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_video_vp.c", + "../src/gallium/drivers/nouveau/nvc0/nvc0_winsys.h", + "../src/gallium/drivers/nouveau/nvc0/nve4_compute.c", + "../src/gallium/drivers/nouveau/nvc0/nve4_compute.h", + "../src/gallium/drivers/nouveau/nvc0/nve4_compute.xml.h", + "../src/gallium/drivers/nouveau/nvc0/nve4_copy.xml.h", + "../src/gallium/drivers/nouveau/nvc0/nve4_p2mf.xml.h", + "../src/gallium/drivers/nouveau/nvc0/qmd.h", + "../src/gallium/drivers/nouveau/nvc0/qmda0c0.c", + "../src/gallium/drivers/nouveau/nvc0/qmdc0c0.c", + "../src/gallium/drivers/nouveau/nvc0/qmdc3c0.c", + + "../src/gallium/drivers/nouveau/nvc0/mme/Makefile", + "../src/gallium/drivers/nouveau/nvc0/mme/com9097.mme", + "../src/gallium/drivers/nouveau/nvc0/mme/com9097.mme.h", + "../src/gallium/drivers/nouveau/nvc0/mme/com90c0.mme", + "../src/gallium/drivers/nouveau/nvc0/mme/com90c0.mme.h", + "../src/gallium/drivers/nouveau/nvc0/mme/comc597.mme.h", + + "../src/gallium/drivers/panfrost/meson.build", + "../src/gallium/drivers/panfrost/pan_assemble.c", + "../src/gallium/drivers/panfrost/pan_blend_cso.h", + "../src/gallium/drivers/panfrost/pan_blit.c", + "../src/gallium/drivers/panfrost/pan_cmdstream.c", + "../src/gallium/drivers/panfrost/pan_compute.c", + "../src/gallium/drivers/panfrost/pan_context.c", + "../src/gallium/drivers/panfrost/pan_context.h", + "../src/gallium/drivers/panfrost/pan_helpers.c", + "../src/gallium/drivers/panfrost/pan_job.c", + "../src/gallium/drivers/panfrost/pan_job.h", + "../src/gallium/drivers/panfrost/pan_mempool.c", + "../src/gallium/drivers/panfrost/pan_mempool.h", + "../src/gallium/drivers/panfrost/pan_public.h", + "../src/gallium/drivers/panfrost/pan_resource.c", + "../src/gallium/drivers/panfrost/pan_resource.h", + "../src/gallium/drivers/panfrost/pan_screen.c", + "../src/gallium/drivers/panfrost/pan_screen.h", + + "../src/gallium/drivers/r300/meson.build", + "../src/gallium/drivers/r300/r300_blit.c", + "../src/gallium/drivers/r300/r300_cb.h", + "../src/gallium/drivers/r300/r300_chipset.c", + "../src/gallium/drivers/r300/r300_chipset.h", + "../src/gallium/drivers/r300/r300_context.c", + "../src/gallium/drivers/r300/r300_context.h", + "../src/gallium/drivers/r300/r300_cs.h", + "../src/gallium/drivers/r300/r300_debug.c", + "../src/gallium/drivers/r300/r300_defines.h", + "../src/gallium/drivers/r300/r300_emit.c", + "../src/gallium/drivers/r300/r300_emit.h", + "../src/gallium/drivers/r300/r300_flush.c", + "../src/gallium/drivers/r300/r300_fs.c", + "../src/gallium/drivers/r300/r300_fs.h", + "../src/gallium/drivers/r300/r300_hyperz.c", + "../src/gallium/drivers/r300/r300_public.h", + "../src/gallium/drivers/r300/r300_query.c", + "../src/gallium/drivers/r300/r300_reg.h", + "../src/gallium/drivers/r300/r300_render.c", + "../src/gallium/drivers/r300/r300_render_stencilref.c", + "../src/gallium/drivers/r300/r300_render_translate.c", + "../src/gallium/drivers/r300/r300_resource.c", + "../src/gallium/drivers/r300/r300_screen.c", + "../src/gallium/drivers/r300/r300_screen.h", + "../src/gallium/drivers/r300/r300_screen_buffer.c", + "../src/gallium/drivers/r300/r300_screen_buffer.h", + "../src/gallium/drivers/r300/r300_shader_semantics.h", + "../src/gallium/drivers/r300/r300_state.c", + "../src/gallium/drivers/r300/r300_state_derived.c", + "../src/gallium/drivers/r300/r300_state_inlines.h", + "../src/gallium/drivers/r300/r300_texture.c", + "../src/gallium/drivers/r300/r300_texture.h", + "../src/gallium/drivers/r300/r300_texture_desc.c", + "../src/gallium/drivers/r300/r300_texture_desc.h", + "../src/gallium/drivers/r300/r300_tgsi_to_rc.c", + "../src/gallium/drivers/r300/r300_tgsi_to_rc.h", + "../src/gallium/drivers/r300/r300_transfer.c", + "../src/gallium/drivers/r300/r300_transfer.h", + "../src/gallium/drivers/r300/r300_vs.c", + "../src/gallium/drivers/r300/r300_vs.h", + "../src/gallium/drivers/r300/r300_vs_draw.c", + + "../src/gallium/drivers/r300/compiler/memory_pool.c", + "../src/gallium/drivers/r300/compiler/memory_pool.h", + "../src/gallium/drivers/r300/compiler/r300_fragprog.c", + "../src/gallium/drivers/r300/compiler/r300_fragprog.h", + "../src/gallium/drivers/r300/compiler/r300_fragprog_emit.c", + "../src/gallium/drivers/r300/compiler/r300_fragprog_swizzle.c", + "../src/gallium/drivers/r300/compiler/r300_fragprog_swizzle.h", + "../src/gallium/drivers/r300/compiler/r3xx_fragprog.c", + "../src/gallium/drivers/r300/compiler/r3xx_vertprog.c", + "../src/gallium/drivers/r300/compiler/r3xx_vertprog_dump.c", + "../src/gallium/drivers/r300/compiler/r500_fragprog.c", + "../src/gallium/drivers/r300/compiler/r500_fragprog.h", + "../src/gallium/drivers/r300/compiler/r500_fragprog_emit.c", + "../src/gallium/drivers/r300/compiler/radeon_code.c", + "../src/gallium/drivers/r300/compiler/radeon_code.h", + "../src/gallium/drivers/r300/compiler/radeon_compiler.c", + "../src/gallium/drivers/r300/compiler/radeon_compiler.h", + "../src/gallium/drivers/r300/compiler/radeon_compiler_util.c", + "../src/gallium/drivers/r300/compiler/radeon_compiler_util.h", + "../src/gallium/drivers/r300/compiler/radeon_dataflow.c", + "../src/gallium/drivers/r300/compiler/radeon_dataflow.h", + "../src/gallium/drivers/r300/compiler/radeon_dataflow_deadcode.c", + "../src/gallium/drivers/r300/compiler/radeon_dataflow_swizzles.c", + "../src/gallium/drivers/r300/compiler/radeon_emulate_branches.c", + "../src/gallium/drivers/r300/compiler/radeon_emulate_branches.h", + "../src/gallium/drivers/r300/compiler/radeon_emulate_loops.c", + "../src/gallium/drivers/r300/compiler/radeon_emulate_loops.h", + "../src/gallium/drivers/r300/compiler/radeon_inline_literals.c", + "../src/gallium/drivers/r300/compiler/radeon_list.c", + "../src/gallium/drivers/r300/compiler/radeon_list.h", + "../src/gallium/drivers/r300/compiler/radeon_opcodes.c", + "../src/gallium/drivers/r300/compiler/radeon_opcodes.h", + "../src/gallium/drivers/r300/compiler/radeon_optimize.c", + "../src/gallium/drivers/r300/compiler/radeon_pair_dead_sources.c", + "../src/gallium/drivers/r300/compiler/radeon_pair_regalloc.c", + "../src/gallium/drivers/r300/compiler/radeon_pair_schedule.c", + "../src/gallium/drivers/r300/compiler/radeon_pair_translate.c", + "../src/gallium/drivers/r300/compiler/radeon_program.c", + "../src/gallium/drivers/r300/compiler/radeon_program.h", + "../src/gallium/drivers/r300/compiler/radeon_program_alu.c", + "../src/gallium/drivers/r300/compiler/radeon_program_alu.h", + "../src/gallium/drivers/r300/compiler/radeon_program_constants.h", + "../src/gallium/drivers/r300/compiler/radeon_program_pair.c", + "../src/gallium/drivers/r300/compiler/radeon_program_pair.h", + "../src/gallium/drivers/r300/compiler/radeon_program_print.c", + "../src/gallium/drivers/r300/compiler/radeon_program_tex.c", + "../src/gallium/drivers/r300/compiler/radeon_program_tex.h", + "../src/gallium/drivers/r300/compiler/radeon_regalloc.h", + "../src/gallium/drivers/r300/compiler/radeon_remove_constants.c", + "../src/gallium/drivers/r300/compiler/radeon_remove_constants.h", + "../src/gallium/drivers/r300/compiler/radeon_rename_regs.c", + "../src/gallium/drivers/r300/compiler/radeon_rename_regs.h", + "../src/gallium/drivers/r300/compiler/radeon_swizzle.h", + "../src/gallium/drivers/r300/compiler/radeon_variable.c", + "../src/gallium/drivers/r300/compiler/radeon_variable.h", + "../src/gallium/drivers/r300/compiler/radeon_vert_fc.c", + + "../src/gallium/drivers/r600/cayman_msaa.c", + "../src/gallium/drivers/r600/compute_memory_pool.c", + "../src/gallium/drivers/r600/compute_memory_pool.h", + "../src/gallium/drivers/r600/eg_asm.c", + "../src/gallium/drivers/r600/eg_debug.c", + "../src/gallium/drivers/r600/eg_sq.h", + "../src/gallium/drivers/r600/egd_tables.py", + "../src/gallium/drivers/r600/evergreen_compute.c", + "../src/gallium/drivers/r600/evergreen_compute.h", + "../src/gallium/drivers/r600/evergreen_compute_internal.h", + "../src/gallium/drivers/r600/evergreen_hw_context.c", + "../src/gallium/drivers/r600/evergreen_state.c", + "../src/gallium/drivers/r600/evergreend.h", + "../src/gallium/drivers/r600/meson.build", + "../src/gallium/drivers/r600/r600_asm.c", + "../src/gallium/drivers/r600/r600_asm.h", + "../src/gallium/drivers/r600/r600_blit.c", + "../src/gallium/drivers/r600/r600_buffer_common.c", + "../src/gallium/drivers/r600/r600_cs.h", + "../src/gallium/drivers/r600/r600_dump.c", + "../src/gallium/drivers/r600/r600_dump.h", + "../src/gallium/drivers/r600/r600_formats.h", + "../src/gallium/drivers/r600/r600_gpu_load.c", + "../src/gallium/drivers/r600/r600_hw_context.c", + "../src/gallium/drivers/r600/r600_isa.c", + "../src/gallium/drivers/r600/r600_isa.h", + "../src/gallium/drivers/r600/r600_opcodes.h", + "../src/gallium/drivers/r600/r600_perfcounter.c", + "../src/gallium/drivers/r600/r600_pipe.c", + "../src/gallium/drivers/r600/r600_pipe.h", + "../src/gallium/drivers/r600/r600_pipe_common.c", + "../src/gallium/drivers/r600/r600_pipe_common.h", + "../src/gallium/drivers/r600/r600_public.h", + "../src/gallium/drivers/r600/r600_query.c", + "../src/gallium/drivers/r600/r600_query.h", + "../src/gallium/drivers/r600/r600_shader.c", + "../src/gallium/drivers/r600/r600_shader.h", + "../src/gallium/drivers/r600/r600_sq.h", + "../src/gallium/drivers/r600/r600_state.c", + "../src/gallium/drivers/r600/r600_state_common.c", + "../src/gallium/drivers/r600/r600_streamout.c", + "../src/gallium/drivers/r600/r600_test_dma.c", + "../src/gallium/drivers/r600/r600_texture.c", + "../src/gallium/drivers/r600/r600_uvd.c", + "../src/gallium/drivers/r600/r600_viewport.c", + "../src/gallium/drivers/r600/r600d.h", + "../src/gallium/drivers/r600/r600d_common.h", + "../src/gallium/drivers/r600/r700_asm.c", + "../src/gallium/drivers/r600/r700_sq.h", + "../src/gallium/drivers/r600/radeon_uvd.c", + "../src/gallium/drivers/r600/radeon_uvd.h", + "../src/gallium/drivers/r600/radeon_vce.c", + "../src/gallium/drivers/r600/radeon_vce.h", + "../src/gallium/drivers/r600/radeon_video.c", + "../src/gallium/drivers/r600/radeon_video.h", + + "../src/gallium/drivers/r600/sb/notes.markdown", + "../src/gallium/drivers/r600/sb/sb_bc.h", + "../src/gallium/drivers/r600/sb/sb_bc_builder.cpp", + "../src/gallium/drivers/r600/sb/sb_bc_decoder.cpp", + "../src/gallium/drivers/r600/sb/sb_bc_dump.cpp", + "../src/gallium/drivers/r600/sb/sb_bc_finalize.cpp", + "../src/gallium/drivers/r600/sb/sb_bc_fmt_def.inc", + "../src/gallium/drivers/r600/sb/sb_bc_parser.cpp", + "../src/gallium/drivers/r600/sb/sb_context.cpp", + "../src/gallium/drivers/r600/sb/sb_core.cpp", + "../src/gallium/drivers/r600/sb/sb_dce_cleanup.cpp", + "../src/gallium/drivers/r600/sb/sb_def_use.cpp", + "../src/gallium/drivers/r600/sb/sb_dump.cpp", + "../src/gallium/drivers/r600/sb/sb_expr.cpp", + "../src/gallium/drivers/r600/sb/sb_expr.h", + "../src/gallium/drivers/r600/sb/sb_gcm.cpp", + "../src/gallium/drivers/r600/sb/sb_gvn.cpp", + "../src/gallium/drivers/r600/sb/sb_if_conversion.cpp", + "../src/gallium/drivers/r600/sb/sb_ir.cpp", + "../src/gallium/drivers/r600/sb/sb_ir.h", + "../src/gallium/drivers/r600/sb/sb_liveness.cpp", + "../src/gallium/drivers/r600/sb/sb_pass.cpp", + "../src/gallium/drivers/r600/sb/sb_pass.h", + "../src/gallium/drivers/r600/sb/sb_peephole.cpp", + "../src/gallium/drivers/r600/sb/sb_psi_ops.cpp", + "../src/gallium/drivers/r600/sb/sb_public.h", + "../src/gallium/drivers/r600/sb/sb_ra_checker.cpp", + "../src/gallium/drivers/r600/sb/sb_ra_coalesce.cpp", + "../src/gallium/drivers/r600/sb/sb_ra_init.cpp", + "../src/gallium/drivers/r600/sb/sb_sched.cpp", + "../src/gallium/drivers/r600/sb/sb_sched.h", + "../src/gallium/drivers/r600/sb/sb_shader.cpp", + "../src/gallium/drivers/r600/sb/sb_shader.h", + "../src/gallium/drivers/r600/sb/sb_ssa_builder.cpp", + "../src/gallium/drivers/r600/sb/sb_valtable.cpp", + + "../src/gallium/drivers/r600/sfn/sfn_alu_defines.cpp", + "../src/gallium/drivers/r600/sfn/sfn_alu_defines.h", + "../src/gallium/drivers/r600/sfn/sfn_callstack.cpp", + "../src/gallium/drivers/r600/sfn/sfn_callstack.h", + "../src/gallium/drivers/r600/sfn/sfn_conditionaljumptracker.cpp", + "../src/gallium/drivers/r600/sfn/sfn_conditionaljumptracker.h", + "../src/gallium/drivers/r600/sfn/sfn_debug.cpp", + "../src/gallium/drivers/r600/sfn/sfn_debug.h", + "../src/gallium/drivers/r600/sfn/sfn_defines.h", + "../src/gallium/drivers/r600/sfn/sfn_docu.txt", + "../src/gallium/drivers/r600/sfn/sfn_emitaluinstruction.cpp", + "../src/gallium/drivers/r600/sfn/sfn_emitaluinstruction.h", + "../src/gallium/drivers/r600/sfn/sfn_emitinstruction.cpp", + "../src/gallium/drivers/r600/sfn/sfn_emitinstruction.h", + "../src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.cpp", + "../src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.h", + "../src/gallium/drivers/r600/sfn/sfn_emittexinstruction.cpp", + "../src/gallium/drivers/r600/sfn/sfn_emittexinstruction.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_alu.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_alu.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_base.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_base.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_block.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_block.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_cf.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_cf.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_export.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_export.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_fetch.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_fetch.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_gds.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_gds.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_lds.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_lds.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_misc.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_misc.h", + "../src/gallium/drivers/r600/sfn/sfn_instruction_tex.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instruction_tex.h", + "../src/gallium/drivers/r600/sfn/sfn_instructionvisitor.cpp", + "../src/gallium/drivers/r600/sfn/sfn_instructionvisitor.h", + "../src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp", + "../src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.h", + "../src/gallium/drivers/r600/sfn/sfn_liverange.cpp", + "../src/gallium/drivers/r600/sfn/sfn_liverange.h", + "../src/gallium/drivers/r600/sfn/sfn_nir.cpp", + "../src/gallium/drivers/r600/sfn/sfn_nir.h", + "../src/gallium/drivers/r600/sfn/sfn_nir_legalize_image_load_store.cpp", + "../src/gallium/drivers/r600/sfn/sfn_nir_lower_64bit.cpp", + "../src/gallium/drivers/r600/sfn/sfn_nir_lower_alu.cpp", + "../src/gallium/drivers/r600/sfn/sfn_nir_lower_alu.h", + "../src/gallium/drivers/r600/sfn/sfn_nir_lower_fs_out_to_vector.cpp", + "../src/gallium/drivers/r600/sfn/sfn_nir_lower_fs_out_to_vector.h", + "../src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp", + "../src/gallium/drivers/r600/sfn/sfn_nir_vectorize_vs_inputs.c", + "../src/gallium/drivers/r600/sfn/sfn_optimizers.cpp", + "../src/gallium/drivers/r600/sfn/sfn_optimizers.h", + "../src/gallium/drivers/r600/sfn/sfn_shader_base.cpp", + "../src/gallium/drivers/r600/sfn/sfn_shader_base.h", + "../src/gallium/drivers/r600/sfn/sfn_shader_compute.cpp", + "../src/gallium/drivers/r600/sfn/sfn_shader_compute.h", + "../src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp", + "../src/gallium/drivers/r600/sfn/sfn_shader_fragment.h", + "../src/gallium/drivers/r600/sfn/sfn_shader_geometry.cpp", + "../src/gallium/drivers/r600/sfn/sfn_shader_geometry.h", + "../src/gallium/drivers/r600/sfn/sfn_shader_tcs.cpp", + "../src/gallium/drivers/r600/sfn/sfn_shader_tcs.h", + "../src/gallium/drivers/r600/sfn/sfn_shader_tess_eval.cpp", + "../src/gallium/drivers/r600/sfn/sfn_shader_tess_eval.h", + "../src/gallium/drivers/r600/sfn/sfn_shader_vertex.cpp", + "../src/gallium/drivers/r600/sfn/sfn_shader_vertex.h", + "../src/gallium/drivers/r600/sfn/sfn_shaderio.cpp", + "../src/gallium/drivers/r600/sfn/sfn_shaderio.h", + "../src/gallium/drivers/r600/sfn/sfn_value.cpp", + "../src/gallium/drivers/r600/sfn/sfn_value.h", + "../src/gallium/drivers/r600/sfn/sfn_value_gpr.cpp", + "../src/gallium/drivers/r600/sfn/sfn_value_gpr.h", + "../src/gallium/drivers/r600/sfn/sfn_valuepool.cpp", + "../src/gallium/drivers/r600/sfn/sfn_valuepool.h", + "../src/gallium/drivers/r600/sfn/sfn_vertexstageexport.cpp", + "../src/gallium/drivers/r600/sfn/sfn_vertexstageexport.h", + + "../src/gallium/drivers/radeon/pspdecryptionparam.h", + "../src/gallium/drivers/radeon/radeon_temporal.h", + "../src/gallium/drivers/radeon/radeon_uvd.c", + "../src/gallium/drivers/radeon/radeon_uvd.h", + "../src/gallium/drivers/radeon/radeon_uvd_enc.c", + "../src/gallium/drivers/radeon/radeon_uvd_enc.h", + "../src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c", + "../src/gallium/drivers/radeon/radeon_vce.c", + "../src/gallium/drivers/radeon/radeon_vce.h", + "../src/gallium/drivers/radeon/radeon_vce_40_2_2.c", + "../src/gallium/drivers/radeon/radeon_vce_50.c", + "../src/gallium/drivers/radeon/radeon_vce_52.c", + "../src/gallium/drivers/radeon/radeon_vcn_av1_default.h", + "../src/gallium/drivers/radeon/radeon_vcn_dec.c", + "../src/gallium/drivers/radeon/radeon_vcn_dec.h", + "../src/gallium/drivers/radeon/radeon_vcn_dec_jpeg.c", + "../src/gallium/drivers/radeon/radeon_vcn_enc.c", + "../src/gallium/drivers/radeon/radeon_vcn_enc.h", + "../src/gallium/drivers/radeon/radeon_vcn_enc_1_2.c", + "../src/gallium/drivers/radeon/radeon_vcn_enc_2_0.c", + "../src/gallium/drivers/radeon/radeon_vcn_enc_3_0.c", + "../src/gallium/drivers/radeon/radeon_video.c", + "../src/gallium/drivers/radeon/radeon_video.h", + "../src/gallium/drivers/radeon/radeon_winsys.h", + + "../src/gallium/drivers/radeonsi/driinfo_radeonsi.h", + "../src/gallium/drivers/radeonsi/gfx10_query.c", + "../src/gallium/drivers/radeonsi/gfx10_shader_ngg.c", + "../src/gallium/drivers/radeonsi/meson.build", + "../src/gallium/drivers/radeonsi/si_blit.c", + "../src/gallium/drivers/radeonsi/si_buffer.c", + "../src/gallium/drivers/radeonsi/si_build_pm4.h", + "../src/gallium/drivers/radeonsi/si_clear.c", + "../src/gallium/drivers/radeonsi/si_compute.c", + "../src/gallium/drivers/radeonsi/si_compute.h", + "../src/gallium/drivers/radeonsi/si_compute_blit.c", + "../src/gallium/drivers/radeonsi/si_cp_dma.c", + "../src/gallium/drivers/radeonsi/si_cp_reg_shadowing.c", + "../src/gallium/drivers/radeonsi/si_debug.c", + "../src/gallium/drivers/radeonsi/si_debug_options.h", + "../src/gallium/drivers/radeonsi/si_descriptors.c", + "../src/gallium/drivers/radeonsi/si_fence.c", + "../src/gallium/drivers/radeonsi/si_get.c", + "../src/gallium/drivers/radeonsi/si_gfx_cs.c", + "../src/gallium/drivers/radeonsi/si_gpu_load.c", + "../src/gallium/drivers/radeonsi/si_nir_optim.c", + "../src/gallium/drivers/radeonsi/si_perfcounter.c", + "../src/gallium/drivers/radeonsi/si_pipe.c", + "../src/gallium/drivers/radeonsi/si_pipe.h", + "../src/gallium/drivers/radeonsi/si_pm4.c", + "../src/gallium/drivers/radeonsi/si_pm4.h", + "../src/gallium/drivers/radeonsi/si_public.h", + "../src/gallium/drivers/radeonsi/si_query.c", + "../src/gallium/drivers/radeonsi/si_query.h", + "../src/gallium/drivers/radeonsi/si_sdma_copy_image.c", + "../src/gallium/drivers/radeonsi/si_shader.c", + "../src/gallium/drivers/radeonsi/si_shader.h", + "../src/gallium/drivers/radeonsi/si_shader_internal.h", + "../src/gallium/drivers/radeonsi/si_shader_llvm.c", + "../src/gallium/drivers/radeonsi/si_shader_llvm_gs.c", + "../src/gallium/drivers/radeonsi/si_shader_llvm_ps.c", + "../src/gallium/drivers/radeonsi/si_shader_llvm_resources.c", + "../src/gallium/drivers/radeonsi/si_shader_llvm_tess.c", + "../src/gallium/drivers/radeonsi/si_shader_llvm_vs.c", + "../src/gallium/drivers/radeonsi/si_shader_nir.c", + "../src/gallium/drivers/radeonsi/si_shaderlib_nir.c", + "../src/gallium/drivers/radeonsi/si_shaderlib_tgsi.c", + "../src/gallium/drivers/radeonsi/si_sqtt.c", + "../src/gallium/drivers/radeonsi/si_state.c", + "../src/gallium/drivers/radeonsi/si_state.h", + "../src/gallium/drivers/radeonsi/si_state_binning.c", + "../src/gallium/drivers/radeonsi/si_state_draw.cpp", + "../src/gallium/drivers/radeonsi/si_state_msaa.c", + "../src/gallium/drivers/radeonsi/si_state_shaders.c", + "../src/gallium/drivers/radeonsi/si_state_streamout.c", + "../src/gallium/drivers/radeonsi/si_state_viewport.c", + "../src/gallium/drivers/radeonsi/si_test_blit.c", + "../src/gallium/drivers/radeonsi/si_test_dma_perf.c", + "../src/gallium/drivers/radeonsi/si_texture.c", + "../src/gallium/drivers/radeonsi/si_uvd.c", + + "../src/gallium/drivers/radeonsi/ci/gitlab-ci.yml", + "../src/gallium/drivers/radeonsi/ci/navi10-deqp-fail.csv", + "../src/gallium/drivers/radeonsi/ci/navi10-glcts-fail.csv", + "../src/gallium/drivers/radeonsi/ci/navi10-piglit-quick-fail.csv", + "../src/gallium/drivers/radeonsi/ci/radeonsi-run-tests.py", + "../src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt", + "../src/gallium/drivers/radeonsi/ci/radeonsi-stoney-skips.txt", + "../src/gallium/drivers/radeonsi/ci/raven-deqp-fail.csv", + "../src/gallium/drivers/radeonsi/ci/raven-glcts-fail.csv", + "../src/gallium/drivers/radeonsi/ci/raven-piglit-quick-fail.csv", + "../src/gallium/drivers/radeonsi/ci/sienna_cichlid-deqp-fail.csv", + "../src/gallium/drivers/radeonsi/ci/sienna_cichlid-glcts-fail.csv", + "../src/gallium/drivers/radeonsi/ci/sienna_cichlid-piglit-quick-fail.csv", + "../src/gallium/drivers/radeonsi/ci/skips.csv", + "../src/gallium/drivers/radeonsi/ci/traces-radeonsi.yml", + + "../src/gallium/drivers/radeonsi/glsl_tests/HOW_TO_RUN", + "../src/gallium/drivers/radeonsi/glsl_tests/Makefile", + "../src/gallium/drivers/radeonsi/glsl_tests/amdgcn_glslc.c", + "../src/gallium/drivers/radeonsi/glsl_tests/bitcount.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/bitfield_extract.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/bitfield_insert.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/div.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/exp2.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/fma.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/fract.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/frexp.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/ldexp.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/lit.cfg", + "../src/gallium/drivers/radeonsi/glsl_tests/log2.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/minmax.f32.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/minmax.f64.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/minmax.i32.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/minmax.u32.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/pack_unpack_half.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/pow.glsl", + "../src/gallium/drivers/radeonsi/glsl_tests/sqrt.glsl", + + "../src/gallium/drivers/softpipe/meson.build", + "../src/gallium/drivers/softpipe/sp_buffer.c", + "../src/gallium/drivers/softpipe/sp_buffer.h", + "../src/gallium/drivers/softpipe/sp_clear.c", + "../src/gallium/drivers/softpipe/sp_clear.h", + "../src/gallium/drivers/softpipe/sp_compute.c", + "../src/gallium/drivers/softpipe/sp_context.c", + "../src/gallium/drivers/softpipe/sp_context.h", + "../src/gallium/drivers/softpipe/sp_draw_arrays.c", + "../src/gallium/drivers/softpipe/sp_fence.c", + "../src/gallium/drivers/softpipe/sp_fence.h", + "../src/gallium/drivers/softpipe/sp_flush.c", + "../src/gallium/drivers/softpipe/sp_flush.h", + "../src/gallium/drivers/softpipe/sp_fs.h", + "../src/gallium/drivers/softpipe/sp_fs_exec.c", + "../src/gallium/drivers/softpipe/sp_image.c", + "../src/gallium/drivers/softpipe/sp_image.h", + "../src/gallium/drivers/softpipe/sp_limits.h", + "../src/gallium/drivers/softpipe/sp_prim_vbuf.c", + "../src/gallium/drivers/softpipe/sp_prim_vbuf.h", + "../src/gallium/drivers/softpipe/sp_public.h", + "../src/gallium/drivers/softpipe/sp_quad.h", + "../src/gallium/drivers/softpipe/sp_quad_blend.c", + "../src/gallium/drivers/softpipe/sp_quad_depth_test.c", + "../src/gallium/drivers/softpipe/sp_quad_depth_test_tmp.h", + "../src/gallium/drivers/softpipe/sp_quad_fs.c", + "../src/gallium/drivers/softpipe/sp_quad_pipe.c", + "../src/gallium/drivers/softpipe/sp_quad_pipe.h", + "../src/gallium/drivers/softpipe/sp_quad_stipple.c", + "../src/gallium/drivers/softpipe/sp_query.c", + "../src/gallium/drivers/softpipe/sp_query.h", + "../src/gallium/drivers/softpipe/sp_screen.c", + "../src/gallium/drivers/softpipe/sp_screen.h", + "../src/gallium/drivers/softpipe/sp_setup.c", + "../src/gallium/drivers/softpipe/sp_setup.h", + "../src/gallium/drivers/softpipe/sp_state.h", + "../src/gallium/drivers/softpipe/sp_state_blend.c", + "../src/gallium/drivers/softpipe/sp_state_clip.c", + "../src/gallium/drivers/softpipe/sp_state_derived.c", + "../src/gallium/drivers/softpipe/sp_state_image.c", + "../src/gallium/drivers/softpipe/sp_state_rasterizer.c", + "../src/gallium/drivers/softpipe/sp_state_sampler.c", + "../src/gallium/drivers/softpipe/sp_state_shader.c", + "../src/gallium/drivers/softpipe/sp_state_so.c", + "../src/gallium/drivers/softpipe/sp_state_surface.c", + "../src/gallium/drivers/softpipe/sp_state_vertex.c", + "../src/gallium/drivers/softpipe/sp_surface.c", + "../src/gallium/drivers/softpipe/sp_surface.h", + "../src/gallium/drivers/softpipe/sp_tex_sample.c", + "../src/gallium/drivers/softpipe/sp_tex_sample.h", + "../src/gallium/drivers/softpipe/sp_tex_tile_cache.c", + "../src/gallium/drivers/softpipe/sp_tex_tile_cache.h", + "../src/gallium/drivers/softpipe/sp_texture.c", + "../src/gallium/drivers/softpipe/sp_texture.h", + "../src/gallium/drivers/softpipe/sp_tile_cache.c", + "../src/gallium/drivers/softpipe/sp_tile_cache.h", + + "../src/gallium/drivers/softpipe/ci/deqp-softpipe.toml", + "../src/gallium/drivers/softpipe/ci/gitlab-ci.yml", + "../src/gallium/drivers/softpipe/ci/softpipe-asan-fails.txt", + "../src/gallium/drivers/softpipe/ci/softpipe-fails.txt", + "../src/gallium/drivers/softpipe/ci/softpipe-flakes.txt", + "../src/gallium/drivers/softpipe/ci/softpipe-quick.txt", + "../src/gallium/drivers/softpipe/ci/softpipe-skips.txt", + + "../src/gallium/drivers/svga/meson.build", + "../src/gallium/drivers/svga/svga_cmd.c", + "../src/gallium/drivers/svga/svga_cmd.h", + "../src/gallium/drivers/svga/svga_cmd_vgpu10.c", + "../src/gallium/drivers/svga/svga_context.c", + "../src/gallium/drivers/svga/svga_context.h", + "../src/gallium/drivers/svga/svga_debug.h", + "../src/gallium/drivers/svga/svga_draw.c", + "../src/gallium/drivers/svga/svga_draw.h", + "../src/gallium/drivers/svga/svga_draw_arrays.c", + "../src/gallium/drivers/svga/svga_draw_elements.c", + "../src/gallium/drivers/svga/svga_draw_private.h", + "../src/gallium/drivers/svga/svga_format.c", + "../src/gallium/drivers/svga/svga_format.h", + "../src/gallium/drivers/svga/svga_hw_reg.h", + "../src/gallium/drivers/svga/svga_link.c", + "../src/gallium/drivers/svga/svga_link.h", + "../src/gallium/drivers/svga/svga_mksstats.h", + "../src/gallium/drivers/svga/svga_pipe_blend.c", + "../src/gallium/drivers/svga/svga_pipe_blit.c", + "../src/gallium/drivers/svga/svga_pipe_clear.c", + "../src/gallium/drivers/svga/svga_pipe_constants.c", + "../src/gallium/drivers/svga/svga_pipe_depthstencil.c", + "../src/gallium/drivers/svga/svga_pipe_draw.c", + "../src/gallium/drivers/svga/svga_pipe_flush.c", + "../src/gallium/drivers/svga/svga_pipe_fs.c", + "../src/gallium/drivers/svga/svga_pipe_gs.c", + "../src/gallium/drivers/svga/svga_pipe_misc.c", + "../src/gallium/drivers/svga/svga_pipe_query.c", + "../src/gallium/drivers/svga/svga_pipe_rasterizer.c", + "../src/gallium/drivers/svga/svga_pipe_sampler.c", + "../src/gallium/drivers/svga/svga_pipe_streamout.c", + "../src/gallium/drivers/svga/svga_pipe_ts.c", + "../src/gallium/drivers/svga/svga_pipe_vertex.c", + "../src/gallium/drivers/svga/svga_pipe_vs.c", + "../src/gallium/drivers/svga/svga_public.h", + "../src/gallium/drivers/svga/svga_resource.c", + "../src/gallium/drivers/svga/svga_resource.h", + "../src/gallium/drivers/svga/svga_resource_buffer.c", + "../src/gallium/drivers/svga/svga_resource_buffer.h", + "../src/gallium/drivers/svga/svga_resource_buffer_upload.c", + "../src/gallium/drivers/svga/svga_resource_buffer_upload.h", + "../src/gallium/drivers/svga/svga_resource_texture.c", + "../src/gallium/drivers/svga/svga_resource_texture.h", + "../src/gallium/drivers/svga/svga_sampler_view.c", + "../src/gallium/drivers/svga/svga_sampler_view.h", + "../src/gallium/drivers/svga/svga_screen.c", + "../src/gallium/drivers/svga/svga_screen.h", + "../src/gallium/drivers/svga/svga_screen_cache.c", + "../src/gallium/drivers/svga/svga_screen_cache.h", + "../src/gallium/drivers/svga/svga_shader.c", + "../src/gallium/drivers/svga/svga_shader.h", + "../src/gallium/drivers/svga/svga_state.c", + "../src/gallium/drivers/svga/svga_state.h", + "../src/gallium/drivers/svga/svga_state_constants.c", + "../src/gallium/drivers/svga/svga_state_framebuffer.c", + "../src/gallium/drivers/svga/svga_state_fs.c", + "../src/gallium/drivers/svga/svga_state_gs.c", + "../src/gallium/drivers/svga/svga_state_need_swtnl.c", + "../src/gallium/drivers/svga/svga_state_rss.c", + "../src/gallium/drivers/svga/svga_state_sampler.c", + "../src/gallium/drivers/svga/svga_state_tgsi_transform.c", + "../src/gallium/drivers/svga/svga_state_ts.c", + "../src/gallium/drivers/svga/svga_state_tss.c", + "../src/gallium/drivers/svga/svga_state_vdecl.c", + "../src/gallium/drivers/svga/svga_state_vs.c", + "../src/gallium/drivers/svga/svga_streamout.h", + "../src/gallium/drivers/svga/svga_surface.c", + "../src/gallium/drivers/svga/svga_surface.h", + "../src/gallium/drivers/svga/svga_swtnl.h", + "../src/gallium/drivers/svga/svga_swtnl_backend.c", + "../src/gallium/drivers/svga/svga_swtnl_draw.c", + "../src/gallium/drivers/svga/svga_swtnl_private.h", + "../src/gallium/drivers/svga/svga_swtnl_state.c", + "../src/gallium/drivers/svga/svga_tgsi.c", + "../src/gallium/drivers/svga/svga_tgsi.h", + "../src/gallium/drivers/svga/svga_tgsi_decl_sm30.c", + "../src/gallium/drivers/svga/svga_tgsi_emit.h", + "../src/gallium/drivers/svga/svga_tgsi_insn.c", + "../src/gallium/drivers/svga/svga_tgsi_vgpu10.c", + "../src/gallium/drivers/svga/svga_winsys.h", + + "../src/gallium/drivers/svga/include/VGPU10ShaderTokens.h", + "../src/gallium/drivers/svga/include/includeCheck.h", + "../src/gallium/drivers/svga/include/svga3d_caps.h", + "../src/gallium/drivers/svga/include/svga3d_cmd.h", + "../src/gallium/drivers/svga/include/svga3d_devcaps.h", + "../src/gallium/drivers/svga/include/svga3d_dx.h", + "../src/gallium/drivers/svga/include/svga3d_limits.h", + "../src/gallium/drivers/svga/include/svga3d_reg.h", + "../src/gallium/drivers/svga/include/svga3d_shaderdefs.h", + "../src/gallium/drivers/svga/include/svga3d_surfacedefs.h", + "../src/gallium/drivers/svga/include/svga3d_types.h", + "../src/gallium/drivers/svga/include/svga_escape.h", + "../src/gallium/drivers/svga/include/svga_overlay.h", + "../src/gallium/drivers/svga/include/svga_reg.h", + "../src/gallium/drivers/svga/include/svga_types.h", + "../src/gallium/drivers/svga/include/vmware_pack_begin.h", + "../src/gallium/drivers/svga/include/vmware_pack_end.h", + + "../src/gallium/drivers/svga/svgadump/svga_dump.c", + "../src/gallium/drivers/svga/svgadump/svga_dump.h", + "../src/gallium/drivers/svga/svgadump/svga_dump.py", + "../src/gallium/drivers/svga/svgadump/svga_shader.h", + "../src/gallium/drivers/svga/svgadump/svga_shader_dump.c", + "../src/gallium/drivers/svga/svgadump/svga_shader_dump.h", + "../src/gallium/drivers/svga/svgadump/svga_shader_op.c", + "../src/gallium/drivers/svga/svgadump/svga_shader_op.h", + + "../src/gallium/drivers/swr/meson.build", + "../src/gallium/drivers/swr/swr_clear.cpp", + "../src/gallium/drivers/swr/swr_context.cpp", + "../src/gallium/drivers/swr/swr_context.h", + "../src/gallium/drivers/swr/swr_draw.cpp", + "../src/gallium/drivers/swr/swr_fence.cpp", + "../src/gallium/drivers/swr/swr_fence.h", + "../src/gallium/drivers/swr/swr_fence_work.cpp", + "../src/gallium/drivers/swr/swr_fence_work.h", + "../src/gallium/drivers/swr/swr_loader.cpp", + "../src/gallium/drivers/swr/swr_memory.h", + "../src/gallium/drivers/swr/swr_public.h", + "../src/gallium/drivers/swr/swr_query.cpp", + "../src/gallium/drivers/swr/swr_query.h", + "../src/gallium/drivers/swr/swr_resource.h", + "../src/gallium/drivers/swr/swr_scratch.cpp", + "../src/gallium/drivers/swr/swr_scratch.h", + "../src/gallium/drivers/swr/swr_screen.cpp", + "../src/gallium/drivers/swr/swr_screen.h", + "../src/gallium/drivers/swr/swr_shader.cpp", + "../src/gallium/drivers/swr/swr_shader.h", + "../src/gallium/drivers/swr/swr_state.cpp", + "../src/gallium/drivers/swr/swr_state.h", + "../src/gallium/drivers/swr/swr_tex_sample.cpp", + "../src/gallium/drivers/swr/swr_tex_sample.h", + + "../src/gallium/drivers/swr/rasterizer/_clang-format", + + "../src/gallium/drivers/swr/rasterizer/archrast/archrast.cpp", + "../src/gallium/drivers/swr/rasterizer/archrast/archrast.h", + "../src/gallium/drivers/swr/rasterizer/archrast/eventmanager.h", + "../src/gallium/drivers/swr/rasterizer/archrast/events.proto", + "../src/gallium/drivers/swr/rasterizer/archrast/events_private.proto", + + "../src/gallium/drivers/swr/rasterizer/codegen/gen_archrast.py", + "../src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py", + "../src/gallium/drivers/swr/rasterizer/codegen/gen_common.py", + "../src/gallium/drivers/swr/rasterizer/codegen/gen_knobs.py", + "../src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py", + "../src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_types.py", + "../src/gallium/drivers/swr/rasterizer/codegen/knob_defs.py", + "../src/gallium/drivers/swr/rasterizer/codegen/meson.build", + + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_event.cpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_event.hpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventhandler.hpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_backend.cpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_builder.hpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_header_init.hpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.cpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.h", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_llvm.hpp", + "../src/gallium/drivers/swr/rasterizer/codegen/templates/gen_rasterizer.cpp", + + "../src/gallium/drivers/swr/rasterizer/common/formats.cpp", + "../src/gallium/drivers/swr/rasterizer/common/formats.h", + "../src/gallium/drivers/swr/rasterizer/common/intrin.h", + "../src/gallium/drivers/swr/rasterizer/common/isa.hpp", + "../src/gallium/drivers/swr/rasterizer/common/os.cpp", + "../src/gallium/drivers/swr/rasterizer/common/os.h", + "../src/gallium/drivers/swr/rasterizer/common/rdtsc_buckets.cpp", + "../src/gallium/drivers/swr/rasterizer/common/rdtsc_buckets.h", + "../src/gallium/drivers/swr/rasterizer/common/rdtsc_buckets_shared.h", + "../src/gallium/drivers/swr/rasterizer/common/simd16intrin.h", + "../src/gallium/drivers/swr/rasterizer/common/simdintrin.h", + "../src/gallium/drivers/swr/rasterizer/common/simdlib.hpp", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx2.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx512.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx512_core.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_128_avx512_knights.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_256_avx.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_256_avx2.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_256_avx512.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_256_avx512_core.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_256_avx512_knights.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_core.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_knights.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_masks.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_masks_core.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_masks_knights.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_512_emu.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_512_emu_masks.inl", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_interface.hpp", + "../src/gallium/drivers/swr/rasterizer/common/simdlib_types.hpp", + "../src/gallium/drivers/swr/rasterizer/common/swr_assert.cpp", + "../src/gallium/drivers/swr/rasterizer/common/swr_assert.h", + + "../src/gallium/drivers/swr/rasterizer/core/api.cpp", + "../src/gallium/drivers/swr/rasterizer/core/api.h", + "../src/gallium/drivers/swr/rasterizer/core/arena.h", + "../src/gallium/drivers/swr/rasterizer/core/backend.cpp", + "../src/gallium/drivers/swr/rasterizer/core/backend.h", + "../src/gallium/drivers/swr/rasterizer/core/backend_clear.cpp", + "../src/gallium/drivers/swr/rasterizer/core/backend_impl.h", + "../src/gallium/drivers/swr/rasterizer/core/backend_sample.cpp", + "../src/gallium/drivers/swr/rasterizer/core/backend_singlesample.cpp", + "../src/gallium/drivers/swr/rasterizer/core/binner.cpp", + "../src/gallium/drivers/swr/rasterizer/core/binner.h", + "../src/gallium/drivers/swr/rasterizer/core/blend.h", + "../src/gallium/drivers/swr/rasterizer/core/clip.cpp", + "../src/gallium/drivers/swr/rasterizer/core/clip.h", + "../src/gallium/drivers/swr/rasterizer/core/conservativeRast.h", + "../src/gallium/drivers/swr/rasterizer/core/context.h", + "../src/gallium/drivers/swr/rasterizer/core/depthstencil.h", + "../src/gallium/drivers/swr/rasterizer/core/fifo.hpp", + "../src/gallium/drivers/swr/rasterizer/core/format_conversion.h", + "../src/gallium/drivers/swr/rasterizer/core/format_traits.h", + "../src/gallium/drivers/swr/rasterizer/core/format_types.h", + "../src/gallium/drivers/swr/rasterizer/core/format_utils.h", + "../src/gallium/drivers/swr/rasterizer/core/frontend.cpp", + "../src/gallium/drivers/swr/rasterizer/core/frontend.h", + "../src/gallium/drivers/swr/rasterizer/core/knobs.h", + "../src/gallium/drivers/swr/rasterizer/core/knobs_init.h", + "../src/gallium/drivers/swr/rasterizer/core/multisample.h", + "../src/gallium/drivers/swr/rasterizer/core/pa.h", + "../src/gallium/drivers/swr/rasterizer/core/pa_avx.cpp", + "../src/gallium/drivers/swr/rasterizer/core/rasterizer.cpp", + "../src/gallium/drivers/swr/rasterizer/core/rasterizer.h", + "../src/gallium/drivers/swr/rasterizer/core/rasterizer_impl.h", + "../src/gallium/drivers/swr/rasterizer/core/rdtsc_core.cpp", + "../src/gallium/drivers/swr/rasterizer/core/rdtsc_core.h", + "../src/gallium/drivers/swr/rasterizer/core/ringbuffer.h", + "../src/gallium/drivers/swr/rasterizer/core/state.h", + "../src/gallium/drivers/swr/rasterizer/core/state_funcs.h", + "../src/gallium/drivers/swr/rasterizer/core/tessellator.cpp", + "../src/gallium/drivers/swr/rasterizer/core/tessellator.h", + "../src/gallium/drivers/swr/rasterizer/core/tessellator.hpp", + "../src/gallium/drivers/swr/rasterizer/core/threads.cpp", + "../src/gallium/drivers/swr/rasterizer/core/threads.h", + "../src/gallium/drivers/swr/rasterizer/core/tilemgr.cpp", + "../src/gallium/drivers/swr/rasterizer/core/tilemgr.h", + "../src/gallium/drivers/swr/rasterizer/core/tileset.h", + "../src/gallium/drivers/swr/rasterizer/core/utils.h", + + "../src/gallium/drivers/swr/rasterizer/core/backends/meson.build", + + "../src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/JitManager.h", + "../src/gallium/drivers/swr/rasterizer/jitter/blend_jit.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/blend_jit.h", + "../src/gallium/drivers/swr/rasterizer/jitter/builder.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/builder.h", + "../src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/builder_gfx_mem.h", + "../src/gallium/drivers/swr/rasterizer/jitter/builder_math.h", + "../src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/builder_mem.h", + "../src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/builder_misc.h", + "../src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.h", + "../src/gallium/drivers/swr/rasterizer/jitter/jit_api.h", + "../src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp", + "../src/gallium/drivers/swr/rasterizer/jitter/meson.build", + "../src/gallium/drivers/swr/rasterizer/jitter/streamout_jit.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/streamout_jit.h", + + "../src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/functionpasses/passes.h", + + "../src/gallium/drivers/swr/rasterizer/jitter/shader_lib/DebugOutput.cpp", + "../src/gallium/drivers/swr/rasterizer/jitter/shader_lib/Scatter.cpp", + + "../src/gallium/drivers/swr/rasterizer/memory/ClearTile.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/Convert.h", + "../src/gallium/drivers/swr/rasterizer/memory/InitMemory.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/InitMemory.h", + "../src/gallium/drivers/swr/rasterizer/memory/LoadTile.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/LoadTile.h", + "../src/gallium/drivers/swr/rasterizer/memory/LoadTile_Linear.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/LoadTile_TileX.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/LoadTile_TileY.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile.h", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile_Linear.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile_Linear2.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile_TileW.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile_TileX.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile_TileX2.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile_TileY.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/StoreTile_TileY2.cpp", + "../src/gallium/drivers/swr/rasterizer/memory/SurfaceState.h", + "../src/gallium/drivers/swr/rasterizer/memory/TilingFunctions.h", + "../src/gallium/drivers/swr/rasterizer/memory/tilingtraits.h", + + "../src/gallium/drivers/tegra/meson.build", + "../src/gallium/drivers/tegra/tegra_context.c", + "../src/gallium/drivers/tegra/tegra_context.h", + "../src/gallium/drivers/tegra/tegra_resource.h", + "../src/gallium/drivers/tegra/tegra_screen.c", + "../src/gallium/drivers/tegra/tegra_screen.h", + + "../src/gallium/drivers/v3d/driinfo_v3d.h", + "../src/gallium/drivers/v3d/meson.build", + "../src/gallium/drivers/v3d/v3d_blit.c", + "../src/gallium/drivers/v3d/v3d_bufmgr.c", + "../src/gallium/drivers/v3d/v3d_bufmgr.h", + "../src/gallium/drivers/v3d/v3d_cl.c", + "../src/gallium/drivers/v3d/v3d_cl.h", + "../src/gallium/drivers/v3d/v3d_context.c", + "../src/gallium/drivers/v3d/v3d_context.h", + "../src/gallium/drivers/v3d/v3d_fence.c", + "../src/gallium/drivers/v3d/v3d_format_table.h", + "../src/gallium/drivers/v3d/v3d_formats.c", + "../src/gallium/drivers/v3d/v3d_job.c", + "../src/gallium/drivers/v3d/v3d_program.c", + "../src/gallium/drivers/v3d/v3d_query.c", + "../src/gallium/drivers/v3d/v3d_query.h", + "../src/gallium/drivers/v3d/v3d_query_perfcnt.c", + "../src/gallium/drivers/v3d/v3d_query_pipe.c", + "../src/gallium/drivers/v3d/v3d_resource.c", + "../src/gallium/drivers/v3d/v3d_resource.h", + "../src/gallium/drivers/v3d/v3d_screen.c", + "../src/gallium/drivers/v3d/v3d_screen.h", + "../src/gallium/drivers/v3d/v3d_uniforms.c", + "../src/gallium/drivers/v3d/v3dx_context.h", + "../src/gallium/drivers/v3d/v3dx_draw.c", + "../src/gallium/drivers/v3d/v3dx_emit.c", + "../src/gallium/drivers/v3d/v3dx_format_table.c", + "../src/gallium/drivers/v3d/v3dx_job.c", + "../src/gallium/drivers/v3d/v3dx_rcl.c", + "../src/gallium/drivers/v3d/v3dx_state.c", + + "../src/gallium/drivers/vc4/meson.build", + "../src/gallium/drivers/vc4/vc4_blit.c", + "../src/gallium/drivers/vc4/vc4_bufmgr.c", + "../src/gallium/drivers/vc4/vc4_bufmgr.h", + "../src/gallium/drivers/vc4/vc4_cl.c", + "../src/gallium/drivers/vc4/vc4_cl.h", + "../src/gallium/drivers/vc4/vc4_cl_dump.c", + "../src/gallium/drivers/vc4/vc4_cl_dump.h", + "../src/gallium/drivers/vc4/vc4_context.c", + "../src/gallium/drivers/vc4/vc4_context.h", + "../src/gallium/drivers/vc4/vc4_draw.c", + "../src/gallium/drivers/vc4/vc4_emit.c", + "../src/gallium/drivers/vc4/vc4_fence.c", + "../src/gallium/drivers/vc4/vc4_formats.c", + "../src/gallium/drivers/vc4/vc4_job.c", + "../src/gallium/drivers/vc4/vc4_nir_lower_blend.c", + "../src/gallium/drivers/vc4/vc4_nir_lower_io.c", + "../src/gallium/drivers/vc4/vc4_nir_lower_txf_ms.c", + "../src/gallium/drivers/vc4/vc4_opt_algebraic.c", + "../src/gallium/drivers/vc4/vc4_opt_coalesce_ff_writes.c", + "../src/gallium/drivers/vc4/vc4_opt_constant_folding.c", + "../src/gallium/drivers/vc4/vc4_opt_copy_propagation.c", + "../src/gallium/drivers/vc4/vc4_opt_dead_code.c", + "../src/gallium/drivers/vc4/vc4_opt_peephole_sf.c", + "../src/gallium/drivers/vc4/vc4_opt_small_immediates.c", + "../src/gallium/drivers/vc4/vc4_opt_vpm.c", + "../src/gallium/drivers/vc4/vc4_program.c", + "../src/gallium/drivers/vc4/vc4_qir.c", + "../src/gallium/drivers/vc4/vc4_qir.h", + "../src/gallium/drivers/vc4/vc4_qir_emit_uniform_stream_resets.c", + "../src/gallium/drivers/vc4/vc4_qir_live_variables.c", + "../src/gallium/drivers/vc4/vc4_qir_lower_uniforms.c", + "../src/gallium/drivers/vc4/vc4_qir_schedule.c", + "../src/gallium/drivers/vc4/vc4_qir_validate.c", + "../src/gallium/drivers/vc4/vc4_qpu.c", + "../src/gallium/drivers/vc4/vc4_qpu.h", + "../src/gallium/drivers/vc4/vc4_qpu_defines.h", + "../src/gallium/drivers/vc4/vc4_qpu_disasm.c", + "../src/gallium/drivers/vc4/vc4_qpu_emit.c", + "../src/gallium/drivers/vc4/vc4_qpu_schedule.c", + "../src/gallium/drivers/vc4/vc4_qpu_validate.c", + "../src/gallium/drivers/vc4/vc4_query.c", + "../src/gallium/drivers/vc4/vc4_register_allocate.c", + "../src/gallium/drivers/vc4/vc4_reorder_uniforms.c", + "../src/gallium/drivers/vc4/vc4_resource.c", + "../src/gallium/drivers/vc4/vc4_resource.h", + "../src/gallium/drivers/vc4/vc4_screen.c", + "../src/gallium/drivers/vc4/vc4_screen.h", + "../src/gallium/drivers/vc4/vc4_simulator.c", + "../src/gallium/drivers/vc4/vc4_simulator_validate.h", + "../src/gallium/drivers/vc4/vc4_state.c", + "../src/gallium/drivers/vc4/vc4_tiling.c", + "../src/gallium/drivers/vc4/vc4_tiling.h", + "../src/gallium/drivers/vc4/vc4_tiling_lt.c", + "../src/gallium/drivers/vc4/vc4_tiling_lt_neon.c", + "../src/gallium/drivers/vc4/vc4_uniforms.c", + + "../src/gallium/drivers/vc4/kernel/vc4_drv.h", + "../src/gallium/drivers/vc4/kernel/vc4_gem.c", + "../src/gallium/drivers/vc4/kernel/vc4_packet.h", + "../src/gallium/drivers/vc4/kernel/vc4_render_cl.c", + "../src/gallium/drivers/vc4/kernel/vc4_validate.c", + "../src/gallium/drivers/vc4/kernel/vc4_validate_shaders.c", + + "../src/gallium/drivers/virgl/meson.build", + "../src/gallium/drivers/virgl/virgl_buffer.c", + "../src/gallium/drivers/virgl/virgl_context.c", + "../src/gallium/drivers/virgl/virgl_context.h", + "../src/gallium/drivers/virgl/virgl_driinfo.h.in", + "../src/gallium/drivers/virgl/virgl_encode.c", + "../src/gallium/drivers/virgl/virgl_encode.h", + "../src/gallium/drivers/virgl/virgl_public.h", + "../src/gallium/drivers/virgl/virgl_query.c", + "../src/gallium/drivers/virgl/virgl_resource.c", + "../src/gallium/drivers/virgl/virgl_resource.h", + "../src/gallium/drivers/virgl/virgl_screen.c", + "../src/gallium/drivers/virgl/virgl_screen.h", + "../src/gallium/drivers/virgl/virgl_staging_mgr.c", + "../src/gallium/drivers/virgl/virgl_staging_mgr.h", + "../src/gallium/drivers/virgl/virgl_streamout.c", + "../src/gallium/drivers/virgl/virgl_texture.c", + "../src/gallium/drivers/virgl/virgl_tgsi.c", + "../src/gallium/drivers/virgl/virgl_transfer_queue.c", + "../src/gallium/drivers/virgl/virgl_transfer_queue.h", + "../src/gallium/drivers/virgl/virgl_winsys.h", + + "../src/gallium/drivers/virgl/ci/deqp-virgl-gl.toml", + "../src/gallium/drivers/virgl/ci/deqp-virgl-gles.toml", + "../src/gallium/drivers/virgl/ci/gitlab-ci.yml", + "../src/gallium/drivers/virgl/ci/traces-virgl.yml", + "../src/gallium/drivers/virgl/ci/virgl-gl-fails.txt", + "../src/gallium/drivers/virgl/ci/virgl-gl-flakes.txt", + "../src/gallium/drivers/virgl/ci/virgl-gl-skips.txt", + "../src/gallium/drivers/virgl/ci/virgl-gles-fails.txt", + + "../src/gallium/drivers/zink/driinfo_zink.h", + "../src/gallium/drivers/zink/meson.build", + "../src/gallium/drivers/zink/nir_lower_dynamic_bo_access.c", + "../src/gallium/drivers/zink/zink_batch.c", + "../src/gallium/drivers/zink/zink_batch.h", + "../src/gallium/drivers/zink/zink_blit.c", + "../src/gallium/drivers/zink/zink_bo.c", + "../src/gallium/drivers/zink/zink_bo.h", + "../src/gallium/drivers/zink/zink_clear.c", + "../src/gallium/drivers/zink/zink_clear.h", + "../src/gallium/drivers/zink/zink_compiler.c", + "../src/gallium/drivers/zink/zink_compiler.h", + "../src/gallium/drivers/zink/zink_context.c", + "../src/gallium/drivers/zink/zink_context.h", + "../src/gallium/drivers/zink/zink_descriptors.c", + "../src/gallium/drivers/zink/zink_descriptors.h", + "../src/gallium/drivers/zink/zink_descriptors_lazy.c", + "../src/gallium/drivers/zink/zink_device_info.py", + "../src/gallium/drivers/zink/zink_draw.cpp", + "../src/gallium/drivers/zink/zink_extensions.py", + "../src/gallium/drivers/zink/zink_fence.c", + "../src/gallium/drivers/zink/zink_fence.h", + "../src/gallium/drivers/zink/zink_format.c", + "../src/gallium/drivers/zink/zink_format.h", + "../src/gallium/drivers/zink/zink_format_test.c", + "../src/gallium/drivers/zink/zink_framebuffer.c", + "../src/gallium/drivers/zink/zink_framebuffer.h", + "../src/gallium/drivers/zink/zink_helpers.h", + "../src/gallium/drivers/zink/zink_inlines.h", + "../src/gallium/drivers/zink/zink_instance.py", + "../src/gallium/drivers/zink/zink_pipeline.c", + "../src/gallium/drivers/zink/zink_pipeline.h", + "../src/gallium/drivers/zink/zink_program.c", + "../src/gallium/drivers/zink/zink_program.h", + "../src/gallium/drivers/zink/zink_public.h", + "../src/gallium/drivers/zink/zink_query.c", + "../src/gallium/drivers/zink/zink_query.h", + "../src/gallium/drivers/zink/zink_render_pass.c", + "../src/gallium/drivers/zink/zink_render_pass.h", + "../src/gallium/drivers/zink/zink_resource.c", + "../src/gallium/drivers/zink/zink_resource.h", + "../src/gallium/drivers/zink/zink_screen.c", + "../src/gallium/drivers/zink/zink_screen.h", + "../src/gallium/drivers/zink/zink_shader_keys.h", + "../src/gallium/drivers/zink/zink_state.c", + "../src/gallium/drivers/zink/zink_state.h", + "../src/gallium/drivers/zink/zink_surface.c", + "../src/gallium/drivers/zink/zink_surface.h", + + "../src/gallium/drivers/zink/ci/deqp-zink-lvp.toml", + "../src/gallium/drivers/zink/ci/gitlab-ci.yml", + "../src/gallium/drivers/zink/ci/zink-lvp-fails.txt", + "../src/gallium/drivers/zink/ci/zink-lvp-flakes.txt", + "../src/gallium/drivers/zink/ci/zink-lvp-skips.txt", + + "../src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c", + "../src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.h", + "../src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c", + "../src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h", + "../src/gallium/drivers/zink/nir_to_spirv/zink_nir_algebraic.py", + + "../src/gallium/frontends/clover/meson.build", + + "../src/gallium/frontends/clover/api/context.cpp", + "../src/gallium/frontends/clover/api/device.cpp", + "../src/gallium/frontends/clover/api/dispatch.cpp", + "../src/gallium/frontends/clover/api/dispatch.hpp", + "../src/gallium/frontends/clover/api/event.cpp", + "../src/gallium/frontends/clover/api/interop.cpp", + "../src/gallium/frontends/clover/api/invalid.cpp", + "../src/gallium/frontends/clover/api/kernel.cpp", + "../src/gallium/frontends/clover/api/memory.cpp", + "../src/gallium/frontends/clover/api/platform.cpp", + "../src/gallium/frontends/clover/api/program.cpp", + "../src/gallium/frontends/clover/api/queue.cpp", + "../src/gallium/frontends/clover/api/sampler.cpp", + "../src/gallium/frontends/clover/api/transfer.cpp", + "../src/gallium/frontends/clover/api/util.hpp", + + "../src/gallium/frontends/clover/core/binary.cpp", + "../src/gallium/frontends/clover/core/binary.hpp", + "../src/gallium/frontends/clover/core/compiler.hpp", + "../src/gallium/frontends/clover/core/context.cpp", + "../src/gallium/frontends/clover/core/context.hpp", + "../src/gallium/frontends/clover/core/device.cpp", + "../src/gallium/frontends/clover/core/device.hpp", + "../src/gallium/frontends/clover/core/error.hpp", + "../src/gallium/frontends/clover/core/event.cpp", + "../src/gallium/frontends/clover/core/event.hpp", + "../src/gallium/frontends/clover/core/format.cpp", + "../src/gallium/frontends/clover/core/format.hpp", + "../src/gallium/frontends/clover/core/kernel.cpp", + "../src/gallium/frontends/clover/core/kernel.hpp", + "../src/gallium/frontends/clover/core/memory.cpp", + "../src/gallium/frontends/clover/core/memory.hpp", + "../src/gallium/frontends/clover/core/object.hpp", + "../src/gallium/frontends/clover/core/platform.cpp", + "../src/gallium/frontends/clover/core/platform.hpp", + "../src/gallium/frontends/clover/core/printf.cpp", + "../src/gallium/frontends/clover/core/printf.hpp", + "../src/gallium/frontends/clover/core/program.cpp", + "../src/gallium/frontends/clover/core/program.hpp", + "../src/gallium/frontends/clover/core/property.hpp", + "../src/gallium/frontends/clover/core/queue.cpp", + "../src/gallium/frontends/clover/core/queue.hpp", + "../src/gallium/frontends/clover/core/resource.cpp", + "../src/gallium/frontends/clover/core/resource.hpp", + "../src/gallium/frontends/clover/core/sampler.cpp", + "../src/gallium/frontends/clover/core/sampler.hpp", + "../src/gallium/frontends/clover/core/timestamp.cpp", + "../src/gallium/frontends/clover/core/timestamp.hpp", + + "../src/gallium/frontends/clover/llvm/codegen.hpp", + "../src/gallium/frontends/clover/llvm/compat.hpp", + "../src/gallium/frontends/clover/llvm/invocation.cpp", + "../src/gallium/frontends/clover/llvm/invocation.hpp", + "../src/gallium/frontends/clover/llvm/metadata.hpp", + "../src/gallium/frontends/clover/llvm/util.hpp", + + "../src/gallium/frontends/clover/llvm/codegen/bitcode.cpp", + "../src/gallium/frontends/clover/llvm/codegen/common.cpp", + "../src/gallium/frontends/clover/llvm/codegen/native.cpp", + + "../src/gallium/frontends/clover/nir/invocation.cpp", + "../src/gallium/frontends/clover/nir/invocation.hpp", + + "../src/gallium/frontends/clover/spirv/invocation.cpp", + "../src/gallium/frontends/clover/spirv/invocation.hpp", + + "../src/gallium/frontends/clover/util/adaptor.hpp", + "../src/gallium/frontends/clover/util/algebra.hpp", + "../src/gallium/frontends/clover/util/algorithm.hpp", + "../src/gallium/frontends/clover/util/compat.hpp", + "../src/gallium/frontends/clover/util/factor.hpp", + "../src/gallium/frontends/clover/util/functional.hpp", + "../src/gallium/frontends/clover/util/lazy.hpp", + "../src/gallium/frontends/clover/util/pointer.hpp", + "../src/gallium/frontends/clover/util/range.hpp", + "../src/gallium/frontends/clover/util/tuple.hpp", + + "../src/gallium/frontends/d3d10umd/Adapter.cpp", + "../src/gallium/frontends/d3d10umd/D3DKMT.cpp", + "../src/gallium/frontends/d3d10umd/Debug.cpp", + "../src/gallium/frontends/d3d10umd/Debug.h", + "../src/gallium/frontends/d3d10umd/Device.cpp", + "../src/gallium/frontends/d3d10umd/Device.h", + "../src/gallium/frontends/d3d10umd/Draw.cpp", + "../src/gallium/frontends/d3d10umd/Draw.h", + "../src/gallium/frontends/d3d10umd/DriverIncludes.h", + "../src/gallium/frontends/d3d10umd/Dxgi.cpp", + "../src/gallium/frontends/d3d10umd/Dxgi.h", + "../src/gallium/frontends/d3d10umd/Format.cpp", + "../src/gallium/frontends/d3d10umd/Format.h", + "../src/gallium/frontends/d3d10umd/InputAssembly.cpp", + "../src/gallium/frontends/d3d10umd/InputAssembly.h", + "../src/gallium/frontends/d3d10umd/OutputMerger.cpp", + "../src/gallium/frontends/d3d10umd/OutputMerger.h", + "../src/gallium/frontends/d3d10umd/Query.cpp", + "../src/gallium/frontends/d3d10umd/Query.h", + "../src/gallium/frontends/d3d10umd/Rasterizer.cpp", + "../src/gallium/frontends/d3d10umd/Rasterizer.h", + "../src/gallium/frontends/d3d10umd/Resource.cpp", + "../src/gallium/frontends/d3d10umd/Resource.h", + "../src/gallium/frontends/d3d10umd/Shader.cpp", + "../src/gallium/frontends/d3d10umd/Shader.h", + "../src/gallium/frontends/d3d10umd/ShaderDump.cpp", + "../src/gallium/frontends/d3d10umd/ShaderDump.h", + "../src/gallium/frontends/d3d10umd/ShaderParse.c", + "../src/gallium/frontends/d3d10umd/ShaderParse.h", + "../src/gallium/frontends/d3d10umd/ShaderTGSI.c", + "../src/gallium/frontends/d3d10umd/State.h", + "../src/gallium/frontends/d3d10umd/d3d10_sw.def", + "../src/gallium/frontends/d3d10umd/meson.build", + + "../src/gallium/frontends/dri/dri2.c", + "../src/gallium/frontends/dri/dri_context.c", + "../src/gallium/frontends/dri/dri_context.h", + "../src/gallium/frontends/dri/dri_drawable.c", + "../src/gallium/frontends/dri/dri_drawable.h", + "../src/gallium/frontends/dri/dri_helpers.c", + "../src/gallium/frontends/dri/dri_helpers.h", + "../src/gallium/frontends/dri/dri_query_renderer.c", + "../src/gallium/frontends/dri/dri_query_renderer.h", + "../src/gallium/frontends/dri/dri_screen.c", + "../src/gallium/frontends/dri/dri_screen.h", + "../src/gallium/frontends/dri/drisw.c", + "../src/gallium/frontends/dri/meson.build", + + "../src/gallium/frontends/glx/xlib/glx_api.c", + "../src/gallium/frontends/glx/xlib/glx_getproc.c", + "../src/gallium/frontends/glx/xlib/glx_usefont.c", + "../src/gallium/frontends/glx/xlib/meson.build", + "../src/gallium/frontends/glx/xlib/xm_api.c", + "../src/gallium/frontends/glx/xlib/xm_api.h", + "../src/gallium/frontends/glx/xlib/xm_public.h", + "../src/gallium/frontends/glx/xlib/xm_st.c", + "../src/gallium/frontends/glx/xlib/xm_st.h", + + "../src/gallium/frontends/hgl/bitmap_wrapper.cpp", + "../src/gallium/frontends/hgl/bitmap_wrapper.h", + "../src/gallium/frontends/hgl/hgl.c", + "../src/gallium/frontends/hgl/hgl_context.h", + "../src/gallium/frontends/hgl/meson.build", + + "../src/gallium/frontends/lavapipe/lvp_cmd_buffer.c", + "../src/gallium/frontends/lavapipe/lvp_conv.h", + "../src/gallium/frontends/lavapipe/lvp_descriptor_set.c", + "../src/gallium/frontends/lavapipe/lvp_device.c", + "../src/gallium/frontends/lavapipe/lvp_execute.c", + "../src/gallium/frontends/lavapipe/lvp_formats.c", + "../src/gallium/frontends/lavapipe/lvp_image.c", + "../src/gallium/frontends/lavapipe/lvp_lower_input_attachments.c", + "../src/gallium/frontends/lavapipe/lvp_lower_vulkan_resource.c", + "../src/gallium/frontends/lavapipe/lvp_lower_vulkan_resource.h", + "../src/gallium/frontends/lavapipe/lvp_pass.c", + "../src/gallium/frontends/lavapipe/lvp_pipeline.c", + "../src/gallium/frontends/lavapipe/lvp_pipeline_cache.c", + "../src/gallium/frontends/lavapipe/lvp_private.h", + "../src/gallium/frontends/lavapipe/lvp_query.c", + "../src/gallium/frontends/lavapipe/lvp_util.c", + "../src/gallium/frontends/lavapipe/lvp_wsi.c", + "../src/gallium/frontends/lavapipe/lvp_wsi.h", + "../src/gallium/frontends/lavapipe/meson.build", + + "../src/gallium/frontends/lavapipe/ci/gitlab-ci.yml", + "../src/gallium/frontends/lavapipe/ci/lvp-asan-fails.txt", + "../src/gallium/frontends/lavapipe/ci/lvp-asan-skips.txt", + "../src/gallium/frontends/lavapipe/ci/lvp-fails.txt", + "../src/gallium/frontends/lavapipe/ci/lvp-flakes.txt", + "../src/gallium/frontends/lavapipe/ci/lvp-skips.txt", + + "../src/gallium/frontends/nine/adapter9.c", + "../src/gallium/frontends/nine/adapter9.h", + "../src/gallium/frontends/nine/authenticatedchannel9.c", + "../src/gallium/frontends/nine/authenticatedchannel9.h", + "../src/gallium/frontends/nine/basetexture9.c", + "../src/gallium/frontends/nine/basetexture9.h", + "../src/gallium/frontends/nine/buffer9.c", + "../src/gallium/frontends/nine/buffer9.h", + "../src/gallium/frontends/nine/cryptosession9.c", + "../src/gallium/frontends/nine/cryptosession9.h", + "../src/gallium/frontends/nine/cubetexture9.c", + "../src/gallium/frontends/nine/cubetexture9.h", + "../src/gallium/frontends/nine/device9.c", + "../src/gallium/frontends/nine/device9.h", + "../src/gallium/frontends/nine/device9ex.c", + "../src/gallium/frontends/nine/device9ex.h", + "../src/gallium/frontends/nine/device9video.c", + "../src/gallium/frontends/nine/device9video.h", + "../src/gallium/frontends/nine/guid.c", + "../src/gallium/frontends/nine/guid.h", + "../src/gallium/frontends/nine/indexbuffer9.c", + "../src/gallium/frontends/nine/indexbuffer9.h", + "../src/gallium/frontends/nine/iunknown.c", + "../src/gallium/frontends/nine/iunknown.h", + "../src/gallium/frontends/nine/meson.build", + "../src/gallium/frontends/nine/nine_buffer_upload.c", + "../src/gallium/frontends/nine/nine_buffer_upload.h", + "../src/gallium/frontends/nine/nine_csmt_helper.h", + "../src/gallium/frontends/nine/nine_debug.c", + "../src/gallium/frontends/nine/nine_debug.h", + "../src/gallium/frontends/nine/nine_defines.h", + "../src/gallium/frontends/nine/nine_dump.c", + "../src/gallium/frontends/nine/nine_dump.h", + "../src/gallium/frontends/nine/nine_ff.c", + "../src/gallium/frontends/nine/nine_ff.h", + "../src/gallium/frontends/nine/nine_flags.h", + "../src/gallium/frontends/nine/nine_helpers.c", + "../src/gallium/frontends/nine/nine_helpers.h", + "../src/gallium/frontends/nine/nine_limits.h", + "../src/gallium/frontends/nine/nine_lock.c", + "../src/gallium/frontends/nine/nine_lock.h", + "../src/gallium/frontends/nine/nine_memory_helper.c", + "../src/gallium/frontends/nine/nine_memory_helper.h", + "../src/gallium/frontends/nine/nine_pdata.h", + "../src/gallium/frontends/nine/nine_pipe.c", + "../src/gallium/frontends/nine/nine_pipe.h", + "../src/gallium/frontends/nine/nine_queue.c", + "../src/gallium/frontends/nine/nine_queue.h", + "../src/gallium/frontends/nine/nine_quirk.c", + "../src/gallium/frontends/nine/nine_quirk.h", + "../src/gallium/frontends/nine/nine_shader.c", + "../src/gallium/frontends/nine/nine_shader.h", + "../src/gallium/frontends/nine/nine_state.c", + "../src/gallium/frontends/nine/nine_state.h", + "../src/gallium/frontends/nine/nineexoverlayextension.c", + "../src/gallium/frontends/nine/nineexoverlayextension.h", + "../src/gallium/frontends/nine/pixelshader9.c", + "../src/gallium/frontends/nine/pixelshader9.h", + "../src/gallium/frontends/nine/query9.c", + "../src/gallium/frontends/nine/query9.h", + "../src/gallium/frontends/nine/resource9.c", + "../src/gallium/frontends/nine/resource9.h", + "../src/gallium/frontends/nine/stateblock9.c", + "../src/gallium/frontends/nine/stateblock9.h", + "../src/gallium/frontends/nine/surface9.c", + "../src/gallium/frontends/nine/surface9.h", + "../src/gallium/frontends/nine/swapchain9.c", + "../src/gallium/frontends/nine/swapchain9.h", + "../src/gallium/frontends/nine/swapchain9ex.c", + "../src/gallium/frontends/nine/swapchain9ex.h", + "../src/gallium/frontends/nine/texture9.c", + "../src/gallium/frontends/nine/texture9.h", + "../src/gallium/frontends/nine/threadpool.c", + "../src/gallium/frontends/nine/threadpool.h", + "../src/gallium/frontends/nine/vertexbuffer9.c", + "../src/gallium/frontends/nine/vertexbuffer9.h", + "../src/gallium/frontends/nine/vertexdeclaration9.c", + "../src/gallium/frontends/nine/vertexdeclaration9.h", + "../src/gallium/frontends/nine/vertexshader9.c", + "../src/gallium/frontends/nine/vertexshader9.h", + "../src/gallium/frontends/nine/volume9.c", + "../src/gallium/frontends/nine/volume9.h", + "../src/gallium/frontends/nine/volumetexture9.c", + "../src/gallium/frontends/nine/volumetexture9.h", + + "../src/gallium/frontends/omx/meson.build", + "../src/gallium/frontends/omx/vid_dec_common.c", + "../src/gallium/frontends/omx/vid_dec_common.h", + "../src/gallium/frontends/omx/vid_dec_h264_common.c", + "../src/gallium/frontends/omx/vid_dec_h264_common.h", + "../src/gallium/frontends/omx/vid_enc_common.c", + "../src/gallium/frontends/omx/vid_enc_common.h", + "../src/gallium/frontends/omx/vid_omx_common.c", + "../src/gallium/frontends/omx/vid_omx_common.h", + + "../src/gallium/frontends/omx/bellagio/entrypoint.c", + "../src/gallium/frontends/omx/bellagio/entrypoint.h", + "../src/gallium/frontends/omx/bellagio/vid_dec.c", + "../src/gallium/frontends/omx/bellagio/vid_dec.h", + "../src/gallium/frontends/omx/bellagio/vid_dec_av1.c", + "../src/gallium/frontends/omx/bellagio/vid_dec_av1.h", + "../src/gallium/frontends/omx/bellagio/vid_dec_h264.c", + "../src/gallium/frontends/omx/bellagio/vid_dec_h265.c", + "../src/gallium/frontends/omx/bellagio/vid_dec_mpeg12.c", + "../src/gallium/frontends/omx/bellagio/vid_enc.c", + "../src/gallium/frontends/omx/bellagio/vid_enc.h", + + "../src/gallium/frontends/omx/tizonia/entrypoint.c", + "../src/gallium/frontends/omx/tizonia/entrypoint.h", + "../src/gallium/frontends/omx/tizonia/h264d.c", + "../src/gallium/frontends/omx/tizonia/h264d.h", + "../src/gallium/frontends/omx/tizonia/h264dinport.c", + "../src/gallium/frontends/omx/tizonia/h264dinport.h", + "../src/gallium/frontends/omx/tizonia/h264dinport_decls.h", + "../src/gallium/frontends/omx/tizonia/h264dprc.c", + "../src/gallium/frontends/omx/tizonia/h264dprc.h", + "../src/gallium/frontends/omx/tizonia/h264e.c", + "../src/gallium/frontends/omx/tizonia/h264e.h", + "../src/gallium/frontends/omx/tizonia/h264einport.c", + "../src/gallium/frontends/omx/tizonia/h264einport.h", + "../src/gallium/frontends/omx/tizonia/h264einport_decls.h", + "../src/gallium/frontends/omx/tizonia/h264eoutport.c", + "../src/gallium/frontends/omx/tizonia/h264eoutport.h", + "../src/gallium/frontends/omx/tizonia/h264eoutport_decls.h", + "../src/gallium/frontends/omx/tizonia/h264eprc.c", + "../src/gallium/frontends/omx/tizonia/h264eprc.h", + "../src/gallium/frontends/omx/tizonia/names.h", + + "../src/gallium/frontends/osmesa/meson.build", + "../src/gallium/frontends/osmesa/osmesa.c", + + "../src/gallium/frontends/va/buffer.c", + "../src/gallium/frontends/va/config.c", + "../src/gallium/frontends/va/context.c", + "../src/gallium/frontends/va/display.c", + "../src/gallium/frontends/va/image.c", + "../src/gallium/frontends/va/meson.build", + "../src/gallium/frontends/va/picture.c", + "../src/gallium/frontends/va/picture_av1.c", + "../src/gallium/frontends/va/picture_h264.c", + "../src/gallium/frontends/va/picture_h264_enc.c", + "../src/gallium/frontends/va/picture_hevc.c", + "../src/gallium/frontends/va/picture_hevc_enc.c", + "../src/gallium/frontends/va/picture_mjpeg.c", + "../src/gallium/frontends/va/picture_mpeg12.c", + "../src/gallium/frontends/va/picture_mpeg4.c", + "../src/gallium/frontends/va/picture_vc1.c", + "../src/gallium/frontends/va/picture_vp9.c", + "../src/gallium/frontends/va/postproc.c", + "../src/gallium/frontends/va/subpicture.c", + "../src/gallium/frontends/va/surface.c", + "../src/gallium/frontends/va/va_private.h", + + "../src/gallium/frontends/vdpau/bitmap.c", + "../src/gallium/frontends/vdpau/decode.c", + "../src/gallium/frontends/vdpau/device.c", + "../src/gallium/frontends/vdpau/ftab.c", + "../src/gallium/frontends/vdpau/htab.c", + "../src/gallium/frontends/vdpau/meson.build", + "../src/gallium/frontends/vdpau/mixer.c", + "../src/gallium/frontends/vdpau/output.c", + "../src/gallium/frontends/vdpau/preemption.c", + "../src/gallium/frontends/vdpau/presentation.c", + "../src/gallium/frontends/vdpau/query.c", + "../src/gallium/frontends/vdpau/surface.c", + "../src/gallium/frontends/vdpau/vdpau_private.h", + + "../src/gallium/frontends/wgl/gldrv.h", + "../src/gallium/frontends/wgl/meson.build", + "../src/gallium/frontends/wgl/stw_context.c", + "../src/gallium/frontends/wgl/stw_context.h", + "../src/gallium/frontends/wgl/stw_device.c", + "../src/gallium/frontends/wgl/stw_device.h", + "../src/gallium/frontends/wgl/stw_ext_context.c", + "../src/gallium/frontends/wgl/stw_ext_context.h", + "../src/gallium/frontends/wgl/stw_ext_extensionsstring.c", + "../src/gallium/frontends/wgl/stw_ext_pbuffer.c", + "../src/gallium/frontends/wgl/stw_ext_pixelformat.c", + "../src/gallium/frontends/wgl/stw_ext_rendertexture.c", + "../src/gallium/frontends/wgl/stw_ext_swapinterval.c", + "../src/gallium/frontends/wgl/stw_framebuffer.c", + "../src/gallium/frontends/wgl/stw_framebuffer.h", + "../src/gallium/frontends/wgl/stw_getprocaddress.c", + "../src/gallium/frontends/wgl/stw_nopfuncs.c", + "../src/gallium/frontends/wgl/stw_nopfuncs.h", + "../src/gallium/frontends/wgl/stw_pixelformat.c", + "../src/gallium/frontends/wgl/stw_pixelformat.h", + "../src/gallium/frontends/wgl/stw_st.c", + "../src/gallium/frontends/wgl/stw_st.h", + "../src/gallium/frontends/wgl/stw_tls.c", + "../src/gallium/frontends/wgl/stw_tls.h", + "../src/gallium/frontends/wgl/stw_winsys.h", + + "../src/gallium/frontends/xa/meson.build", + "../src/gallium/frontends/xa/xa-indent.sh", + "../src/gallium/frontends/xa/xa_composite.c", + "../src/gallium/frontends/xa/xa_composite.h", + "../src/gallium/frontends/xa/xa_context.c", + "../src/gallium/frontends/xa/xa_context.h", + "../src/gallium/frontends/xa/xa_priv.h", + "../src/gallium/frontends/xa/xa_renderer.c", + "../src/gallium/frontends/xa/xa_tgsi.c", + "../src/gallium/frontends/xa/xa_tracker.c", + "../src/gallium/frontends/xa/xa_tracker.h.in", + "../src/gallium/frontends/xa/xa_yuv.c", + + "../src/gallium/frontends/xvmc/attributes.c", + "../src/gallium/frontends/xvmc/block.c", + "../src/gallium/frontends/xvmc/context.c", + "../src/gallium/frontends/xvmc/meson.build", + "../src/gallium/frontends/xvmc/subpicture.c", + "../src/gallium/frontends/xvmc/surface.c", + "../src/gallium/frontends/xvmc/xvmc_private.h", + + "../src/gallium/include/frontend/api.h", + "../src/gallium/include/frontend/drisw_api.h", + "../src/gallium/include/frontend/drm_driver.h", + "../src/gallium/include/frontend/graw.h", + "../src/gallium/include/frontend/opencl_interop.h", + "../src/gallium/include/frontend/sw_driver.h", + "../src/gallium/include/frontend/sw_winsys.h", + "../src/gallium/include/frontend/vdpau_dmabuf.h", + "../src/gallium/include/frontend/vdpau_funcs.h", + "../src/gallium/include/frontend/vdpau_interop.h", + "../src/gallium/include/frontend/winsys_handle.h", + "../src/gallium/include/frontend/xlibsw_api.h", + + "../src/gallium/include/pipe/p_compiler.h", + "../src/gallium/include/pipe/p_config.h", + "../src/gallium/include/pipe/p_context.h", + "../src/gallium/include/pipe/p_defines.h", + "../src/gallium/include/pipe/p_format.h", + "../src/gallium/include/pipe/p_screen.h", + "../src/gallium/include/pipe/p_shader_tokens.h", + "../src/gallium/include/pipe/p_state.h", + "../src/gallium/include/pipe/p_video_codec.h", + "../src/gallium/include/pipe/p_video_enums.h", + "../src/gallium/include/pipe/p_video_state.h", + + "../src/gallium/targets/dri-vdpau.dyn", + + "../src/gallium/targets/d3d10sw/d3d10_gdi.c", + "../src/gallium/targets/d3d10sw/meson.build", + + "../src/gallium/targets/d3dadapter9/d3dadapter9.sym", + "../src/gallium/targets/d3dadapter9/description.c", + "../src/gallium/targets/d3dadapter9/drm.c", + "../src/gallium/targets/d3dadapter9/getproc.c", + "../src/gallium/targets/d3dadapter9/meson.build", + + "../src/gallium/targets/dri/dri.sym", + "../src/gallium/targets/dri/meson.build", + "../src/gallium/targets/dri/target.c", + + "../src/gallium/targets/graw-gdi/graw_gdi.c", + "../src/gallium/targets/graw-gdi/meson.build", + + "../src/gallium/targets/graw-null/graw_null.c", + "../src/gallium/targets/graw-null/graw_util.c", + "../src/gallium/targets/graw-null/meson.build", + + "../src/gallium/targets/graw-xlib/graw_xlib.c", + "../src/gallium/targets/graw-xlib/meson.build", + + "../src/gallium/targets/haiku-softpipe/GalliumContext.cpp", + "../src/gallium/targets/haiku-softpipe/GalliumContext.h", + "../src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp", + "../src/gallium/targets/haiku-softpipe/SoftwareRenderer.h", + "../src/gallium/targets/haiku-softpipe/SoftwareRenderer.rdef", + "../src/gallium/targets/haiku-softpipe/meson.build", + + "../src/gallium/targets/lavapipe/meson.build", + "../src/gallium/targets/lavapipe/target.c", + "../src/gallium/targets/lavapipe/vulkan_lvp.def", + "../src/gallium/targets/lavapipe/vulkan_lvp.mingw.def", + + "../src/gallium/targets/libgl-d3d12/libgl_d3d12.c", + "../src/gallium/targets/libgl-d3d12/meson.build", + "../src/gallium/targets/libgl-d3d12/openglon12.def", + + "../src/gallium/targets/libgl-gdi/meson.build", + "../src/gallium/targets/libgl-gdi/opengl32.def", + "../src/gallium/targets/libgl-gdi/opengl32.mingw.def", + "../src/gallium/targets/libgl-gdi/stw_wgl.c", + "../src/gallium/targets/libgl-gdi/stw_wgl.h", + + "../src/gallium/targets/libgl-xlib/libgl-xlib.sym", + "../src/gallium/targets/libgl-xlib/meson.build", + "../src/gallium/targets/libgl-xlib/xlib.c", + + "../src/gallium/targets/omx/meson.build", + "../src/gallium/targets/omx/omx.sym", + "../src/gallium/targets/omx/target.c", + + "../src/gallium/targets/opencl/MesaOpenCL.def", + "../src/gallium/targets/opencl/OpenCL.def", + "../src/gallium/targets/opencl/mesa.icd.in", + "../src/gallium/targets/opencl/meson.build", + "../src/gallium/targets/opencl/opencl.sym", + + "../src/gallium/targets/osmesa/meson.build", + "../src/gallium/targets/osmesa/osmesa.def", + "../src/gallium/targets/osmesa/osmesa.mingw.def", + "../src/gallium/targets/osmesa/osmesa.sym", + "../src/gallium/targets/osmesa/target.c", + + "../src/gallium/targets/pipe-loader/meson.build", + "../src/gallium/targets/pipe-loader/pipe.sym", + "../src/gallium/targets/pipe-loader/pipe_crocus.c", + "../src/gallium/targets/pipe-loader/pipe_i915.c", + "../src/gallium/targets/pipe-loader/pipe_iris.c", + "../src/gallium/targets/pipe-loader/pipe_kmsro.c", + "../src/gallium/targets/pipe-loader/pipe_msm.c", + "../src/gallium/targets/pipe-loader/pipe_nouveau.c", + "../src/gallium/targets/pipe-loader/pipe_r300.c", + "../src/gallium/targets/pipe-loader/pipe_r600.c", + "../src/gallium/targets/pipe-loader/pipe_radeonsi.c", + "../src/gallium/targets/pipe-loader/pipe_swrast.c", + "../src/gallium/targets/pipe-loader/pipe_vmwgfx.c", + + "../src/gallium/targets/va/meson.build", + "../src/gallium/targets/va/target.c", + "../src/gallium/targets/va/va.sym", + + "../src/gallium/targets/vdpau/meson.build", + "../src/gallium/targets/vdpau/target.c", + "../src/gallium/targets/vdpau/vdpau.sym", + + "../src/gallium/targets/wgl/gallium_wgl.def", + "../src/gallium/targets/wgl/gallium_wgl.mingw.def", + "../src/gallium/targets/wgl/meson.build", + "../src/gallium/targets/wgl/wgl.c", + + "../src/gallium/targets/xa/meson.build", + "../src/gallium/targets/xa/target.c", + "../src/gallium/targets/xa/xa.sym", + + "../src/gallium/targets/xvmc/meson.build", + "../src/gallium/targets/xvmc/target.c", + "../src/gallium/targets/xvmc/xvmc.sym", + + "../src/gallium/tools/addr2line.sh", + + "../src/gallium/tools/trace/diff_state.py", + "../src/gallium/tools/trace/dump.py", + "../src/gallium/tools/trace/dump_state.py", + "../src/gallium/tools/trace/format.py", + "../src/gallium/tools/trace/model.py", + "../src/gallium/tools/trace/parse.py", + "../src/gallium/tools/trace/tracediff.sh", + + "../src/gallium/winsys/amdgpu/drm/amdgpu_bo.c", + "../src/gallium/winsys/amdgpu/drm/amdgpu_bo.h", + "../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c", + "../src/gallium/winsys/amdgpu/drm/amdgpu_cs.h", + "../src/gallium/winsys/amdgpu/drm/amdgpu_public.h", + "../src/gallium/winsys/amdgpu/drm/amdgpu_surface.c", + "../src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c", + "../src/gallium/winsys/amdgpu/drm/amdgpu_winsys.h", + "../src/gallium/winsys/amdgpu/drm/meson.build", + + "../src/gallium/winsys/crocus/drm/crocus_drm_public.h", + "../src/gallium/winsys/crocus/drm/crocus_drm_winsys.c", + "../src/gallium/winsys/crocus/drm/meson.build", + + "../src/gallium/winsys/d3d12/wgl/d3d12_wgl_framebuffer.cpp", + "../src/gallium/winsys/d3d12/wgl/d3d12_wgl_public.h", + "../src/gallium/winsys/d3d12/wgl/d3d12_wgl_winsys.c", + "../src/gallium/winsys/d3d12/wgl/meson.build", + + "../src/gallium/winsys/etnaviv/drm/etnaviv_drm_public.h", + "../src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c", + "../src/gallium/winsys/etnaviv/drm/meson.build", + + "../src/gallium/winsys/freedreno/drm/freedreno_drm_public.h", + "../src/gallium/winsys/freedreno/drm/freedreno_drm_winsys.c", + "../src/gallium/winsys/freedreno/drm/meson.build", + + "../src/gallium/winsys/i915/drm/i915_drm_batchbuffer.c", + "../src/gallium/winsys/i915/drm/i915_drm_buffer.c", + "../src/gallium/winsys/i915/drm/i915_drm_fence.c", + "../src/gallium/winsys/i915/drm/i915_drm_public.h", + "../src/gallium/winsys/i915/drm/i915_drm_winsys.c", + "../src/gallium/winsys/i915/drm/i915_drm_winsys.h", + "../src/gallium/winsys/i915/drm/meson.build", + + "../src/gallium/winsys/iris/drm/iris_drm_public.h", + "../src/gallium/winsys/iris/drm/iris_drm_winsys.c", + "../src/gallium/winsys/iris/drm/meson.build", + + "../src/gallium/winsys/kmsro/drm/kmsro_drm_public.h", + "../src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c", + "../src/gallium/winsys/kmsro/drm/meson.build", + + "../src/gallium/winsys/lima/drm/lima_drm_public.h", + "../src/gallium/winsys/lima/drm/lima_drm_winsys.c", + "../src/gallium/winsys/lima/drm/meson.build", + + "../src/gallium/winsys/nouveau/drm/meson.build", + "../src/gallium/winsys/nouveau/drm/nouveau_drm_public.h", + "../src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c", + + "../src/gallium/winsys/panfrost/drm/meson.build", + "../src/gallium/winsys/panfrost/drm/panfrost_drm_public.h", + "../src/gallium/winsys/panfrost/drm/panfrost_drm_winsys.c", + + "../src/gallium/winsys/radeon/drm/meson.build", + "../src/gallium/winsys/radeon/drm/radeon_drm_bo.c", + "../src/gallium/winsys/radeon/drm/radeon_drm_bo.h", + "../src/gallium/winsys/radeon/drm/radeon_drm_cs.c", + "../src/gallium/winsys/radeon/drm/radeon_drm_cs.h", + "../src/gallium/winsys/radeon/drm/radeon_drm_public.h", + "../src/gallium/winsys/radeon/drm/radeon_drm_surface.c", + "../src/gallium/winsys/radeon/drm/radeon_drm_winsys.c", + "../src/gallium/winsys/radeon/drm/radeon_drm_winsys.h", + + "../src/gallium/winsys/svga/drm/meson.build", + "../src/gallium/winsys/svga/drm/pb_buffer_simple_fenced.c", + "../src/gallium/winsys/svga/drm/svga_drm_public.h", + "../src/gallium/winsys/svga/drm/vmw_buffer.c", + "../src/gallium/winsys/svga/drm/vmw_buffer.h", + "../src/gallium/winsys/svga/drm/vmw_context.c", + "../src/gallium/winsys/svga/drm/vmw_context.h", + "../src/gallium/winsys/svga/drm/vmw_fence.c", + "../src/gallium/winsys/svga/drm/vmw_fence.h", + "../src/gallium/winsys/svga/drm/vmw_msg.c", + "../src/gallium/winsys/svga/drm/vmw_msg.h", + "../src/gallium/winsys/svga/drm/vmw_query.c", + "../src/gallium/winsys/svga/drm/vmw_query.h", + "../src/gallium/winsys/svga/drm/vmw_screen.c", + "../src/gallium/winsys/svga/drm/vmw_screen.h", + "../src/gallium/winsys/svga/drm/vmw_screen_dri.c", + "../src/gallium/winsys/svga/drm/vmw_screen_ioctl.c", + "../src/gallium/winsys/svga/drm/vmw_screen_pools.c", + "../src/gallium/winsys/svga/drm/vmw_screen_svga.c", + "../src/gallium/winsys/svga/drm/vmw_shader.c", + "../src/gallium/winsys/svga/drm/vmw_shader.h", + "../src/gallium/winsys/svga/drm/vmw_surface.c", + "../src/gallium/winsys/svga/drm/vmw_surface.h", + "../src/gallium/winsys/svga/drm/vmwgfx_drm.h", + + "../src/gallium/winsys/sw/dri/dri_sw_winsys.c", + "../src/gallium/winsys/sw/dri/dri_sw_winsys.h", + "../src/gallium/winsys/sw/dri/meson.build", + + "../src/gallium/winsys/sw/gdi/gdi_sw_winsys.c", + "../src/gallium/winsys/sw/gdi/gdi_sw_winsys.h", + "../src/gallium/winsys/sw/gdi/meson.build", + + "../src/gallium/winsys/sw/hgl/hgl_sw_winsys.cpp", + "../src/gallium/winsys/sw/hgl/hgl_sw_winsys.h", + "../src/gallium/winsys/sw/hgl/meson.build", + + "../src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.c", + "../src/gallium/winsys/sw/kms-dri/kms_dri_sw_winsys.h", + "../src/gallium/winsys/sw/kms-dri/meson.build", + + "../src/gallium/winsys/sw/null/meson.build", + "../src/gallium/winsys/sw/null/null_sw_winsys.c", + "../src/gallium/winsys/sw/null/null_sw_winsys.h", + + "../src/gallium/winsys/sw/wrapper/meson.build", + "../src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.c", + "../src/gallium/winsys/sw/wrapper/wrapper_sw_winsys.h", + + "../src/gallium/winsys/sw/xlib/meson.build", + "../src/gallium/winsys/sw/xlib/xlib_sw_winsys.c", + "../src/gallium/winsys/sw/xlib/xlib_sw_winsys.h", + + "../src/gallium/winsys/tegra/drm/meson.build", + "../src/gallium/winsys/tegra/drm/tegra_drm_public.h", + "../src/gallium/winsys/tegra/drm/tegra_drm_winsys.c", + + "../src/gallium/winsys/v3d/drm/meson.build", + "../src/gallium/winsys/v3d/drm/v3d_drm_public.h", + "../src/gallium/winsys/v3d/drm/v3d_drm_winsys.c", + + "../src/gallium/winsys/vc4/drm/meson.build", + "../src/gallium/winsys/vc4/drm/vc4_drm_public.h", + "../src/gallium/winsys/vc4/drm/vc4_drm_winsys.c", + + "../src/gallium/winsys/virgl/common/meson.build", + "../src/gallium/winsys/virgl/common/virgl_resource_cache.c", + "../src/gallium/winsys/virgl/common/virgl_resource_cache.h", + + "../src/gallium/winsys/virgl/drm/meson.build", + "../src/gallium/winsys/virgl/drm/virgl_drm_public.h", + "../src/gallium/winsys/virgl/drm/virgl_drm_winsys.c", + "../src/gallium/winsys/virgl/drm/virgl_drm_winsys.h", + + "../src/gallium/winsys/virgl/vtest/meson.build", + "../src/gallium/winsys/virgl/vtest/virgl_vtest_public.h", + "../src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c", + "../src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c", + "../src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.h", + + "../src/gbm/gbm-symbols.txt", + "../src/gbm/meson.build", + + "../src/gbm/backends/dri/gbm_dri.c", + "../src/gbm/backends/dri/gbm_driint.h", + + "../src/gbm/main/backend.c", + "../src/gbm/main/backend.h", + "../src/gbm/main/gbm.c", + "../src/gbm/main/gbm.h", + "../src/gbm/main/gbm_abi_check.c", + "../src/gbm/main/gbm_backend_abi.h", + "../src/gbm/main/gbmint.h", + + "../src/getopt/getopt.h", + "../src/getopt/getopt_long.c", + "../src/getopt/meson.build", + + "../src/glx/applegl_glx.c", + "../src/glx/clientattrib.c", + "../src/glx/clientinfo.c", + "../src/glx/compsize.c", + "../src/glx/create_context.c", + "../src/glx/dri2.c", + "../src/glx/dri2.h", + "../src/glx/dri2_glx.c", + "../src/glx/dri2_priv.h", + "../src/glx/dri3_glx.c", + "../src/glx/dri3_priv.h", + "../src/glx/dri_common.c", + "../src/glx/dri_common.h", + "../src/glx/dri_common_interop.c", + "../src/glx/dri_common_query_renderer.c", + "../src/glx/drisw_glx.c", + "../src/glx/drisw_priv.h", + "../src/glx/driwindows_glx.c", + "../src/glx/eval.c", + "../src/glx/g_glxglvnddispatchfuncs.c", + "../src/glx/g_glxglvnddispatchindices.h", + "../src/glx/glx_error.c", + "../src/glx/glx_error.h", + "../src/glx/glx_pbuffer.c", + "../src/glx/glx_query.c", + "../src/glx/glxclient.h", + "../src/glx/glxcmds.c", + "../src/glx/glxconfig.c", + "../src/glx/glxconfig.h", + "../src/glx/glxcurrent.c", + "../src/glx/glxext.c", + "../src/glx/glxextensions.c", + "../src/glx/glxextensions.h", + "../src/glx/glxglvnd.c", + "../src/glx/glxglvnd.h", + "../src/glx/glxglvnddispatchfuncs.h", + "../src/glx/glxhash.c", + "../src/glx/glxhash.h", + "../src/glx/indirect_glx.c", + "../src/glx/indirect_init.h", + "../src/glx/indirect_texture_compression.c", + "../src/glx/indirect_transpose_matrix.c", + "../src/glx/indirect_vertex_array.c", + "../src/glx/indirect_vertex_array.h", + "../src/glx/indirect_vertex_array_priv.h", + "../src/glx/indirect_vertex_program.c", + "../src/glx/indirect_window_pos.c", + "../src/glx/meson.build", + "../src/glx/packrender.h", + "../src/glx/packsingle.h", + "../src/glx/pixel.c", + "../src/glx/pixelstore.c", + "../src/glx/query_renderer.c", + "../src/glx/render2.c", + "../src/glx/renderpix.c", + "../src/glx/single2.c", + "../src/glx/singlepix.c", + "../src/glx/vertarr.c", + "../src/glx/xfont.c", + + "../src/glx/apple/RELEASE_NOTES", + "../src/glx/apple/apple_cgl.c", + "../src/glx/apple/apple_cgl.h", + "../src/glx/apple/apple_glapi.c", + "../src/glx/apple/apple_glx.c", + "../src/glx/apple/apple_glx.h", + "../src/glx/apple/apple_glx_context.c", + "../src/glx/apple/apple_glx_context.h", + "../src/glx/apple/apple_glx_drawable.c", + "../src/glx/apple/apple_glx_drawable.h", + "../src/glx/apple/apple_glx_log.c", + "../src/glx/apple/apple_glx_log.h", + "../src/glx/apple/apple_glx_pbuffer.c", + "../src/glx/apple/apple_glx_pixmap.c", + "../src/glx/apple/apple_glx_surface.c", + "../src/glx/apple/apple_visual.c", + "../src/glx/apple/apple_visual.h", + "../src/glx/apple/apple_xgl_api.h", + "../src/glx/apple/apple_xgl_api_read.c", + "../src/glx/apple/apple_xgl_api_stereo.c", + "../src/glx/apple/apple_xgl_api_viewport.c", + "../src/glx/apple/appledri.c", + "../src/glx/apple/appledri.h", + "../src/glx/apple/appledristr.h", + "../src/glx/apple/glx_empty.c", + "../src/glx/apple/meson.build", + + "../src/glx/windows/meson.build", + "../src/glx/windows/wgl.c", + "../src/glx/windows/wgl.h", + "../src/glx/windows/windows_drawable.c", + "../src/glx/windows/windowsdriconst.h", + "../src/glx/windows/windowsdristr.h", + "../src/glx/windows/windowsgl.c", + "../src/glx/windows/windowsgl.h", + "../src/glx/windows/windowsgl_internal.h", + "../src/glx/windows/xwindowsdri.c", + "../src/glx/windows/xwindowsdri.h", + + "../src/gtest/meson.build", + + "../src/gtest/include/gtest/gtest-death-test.h", + "../src/gtest/include/gtest/gtest-matchers.h", + "../src/gtest/include/gtest/gtest-message.h", + "../src/gtest/include/gtest/gtest-param-test.h", + "../src/gtest/include/gtest/gtest-printers.h", + "../src/gtest/include/gtest/gtest-spi.h", + "../src/gtest/include/gtest/gtest-test-part.h", + "../src/gtest/include/gtest/gtest-typed-test.h", + "../src/gtest/include/gtest/gtest.h", + "../src/gtest/include/gtest/gtest_pred_impl.h", + "../src/gtest/include/gtest/gtest_prod.h", + + "../src/gtest/include/gtest/internal/gtest-death-test-internal.h", + "../src/gtest/include/gtest/internal/gtest-filepath.h", + "../src/gtest/include/gtest/internal/gtest-internal.h", + "../src/gtest/include/gtest/internal/gtest-param-util.h", + "../src/gtest/include/gtest/internal/gtest-port-arch.h", + "../src/gtest/include/gtest/internal/gtest-port.h", + "../src/gtest/include/gtest/internal/gtest-string.h", + "../src/gtest/include/gtest/internal/gtest-type-util.h", + "../src/gtest/include/gtest/internal/gtest-type-util.h.pump", + + "../src/gtest/include/gtest/internal/custom/gtest-port.h", + "../src/gtest/include/gtest/internal/custom/gtest-printers.h", + "../src/gtest/include/gtest/internal/custom/gtest.h", + + "../src/gtest/src/gtest-all.cc", + "../src/gtest/src/gtest-death-test.cc", + "../src/gtest/src/gtest-filepath.cc", + "../src/gtest/src/gtest-internal-inl.h", + "../src/gtest/src/gtest-matchers.cc", + "../src/gtest/src/gtest-port.cc", + "../src/gtest/src/gtest-printers.cc", + "../src/gtest/src/gtest-test-part.cc", + "../src/gtest/src/gtest-typed-test.cc", + "../src/gtest/src/gtest.cc", + "../src/gtest/src/gtest_main.cc", + + "../src/hgl/GLRenderer.cpp", + "../src/hgl/GLRendererRoster.cpp", + "../src/hgl/GLRendererRoster.h", + "../src/hgl/GLView.cpp", + "../src/hgl/meson.build", + + "../src/imgui/LICENSE.txt", + "../src/imgui/imconfig.h", + "../src/imgui/imgui.cpp", + "../src/imgui/imgui.h", + "../src/imgui/imgui_draw.cpp", + "../src/imgui/imgui_internal.h", + "../src/imgui/imgui_memory_editor.h", + "../src/imgui/imgui_widgets.cpp", + "../src/imgui/imstb_rectpack.h", + "../src/imgui/imstb_textedit.h", + "../src/imgui/imstb_truetype.h", + "../src/imgui/meson.build", + + "../src/intel/Makefile.perf.am", + "../src/intel/meson.build", + + "../src/intel/blorp/blorp.c", + "../src/intel/blorp/blorp.h", + "../src/intel/blorp/blorp_blit.c", + "../src/intel/blorp/blorp_clear.c", + "../src/intel/blorp/blorp_genX_exec.h", + "../src/intel/blorp/blorp_nir_builder.h", + "../src/intel/blorp/blorp_priv.h", + "../src/intel/blorp/meson.build", + + "../src/intel/common/intel_aux_map.c", + "../src/intel/common/intel_aux_map.h", + "../src/intel/common/intel_batch_decoder.c", + "../src/intel/common/intel_batch_decoder_stub.c", + "../src/intel/common/intel_buffer_alloc.h", + "../src/intel/common/intel_clflush.h", + "../src/intel/common/intel_decoder.c", + "../src/intel/common/intel_decoder.h", + "../src/intel/common/intel_defines.h", + "../src/intel/common/intel_disasm.c", + "../src/intel/common/intel_disasm.h", + "../src/intel/common/intel_gem.c", + "../src/intel/common/intel_gem.h", + "../src/intel/common/intel_guardband.h", + "../src/intel/common/intel_l3_config.c", + "../src/intel/common/intel_l3_config.h", + "../src/intel/common/intel_measure.c", + "../src/intel/common/intel_measure.h", + "../src/intel/common/intel_sample_positions.c", + "../src/intel/common/intel_sample_positions.h", + "../src/intel/common/intel_urb_config.c", + "../src/intel/common/intel_uuid.c", + "../src/intel/common/intel_uuid.h", + "../src/intel/common/meson.build", + "../src/intel/common/mi_builder.h", + + "../src/intel/compiler/brw_cfg.cpp", + "../src/intel/compiler/brw_cfg.h", + "../src/intel/compiler/brw_clip.h", + "../src/intel/compiler/brw_clip_line.c", + "../src/intel/compiler/brw_clip_point.c", + "../src/intel/compiler/brw_clip_tri.c", + "../src/intel/compiler/brw_clip_unfilled.c", + "../src/intel/compiler/brw_clip_util.c", + "../src/intel/compiler/brw_compile_clip.c", + "../src/intel/compiler/brw_compile_ff_gs.c", + "../src/intel/compiler/brw_compile_sf.c", + "../src/intel/compiler/brw_compiler.c", + "../src/intel/compiler/brw_compiler.h", + "../src/intel/compiler/brw_dead_control_flow.cpp", + "../src/intel/compiler/brw_dead_control_flow.h", + "../src/intel/compiler/brw_debug_recompile.c", + "../src/intel/compiler/brw_disasm.c", + "../src/intel/compiler/brw_disasm_info.c", + "../src/intel/compiler/brw_disasm_info.h", + "../src/intel/compiler/brw_eu.cpp", + "../src/intel/compiler/brw_eu.h", + "../src/intel/compiler/brw_eu_compact.c", + "../src/intel/compiler/brw_eu_defines.h", + "../src/intel/compiler/brw_eu_emit.c", + "../src/intel/compiler/brw_eu_util.c", + "../src/intel/compiler/brw_eu_validate.c", + "../src/intel/compiler/brw_fs.cpp", + "../src/intel/compiler/brw_fs.h", + "../src/intel/compiler/brw_fs_bank_conflicts.cpp", + "../src/intel/compiler/brw_fs_builder.h", + "../src/intel/compiler/brw_fs_cmod_propagation.cpp", + "../src/intel/compiler/brw_fs_combine_constants.cpp", + "../src/intel/compiler/brw_fs_copy_propagation.cpp", + "../src/intel/compiler/brw_fs_cse.cpp", + "../src/intel/compiler/brw_fs_dead_code_eliminate.cpp", + "../src/intel/compiler/brw_fs_generator.cpp", + "../src/intel/compiler/brw_fs_live_variables.cpp", + "../src/intel/compiler/brw_fs_live_variables.h", + "../src/intel/compiler/brw_fs_lower_pack.cpp", + "../src/intel/compiler/brw_fs_lower_regioning.cpp", + "../src/intel/compiler/brw_fs_nir.cpp", + "../src/intel/compiler/brw_fs_reg_allocate.cpp", + "../src/intel/compiler/brw_fs_register_coalesce.cpp", + "../src/intel/compiler/brw_fs_saturate_propagation.cpp", + "../src/intel/compiler/brw_fs_scoreboard.cpp", + "../src/intel/compiler/brw_fs_sel_peephole.cpp", + "../src/intel/compiler/brw_fs_validate.cpp", + "../src/intel/compiler/brw_fs_visitor.cpp", + "../src/intel/compiler/brw_gfx_ver_enum.h", + "../src/intel/compiler/brw_inst.h", + "../src/intel/compiler/brw_interpolation_map.c", + "../src/intel/compiler/brw_ir.h", + "../src/intel/compiler/brw_ir_allocator.h", + "../src/intel/compiler/brw_ir_analysis.h", + "../src/intel/compiler/brw_ir_fs.h", + "../src/intel/compiler/brw_ir_performance.cpp", + "../src/intel/compiler/brw_ir_performance.h", + "../src/intel/compiler/brw_ir_vec4.h", + "../src/intel/compiler/brw_nir.c", + "../src/intel/compiler/brw_nir.h", + "../src/intel/compiler/brw_nir_analyze_boolean_resolves.c", + "../src/intel/compiler/brw_nir_analyze_ubo_ranges.c", + "../src/intel/compiler/brw_nir_attribute_workarounds.c", + "../src/intel/compiler/brw_nir_clamp_image_1d_2d_array_sizes.c", + "../src/intel/compiler/brw_nir_lower_alpha_to_coverage.c", + "../src/intel/compiler/brw_nir_lower_conversions.c", + "../src/intel/compiler/brw_nir_lower_cs_intrinsics.c", + "../src/intel/compiler/brw_nir_lower_intersection_shader.c", + "../src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c", + "../src/intel/compiler/brw_nir_lower_rt_intrinsics.c", + "../src/intel/compiler/brw_nir_lower_scoped_barriers.c", + "../src/intel/compiler/brw_nir_lower_shader_calls.c", + "../src/intel/compiler/brw_nir_lower_storage_image.c", + "../src/intel/compiler/brw_nir_opt_peephole_ffma.c", + "../src/intel/compiler/brw_nir_rt.c", + "../src/intel/compiler/brw_nir_rt.h", + "../src/intel/compiler/brw_nir_rt_builder.h", + "../src/intel/compiler/brw_nir_tcs_workarounds.c", + "../src/intel/compiler/brw_nir_trig_workarounds.py", + "../src/intel/compiler/brw_packed_float.c", + "../src/intel/compiler/brw_predicated_break.cpp", + "../src/intel/compiler/brw_reg.h", + "../src/intel/compiler/brw_reg_type.c", + "../src/intel/compiler/brw_reg_type.h", + "../src/intel/compiler/brw_rt.h", + "../src/intel/compiler/brw_schedule_instructions.cpp", + "../src/intel/compiler/brw_shader.cpp", + "../src/intel/compiler/brw_shader.h", + "../src/intel/compiler/brw_vec4.cpp", + "../src/intel/compiler/brw_vec4.h", + "../src/intel/compiler/brw_vec4_builder.h", + "../src/intel/compiler/brw_vec4_cmod_propagation.cpp", + "../src/intel/compiler/brw_vec4_copy_propagation.cpp", + "../src/intel/compiler/brw_vec4_cse.cpp", + "../src/intel/compiler/brw_vec4_dead_code_eliminate.cpp", + "../src/intel/compiler/brw_vec4_generator.cpp", + "../src/intel/compiler/brw_vec4_gs_nir.cpp", + "../src/intel/compiler/brw_vec4_gs_visitor.cpp", + "../src/intel/compiler/brw_vec4_gs_visitor.h", + "../src/intel/compiler/brw_vec4_live_variables.cpp", + "../src/intel/compiler/brw_vec4_live_variables.h", + "../src/intel/compiler/brw_vec4_nir.cpp", + "../src/intel/compiler/brw_vec4_reg_allocate.cpp", + "../src/intel/compiler/brw_vec4_surface_builder.cpp", + "../src/intel/compiler/brw_vec4_surface_builder.h", + "../src/intel/compiler/brw_vec4_tcs.cpp", + "../src/intel/compiler/brw_vec4_tcs.h", + "../src/intel/compiler/brw_vec4_tes.cpp", + "../src/intel/compiler/brw_vec4_tes.h", + "../src/intel/compiler/brw_vec4_visitor.cpp", + "../src/intel/compiler/brw_vec4_vs.h", + "../src/intel/compiler/brw_vec4_vs_visitor.cpp", + "../src/intel/compiler/brw_vue_map.c", + "../src/intel/compiler/brw_wm_iz.cpp", + "../src/intel/compiler/gfx6_gs_visitor.cpp", + "../src/intel/compiler/gfx6_gs_visitor.h", + "../src/intel/compiler/meson.build", + + "../src/intel/dev/intel_debug.c", + "../src/intel/dev/intel_debug.h", + "../src/intel/dev/intel_dev_info.c", + "../src/intel/dev/intel_device_info.c", + "../src/intel/dev/intel_device_info.h", + "../src/intel/dev/intel_device_info_test.c", + "../src/intel/dev/meson.build", + + "../src/intel/ds/intel_pps_driver.cc", + "../src/intel/ds/intel_pps_driver.h", + "../src/intel/ds/intel_pps_perf.cc", + "../src/intel/ds/intel_pps_perf.h", + "../src/intel/ds/meson.build", + + "../src/intel/genxml/gen11.xml", + "../src/intel/genxml/gen12.xml", + "../src/intel/genxml/gen125.xml", + "../src/intel/genxml/gen4.xml", + "../src/intel/genxml/gen45.xml", + "../src/intel/genxml/gen5.xml", + "../src/intel/genxml/gen6.xml", + "../src/intel/genxml/gen7.xml", + "../src/intel/genxml/gen75.xml", + "../src/intel/genxml/gen8.xml", + "../src/intel/genxml/gen9.xml", + "../src/intel/genxml/genX_pack.h", + "../src/intel/genxml/gen_bits_header.py", + "../src/intel/genxml/gen_macros.h", + "../src/intel/genxml/gen_pack_header.py", + "../src/intel/genxml/gen_rt.xml", + "../src/intel/genxml/gen_sort_tags.py", + "../src/intel/genxml/gen_zipped_file.py", + "../src/intel/genxml/meson.build", + "../src/intel/genxml/util.py", + + "../src/intel/isl/gen_format_layout.py", + "../src/intel/isl/isl.c", + "../src/intel/isl/isl.h", + "../src/intel/isl/isl_aux_info.c", + "../src/intel/isl/isl_drm.c", + "../src/intel/isl/isl_emit_depth_stencil.c", + "../src/intel/isl/isl_format.c", + "../src/intel/isl/isl_format_layout.csv", + "../src/intel/isl/isl_genX_priv.h", + "../src/intel/isl/isl_gfx12.c", + "../src/intel/isl/isl_gfx12.h", + "../src/intel/isl/isl_gfx4.c", + "../src/intel/isl/isl_gfx4.h", + "../src/intel/isl/isl_gfx6.c", + "../src/intel/isl/isl_gfx6.h", + "../src/intel/isl/isl_gfx7.c", + "../src/intel/isl/isl_gfx7.h", + "../src/intel/isl/isl_gfx8.c", + "../src/intel/isl/isl_gfx8.h", + "../src/intel/isl/isl_gfx9.c", + "../src/intel/isl/isl_gfx9.h", + "../src/intel/isl/isl_priv.h", + "../src/intel/isl/isl_storage_image.c", + "../src/intel/isl/isl_surface_state.c", + "../src/intel/isl/isl_tiled_memcpy.c", + "../src/intel/isl/isl_tiled_memcpy_normal.c", + "../src/intel/isl/isl_tiled_memcpy_sse41.c", + "../src/intel/isl/meson.build", + + "../src/intel/nullhw-layer/VkLayer_INTEL_nullhw.json", + "../src/intel/nullhw-layer/intel_nullhw.c", + "../src/intel/nullhw-layer/meson.build", + + "../src/intel/perf/gen_perf.py", + "../src/intel/perf/intel_perf.c", + "../src/intel/perf/intel_perf.h", + "../src/intel/perf/intel_perf_mdapi.c", + "../src/intel/perf/intel_perf_mdapi.h", + "../src/intel/perf/intel_perf_private.h", + "../src/intel/perf/intel_perf_query.c", + "../src/intel/perf/intel_perf_query.h", + "../src/intel/perf/intel_perf_regs.h", + "../src/intel/perf/meson.build", + "../src/intel/perf/oa-adl.xml", + "../src/intel/perf/oa-bdw.xml", + "../src/intel/perf/oa-bxt.xml", + "../src/intel/perf/oa-cflgt2.xml", + "../src/intel/perf/oa-cflgt3.xml", + "../src/intel/perf/oa-chv.xml", + "../src/intel/perf/oa-dg1.xml", + "../src/intel/perf/oa-ehl.xml", + "../src/intel/perf/oa-glk.xml", + "../src/intel/perf/oa-hsw.xml", + "../src/intel/perf/oa-icl.xml", + "../src/intel/perf/oa-kblgt2.xml", + "../src/intel/perf/oa-kblgt3.xml", + "../src/intel/perf/oa-rkl.xml", + "../src/intel/perf/oa-sklgt2.xml", + "../src/intel/perf/oa-sklgt3.xml", + "../src/intel/perf/oa-sklgt4.xml", + "../src/intel/perf/oa-tglgt1.xml", + "../src/intel/perf/oa-tglgt2.xml", + + "../src/intel/tools/aub_mem.c", + "../src/intel/tools/aub_mem.h", + "../src/intel/tools/aub_read.c", + "../src/intel/tools/aub_read.h", + "../src/intel/tools/aub_write.c", + "../src/intel/tools/aub_write.h", + "../src/intel/tools/aubinator.c", + "../src/intel/tools/aubinator_error_decode.c", + "../src/intel/tools/aubinator_viewer.cpp", + "../src/intel/tools/aubinator_viewer.h", + "../src/intel/tools/aubinator_viewer_decoder.cpp", + "../src/intel/tools/aubinator_viewer_urb.h", + "../src/intel/tools/error2aub.c", + "../src/intel/tools/gfx10_context.h", + "../src/intel/tools/gfx8_context.h", + "../src/intel/tools/i965_asm.c", + "../src/intel/tools/i965_asm.h", + "../src/intel/tools/i965_disasm.c", + "../src/intel/tools/i965_gram.y", + "../src/intel/tools/i965_lex.l", + "../src/intel/tools/intel_aub.h", + "../src/intel/tools/intel_context.h", + "../src/intel/tools/intel_dump_gpu.c", + "../src/intel/tools/intel_dump_gpu.in", + "../src/intel/tools/intel_noop_drm_shim.c", + "../src/intel/tools/intel_sanitize_gpu.c", + "../src/intel/tools/intel_sanitize_gpu.in", + "../src/intel/tools/intel_stub_gpu.in", + "../src/intel/tools/meson.build", + + "../src/intel/tools/imgui/imgui_impl_gtk3.cpp", + "../src/intel/tools/imgui/imgui_impl_gtk3.h", + "../src/intel/tools/imgui/imgui_impl_opengl3.cpp", + "../src/intel/tools/imgui/imgui_impl_opengl3.h", + "../src/intel/tools/imgui/meson.build", + + "../src/intel/vulkan/anv_acceleration_structure.c", + "../src/intel/vulkan/anv_allocator.c", + "../src/intel/vulkan/anv_android.c", + "../src/intel/vulkan/anv_android.h", + "../src/intel/vulkan/anv_android_stubs.c", + "../src/intel/vulkan/anv_batch_chain.c", + "../src/intel/vulkan/anv_blorp.c", + "../src/intel/vulkan/anv_cmd_buffer.c", + "../src/intel/vulkan/anv_descriptor_set.c", + "../src/intel/vulkan/anv_device.c", + "../src/intel/vulkan/anv_formats.c", + "../src/intel/vulkan/anv_gem.c", + "../src/intel/vulkan/anv_gem_stubs.c", + "../src/intel/vulkan/anv_genX.h", + "../src/intel/vulkan/anv_image.c", + "../src/intel/vulkan/anv_measure.c", + "../src/intel/vulkan/anv_measure.h", + "../src/intel/vulkan/anv_nir.h", + "../src/intel/vulkan/anv_nir_add_base_work_group_id.c", + "../src/intel/vulkan/anv_nir_apply_pipeline_layout.c", + "../src/intel/vulkan/anv_nir_compute_push_layout.c", + "../src/intel/vulkan/anv_nir_lower_multiview.c", + "../src/intel/vulkan/anv_nir_lower_ubo_loads.c", + "../src/intel/vulkan/anv_nir_lower_ycbcr_textures.c", + "../src/intel/vulkan/anv_pass.c", + "../src/intel/vulkan/anv_perf.c", + "../src/intel/vulkan/anv_pipeline.c", + "../src/intel/vulkan/anv_pipeline_cache.c", + "../src/intel/vulkan/anv_private.h", + "../src/intel/vulkan/anv_queue.c", + "../src/intel/vulkan/anv_util.c", + "../src/intel/vulkan/anv_wsi.c", + "../src/intel/vulkan/anv_wsi_display.c", + "../src/intel/vulkan/genX_blorp_exec.c", + "../src/intel/vulkan/genX_cmd_buffer.c", + "../src/intel/vulkan/genX_gpu_memcpy.c", + "../src/intel/vulkan/genX_pipeline.c", + "../src/intel/vulkan/genX_query.c", + "../src/intel/vulkan/genX_state.c", + "../src/intel/vulkan/gfx7_cmd_buffer.c", + "../src/intel/vulkan/gfx8_cmd_buffer.c", + "../src/intel/vulkan/meson.build", + + "../src/loader/loader.c", + "../src/loader/loader.h", + "../src/loader/loader_dri3_helper.c", + "../src/loader/loader_dri3_helper.h", + "../src/loader/loader_dri_helper.c", + "../src/loader/loader_dri_helper.h", + "../src/loader/meson.build", + "../src/loader/pci_id_driver_map.c", + "../src/loader/pci_id_driver_map.h", + + "../src/mapi/entry.c", + "../src/mapi/entry.h", + "../src/mapi/entry_ppc64le_tls.h", + "../src/mapi/entry_ppc64le_tsd.h", + "../src/mapi/entry_x86-64_tls.h", + "../src/mapi/entry_x86_tls.h", + "../src/mapi/entry_x86_tsd.h", + "../src/mapi/mapi_abi.py", + "../src/mapi/mapi_glapi.c", + "../src/mapi/mapi_tmp.h", + "../src/mapi/meson.build", + "../src/mapi/stub.c", + "../src/mapi/stub.h", + "../src/mapi/table.c", + "../src/mapi/table.h", + "../src/mapi/u_current.c", + "../src/mapi/u_current.h", + "../src/mapi/u_execmem.c", + "../src/mapi/u_execmem.h", + + "../src/mapi/es1api/gles1-symbols.txt", + "../src/mapi/es1api/meson.build", + + "../src/mapi/es2api/gles2-symbols.txt", + "../src/mapi/es2api/meson.build", + + "../src/mapi/glapi/glapi.c", + "../src/mapi/glapi/glapi.h", + "../src/mapi/glapi/glapi_dispatch.c", + "../src/mapi/glapi/glapi_entrypoint.c", + "../src/mapi/glapi/glapi_getproc.c", + "../src/mapi/glapi/glapi_nop.c", + "../src/mapi/glapi/glapi_priv.h", + "../src/mapi/glapi/meson.build", + + "../src/mapi/glapi/gen/AMD_depth_clamp_separate.xml", + "../src/mapi/glapi/gen/AMD_draw_buffers_blend.xml", + "../src/mapi/glapi/gen/AMD_gpu_shader_int64.xml", + "../src/mapi/glapi/gen/AMD_performance_monitor.xml", + "../src/mapi/glapi/gen/APPLE_object_purgeable.xml", + "../src/mapi/glapi/gen/APPLE_vertex_array_object.xml", + "../src/mapi/glapi/gen/ARB_ES2_compatibility.xml", + "../src/mapi/glapi/gen/ARB_ES3_compatibility.xml", + "../src/mapi/glapi/gen/ARB_base_instance.xml", + "../src/mapi/glapi/gen/ARB_bindless_texture.xml", + "../src/mapi/glapi/gen/ARB_blend_func_extended.xml", + "../src/mapi/glapi/gen/ARB_clear_buffer_object.xml", + "../src/mapi/glapi/gen/ARB_clear_texture.xml", + "../src/mapi/glapi/gen/ARB_clip_control.xml", + "../src/mapi/glapi/gen/ARB_color_buffer_float.xml", + "../src/mapi/glapi/gen/ARB_compressed_texture_pixel_storage.xml", + "../src/mapi/glapi/gen/ARB_compute_shader.xml", + "../src/mapi/glapi/gen/ARB_compute_variable_group_size.xml", + "../src/mapi/glapi/gen/ARB_copy_buffer.xml", + "../src/mapi/glapi/gen/ARB_copy_image.xml", + "../src/mapi/glapi/gen/ARB_debug_output.xml", + "../src/mapi/glapi/gen/ARB_depth_buffer_float.xml", + "../src/mapi/glapi/gen/ARB_depth_clamp.xml", + "../src/mapi/glapi/gen/ARB_direct_state_access.xml", + "../src/mapi/glapi/gen/ARB_draw_buffers.xml", + "../src/mapi/glapi/gen/ARB_draw_buffers_blend.xml", + "../src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml", + "../src/mapi/glapi/gen/ARB_draw_indirect.xml", + "../src/mapi/glapi/gen/ARB_draw_instanced.xml", + "../src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml", + "../src/mapi/glapi/gen/ARB_framebuffer_object.xml", + "../src/mapi/glapi/gen/ARB_get_program_binary.xml", + "../src/mapi/glapi/gen/ARB_get_texture_sub_image.xml", + "../src/mapi/glapi/gen/ARB_gl_spirv.xml", + "../src/mapi/glapi/gen/ARB_gpu_shader5.xml", + "../src/mapi/glapi/gen/ARB_gpu_shader_fp64.xml", + "../src/mapi/glapi/gen/ARB_gpu_shader_int64.xml", + "../src/mapi/glapi/gen/ARB_indirect_parameters.xml", + "../src/mapi/glapi/gen/ARB_instanced_arrays.xml", + "../src/mapi/glapi/gen/ARB_internalformat_query.xml", + "../src/mapi/glapi/gen/ARB_internalformat_query2.xml", + "../src/mapi/glapi/gen/ARB_invalidate_subdata.xml", + "../src/mapi/glapi/gen/ARB_map_buffer_range.xml", + "../src/mapi/glapi/gen/ARB_multi_bind.xml", + "../src/mapi/glapi/gen/ARB_pipeline_statistics_query.xml", + "../src/mapi/glapi/gen/ARB_program_interface_query.xml", + "../src/mapi/glapi/gen/ARB_robustness.xml", + "../src/mapi/glapi/gen/ARB_sample_shading.xml", + "../src/mapi/glapi/gen/ARB_sampler_objects.xml", + "../src/mapi/glapi/gen/ARB_seamless_cube_map.xml", + "../src/mapi/glapi/gen/ARB_separate_shader_objects.xml", + "../src/mapi/glapi/gen/ARB_shader_atomic_counters.xml", + "../src/mapi/glapi/gen/ARB_shader_image_load_store.xml", + "../src/mapi/glapi/gen/ARB_shader_storage_buffer_object.xml", + "../src/mapi/glapi/gen/ARB_shader_subroutine.xml", + "../src/mapi/glapi/gen/ARB_shading_language_include.xml", + "../src/mapi/glapi/gen/ARB_sparse_buffer.xml", + "../src/mapi/glapi/gen/ARB_spirv_extensions.xml", + "../src/mapi/glapi/gen/ARB_sync.xml", + "../src/mapi/glapi/gen/ARB_tessellation_shader.xml", + "../src/mapi/glapi/gen/ARB_texture_barrier.xml", + "../src/mapi/glapi/gen/ARB_texture_buffer_object.xml", + "../src/mapi/glapi/gen/ARB_texture_buffer_range.xml", + "../src/mapi/glapi/gen/ARB_texture_compression_rgtc.xml", + "../src/mapi/glapi/gen/ARB_texture_cube_map_array.xml", + "../src/mapi/glapi/gen/ARB_texture_float.xml", + "../src/mapi/glapi/gen/ARB_texture_gather.xml", + "../src/mapi/glapi/gen/ARB_texture_multisample.xml", + "../src/mapi/glapi/gen/ARB_texture_rg.xml", + "../src/mapi/glapi/gen/ARB_texture_rgb10_a2ui.xml", + "../src/mapi/glapi/gen/ARB_texture_storage.xml", + "../src/mapi/glapi/gen/ARB_texture_storage_multisample.xml", + "../src/mapi/glapi/gen/ARB_texture_view.xml", + "../src/mapi/glapi/gen/ARB_uniform_buffer_object.xml", + "../src/mapi/glapi/gen/ARB_vertex_array_object.xml", + "../src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml", + "../src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml", + "../src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml", + "../src/mapi/glapi/gen/ARB_viewport_array.xml", + "../src/mapi/glapi/gen/EXT_EGL_image_storage.xml", + "../src/mapi/glapi/gen/EXT_direct_state_access.xml", + "../src/mapi/glapi/gen/EXT_draw_buffers2.xml", + "../src/mapi/glapi/gen/EXT_external_objects.xml", + "../src/mapi/glapi/gen/EXT_external_objects_fd.xml", + "../src/mapi/glapi/gen/EXT_framebuffer_object.xml", + "../src/mapi/glapi/gen/EXT_gpu_shader4.xml", + "../src/mapi/glapi/gen/EXT_multisampled_render_to_texture.xml", + "../src/mapi/glapi/gen/EXT_packed_depth_stencil.xml", + "../src/mapi/glapi/gen/EXT_provoking_vertex.xml", + "../src/mapi/glapi/gen/EXT_separate_shader_objects.xml", + "../src/mapi/glapi/gen/EXT_shader_image_load_store.xml", + "../src/mapi/glapi/gen/EXT_texture_array.xml", + "../src/mapi/glapi/gen/EXT_texture_integer.xml", + "../src/mapi/glapi/gen/EXT_transform_feedback.xml", + "../src/mapi/glapi/gen/EXT_vertex_attrib_64bit.xml", + "../src/mapi/glapi/gen/EXT_window_rectangles.xml", + "../src/mapi/glapi/gen/GL3x.xml", + "../src/mapi/glapi/gen/GL4x.xml", + "../src/mapi/glapi/gen/GREMEDY_string_marker.xml", + "../src/mapi/glapi/gen/INTEL_performance_query.xml", + "../src/mapi/glapi/gen/KHR_context_flush_control.xml", + "../src/mapi/glapi/gen/KHR_debug.xml", + "../src/mapi/glapi/gen/KHR_robustness.xml", + "../src/mapi/glapi/gen/KHR_robustness_es.xml", + "../src/mapi/glapi/gen/KHR_texture_compression_astc.xml", + "../src/mapi/glapi/gen/MESA_tile_raster_order.xml", + "../src/mapi/glapi/gen/NV_alpha_to_coverage_dither_control.xml", + "../src/mapi/glapi/gen/NV_conditional_render.xml", + "../src/mapi/glapi/gen/NV_copy_image.xml", + "../src/mapi/glapi/gen/NV_half_float.xml", + "../src/mapi/glapi/gen/NV_primitive_restart.xml", + "../src/mapi/glapi/gen/NV_texture_barrier.xml", + "../src/mapi/glapi/gen/NV_vdpau_interop.xml", + "../src/mapi/glapi/gen/NV_viewport_swizzle.xml", + "../src/mapi/glapi/gen/OES_EGL_image.xml", + "../src/mapi/glapi/gen/OES_fixed_point.xml", + "../src/mapi/glapi/gen/OES_single_precision.xml", + "../src/mapi/glapi/gen/OES_texture_compression_astc.xml", + "../src/mapi/glapi/gen/apiexec.py", + "../src/mapi/glapi/gen/es_EXT.xml", + "../src/mapi/glapi/gen/glX_API.xml", + "../src/mapi/glapi/gen/glX_XML.py", + "../src/mapi/glapi/gen/glX_proto_common.py", + "../src/mapi/glapi/gen/glX_proto_recv.py", + "../src/mapi/glapi/gen/glX_proto_send.py", + "../src/mapi/glapi/gen/glX_proto_size.py", + "../src/mapi/glapi/gen/glX_server_table.py", + "../src/mapi/glapi/gen/gl_API.dtd", + "../src/mapi/glapi/gen/gl_API.xml", + "../src/mapi/glapi/gen/gl_SPARC_asm.py", + "../src/mapi/glapi/gen/gl_XML.py", + "../src/mapi/glapi/gen/gl_and_es_API.xml", + "../src/mapi/glapi/gen/gl_and_glX_API.xml", + "../src/mapi/glapi/gen/gl_apitemp.py", + "../src/mapi/glapi/gen/gl_enums.py", + "../src/mapi/glapi/gen/gl_genexec.py", + "../src/mapi/glapi/gen/gl_gentable.py", + "../src/mapi/glapi/gen/gl_marshal.py", + "../src/mapi/glapi/gen/gl_marshal_h.py", + "../src/mapi/glapi/gen/gl_procs.py", + "../src/mapi/glapi/gen/gl_table.py", + "../src/mapi/glapi/gen/gl_x86-64_asm.py", + "../src/mapi/glapi/gen/gl_x86_asm.py", + "../src/mapi/glapi/gen/license.py", + "../src/mapi/glapi/gen/marshal_XML.py", + "../src/mapi/glapi/gen/meson.build", + "../src/mapi/glapi/gen/remap_helper.py", + "../src/mapi/glapi/gen/static_data.py", + "../src/mapi/glapi/gen/typeexpr.py", + + "../src/mapi/glapi/registry/gl.xml", + + "../src/mapi/new/genCommon.py", + "../src/mapi/new/gen_gldispatch_mapi.py", + + "../src/mapi/shared-glapi/glapi-symbols.txt", + "../src/mapi/shared-glapi/meson.build", + + "../src/mesa/meson.build", + + "../src/mesa/drivers/common/driverfuncs.c", + "../src/mesa/drivers/common/driverfuncs.h", + "../src/mesa/drivers/common/meta.c", + "../src/mesa/drivers/common/meta.h", + "../src/mesa/drivers/common/meta_blit.c", + "../src/mesa/drivers/common/meta_generate_mipmap.c", + + "../src/mesa/drivers/dri/meson.build", + + "../src/mesa/drivers/dri/common/dri_util.c", + "../src/mesa/drivers/dri/common/dri_util.h", + "../src/mesa/drivers/dri/common/megadriver_stub.c", + "../src/mesa/drivers/dri/common/meson.build", + "../src/mesa/drivers/dri/common/utils.c", + "../src/mesa/drivers/dri/common/utils.h", + + "../src/mesa/drivers/dri/i915/i830_context.c", + "../src/mesa/drivers/dri/i915/i830_context.h", + "../src/mesa/drivers/dri/i915/i830_reg.h", + "../src/mesa/drivers/dri/i915/i830_state.c", + "../src/mesa/drivers/dri/i915/i830_texblend.c", + "../src/mesa/drivers/dri/i915/i830_texstate.c", + "../src/mesa/drivers/dri/i915/i830_vtbl.c", + "../src/mesa/drivers/dri/i915/i915_context.c", + "../src/mesa/drivers/dri/i915/i915_context.h", + "../src/mesa/drivers/dri/i915/i915_debug.h", + "../src/mesa/drivers/dri/i915/i915_debug_fp.c", + "../src/mesa/drivers/dri/i915/i915_fragprog.c", + "../src/mesa/drivers/dri/i915/i915_program.c", + "../src/mesa/drivers/dri/i915/i915_program.h", + "../src/mesa/drivers/dri/i915/i915_reg.h", + "../src/mesa/drivers/dri/i915/i915_state.c", + "../src/mesa/drivers/dri/i915/i915_tex_layout.c", + "../src/mesa/drivers/dri/i915/i915_texstate.c", + "../src/mesa/drivers/dri/i915/i915_vtbl.c", + "../src/mesa/drivers/dri/i915/intel_batchbuffer.c", + "../src/mesa/drivers/dri/i915/intel_batchbuffer.h", + "../src/mesa/drivers/dri/i915/intel_blit.c", + "../src/mesa/drivers/dri/i915/intel_blit.h", + "../src/mesa/drivers/dri/i915/intel_buffer_objects.c", + "../src/mesa/drivers/dri/i915/intel_buffer_objects.h", + "../src/mesa/drivers/dri/i915/intel_buffers.c", + "../src/mesa/drivers/dri/i915/intel_buffers.h", + "../src/mesa/drivers/dri/i915/intel_chipset.h", + "../src/mesa/drivers/dri/i915/intel_clear.c", + "../src/mesa/drivers/dri/i915/intel_clear.h", + "../src/mesa/drivers/dri/i915/intel_context.c", + "../src/mesa/drivers/dri/i915/intel_context.h", + "../src/mesa/drivers/dri/i915/intel_extensions.c", + "../src/mesa/drivers/dri/i915/intel_extensions.h", + "../src/mesa/drivers/dri/i915/intel_fbo.c", + "../src/mesa/drivers/dri/i915/intel_fbo.h", + "../src/mesa/drivers/dri/i915/intel_mipmap_tree.c", + "../src/mesa/drivers/dri/i915/intel_mipmap_tree.h", + "../src/mesa/drivers/dri/i915/intel_pixel.c", + "../src/mesa/drivers/dri/i915/intel_pixel.h", + "../src/mesa/drivers/dri/i915/intel_pixel_bitmap.c", + "../src/mesa/drivers/dri/i915/intel_pixel_copy.c", + "../src/mesa/drivers/dri/i915/intel_pixel_draw.c", + "../src/mesa/drivers/dri/i915/intel_pixel_read.c", + "../src/mesa/drivers/dri/i915/intel_reg.h", + "../src/mesa/drivers/dri/i915/intel_regions.c", + "../src/mesa/drivers/dri/i915/intel_regions.h", + "../src/mesa/drivers/dri/i915/intel_render.c", + "../src/mesa/drivers/dri/i915/intel_screen.c", + "../src/mesa/drivers/dri/i915/intel_screen.h", + "../src/mesa/drivers/dri/i915/intel_state.c", + "../src/mesa/drivers/dri/i915/intel_syncobj.c", + "../src/mesa/drivers/dri/i915/intel_tex.c", + "../src/mesa/drivers/dri/i915/intel_tex.h", + "../src/mesa/drivers/dri/i915/intel_tex_copy.c", + "../src/mesa/drivers/dri/i915/intel_tex_image.c", + "../src/mesa/drivers/dri/i915/intel_tex_layout.c", + "../src/mesa/drivers/dri/i915/intel_tex_layout.h", + "../src/mesa/drivers/dri/i915/intel_tex_obj.h", + "../src/mesa/drivers/dri/i915/intel_tex_subimage.c", + "../src/mesa/drivers/dri/i915/intel_tex_validate.c", + "../src/mesa/drivers/dri/i915/intel_tris.c", + "../src/mesa/drivers/dri/i915/intel_tris.h", + "../src/mesa/drivers/dri/i915/meson.build", + + "../src/mesa/drivers/dri/i965/brw_batch.c", + "../src/mesa/drivers/dri/i965/brw_batch.h", + "../src/mesa/drivers/dri/i965/brw_binding_tables.c", + "../src/mesa/drivers/dri/i965/brw_blit.c", + "../src/mesa/drivers/dri/i965/brw_blit.h", + "../src/mesa/drivers/dri/i965/brw_blorp.c", + "../src/mesa/drivers/dri/i965/brw_blorp.h", + "../src/mesa/drivers/dri/i965/brw_buffer_objects.c", + "../src/mesa/drivers/dri/i965/brw_buffer_objects.h", + "../src/mesa/drivers/dri/i965/brw_buffers.c", + "../src/mesa/drivers/dri/i965/brw_buffers.h", + "../src/mesa/drivers/dri/i965/brw_bufmgr.c", + "../src/mesa/drivers/dri/i965/brw_bufmgr.h", + "../src/mesa/drivers/dri/i965/brw_clear.c", + "../src/mesa/drivers/dri/i965/brw_clip.c", + "../src/mesa/drivers/dri/i965/brw_compute.c", + "../src/mesa/drivers/dri/i965/brw_conditional_render.c", + "../src/mesa/drivers/dri/i965/brw_context.c", + "../src/mesa/drivers/dri/i965/brw_context.h", + "../src/mesa/drivers/dri/i965/brw_copy_image.c", + "../src/mesa/drivers/dri/i965/brw_cs.c", + "../src/mesa/drivers/dri/i965/brw_cs.h", + "../src/mesa/drivers/dri/i965/brw_curbe.c", + "../src/mesa/drivers/dri/i965/brw_defines.h", + "../src/mesa/drivers/dri/i965/brw_disk_cache.c", + "../src/mesa/drivers/dri/i965/brw_draw.c", + "../src/mesa/drivers/dri/i965/brw_draw.h", + "../src/mesa/drivers/dri/i965/brw_draw_upload.c", + "../src/mesa/drivers/dri/i965/brw_extensions.c", + "../src/mesa/drivers/dri/i965/brw_fbo.c", + "../src/mesa/drivers/dri/i965/brw_fbo.h", + "../src/mesa/drivers/dri/i965/brw_ff_gs.c", + "../src/mesa/drivers/dri/i965/brw_ff_gs.h", + "../src/mesa/drivers/dri/i965/brw_formatquery.c", + "../src/mesa/drivers/dri/i965/brw_generate_mipmap.c", + "../src/mesa/drivers/dri/i965/brw_gs.c", + "../src/mesa/drivers/dri/i965/brw_gs.h", + "../src/mesa/drivers/dri/i965/brw_gs_surface_state.c", + "../src/mesa/drivers/dri/i965/brw_image.h", + "../src/mesa/drivers/dri/i965/brw_link.cpp", + "../src/mesa/drivers/dri/i965/brw_meta_util.c", + "../src/mesa/drivers/dri/i965/brw_meta_util.h", + "../src/mesa/drivers/dri/i965/brw_mipmap_tree.c", + "../src/mesa/drivers/dri/i965/brw_mipmap_tree.h", + "../src/mesa/drivers/dri/i965/brw_misc_state.c", + "../src/mesa/drivers/dri/i965/brw_multisample_state.h", + "../src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp", + "../src/mesa/drivers/dri/i965/brw_object_purgeable.c", + "../src/mesa/drivers/dri/i965/brw_performance_query.c", + "../src/mesa/drivers/dri/i965/brw_pipe_control.c", + "../src/mesa/drivers/dri/i965/brw_pipe_control.h", + "../src/mesa/drivers/dri/i965/brw_pixel.c", + "../src/mesa/drivers/dri/i965/brw_pixel.h", + "../src/mesa/drivers/dri/i965/brw_pixel_bitmap.c", + "../src/mesa/drivers/dri/i965/brw_pixel_copy.c", + "../src/mesa/drivers/dri/i965/brw_pixel_draw.c", + "../src/mesa/drivers/dri/i965/brw_pixel_read.c", + "../src/mesa/drivers/dri/i965/brw_primitive_restart.c", + "../src/mesa/drivers/dri/i965/brw_program.c", + "../src/mesa/drivers/dri/i965/brw_program.h", + "../src/mesa/drivers/dri/i965/brw_program_binary.c", + "../src/mesa/drivers/dri/i965/brw_program_cache.c", + "../src/mesa/drivers/dri/i965/brw_queryobj.c", + "../src/mesa/drivers/dri/i965/brw_reset.c", + "../src/mesa/drivers/dri/i965/brw_screen.c", + "../src/mesa/drivers/dri/i965/brw_screen.h", + "../src/mesa/drivers/dri/i965/brw_sf.c", + "../src/mesa/drivers/dri/i965/brw_state.c", + "../src/mesa/drivers/dri/i965/brw_state.h", + "../src/mesa/drivers/dri/i965/brw_state_upload.c", + "../src/mesa/drivers/dri/i965/brw_structs.h", + "../src/mesa/drivers/dri/i965/brw_surface_formats.c", + "../src/mesa/drivers/dri/i965/brw_sync.c", + "../src/mesa/drivers/dri/i965/brw_tcs.c", + "../src/mesa/drivers/dri/i965/brw_tcs_surface_state.c", + "../src/mesa/drivers/dri/i965/brw_tes.c", + "../src/mesa/drivers/dri/i965/brw_tes_surface_state.c", + "../src/mesa/drivers/dri/i965/brw_tex.c", + "../src/mesa/drivers/dri/i965/brw_tex.h", + "../src/mesa/drivers/dri/i965/brw_tex_copy.c", + "../src/mesa/drivers/dri/i965/brw_tex_image.c", + "../src/mesa/drivers/dri/i965/brw_tex_obj.h", + "../src/mesa/drivers/dri/i965/brw_tex_validate.c", + "../src/mesa/drivers/dri/i965/brw_upload.c", + "../src/mesa/drivers/dri/i965/brw_urb.c", + "../src/mesa/drivers/dri/i965/brw_util.c", + "../src/mesa/drivers/dri/i965/brw_util.h", + "../src/mesa/drivers/dri/i965/brw_vs.c", + "../src/mesa/drivers/dri/i965/brw_vs.h", + "../src/mesa/drivers/dri/i965/brw_vs_surface_state.c", + "../src/mesa/drivers/dri/i965/brw_wm.c", + "../src/mesa/drivers/dri/i965/brw_wm.h", + "../src/mesa/drivers/dri/i965/brw_wm_surface_state.c", + "../src/mesa/drivers/dri/i965/genX_blorp_exec.c", + "../src/mesa/drivers/dri/i965/genX_boilerplate.h", + "../src/mesa/drivers/dri/i965/genX_pipe_control.c", + "../src/mesa/drivers/dri/i965/genX_state_upload.c", + "../src/mesa/drivers/dri/i965/gfx4_blorp_exec.h", + "../src/mesa/drivers/dri/i965/gfx6_clip_state.c", + "../src/mesa/drivers/dri/i965/gfx6_constant_state.c", + "../src/mesa/drivers/dri/i965/gfx6_multisample_state.c", + "../src/mesa/drivers/dri/i965/gfx6_queryobj.c", + "../src/mesa/drivers/dri/i965/gfx6_sampler_state.c", + "../src/mesa/drivers/dri/i965/gfx6_sol.c", + "../src/mesa/drivers/dri/i965/gfx6_urb.c", + "../src/mesa/drivers/dri/i965/gfx7_l3_state.c", + "../src/mesa/drivers/dri/i965/gfx7_sol_state.c", + "../src/mesa/drivers/dri/i965/gfx7_urb.c", + "../src/mesa/drivers/dri/i965/gfx8_depth_state.c", + "../src/mesa/drivers/dri/i965/gfx8_multisample_state.c", + "../src/mesa/drivers/dri/i965/hsw_queryobj.c", + "../src/mesa/drivers/dri/i965/hsw_sol.c", + "../src/mesa/drivers/dri/i965/libdrm_macros.h", + "../src/mesa/drivers/dri/i965/meson.build", + + "../src/mesa/drivers/dri/nouveau/meson.build", + "../src/mesa/drivers/dri/nouveau/nouveau_array.c", + "../src/mesa/drivers/dri/nouveau/nouveau_array.h", + "../src/mesa/drivers/dri/nouveau/nouveau_bufferobj.c", + "../src/mesa/drivers/dri/nouveau/nouveau_bufferobj.h", + "../src/mesa/drivers/dri/nouveau/nouveau_context.c", + "../src/mesa/drivers/dri/nouveau/nouveau_context.h", + "../src/mesa/drivers/dri/nouveau/nouveau_driver.c", + "../src/mesa/drivers/dri/nouveau/nouveau_driver.h", + "../src/mesa/drivers/dri/nouveau/nouveau_fbo.c", + "../src/mesa/drivers/dri/nouveau/nouveau_fbo.h", + "../src/mesa/drivers/dri/nouveau/nouveau_gldefs.h", + "../src/mesa/drivers/dri/nouveau/nouveau_local.h", + "../src/mesa/drivers/dri/nouveau/nouveau_render.h", + "../src/mesa/drivers/dri/nouveau/nouveau_render_t.c", + "../src/mesa/drivers/dri/nouveau/nouveau_scratch.c", + "../src/mesa/drivers/dri/nouveau/nouveau_scratch.h", + "../src/mesa/drivers/dri/nouveau/nouveau_screen.c", + "../src/mesa/drivers/dri/nouveau/nouveau_screen.h", + "../src/mesa/drivers/dri/nouveau/nouveau_span.c", + "../src/mesa/drivers/dri/nouveau/nouveau_state.c", + "../src/mesa/drivers/dri/nouveau/nouveau_state.h", + "../src/mesa/drivers/dri/nouveau/nouveau_surface.c", + "../src/mesa/drivers/dri/nouveau/nouveau_surface.h", + "../src/mesa/drivers/dri/nouveau/nouveau_swtnl_t.c", + "../src/mesa/drivers/dri/nouveau/nouveau_texture.c", + "../src/mesa/drivers/dri/nouveau/nouveau_texture.h", + "../src/mesa/drivers/dri/nouveau/nouveau_util.h", + "../src/mesa/drivers/dri/nouveau/nouveau_vbo_t.c", + "../src/mesa/drivers/dri/nouveau/nv01_2d.xml.h", + "../src/mesa/drivers/dri/nouveau/nv04_3d.xml.h", + "../src/mesa/drivers/dri/nouveau/nv04_context.c", + "../src/mesa/drivers/dri/nouveau/nv04_context.h", + "../src/mesa/drivers/dri/nouveau/nv04_driver.h", + "../src/mesa/drivers/dri/nouveau/nv04_render.c", + "../src/mesa/drivers/dri/nouveau/nv04_state_fb.c", + "../src/mesa/drivers/dri/nouveau/nv04_state_frag.c", + "../src/mesa/drivers/dri/nouveau/nv04_state_raster.c", + "../src/mesa/drivers/dri/nouveau/nv04_state_tex.c", + "../src/mesa/drivers/dri/nouveau/nv04_surface.c", + "../src/mesa/drivers/dri/nouveau/nv10_3d.xml.h", + "../src/mesa/drivers/dri/nouveau/nv10_context.c", + "../src/mesa/drivers/dri/nouveau/nv10_driver.h", + "../src/mesa/drivers/dri/nouveau/nv10_render.c", + "../src/mesa/drivers/dri/nouveau/nv10_state_fb.c", + "../src/mesa/drivers/dri/nouveau/nv10_state_frag.c", + "../src/mesa/drivers/dri/nouveau/nv10_state_polygon.c", + "../src/mesa/drivers/dri/nouveau/nv10_state_raster.c", + "../src/mesa/drivers/dri/nouveau/nv10_state_tex.c", + "../src/mesa/drivers/dri/nouveau/nv10_state_tnl.c", + "../src/mesa/drivers/dri/nouveau/nv20_3d.xml.h", + "../src/mesa/drivers/dri/nouveau/nv20_context.c", + "../src/mesa/drivers/dri/nouveau/nv20_driver.h", + "../src/mesa/drivers/dri/nouveau/nv20_render.c", + "../src/mesa/drivers/dri/nouveau/nv20_state_fb.c", + "../src/mesa/drivers/dri/nouveau/nv20_state_frag.c", + "../src/mesa/drivers/dri/nouveau/nv20_state_polygon.c", + "../src/mesa/drivers/dri/nouveau/nv20_state_raster.c", + "../src/mesa/drivers/dri/nouveau/nv20_state_tex.c", + "../src/mesa/drivers/dri/nouveau/nv20_state_tnl.c", + "../src/mesa/drivers/dri/nouveau/nv_m2mf.xml.h", + "../src/mesa/drivers/dri/nouveau/nv_object.xml.h", + + "../src/mesa/drivers/dri/r200/meson.build", + "../src/mesa/drivers/dri/r200/r200_blit.c", + "../src/mesa/drivers/dri/r200/r200_blit.h", + "../src/mesa/drivers/dri/r200/r200_cmdbuf.c", + "../src/mesa/drivers/dri/r200/r200_context.c", + "../src/mesa/drivers/dri/r200/r200_context.h", + "../src/mesa/drivers/dri/r200/r200_fragshader.c", + "../src/mesa/drivers/dri/r200/r200_ioctl.c", + "../src/mesa/drivers/dri/r200/r200_ioctl.h", + "../src/mesa/drivers/dri/r200/r200_maos.c", + "../src/mesa/drivers/dri/r200/r200_maos.h", + "../src/mesa/drivers/dri/r200/r200_maos_arrays.c", + "../src/mesa/drivers/dri/r200/r200_reg.h", + "../src/mesa/drivers/dri/r200/r200_sanity.c", + "../src/mesa/drivers/dri/r200/r200_sanity.h", + "../src/mesa/drivers/dri/r200/r200_state.c", + "../src/mesa/drivers/dri/r200/r200_state.h", + "../src/mesa/drivers/dri/r200/r200_state_init.c", + "../src/mesa/drivers/dri/r200/r200_swtcl.c", + "../src/mesa/drivers/dri/r200/r200_swtcl.h", + "../src/mesa/drivers/dri/r200/r200_tcl.c", + "../src/mesa/drivers/dri/r200/r200_tcl.h", + "../src/mesa/drivers/dri/r200/r200_tex.c", + "../src/mesa/drivers/dri/r200/r200_tex.h", + "../src/mesa/drivers/dri/r200/r200_texstate.c", + "../src/mesa/drivers/dri/r200/r200_vertprog.c", + "../src/mesa/drivers/dri/r200/r200_vertprog.h", + "../src/mesa/drivers/dri/r200/radeon_buffer_objects.c", + "../src/mesa/drivers/dri/r200/radeon_buffer_objects.h", + "../src/mesa/drivers/dri/r200/radeon_chipset.h", + "../src/mesa/drivers/dri/r200/radeon_cmdbuf.h", + "../src/mesa/drivers/dri/r200/radeon_common.c", + "../src/mesa/drivers/dri/r200/radeon_common.h", + "../src/mesa/drivers/dri/r200/radeon_common_context.c", + "../src/mesa/drivers/dri/r200/radeon_common_context.h", + "../src/mesa/drivers/dri/r200/radeon_debug.c", + "../src/mesa/drivers/dri/r200/radeon_debug.h", + "../src/mesa/drivers/dri/r200/radeon_dma.c", + "../src/mesa/drivers/dri/r200/radeon_dma.h", + "../src/mesa/drivers/dri/r200/radeon_fbo.c", + "../src/mesa/drivers/dri/r200/radeon_fog.c", + "../src/mesa/drivers/dri/r200/radeon_fog.h", + "../src/mesa/drivers/dri/r200/radeon_mipmap_tree.c", + "../src/mesa/drivers/dri/r200/radeon_mipmap_tree.h", + "../src/mesa/drivers/dri/r200/radeon_pixel_read.c", + "../src/mesa/drivers/dri/r200/radeon_queryobj.c", + "../src/mesa/drivers/dri/r200/radeon_queryobj.h", + "../src/mesa/drivers/dri/r200/radeon_screen.c", + "../src/mesa/drivers/dri/r200/radeon_screen.h", + "../src/mesa/drivers/dri/r200/radeon_span.c", + "../src/mesa/drivers/dri/r200/radeon_span.h", + "../src/mesa/drivers/dri/r200/radeon_tex_copy.c", + "../src/mesa/drivers/dri/r200/radeon_texture.c", + "../src/mesa/drivers/dri/r200/radeon_texture.h", + "../src/mesa/drivers/dri/r200/radeon_tile.c", + "../src/mesa/drivers/dri/r200/radeon_tile.h", + + "../src/mesa/drivers/dri/r200/server/radeon_reg.h", + + "../src/mesa/drivers/dri/radeon/meson.build", + "../src/mesa/drivers/dri/radeon/radeon_blit.c", + "../src/mesa/drivers/dri/radeon/radeon_blit.h", + "../src/mesa/drivers/dri/radeon/radeon_buffer_objects.c", + "../src/mesa/drivers/dri/radeon/radeon_buffer_objects.h", + "../src/mesa/drivers/dri/radeon/radeon_chipset.h", + "../src/mesa/drivers/dri/radeon/radeon_cmdbuf.h", + "../src/mesa/drivers/dri/radeon/radeon_common.c", + "../src/mesa/drivers/dri/radeon/radeon_common.h", + "../src/mesa/drivers/dri/radeon/radeon_common_context.c", + "../src/mesa/drivers/dri/radeon/radeon_common_context.h", + "../src/mesa/drivers/dri/radeon/radeon_context.c", + "../src/mesa/drivers/dri/radeon/radeon_context.h", + "../src/mesa/drivers/dri/radeon/radeon_debug.c", + "../src/mesa/drivers/dri/radeon/radeon_debug.h", + "../src/mesa/drivers/dri/radeon/radeon_dma.c", + "../src/mesa/drivers/dri/radeon/radeon_dma.h", + "../src/mesa/drivers/dri/radeon/radeon_fbo.c", + "../src/mesa/drivers/dri/radeon/radeon_fog.c", + "../src/mesa/drivers/dri/radeon/radeon_fog.h", + "../src/mesa/drivers/dri/radeon/radeon_ioctl.c", + "../src/mesa/drivers/dri/radeon/radeon_ioctl.h", + "../src/mesa/drivers/dri/radeon/radeon_maos.c", + "../src/mesa/drivers/dri/radeon/radeon_maos.h", + "../src/mesa/drivers/dri/radeon/radeon_maos_arrays.c", + "../src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h", + "../src/mesa/drivers/dri/radeon/radeon_maos_verts.c", + "../src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c", + "../src/mesa/drivers/dri/radeon/radeon_mipmap_tree.h", + "../src/mesa/drivers/dri/radeon/radeon_pixel_read.c", + "../src/mesa/drivers/dri/radeon/radeon_queryobj.c", + "../src/mesa/drivers/dri/radeon/radeon_queryobj.h", + "../src/mesa/drivers/dri/radeon/radeon_sanity.c", + "../src/mesa/drivers/dri/radeon/radeon_sanity.h", + "../src/mesa/drivers/dri/radeon/radeon_screen.c", + "../src/mesa/drivers/dri/radeon/radeon_screen.h", + "../src/mesa/drivers/dri/radeon/radeon_span.c", + "../src/mesa/drivers/dri/radeon/radeon_span.h", + "../src/mesa/drivers/dri/radeon/radeon_state.c", + "../src/mesa/drivers/dri/radeon/radeon_state.h", + "../src/mesa/drivers/dri/radeon/radeon_state_init.c", + "../src/mesa/drivers/dri/radeon/radeon_swtcl.c", + "../src/mesa/drivers/dri/radeon/radeon_swtcl.h", + "../src/mesa/drivers/dri/radeon/radeon_tcl.c", + "../src/mesa/drivers/dri/radeon/radeon_tcl.h", + "../src/mesa/drivers/dri/radeon/radeon_tex.c", + "../src/mesa/drivers/dri/radeon/radeon_tex.h", + "../src/mesa/drivers/dri/radeon/radeon_tex_copy.c", + "../src/mesa/drivers/dri/radeon/radeon_texstate.c", + "../src/mesa/drivers/dri/radeon/radeon_texture.c", + "../src/mesa/drivers/dri/radeon/radeon_texture.h", + "../src/mesa/drivers/dri/radeon/radeon_tile.c", + "../src/mesa/drivers/dri/radeon/radeon_tile.h", + + "../src/mesa/drivers/dri/radeon/server/radeon_reg.h", + + "../src/mesa/drivers/x11/fakeglx.c", + "../src/mesa/drivers/x11/glxapi.c", + "../src/mesa/drivers/x11/glxapi.h", + "../src/mesa/drivers/x11/glxheader.h", + "../src/mesa/drivers/x11/meson.build", + "../src/mesa/drivers/x11/xfonts.c", + "../src/mesa/drivers/x11/xfonts.h", + "../src/mesa/drivers/x11/xm_api.c", + "../src/mesa/drivers/x11/xm_buffer.c", + "../src/mesa/drivers/x11/xm_dd.c", + "../src/mesa/drivers/x11/xm_line.c", + "../src/mesa/drivers/x11/xm_tri.c", + "../src/mesa/drivers/x11/xmesa.h", + "../src/mesa/drivers/x11/xmesaP.h", + "../src/mesa/drivers/x11/xmesa_x.h", + + "../src/mesa/main/accum.c", + "../src/mesa/main/accum.h", + "../src/mesa/main/api_arrayelt.c", + "../src/mesa/main/api_arrayelt.h", + "../src/mesa/main/api_exec.h", + "../src/mesa/main/arbprogram.c", + "../src/mesa/main/arbprogram.h", + "../src/mesa/main/arrayobj.c", + "../src/mesa/main/arrayobj.h", + "../src/mesa/main/atifragshader.c", + "../src/mesa/main/atifragshader.h", + "../src/mesa/main/attrib.c", + "../src/mesa/main/attrib.h", + "../src/mesa/main/barrier.c", + "../src/mesa/main/barrier.h", + "../src/mesa/main/bbox.c", + "../src/mesa/main/bbox.h", + "../src/mesa/main/blend.c", + "../src/mesa/main/blend.h", + "../src/mesa/main/blit.c", + "../src/mesa/main/blit.h", + "../src/mesa/main/bufferobj.c", + "../src/mesa/main/bufferobj.h", + "../src/mesa/main/buffers.c", + "../src/mesa/main/buffers.h", + "../src/mesa/main/clear.c", + "../src/mesa/main/clear.h", + "../src/mesa/main/clip.c", + "../src/mesa/main/clip.h", + "../src/mesa/main/colormac.h", + "../src/mesa/main/colortab.c", + "../src/mesa/main/colortab.h", + "../src/mesa/main/compute.c", + "../src/mesa/main/compute.h", + "../src/mesa/main/condrender.c", + "../src/mesa/main/condrender.h", + "../src/mesa/main/config.h", + "../src/mesa/main/conservativeraster.c", + "../src/mesa/main/conservativeraster.h", + "../src/mesa/main/context.c", + "../src/mesa/main/context.h", + "../src/mesa/main/convolve.c", + "../src/mesa/main/convolve.h", + "../src/mesa/main/copyimage.c", + "../src/mesa/main/copyimage.h", + "../src/mesa/main/cpuinfo.c", + "../src/mesa/main/cpuinfo.h", + "../src/mesa/main/dd.h", + "../src/mesa/main/debug.c", + "../src/mesa/main/debug.h", + "../src/mesa/main/debug_output.c", + "../src/mesa/main/debug_output.h", + "../src/mesa/main/depth.c", + "../src/mesa/main/depth.h", + "../src/mesa/main/dlist.c", + "../src/mesa/main/dlist.h", + "../src/mesa/main/draw.c", + "../src/mesa/main/draw.h", + "../src/mesa/main/draw_validate.c", + "../src/mesa/main/draw_validate.h", + "../src/mesa/main/drawpix.c", + "../src/mesa/main/drawpix.h", + "../src/mesa/main/drawtex.c", + "../src/mesa/main/drawtex.h", + "../src/mesa/main/enable.c", + "../src/mesa/main/enable.h", + "../src/mesa/main/enums.h", + "../src/mesa/main/errors.c", + "../src/mesa/main/errors.h", + "../src/mesa/main/es1_conversion.c", + "../src/mesa/main/es1_conversion.h", + "../src/mesa/main/eval.c", + "../src/mesa/main/eval.h", + "../src/mesa/main/execmem.c", + "../src/mesa/main/execmem.h", + "../src/mesa/main/extensions.c", + "../src/mesa/main/extensions.h", + "../src/mesa/main/extensions_table.c", + "../src/mesa/main/extensions_table.h", + "../src/mesa/main/externalobjects.c", + "../src/mesa/main/externalobjects.h", + "../src/mesa/main/fbobject.c", + "../src/mesa/main/fbobject.h", + "../src/mesa/main/feedback.c", + "../src/mesa/main/feedback.h", + "../src/mesa/main/ff_fragment_shader.cpp", + "../src/mesa/main/ffvertex_prog.c", + "../src/mesa/main/ffvertex_prog.h", + "../src/mesa/main/fog.c", + "../src/mesa/main/fog.h", + "../src/mesa/main/format_fallback.py", + "../src/mesa/main/format_info.py", + "../src/mesa/main/format_pack.h", + "../src/mesa/main/format_parser.py", + "../src/mesa/main/format_unpack.h", + "../src/mesa/main/format_utils.c", + "../src/mesa/main/format_utils.h", + "../src/mesa/main/formatquery.c", + "../src/mesa/main/formatquery.h", + "../src/mesa/main/formats.c", + "../src/mesa/main/formats.csv", + "../src/mesa/main/formats.h", + "../src/mesa/main/framebuffer.c", + "../src/mesa/main/framebuffer.h", + "../src/mesa/main/genmipmap.c", + "../src/mesa/main/genmipmap.h", + "../src/mesa/main/get.c", + "../src/mesa/main/get.h", + "../src/mesa/main/get_hash_generator.py", + "../src/mesa/main/get_hash_params.py", + "../src/mesa/main/getstring.c", + "../src/mesa/main/glformats.c", + "../src/mesa/main/glformats.h", + "../src/mesa/main/glheader.h", + "../src/mesa/main/glspirv.c", + "../src/mesa/main/glspirv.h", + "../src/mesa/main/glthread.c", + "../src/mesa/main/glthread.h", + "../src/mesa/main/glthread_bufferobj.c", + "../src/mesa/main/glthread_draw.c", + "../src/mesa/main/glthread_get.c", + "../src/mesa/main/glthread_list.c", + "../src/mesa/main/glthread_marshal.h", + "../src/mesa/main/glthread_shaderobj.c", + "../src/mesa/main/glthread_varray.c", + "../src/mesa/main/hash.c", + "../src/mesa/main/hash.h", + "../src/mesa/main/hint.c", + "../src/mesa/main/hint.h", + "../src/mesa/main/histogram.c", + "../src/mesa/main/histogram.h", + "../src/mesa/main/image.c", + "../src/mesa/main/image.h", + "../src/mesa/main/light.c", + "../src/mesa/main/light.h", + "../src/mesa/main/lines.c", + "../src/mesa/main/lines.h", + "../src/mesa/main/macros.h", + "../src/mesa/main/matrix.c", + "../src/mesa/main/matrix.h", + "../src/mesa/main/menums.h", + "../src/mesa/main/mesa_private.h", + "../src/mesa/main/meson.build", + "../src/mesa/main/mipmap.c", + "../src/mesa/main/mipmap.h", + "../src/mesa/main/mtypes.h", + "../src/mesa/main/multisample.c", + "../src/mesa/main/multisample.h", + "../src/mesa/main/objectlabel.c", + "../src/mesa/main/objectlabel.h", + "../src/mesa/main/objectpurge.c", + "../src/mesa/main/objectpurge.h", + "../src/mesa/main/pack.c", + "../src/mesa/main/pack.h", + "../src/mesa/main/pbo.c", + "../src/mesa/main/pbo.h", + "../src/mesa/main/performance_monitor.c", + "../src/mesa/main/performance_monitor.h", + "../src/mesa/main/performance_query.c", + "../src/mesa/main/performance_query.h", + "../src/mesa/main/pipelineobj.c", + "../src/mesa/main/pipelineobj.h", + "../src/mesa/main/pixel.c", + "../src/mesa/main/pixel.h", + "../src/mesa/main/pixelstore.c", + "../src/mesa/main/pixelstore.h", + "../src/mesa/main/pixeltransfer.c", + "../src/mesa/main/pixeltransfer.h", + "../src/mesa/main/points.c", + "../src/mesa/main/points.h", + "../src/mesa/main/polygon.c", + "../src/mesa/main/polygon.h", + "../src/mesa/main/program_binary.c", + "../src/mesa/main/program_binary.h", + "../src/mesa/main/program_resource.c", + "../src/mesa/main/program_resource.h", + "../src/mesa/main/querymatrix.c", + "../src/mesa/main/querymatrix.h", + "../src/mesa/main/queryobj.c", + "../src/mesa/main/queryobj.h", + "../src/mesa/main/rastpos.c", + "../src/mesa/main/rastpos.h", + "../src/mesa/main/readpix.c", + "../src/mesa/main/readpix.h", + "../src/mesa/main/remap.c", + "../src/mesa/main/remap.h", + "../src/mesa/main/renderbuffer.c", + "../src/mesa/main/renderbuffer.h", + "../src/mesa/main/robustness.c", + "../src/mesa/main/samplerobj.c", + "../src/mesa/main/samplerobj.h", + "../src/mesa/main/scissor.c", + "../src/mesa/main/scissor.h", + "../src/mesa/main/shader_query.cpp", + "../src/mesa/main/shaderapi.c", + "../src/mesa/main/shaderapi.h", + "../src/mesa/main/shaderimage.c", + "../src/mesa/main/shaderimage.h", + "../src/mesa/main/shaderobj.c", + "../src/mesa/main/shaderobj.h", + "../src/mesa/main/shared.c", + "../src/mesa/main/shared.h", + "../src/mesa/main/spirv_extensions.c", + "../src/mesa/main/spirv_extensions.h", + "../src/mesa/main/sse_minmax.c", + "../src/mesa/main/sse_minmax.h", + "../src/mesa/main/state.c", + "../src/mesa/main/state.h", + "../src/mesa/main/stencil.c", + "../src/mesa/main/stencil.h", + "../src/mesa/main/streaming-load-memcpy.c", + "../src/mesa/main/streaming-load-memcpy.h", + "../src/mesa/main/syncobj.c", + "../src/mesa/main/syncobj.h", + "../src/mesa/main/texcompress.c", + "../src/mesa/main/texcompress.h", + "../src/mesa/main/texcompress_astc.cpp", + "../src/mesa/main/texcompress_astc.h", + "../src/mesa/main/texcompress_bptc.c", + "../src/mesa/main/texcompress_bptc.h", + "../src/mesa/main/texcompress_bptc_tmp.h", + "../src/mesa/main/texcompress_cpal.c", + "../src/mesa/main/texcompress_cpal.h", + "../src/mesa/main/texcompress_etc.c", + "../src/mesa/main/texcompress_etc.h", + "../src/mesa/main/texcompress_etc_tmp.h", + "../src/mesa/main/texcompress_fxt1.c", + "../src/mesa/main/texcompress_fxt1.h", + "../src/mesa/main/texcompress_rgtc.c", + "../src/mesa/main/texcompress_rgtc.h", + "../src/mesa/main/texcompress_s3tc.c", + "../src/mesa/main/texcompress_s3tc.h", + "../src/mesa/main/texcompress_s3tc_tmp.h", + "../src/mesa/main/texenv.c", + "../src/mesa/main/texenv.h", + "../src/mesa/main/texenvprogram.h", + "../src/mesa/main/texformat.c", + "../src/mesa/main/texformat.h", + "../src/mesa/main/texgen.c", + "../src/mesa/main/texgen.h", + "../src/mesa/main/texgetimage.c", + "../src/mesa/main/texgetimage.h", + "../src/mesa/main/teximage.c", + "../src/mesa/main/teximage.h", + "../src/mesa/main/texobj.c", + "../src/mesa/main/texobj.h", + "../src/mesa/main/texparam.c", + "../src/mesa/main/texparam.h", + "../src/mesa/main/texstate.c", + "../src/mesa/main/texstate.h", + "../src/mesa/main/texstorage.c", + "../src/mesa/main/texstorage.h", + "../src/mesa/main/texstore.c", + "../src/mesa/main/texstore.h", + "../src/mesa/main/texturebindless.c", + "../src/mesa/main/texturebindless.h", + "../src/mesa/main/textureview.c", + "../src/mesa/main/textureview.h", + "../src/mesa/main/transformfeedback.c", + "../src/mesa/main/transformfeedback.h", + "../src/mesa/main/uniform_query.cpp", + "../src/mesa/main/uniforms.c", + "../src/mesa/main/uniforms.h", + "../src/mesa/main/varray.c", + "../src/mesa/main/varray.h", + "../src/mesa/main/vdpau.c", + "../src/mesa/main/vdpau.h", + "../src/mesa/main/version.c", + "../src/mesa/main/version.h", + "../src/mesa/main/viewport.c", + "../src/mesa/main/viewport.h", + "../src/mesa/main/vtxfmt.c", + "../src/mesa/main/vtxfmt.h", + + "../src/mesa/math/m_clip_tmp.h", + "../src/mesa/math/m_copy_tmp.h", + "../src/mesa/math/m_debug.h", + "../src/mesa/math/m_debug_clip.c", + "../src/mesa/math/m_debug_norm.c", + "../src/mesa/math/m_debug_util.h", + "../src/mesa/math/m_debug_xform.c", + "../src/mesa/math/m_dotprod_tmp.h", + "../src/mesa/math/m_eval.c", + "../src/mesa/math/m_eval.h", + "../src/mesa/math/m_matrix.c", + "../src/mesa/math/m_matrix.h", + "../src/mesa/math/m_norm_tmp.h", + "../src/mesa/math/m_trans_tmp.h", + "../src/mesa/math/m_translate.c", + "../src/mesa/math/m_translate.h", + "../src/mesa/math/m_vector.c", + "../src/mesa/math/m_vector.h", + "../src/mesa/math/m_vector_asm.h", + "../src/mesa/math/m_xform.c", + "../src/mesa/math/m_xform.h", + "../src/mesa/math/m_xform_tmp.h", + + "../src/mesa/program/arbprogparse.c", + "../src/mesa/program/arbprogparse.h", + "../src/mesa/program/dummy_errors.c", + "../src/mesa/program/ir_to_mesa.cpp", + "../src/mesa/program/ir_to_mesa.h", + "../src/mesa/program/meson.build", + "../src/mesa/program/prog_cache.c", + "../src/mesa/program/prog_cache.h", + "../src/mesa/program/prog_execute.c", + "../src/mesa/program/prog_execute.h", + "../src/mesa/program/prog_instruction.c", + "../src/mesa/program/prog_instruction.h", + "../src/mesa/program/prog_noise.c", + "../src/mesa/program/prog_noise.h", + "../src/mesa/program/prog_opt_constant_fold.c", + "../src/mesa/program/prog_optimize.c", + "../src/mesa/program/prog_optimize.h", + "../src/mesa/program/prog_parameter.c", + "../src/mesa/program/prog_parameter.h", + "../src/mesa/program/prog_parameter_layout.c", + "../src/mesa/program/prog_parameter_layout.h", + "../src/mesa/program/prog_print.c", + "../src/mesa/program/prog_print.h", + "../src/mesa/program/prog_statevars.c", + "../src/mesa/program/prog_statevars.h", + "../src/mesa/program/prog_to_nir.c", + "../src/mesa/program/prog_to_nir.h", + "../src/mesa/program/program.c", + "../src/mesa/program/program.h", + "../src/mesa/program/program_lexer.l", + "../src/mesa/program/program_parse.y", + "../src/mesa/program/program_parse_extra.c", + "../src/mesa/program/program_parser.h", + "../src/mesa/program/programopt.c", + "../src/mesa/program/programopt.h", + "../src/mesa/program/symbol_table.c", + "../src/mesa/program/symbol_table.h", + + "../src/mesa/sparc/norm.S", + "../src/mesa/sparc/sparc.c", + "../src/mesa/sparc/sparc.h", + "../src/mesa/sparc/sparc_clip.S", + "../src/mesa/sparc/sparc_matrix.h", + "../src/mesa/sparc/xform.S", + + "../src/mesa/state_tracker/st_atifs_to_nir.c", + "../src/mesa/state_tracker/st_atifs_to_nir.h", + "../src/mesa/state_tracker/st_atom.c", + "../src/mesa/state_tracker/st_atom.h", + "../src/mesa/state_tracker/st_atom_array.c", + "../src/mesa/state_tracker/st_atom_atomicbuf.c", + "../src/mesa/state_tracker/st_atom_blend.c", + "../src/mesa/state_tracker/st_atom_clip.c", + "../src/mesa/state_tracker/st_atom_constbuf.c", + "../src/mesa/state_tracker/st_atom_constbuf.h", + "../src/mesa/state_tracker/st_atom_depth.c", + "../src/mesa/state_tracker/st_atom_framebuffer.c", + "../src/mesa/state_tracker/st_atom_image.c", + "../src/mesa/state_tracker/st_atom_list.h", + "../src/mesa/state_tracker/st_atom_msaa.c", + "../src/mesa/state_tracker/st_atom_pixeltransfer.c", + "../src/mesa/state_tracker/st_atom_rasterizer.c", + "../src/mesa/state_tracker/st_atom_sampler.c", + "../src/mesa/state_tracker/st_atom_scissor.c", + "../src/mesa/state_tracker/st_atom_shader.c", + "../src/mesa/state_tracker/st_atom_stipple.c", + "../src/mesa/state_tracker/st_atom_storagebuf.c", + "../src/mesa/state_tracker/st_atom_tess.c", + "../src/mesa/state_tracker/st_atom_texture.c", + "../src/mesa/state_tracker/st_atom_viewport.c", + "../src/mesa/state_tracker/st_cb_bitmap.c", + "../src/mesa/state_tracker/st_cb_bitmap.h", + "../src/mesa/state_tracker/st_cb_bitmap_shader.c", + "../src/mesa/state_tracker/st_cb_blit.c", + "../src/mesa/state_tracker/st_cb_blit.h", + "../src/mesa/state_tracker/st_cb_bufferobjects.c", + "../src/mesa/state_tracker/st_cb_bufferobjects.h", + "../src/mesa/state_tracker/st_cb_clear.c", + "../src/mesa/state_tracker/st_cb_clear.h", + "../src/mesa/state_tracker/st_cb_compute.c", + "../src/mesa/state_tracker/st_cb_compute.h", + "../src/mesa/state_tracker/st_cb_condrender.c", + "../src/mesa/state_tracker/st_cb_condrender.h", + "../src/mesa/state_tracker/st_cb_copyimage.c", + "../src/mesa/state_tracker/st_cb_copyimage.h", + "../src/mesa/state_tracker/st_cb_drawpixels.c", + "../src/mesa/state_tracker/st_cb_drawpixels.h", + "../src/mesa/state_tracker/st_cb_drawpixels_shader.c", + "../src/mesa/state_tracker/st_cb_drawtex.c", + "../src/mesa/state_tracker/st_cb_drawtex.h", + "../src/mesa/state_tracker/st_cb_eglimage.c", + "../src/mesa/state_tracker/st_cb_eglimage.h", + "../src/mesa/state_tracker/st_cb_fbo.c", + "../src/mesa/state_tracker/st_cb_fbo.h", + "../src/mesa/state_tracker/st_cb_feedback.c", + "../src/mesa/state_tracker/st_cb_feedback.h", + "../src/mesa/state_tracker/st_cb_flush.c", + "../src/mesa/state_tracker/st_cb_flush.h", + "../src/mesa/state_tracker/st_cb_memoryobjects.c", + "../src/mesa/state_tracker/st_cb_memoryobjects.h", + "../src/mesa/state_tracker/st_cb_msaa.c", + "../src/mesa/state_tracker/st_cb_msaa.h", + "../src/mesa/state_tracker/st_cb_perfmon.c", + "../src/mesa/state_tracker/st_cb_perfmon.h", + "../src/mesa/state_tracker/st_cb_perfquery.c", + "../src/mesa/state_tracker/st_cb_perfquery.h", + "../src/mesa/state_tracker/st_cb_program.c", + "../src/mesa/state_tracker/st_cb_program.h", + "../src/mesa/state_tracker/st_cb_queryobj.c", + "../src/mesa/state_tracker/st_cb_queryobj.h", + "../src/mesa/state_tracker/st_cb_rasterpos.c", + "../src/mesa/state_tracker/st_cb_rasterpos.h", + "../src/mesa/state_tracker/st_cb_readpixels.c", + "../src/mesa/state_tracker/st_cb_readpixels.h", + "../src/mesa/state_tracker/st_cb_semaphoreobjects.c", + "../src/mesa/state_tracker/st_cb_semaphoreobjects.h", + "../src/mesa/state_tracker/st_cb_strings.c", + "../src/mesa/state_tracker/st_cb_strings.h", + "../src/mesa/state_tracker/st_cb_syncobj.c", + "../src/mesa/state_tracker/st_cb_syncobj.h", + "../src/mesa/state_tracker/st_cb_texture.c", + "../src/mesa/state_tracker/st_cb_texture.h", + "../src/mesa/state_tracker/st_cb_texturebarrier.c", + "../src/mesa/state_tracker/st_cb_texturebarrier.h", + "../src/mesa/state_tracker/st_cb_viewport.c", + "../src/mesa/state_tracker/st_cb_viewport.h", + "../src/mesa/state_tracker/st_cb_xformfb.c", + "../src/mesa/state_tracker/st_cb_xformfb.h", + "../src/mesa/state_tracker/st_context.c", + "../src/mesa/state_tracker/st_context.h", + "../src/mesa/state_tracker/st_copytex.c", + "../src/mesa/state_tracker/st_copytex.h", + "../src/mesa/state_tracker/st_debug.c", + "../src/mesa/state_tracker/st_debug.h", + "../src/mesa/state_tracker/st_draw.c", + "../src/mesa/state_tracker/st_draw.h", + "../src/mesa/state_tracker/st_draw_feedback.c", + "../src/mesa/state_tracker/st_extensions.c", + "../src/mesa/state_tracker/st_extensions.h", + "../src/mesa/state_tracker/st_format.c", + "../src/mesa/state_tracker/st_format.h", + "../src/mesa/state_tracker/st_gen_mipmap.c", + "../src/mesa/state_tracker/st_gen_mipmap.h", + "../src/mesa/state_tracker/st_gl_api.h", + "../src/mesa/state_tracker/st_glsl_to_ir.cpp", + "../src/mesa/state_tracker/st_glsl_to_ir.h", + "../src/mesa/state_tracker/st_glsl_to_nir.cpp", + "../src/mesa/state_tracker/st_glsl_to_tgsi.cpp", + "../src/mesa/state_tracker/st_glsl_to_tgsi.h", + "../src/mesa/state_tracker/st_glsl_to_tgsi_array_merge.cpp", + "../src/mesa/state_tracker/st_glsl_to_tgsi_array_merge.h", + "../src/mesa/state_tracker/st_glsl_to_tgsi_private.cpp", + "../src/mesa/state_tracker/st_glsl_to_tgsi_private.h", + "../src/mesa/state_tracker/st_glsl_to_tgsi_temprename.cpp", + "../src/mesa/state_tracker/st_glsl_to_tgsi_temprename.h", + "../src/mesa/state_tracker/st_manager.c", + "../src/mesa/state_tracker/st_manager.h", + "../src/mesa/state_tracker/st_nir.h", + "../src/mesa/state_tracker/st_nir_builtins.c", + "../src/mesa/state_tracker/st_nir_lower_builtin.c", + "../src/mesa/state_tracker/st_nir_lower_tex_src_plane.c", + "../src/mesa/state_tracker/st_pbo.c", + "../src/mesa/state_tracker/st_pbo.h", + "../src/mesa/state_tracker/st_program.c", + "../src/mesa/state_tracker/st_program.h", + "../src/mesa/state_tracker/st_sampler_view.c", + "../src/mesa/state_tracker/st_sampler_view.h", + "../src/mesa/state_tracker/st_scissor.c", + "../src/mesa/state_tracker/st_scissor.h", + "../src/mesa/state_tracker/st_shader_cache.c", + "../src/mesa/state_tracker/st_shader_cache.h", + "../src/mesa/state_tracker/st_texture.c", + "../src/mesa/state_tracker/st_texture.h", + "../src/mesa/state_tracker/st_tgsi_lower_depth_clamp.c", + "../src/mesa/state_tracker/st_tgsi_lower_depth_clamp.h", + "../src/mesa/state_tracker/st_tgsi_lower_yuv.c", + "../src/mesa/state_tracker/st_tgsi_lower_yuv.h", + "../src/mesa/state_tracker/st_util.h", + "../src/mesa/state_tracker/st_vdpau.c", + "../src/mesa/state_tracker/st_vdpau.h", + + "../src/mesa/swrast/NOTES", + "../src/mesa/swrast/s_aaline.c", + "../src/mesa/swrast/s_aaline.h", + "../src/mesa/swrast/s_aalinetemp.h", + "../src/mesa/swrast/s_aatriangle.c", + "../src/mesa/swrast/s_aatriangle.h", + "../src/mesa/swrast/s_aatritemp.h", + "../src/mesa/swrast/s_alpha.c", + "../src/mesa/swrast/s_alpha.h", + "../src/mesa/swrast/s_atifragshader.c", + "../src/mesa/swrast/s_atifragshader.h", + "../src/mesa/swrast/s_bitmap.c", + "../src/mesa/swrast/s_blend.c", + "../src/mesa/swrast/s_blend.h", + "../src/mesa/swrast/s_blit.c", + "../src/mesa/swrast/s_chan.h", + "../src/mesa/swrast/s_clear.c", + "../src/mesa/swrast/s_context.c", + "../src/mesa/swrast/s_context.h", + "../src/mesa/swrast/s_copypix.c", + "../src/mesa/swrast/s_depth.c", + "../src/mesa/swrast/s_depth.h", + "../src/mesa/swrast/s_drawpix.c", + "../src/mesa/swrast/s_feedback.c", + "../src/mesa/swrast/s_feedback.h", + "../src/mesa/swrast/s_fog.c", + "../src/mesa/swrast/s_fog.h", + "../src/mesa/swrast/s_fragprog.c", + "../src/mesa/swrast/s_fragprog.h", + "../src/mesa/swrast/s_lines.c", + "../src/mesa/swrast/s_lines.h", + "../src/mesa/swrast/s_linetemp.h", + "../src/mesa/swrast/s_logic.c", + "../src/mesa/swrast/s_logic.h", + "../src/mesa/swrast/s_masking.c", + "../src/mesa/swrast/s_masking.h", + "../src/mesa/swrast/s_points.c", + "../src/mesa/swrast/s_points.h", + "../src/mesa/swrast/s_renderbuffer.c", + "../src/mesa/swrast/s_renderbuffer.h", + "../src/mesa/swrast/s_span.c", + "../src/mesa/swrast/s_span.h", + "../src/mesa/swrast/s_stencil.c", + "../src/mesa/swrast/s_stencil.h", + "../src/mesa/swrast/s_texcombine.c", + "../src/mesa/swrast/s_texcombine.h", + "../src/mesa/swrast/s_texfetch.c", + "../src/mesa/swrast/s_texfetch.h", + "../src/mesa/swrast/s_texfetch_tmp.h", + "../src/mesa/swrast/s_texfilter.c", + "../src/mesa/swrast/s_texfilter.h", + "../src/mesa/swrast/s_texrender.c", + "../src/mesa/swrast/s_texture.c", + "../src/mesa/swrast/s_triangle.c", + "../src/mesa/swrast/s_triangle.h", + "../src/mesa/swrast/s_tritemp.h", + "../src/mesa/swrast/s_zoom.c", + "../src/mesa/swrast/s_zoom.h", + "../src/mesa/swrast/swrast.h", + + "../src/mesa/swrast_setup/NOTES", + "../src/mesa/swrast_setup/ss_context.c", + "../src/mesa/swrast_setup/ss_context.h", + "../src/mesa/swrast_setup/ss_triangle.c", + "../src/mesa/swrast_setup/ss_triangle.h", + "../src/mesa/swrast_setup/ss_tritmp.h", + "../src/mesa/swrast_setup/ss_vb.h", + "../src/mesa/swrast_setup/swrast_setup.h", + + "../src/mesa/tnl/NOTES", + "../src/mesa/tnl/t_context.c", + "../src/mesa/tnl/t_context.h", + "../src/mesa/tnl/t_draw.c", + "../src/mesa/tnl/t_pipeline.c", + "../src/mesa/tnl/t_pipeline.h", + "../src/mesa/tnl/t_rebase.c", + "../src/mesa/tnl/t_rebase.h", + "../src/mesa/tnl/t_split.c", + "../src/mesa/tnl/t_split.h", + "../src/mesa/tnl/t_split_copy.c", + "../src/mesa/tnl/t_split_inplace.c", + "../src/mesa/tnl/t_vb_cliptmp.h", + "../src/mesa/tnl/t_vb_fog.c", + "../src/mesa/tnl/t_vb_light.c", + "../src/mesa/tnl/t_vb_lighttmp.h", + "../src/mesa/tnl/t_vb_normals.c", + "../src/mesa/tnl/t_vb_points.c", + "../src/mesa/tnl/t_vb_program.c", + "../src/mesa/tnl/t_vb_render.c", + "../src/mesa/tnl/t_vb_rendertmp.h", + "../src/mesa/tnl/t_vb_texgen.c", + "../src/mesa/tnl/t_vb_texmat.c", + "../src/mesa/tnl/t_vb_vertex.c", + "../src/mesa/tnl/t_vertex.c", + "../src/mesa/tnl/t_vertex.h", + "../src/mesa/tnl/t_vertex_generic.c", + "../src/mesa/tnl/t_vertex_sse.c", + "../src/mesa/tnl/t_vp_build.c", + "../src/mesa/tnl/t_vp_build.h", + "../src/mesa/tnl/tnl.h", + + "../src/mesa/tnl_dd/t_dd_dmatmp.h", + "../src/mesa/tnl_dd/t_dd_dmatmp2.h", + "../src/mesa/tnl_dd/t_dd_triemit.h", + "../src/mesa/tnl_dd/t_dd_tritmp.h", + "../src/mesa/tnl_dd/t_dd_unfilled.h", + "../src/mesa/tnl_dd/t_dd_vertex.h", + + "../src/mesa/vbo/vbo.h", + "../src/mesa/vbo/vbo_attrib.h", + "../src/mesa/vbo/vbo_attrib_tmp.h", + "../src/mesa/vbo/vbo_context.c", + "../src/mesa/vbo/vbo_exec.c", + "../src/mesa/vbo/vbo_exec.h", + "../src/mesa/vbo/vbo_exec_api.c", + "../src/mesa/vbo/vbo_exec_draw.c", + "../src/mesa/vbo/vbo_exec_eval.c", + "../src/mesa/vbo/vbo_init_tmp.h", + "../src/mesa/vbo/vbo_minmax_index.c", + "../src/mesa/vbo/vbo_noop.c", + "../src/mesa/vbo/vbo_noop.h", + "../src/mesa/vbo/vbo_private.h", + "../src/mesa/vbo/vbo_save.c", + "../src/mesa/vbo/vbo_save.h", + "../src/mesa/vbo/vbo_save_api.c", + "../src/mesa/vbo/vbo_save_draw.c", + "../src/mesa/vbo/vbo_save_loopback.c", + "../src/mesa/vbo/vbo_util.h", + + "../src/mesa/x86-64/x86-64.c", + "../src/mesa/x86-64/x86-64.h", + "../src/mesa/x86-64/xform4.S", + + "../src/mesa/x86/3dnow.c", + "../src/mesa/x86/3dnow.h", + "../src/mesa/x86/3dnow_xform1.S", + "../src/mesa/x86/3dnow_xform2.S", + "../src/mesa/x86/3dnow_xform3.S", + "../src/mesa/x86/3dnow_xform4.S", + "../src/mesa/x86/assyntax.h", + "../src/mesa/x86/clip_args.h", + "../src/mesa/x86/common_x86.c", + "../src/mesa/x86/common_x86_asm.S", + "../src/mesa/x86/common_x86_asm.h", + "../src/mesa/x86/common_x86_features.h", + "../src/mesa/x86/mmx.h", + "../src/mesa/x86/mmx_blend.S", + "../src/mesa/x86/mmx_blendtmp.h", + "../src/mesa/x86/norm_args.h", + "../src/mesa/x86/read_rgba_span_x86.S", + "../src/mesa/x86/sse.c", + "../src/mesa/x86/sse.h", + "../src/mesa/x86/sse_normal.S", + "../src/mesa/x86/sse_xform1.S", + "../src/mesa/x86/sse_xform2.S", + "../src/mesa/x86/sse_xform3.S", + "../src/mesa/x86/sse_xform4.S", + "../src/mesa/x86/x86_cliptest.S", + "../src/mesa/x86/x86_xform.c", + "../src/mesa/x86/x86_xform.h", + "../src/mesa/x86/x86_xform2.S", + "../src/mesa/x86/x86_xform3.S", + "../src/mesa/x86/x86_xform4.S", + "../src/mesa/x86/xform_args.h", + + "../src/mesa/x86/rtasm/x86sse.c", + "../src/mesa/x86/rtasm/x86sse.h", + + "../src/microsoft/meson.build", + + "../src/microsoft/clc/clc_compiler.c", + "../src/microsoft/clc/clc_compiler.h", + "../src/microsoft/clc/clc_compiler_test.cpp", + "../src/microsoft/clc/clc_nir.c", + "../src/microsoft/clc/clc_nir.h", + "../src/microsoft/clc/clon12compiler.def", + "../src/microsoft/clc/compute_test.cpp", + "../src/microsoft/clc/compute_test.h", + "../src/microsoft/clc/meson.build", + + "../src/microsoft/compiler/dxcapi.h", + "../src/microsoft/compiler/dxil_buffer.c", + "../src/microsoft/compiler/dxil_buffer.h", + "../src/microsoft/compiler/dxil_buffer_test.c", + "../src/microsoft/compiler/dxil_container.c", + "../src/microsoft/compiler/dxil_container.h", + "../src/microsoft/compiler/dxil_dump.c", + "../src/microsoft/compiler/dxil_dump.h", + "../src/microsoft/compiler/dxil_dump_decls.h", + "../src/microsoft/compiler/dxil_enums.c", + "../src/microsoft/compiler/dxil_enums.h", + "../src/microsoft/compiler/dxil_function.c", + "../src/microsoft/compiler/dxil_function.h", + "../src/microsoft/compiler/dxil_internal.h", + "../src/microsoft/compiler/dxil_module.c", + "../src/microsoft/compiler/dxil_module.h", + "../src/microsoft/compiler/dxil_nir.c", + "../src/microsoft/compiler/dxil_nir.h", + "../src/microsoft/compiler/dxil_nir_algebraic.py", + "../src/microsoft/compiler/dxil_nir_lower_int_samplers.c", + "../src/microsoft/compiler/dxil_nir_lower_int_samplers.h", + "../src/microsoft/compiler/dxil_signature.c", + "../src/microsoft/compiler/dxil_signature.h", + "../src/microsoft/compiler/meson.build", + "../src/microsoft/compiler/nir_to_dxil.c", + "../src/microsoft/compiler/nir_to_dxil.h", + + "../src/microsoft/resource_state_manager/D3D12ResourceState.cpp", + "../src/microsoft/resource_state_manager/D3D12ResourceState.h", + "../src/microsoft/resource_state_manager/meson.build", + + "../src/microsoft/spirv_to_dxil/meson.build", + "../src/microsoft/spirv_to_dxil/spirv2dxil.c", + "../src/microsoft/spirv_to_dxil/spirv_to_dxil.c", + "../src/microsoft/spirv_to_dxil/spirv_to_dxil.def", + "../src/microsoft/spirv_to_dxil/spirv_to_dxil.h", + + "../src/nouveau/meson.build", + + "../src/nouveau/drm-shim/meson.build", + "../src/nouveau/drm-shim/nouveau_noop.c", + + "../src/panfrost/meson.build", + + "../src/panfrost/bifrost/ISA.xml", + "../src/panfrost/bifrost/Notes.txt", + "../src/panfrost/bifrost/bi_builder.h.py", + "../src/panfrost/bifrost/bi_helper_invocations.c", + "../src/panfrost/bifrost/bi_layout.c", + "../src/panfrost/bifrost/bi_liveness.c", + "../src/panfrost/bifrost/bi_lower_divergent_indirects.c", + "../src/panfrost/bifrost/bi_lower_swizzle.c", + "../src/panfrost/bifrost/bi_opcodes.c.py", + "../src/panfrost/bifrost/bi_opcodes.h.py", + "../src/panfrost/bifrost/bi_opt_constant_fold.c", + "../src/panfrost/bifrost/bi_opt_copy_prop.c", + "../src/panfrost/bifrost/bi_opt_cse.c", + "../src/panfrost/bifrost/bi_opt_dce.c", + "../src/panfrost/bifrost/bi_opt_mod_props.c", + "../src/panfrost/bifrost/bi_opt_push_ubo.c", + "../src/panfrost/bifrost/bi_pack.c", + "../src/panfrost/bifrost/bi_packer.c.py", + "../src/panfrost/bifrost/bi_print.c", + "../src/panfrost/bifrost/bi_print_common.c", + "../src/panfrost/bifrost/bi_print_common.h", + "../src/panfrost/bifrost/bi_printer.c.py", + "../src/panfrost/bifrost/bi_quirks.h", + "../src/panfrost/bifrost/bi_ra.c", + "../src/panfrost/bifrost/bi_schedule.c", + "../src/panfrost/bifrost/bi_scoreboard.c", + "../src/panfrost/bifrost/bi_test.h", + "../src/panfrost/bifrost/bi_validate.c", + "../src/panfrost/bifrost/bifrost.h", + "../src/panfrost/bifrost/bifrost_compile.c", + "../src/panfrost/bifrost/bifrost_compile.h", + "../src/panfrost/bifrost/bifrost_isa.py", + "../src/panfrost/bifrost/bifrost_nir.h", + "../src/panfrost/bifrost/bifrost_nir_algebraic.py", + "../src/panfrost/bifrost/bir.c", + "../src/panfrost/bifrost/cmdline.c", + "../src/panfrost/bifrost/compiler.h", + "../src/panfrost/bifrost/disassemble.c", + "../src/panfrost/bifrost/disassemble.h", + "../src/panfrost/bifrost/gen_disasm.py", + "../src/panfrost/bifrost/meson.build", + + "../src/panfrost/bifrost/valhall/ISA.xml", + "../src/panfrost/bifrost/valhall/asm.py", + "../src/panfrost/bifrost/valhall/disasm.py", + "../src/panfrost/bifrost/valhall/disassemble.h", + "../src/panfrost/bifrost/valhall/meson.build", + "../src/panfrost/bifrost/valhall/valhall.py", + + "../src/panfrost/ci/deqp-panfrost-g52-vk.toml", + "../src/panfrost/ci/deqp-panfrost-g52.toml", + "../src/panfrost/ci/deqp-panfrost-g72.toml", + "../src/panfrost/ci/deqp-panfrost-t720.toml", + "../src/panfrost/ci/deqp-panfrost-t760.toml", + "../src/panfrost/ci/deqp-panfrost-t860.toml", + "../src/panfrost/ci/gitlab-ci.yml", + "../src/panfrost/ci/panfrost-g52-fails.txt", + "../src/panfrost/ci/panfrost-g52-flakes.txt", + "../src/panfrost/ci/panfrost-g52-skips.txt", + "../src/panfrost/ci/panfrost-g72-fails.txt", + "../src/panfrost/ci/panfrost-g72-flakes.txt", + "../src/panfrost/ci/panfrost-t720-fails.txt", + "../src/panfrost/ci/panfrost-t720-flakes.txt", + "../src/panfrost/ci/panfrost-t720-skips.txt", + "../src/panfrost/ci/panfrost-t760-fails.txt", + "../src/panfrost/ci/panfrost-t760-flakes.txt", + "../src/panfrost/ci/panfrost-t820-fails.txt", + "../src/panfrost/ci/panfrost-t860-fails.txt", + "../src/panfrost/ci/panfrost-t860-flakes.txt", + "../src/panfrost/ci/panfrost-t860-skips.txt", + "../src/panfrost/ci/traces-panfrost.yml", + "../src/panfrost/ci/vk-panvk.txt", + + "../src/panfrost/drm-shim/meson.build", + "../src/panfrost/drm-shim/panfrost_noop.c", + + "../src/panfrost/ds/meson.build", + "../src/panfrost/ds/pan_pps_driver.cc", + "../src/panfrost/ds/pan_pps_driver.h", + "../src/panfrost/ds/pan_pps_perf.cc", + "../src/panfrost/ds/pan_pps_perf.h", + + "../src/panfrost/include/panfrost-job.h", + "../src/panfrost/include/panfrost-quirks.h", + + "../src/panfrost/lib/meson.build", + "../src/panfrost/lib/pan_afbc.c", + "../src/panfrost/lib/pan_attributes.c", + "../src/panfrost/lib/pan_blend.c", + "../src/panfrost/lib/pan_blend.h", + "../src/panfrost/lib/pan_blitter.c", + "../src/panfrost/lib/pan_blitter.h", + "../src/panfrost/lib/pan_bo.c", + "../src/panfrost/lib/pan_bo.h", + "../src/panfrost/lib/pan_clear.c", + "../src/panfrost/lib/pan_cs.c", + "../src/panfrost/lib/pan_cs.h", + "../src/panfrost/lib/pan_device.h", + "../src/panfrost/lib/pan_encoder.h", + "../src/panfrost/lib/pan_format.c", + "../src/panfrost/lib/pan_format.h", + "../src/panfrost/lib/pan_indirect_dispatch.c", + "../src/panfrost/lib/pan_indirect_dispatch.h", + "../src/panfrost/lib/pan_indirect_draw.c", + "../src/panfrost/lib/pan_indirect_draw.h", + "../src/panfrost/lib/pan_pool.h", + "../src/panfrost/lib/pan_props.c", + "../src/panfrost/lib/pan_samples.c", + "../src/panfrost/lib/pan_scoreboard.h", + "../src/panfrost/lib/pan_scratch.c", + "../src/panfrost/lib/pan_shader.c", + "../src/panfrost/lib/pan_shader.h", + "../src/panfrost/lib/pan_texture.c", + "../src/panfrost/lib/pan_texture.h", + "../src/panfrost/lib/pan_tiler.c", + "../src/panfrost/lib/pan_util.c", + "../src/panfrost/lib/pan_util.h", + "../src/panfrost/lib/wrap.h", + + "../src/panfrost/lib/genxml/common.xml", + "../src/panfrost/lib/genxml/decode.c", + "../src/panfrost/lib/genxml/decode.h", + "../src/panfrost/lib/genxml/decode_common.c", + "../src/panfrost/lib/genxml/gen_macros.h", + "../src/panfrost/lib/genxml/gen_pack.py", + "../src/panfrost/lib/genxml/meson.build", + "../src/panfrost/lib/genxml/v4.xml", + "../src/panfrost/lib/genxml/v5.xml", + "../src/panfrost/lib/genxml/v6.xml", + "../src/panfrost/lib/genxml/v7.xml", + + "../src/panfrost/midgard/compiler.h", + "../src/panfrost/midgard/disassemble.c", + "../src/panfrost/midgard/disassemble.h", + "../src/panfrost/midgard/helpers.h", + "../src/panfrost/midgard/meson.build", + "../src/panfrost/midgard/midgard.h", + "../src/panfrost/midgard/midgard_address.c", + "../src/panfrost/midgard/midgard_compile.c", + "../src/panfrost/midgard/midgard_compile.h", + "../src/panfrost/midgard/midgard_derivatives.c", + "../src/panfrost/midgard/midgard_emit.c", + "../src/panfrost/midgard/midgard_errata_lod.c", + "../src/panfrost/midgard/midgard_helper_invocations.c", + "../src/panfrost/midgard/midgard_liveness.c", + "../src/panfrost/midgard/midgard_nir.h", + "../src/panfrost/midgard/midgard_nir_algebraic.py", + "../src/panfrost/midgard/midgard_nir_lower_helper_writes.c", + "../src/panfrost/midgard/midgard_nir_lower_image_bitsize.c", + "../src/panfrost/midgard/midgard_ops.c", + "../src/panfrost/midgard/midgard_ops.h", + "../src/panfrost/midgard/midgard_opt_copy_prop.c", + "../src/panfrost/midgard/midgard_opt_dce.c", + "../src/panfrost/midgard/midgard_opt_perspective.c", + "../src/panfrost/midgard/midgard_print.c", + "../src/panfrost/midgard/midgard_print_constant.c", + "../src/panfrost/midgard/midgard_quirks.h", + "../src/panfrost/midgard/midgard_ra.c", + "../src/panfrost/midgard/midgard_ra_pipeline.c", + "../src/panfrost/midgard/midgard_schedule.c", + "../src/panfrost/midgard/mir.c", + "../src/panfrost/midgard/mir_promote_uniforms.c", + "../src/panfrost/midgard/mir_squeeze.c", + "../src/panfrost/midgard/nir_fuse_io_16.c", + + "../src/panfrost/perf/G31.xml", + "../src/panfrost/perf/G51.xml", + "../src/panfrost/perf/G52.xml", + "../src/panfrost/perf/G57.xml", + "../src/panfrost/perf/G68.xml", + "../src/panfrost/perf/G71.xml", + "../src/panfrost/perf/G72.xml", + "../src/panfrost/perf/G76.xml", + "../src/panfrost/perf/G77.xml", + "../src/panfrost/perf/G78.xml", + "../src/panfrost/perf/T72x.xml", + "../src/panfrost/perf/T76x.xml", + "../src/panfrost/perf/T82x.xml", + "../src/panfrost/perf/T83x.xml", + "../src/panfrost/perf/T86x.xml", + "../src/panfrost/perf/T88x.xml", + "../src/panfrost/perf/meson.build", + "../src/panfrost/perf/pan_gen_perf.py", + "../src/panfrost/perf/pan_perf.c", + "../src/panfrost/perf/pan_perf.h", + "../src/panfrost/perf/quick.c", + + "../src/panfrost/shared/meson.build", + "../src/panfrost/shared/pan_minmax_cache.c", + "../src/panfrost/shared/pan_minmax_cache.h", + "../src/panfrost/shared/pan_tiling.c", + "../src/panfrost/shared/pan_tiling.h", + + "../src/panfrost/util/lcra.c", + "../src/panfrost/util/lcra.h", + "../src/panfrost/util/meson.build", + "../src/panfrost/util/nir_mod_helpers.c", + "../src/panfrost/util/pan_ir.c", + "../src/panfrost/util/pan_ir.h", + "../src/panfrost/util/pan_liveness.c", + "../src/panfrost/util/pan_lower_64bit_intrin.c", + "../src/panfrost/util/pan_lower_framebuffer.c", + "../src/panfrost/util/pan_lower_framebuffer.h", + "../src/panfrost/util/pan_lower_helper_invocation.c", + "../src/panfrost/util/pan_lower_sample_position.c", + "../src/panfrost/util/pan_lower_writeout.c", + "../src/panfrost/util/pan_sysval.c", + + "../src/panfrost/vulkan/meson.build", + "../src/panfrost/vulkan/panvk_cmd_buffer.c", + "../src/panfrost/vulkan/panvk_cs.c", + "../src/panfrost/vulkan/panvk_cs.h", + "../src/panfrost/vulkan/panvk_descriptor_set.c", + "../src/panfrost/vulkan/panvk_device.c", + "../src/panfrost/vulkan/panvk_formats.c", + "../src/panfrost/vulkan/panvk_image.c", + "../src/panfrost/vulkan/panvk_mempool.c", + "../src/panfrost/vulkan/panvk_mempool.h", + "../src/panfrost/vulkan/panvk_pass.c", + "../src/panfrost/vulkan/panvk_pipeline.c", + "../src/panfrost/vulkan/panvk_pipeline_cache.c", + "../src/panfrost/vulkan/panvk_private.h", + "../src/panfrost/vulkan/panvk_query.c", + "../src/panfrost/vulkan/panvk_shader.c", + "../src/panfrost/vulkan/panvk_sync.c", + "../src/panfrost/vulkan/panvk_util.c", + "../src/panfrost/vulkan/panvk_vX_cmd_buffer.c", + "../src/panfrost/vulkan/panvk_vX_cmd_buffer.h", + "../src/panfrost/vulkan/panvk_vX_cs.c", + "../src/panfrost/vulkan/panvk_vX_cs.h", + "../src/panfrost/vulkan/panvk_vX_descriptor_set.c", + "../src/panfrost/vulkan/panvk_vX_device.c", + "../src/panfrost/vulkan/panvk_vX_image.c", + "../src/panfrost/vulkan/panvk_vX_meta.c", + "../src/panfrost/vulkan/panvk_vX_meta.h", + "../src/panfrost/vulkan/panvk_vX_meta_blit.c", + "../src/panfrost/vulkan/panvk_vX_meta_clear.c", + "../src/panfrost/vulkan/panvk_vX_meta_copy.c", + "../src/panfrost/vulkan/panvk_vX_pipeline.c", + "../src/panfrost/vulkan/panvk_vX_shader.c", + "../src/panfrost/vulkan/panvk_varyings.h", + "../src/panfrost/vulkan/panvk_wsi.c", + + "../src/tool/meson.build", + + "../src/tool/pps/meson.build", + "../src/tool/pps/pps.cc", + "../src/tool/pps/pps.h", + "../src/tool/pps/pps_algorithm.h", + "../src/tool/pps/pps_config.cc", + "../src/tool/pps/pps_counter.cc", + "../src/tool/pps/pps_counter.h", + "../src/tool/pps/pps_datasource.cc", + "../src/tool/pps/pps_datasource.h", + "../src/tool/pps/pps_device.cc", + "../src/tool/pps/pps_device.h", + "../src/tool/pps/pps_driver.cc", + "../src/tool/pps/pps_driver.h", + "../src/tool/pps/pps_producer.cc", + + "../src/tool/pps/cfg/cpu.cfg", + "../src/tool/pps/cfg/gpu.cfg", + "../src/tool/pps/cfg/system.cfg", + + "../src/util/00-mesa-defaults.conf", + "../src/util/anon_file.c", + "../src/util/anon_file.h", + "../src/util/bigmath.h", + "../src/util/bitscan.c", + "../src/util/bitscan.h", + "../src/util/bitset.h", + "../src/util/bitset_test.cpp", + "../src/util/blob.c", + "../src/util/blob.h", + "../src/util/blob_test.c", + "../src/util/build_id.c", + "../src/util/build_id.h", + "../src/util/cnd_monotonic.h", + "../src/util/compiler.h", + "../src/util/compress.c", + "../src/util/compress.h", + "../src/util/crc32.c", + "../src/util/crc32.h", + "../src/util/dag.c", + "../src/util/dag.h", + "../src/util/debug.c", + "../src/util/debug.h", + "../src/util/detect_os.h", + "../src/util/disk_cache.c", + "../src/util/disk_cache.h", + "../src/util/disk_cache_os.c", + "../src/util/disk_cache_os.h", + "../src/util/double.c", + "../src/util/double.h", + "../src/util/driconf.h", + "../src/util/driconf_static.py", + "../src/util/enum_operators.h", + "../src/util/fast_idiv_by_const.c", + "../src/util/fast_idiv_by_const.h", + "../src/util/fast_urem_by_const.h", + "../src/util/format_r11g11b10f.h", + "../src/util/format_rgb9e5.h", + "../src/util/format_srgb.h", + "../src/util/format_srgb.py", + "../src/util/fossilize_db.c", + "../src/util/fossilize_db.h", + "../src/util/futex.h", + "../src/util/half_float.c", + "../src/util/half_float.h", + "../src/util/hash_table.c", + "../src/util/hash_table.h", + "../src/util/libsync.h", + "../src/util/list.h", + "../src/util/log.c", + "../src/util/log.h", + "../src/util/macros.h", + "../src/util/memstream.c", + "../src/util/memstream.h", + "../src/util/mesa-sha1.c", + "../src/util/mesa-sha1.h", + "../src/util/mesa-sha1_test.c", + "../src/util/meson.build", + "../src/util/os_file.c", + "../src/util/os_file.h", + "../src/util/os_memory.h", + "../src/util/os_memory_aligned.h", + "../src/util/os_memory_debug.h", + "../src/util/os_memory_fd.c", + "../src/util/os_memory_fd.h", + "../src/util/os_memory_stdc.h", + "../src/util/os_misc.c", + "../src/util/os_misc.h", + "../src/util/os_socket.c", + "../src/util/os_socket.h", + "../src/util/os_time.c", + "../src/util/os_time.h", + "../src/util/process_test.c", + "../src/util/ralloc.c", + "../src/util/ralloc.h", + "../src/util/rand_xor.c", + "../src/util/rand_xor.h", + "../src/util/rb_tree.c", + "../src/util/rb_tree.h", + "../src/util/rb_tree_test.c", + "../src/util/register_allocate.c", + "../src/util/register_allocate.h", + "../src/util/register_allocate_internal.h", + "../src/util/register_allocate_test.cpp", + "../src/util/rgtc.c", + "../src/util/rgtc.h", + "../src/util/roundeven_test.c", + "../src/util/rounding.h", + "../src/util/rwlock.h", + "../src/util/set.c", + "../src/util/set.h", + "../src/util/simple_list.h", + "../src/util/simple_mtx.h", + "../src/util/slab.c", + "../src/util/slab.h", + "../src/util/softfloat.c", + "../src/util/softfloat.h", + "../src/util/sparse_array.c", + "../src/util/sparse_array.h", + "../src/util/string_buffer.c", + "../src/util/string_buffer.h", + "../src/util/strndup.h", + "../src/util/strtod.c", + "../src/util/strtod.h", + "../src/util/texcompress_rgtc_tmp.h", + "../src/util/timespec.h", + "../src/util/u_atomic.c", + "../src/util/u_atomic.h", + "../src/util/u_atomic_test.c", + "../src/util/u_cpu_detect.c", + "../src/util/u_cpu_detect.h", + "../src/util/u_debug.c", + "../src/util/u_debug.h", + "../src/util/u_debug_describe.c", + "../src/util/u_debug_describe.h", + "../src/util/u_debug_memory.c", + "../src/util/u_debug_refcnt.c", + "../src/util/u_debug_refcnt.h", + "../src/util/u_debug_stack.c", + "../src/util/u_debug_stack.h", + "../src/util/u_debug_stack_android.cpp", + "../src/util/u_debug_stack_test.cpp", + "../src/util/u_debug_symbol.c", + "../src/util/u_debug_symbol.h", + "../src/util/u_drm.h", + "../src/util/u_dynarray.h", + "../src/util/u_endian.h", + "../src/util/u_fifo.h", + "../src/util/u_hash_table.c", + "../src/util/u_hash_table.h", + "../src/util/u_idalloc.c", + "../src/util/u_idalloc.h", + "../src/util/u_math.c", + "../src/util/u_math.h", + "../src/util/u_memory.h", + "../src/util/u_memset.h", + "../src/util/u_mm.c", + "../src/util/u_mm.h", + "../src/util/u_perfetto.cc", + "../src/util/u_perfetto.h", + "../src/util/u_printf.cpp", + "../src/util/u_printf.h", + "../src/util/u_process.c", + "../src/util/u_process.h", + "../src/util/u_qsort.cpp", + "../src/util/u_qsort.h", + "../src/util/u_qsort_test.cpp", + "../src/util/u_queue.c", + "../src/util/u_queue.h", + "../src/util/u_string.h", + "../src/util/u_thread.h", + "../src/util/u_vector.c", + "../src/util/u_vector.h", + "../src/util/vma.c", + "../src/util/vma.h", + "../src/util/xmlconfig.c", + "../src/util/xmlconfig.h", + "../src/util/xxd.py", + "../src/util/xxhash.h", + + "../src/util/format/format_utils.h", + "../src/util/format/meson.build", + "../src/util/format/u_format.c", + "../src/util/format/u_format.csv", + "../src/util/format/u_format.h", + "../src/util/format/u_format_bptc.c", + "../src/util/format/u_format_bptc.h", + "../src/util/format/u_format_etc.c", + "../src/util/format/u_format_etc.h", + "../src/util/format/u_format_fxt1.c", + "../src/util/format/u_format_fxt1.h", + "../src/util/format/u_format_latc.c", + "../src/util/format/u_format_latc.h", + "../src/util/format/u_format_other.c", + "../src/util/format/u_format_other.h", + "../src/util/format/u_format_pack.py", + "../src/util/format/u_format_parse.py", + "../src/util/format/u_format_rgtc.c", + "../src/util/format/u_format_rgtc.h", + "../src/util/format/u_format_s3tc.c", + "../src/util/format/u_format_s3tc.h", + "../src/util/format/u_format_table.py", + "../src/util/format/u_format_tests.c", + "../src/util/format/u_format_tests.h", + "../src/util/format/u_format_unpack_neon.c", + "../src/util/format/u_format_yuv.c", + "../src/util/format/u_format_yuv.h", + "../src/util/format/u_format_zs.c", + "../src/util/format/u_format_zs.h", + + "../src/util/perf/u_trace.c", + "../src/util/perf/u_trace.h", + "../src/util/perf/u_trace.py", + "../src/util/perf/u_trace_priv.h", + + "../src/util/sha1/sha1.c", + "../src/util/sha1/sha1.h", + + "../src/virtio/meson.build", + + "../src/virtio/venus-protocol/vn_protocol_driver.h", + "../src/virtio/venus-protocol/vn_protocol_driver_buffer.h", + "../src/virtio/venus-protocol/vn_protocol_driver_buffer_view.h", + "../src/virtio/venus-protocol/vn_protocol_driver_command_buffer.h", + "../src/virtio/venus-protocol/vn_protocol_driver_command_pool.h", + "../src/virtio/venus-protocol/vn_protocol_driver_cs.h", + "../src/virtio/venus-protocol/vn_protocol_driver_defines.h", + "../src/virtio/venus-protocol/vn_protocol_driver_descriptor_pool.h", + "../src/virtio/venus-protocol/vn_protocol_driver_descriptor_set.h", + "../src/virtio/venus-protocol/vn_protocol_driver_descriptor_set_layout.h", + "../src/virtio/venus-protocol/vn_protocol_driver_descriptor_update_template.h", + "../src/virtio/venus-protocol/vn_protocol_driver_device.h", + "../src/virtio/venus-protocol/vn_protocol_driver_device_memory.h", + "../src/virtio/venus-protocol/vn_protocol_driver_event.h", + "../src/virtio/venus-protocol/vn_protocol_driver_fence.h", + "../src/virtio/venus-protocol/vn_protocol_driver_framebuffer.h", + "../src/virtio/venus-protocol/vn_protocol_driver_handles.h", + "../src/virtio/venus-protocol/vn_protocol_driver_image.h", + "../src/virtio/venus-protocol/vn_protocol_driver_image_view.h", + "../src/virtio/venus-protocol/vn_protocol_driver_info.h", + "../src/virtio/venus-protocol/vn_protocol_driver_instance.h", + "../src/virtio/venus-protocol/vn_protocol_driver_pipeline.h", + "../src/virtio/venus-protocol/vn_protocol_driver_pipeline_cache.h", + "../src/virtio/venus-protocol/vn_protocol_driver_pipeline_layout.h", + "../src/virtio/venus-protocol/vn_protocol_driver_query_pool.h", + "../src/virtio/venus-protocol/vn_protocol_driver_queue.h", + "../src/virtio/venus-protocol/vn_protocol_driver_render_pass.h", + "../src/virtio/venus-protocol/vn_protocol_driver_sampler.h", + "../src/virtio/venus-protocol/vn_protocol_driver_sampler_ycbcr_conversion.h", + "../src/virtio/venus-protocol/vn_protocol_driver_semaphore.h", + "../src/virtio/venus-protocol/vn_protocol_driver_shader_module.h", + "../src/virtio/venus-protocol/vn_protocol_driver_structs.h", + "../src/virtio/venus-protocol/vn_protocol_driver_transport.h", + "../src/virtio/venus-protocol/vn_protocol_driver_types.h", + + "../src/virtio/virtio-gpu/venus_hw.h", + "../src/virtio/virtio-gpu/virgl_hw.h", + "../src/virtio/virtio-gpu/virgl_protocol.h", + "../src/virtio/virtio-gpu/virglrenderer_hw.h", + + "../src/virtio/vtest/vtest_protocol.h", + + "../src/virtio/vulkan/meson.build", + "../src/virtio/vulkan/vn_android.c", + "../src/virtio/vulkan/vn_android.h", + "../src/virtio/vulkan/vn_buffer.c", + "../src/virtio/vulkan/vn_buffer.h", + "../src/virtio/vulkan/vn_command_buffer.c", + "../src/virtio/vulkan/vn_command_buffer.h", + "../src/virtio/vulkan/vn_common.c", + "../src/virtio/vulkan/vn_common.h", + "../src/virtio/vulkan/vn_cs.c", + "../src/virtio/vulkan/vn_cs.h", + "../src/virtio/vulkan/vn_descriptor_set.c", + "../src/virtio/vulkan/vn_descriptor_set.h", + "../src/virtio/vulkan/vn_device.c", + "../src/virtio/vulkan/vn_device.h", + "../src/virtio/vulkan/vn_device_memory.c", + "../src/virtio/vulkan/vn_device_memory.h", + "../src/virtio/vulkan/vn_icd.c", + "../src/virtio/vulkan/vn_icd.h", + "../src/virtio/vulkan/vn_image.c", + "../src/virtio/vulkan/vn_image.h", + "../src/virtio/vulkan/vn_instance.c", + "../src/virtio/vulkan/vn_instance.h", + "../src/virtio/vulkan/vn_physical_device.c", + "../src/virtio/vulkan/vn_physical_device.h", + "../src/virtio/vulkan/vn_pipeline.c", + "../src/virtio/vulkan/vn_pipeline.h", + "../src/virtio/vulkan/vn_query_pool.c", + "../src/virtio/vulkan/vn_query_pool.h", + "../src/virtio/vulkan/vn_queue.c", + "../src/virtio/vulkan/vn_queue.h", + "../src/virtio/vulkan/vn_render_pass.c", + "../src/virtio/vulkan/vn_render_pass.h", + "../src/virtio/vulkan/vn_renderer.h", + "../src/virtio/vulkan/vn_renderer_virtgpu.c", + "../src/virtio/vulkan/vn_renderer_vtest.c", + "../src/virtio/vulkan/vn_ring.c", + "../src/virtio/vulkan/vn_ring.h", + "../src/virtio/vulkan/vn_wsi.c", + "../src/virtio/vulkan/vn_wsi.h", + + "../src/vulkan/meson.build", + "../src/vulkan/vulkan-icd-symbols.txt", + + "../src/vulkan/device-select-layer/VkLayer_MESA_device_select.json", + "../src/vulkan/device-select-layer/device_select.h", + "../src/vulkan/device-select-layer/device_select_layer.c", + "../src/vulkan/device-select-layer/device_select_wayland.c", + "../src/vulkan/device-select-layer/device_select_x11.c", + "../src/vulkan/device-select-layer/meson.build", + + "../src/vulkan/overlay-layer/VkLayer_MESA_overlay.json", + "../src/vulkan/overlay-layer/mesa-overlay-control.py", + "../src/vulkan/overlay-layer/meson.build", + "../src/vulkan/overlay-layer/overlay.cpp", + "../src/vulkan/overlay-layer/overlay.frag", + "../src/vulkan/overlay-layer/overlay.vert", + "../src/vulkan/overlay-layer/overlay_params.c", + "../src/vulkan/overlay-layer/overlay_params.h", + + "../src/vulkan/registry/vk.xml", + + "../src/vulkan/util/gen_enum_to_str.py", + "../src/vulkan/util/meson.build", + "../src/vulkan/util/vk_alloc.c", + "../src/vulkan/util/vk_alloc.h", + "../src/vulkan/util/vk_cmd_copy.c", + "../src/vulkan/util/vk_cmd_queue_gen.py", + "../src/vulkan/util/vk_command_buffer.c", + "../src/vulkan/util/vk_command_buffer.h", + "../src/vulkan/util/vk_commands_gen.py", + "../src/vulkan/util/vk_debug_report.c", + "../src/vulkan/util/vk_debug_report.h", + "../src/vulkan/util/vk_debug_utils.c", + "../src/vulkan/util/vk_debug_utils.h", + "../src/vulkan/util/vk_deferred_operation.c", + "../src/vulkan/util/vk_deferred_operation.h", + "../src/vulkan/util/vk_descriptors.c", + "../src/vulkan/util/vk_descriptors.h", + "../src/vulkan/util/vk_device.c", + "../src/vulkan/util/vk_device.h", + "../src/vulkan/util/vk_dispatch_table_gen.py", + "../src/vulkan/util/vk_entrypoints_gen.py", + "../src/vulkan/util/vk_extensions.py", + "../src/vulkan/util/vk_extensions_gen.py", + "../src/vulkan/util/vk_format.c", + "../src/vulkan/util/vk_format.h", + "../src/vulkan/util/vk_icd_gen.py", + "../src/vulkan/util/vk_image.c", + "../src/vulkan/util/vk_image.h", + "../src/vulkan/util/vk_instance.c", + "../src/vulkan/util/vk_instance.h", + "../src/vulkan/util/vk_log.c", + "../src/vulkan/util/vk_log.h", + "../src/vulkan/util/vk_object.c", + "../src/vulkan/util/vk_object.h", + "../src/vulkan/util/vk_physical_device.c", + "../src/vulkan/util/vk_physical_device.h", + "../src/vulkan/util/vk_physical_device_features.py", + "../src/vulkan/util/vk_queue.c", + "../src/vulkan/util/vk_queue.h", + "../src/vulkan/util/vk_render_pass.c", + "../src/vulkan/util/vk_shader_module.c", + "../src/vulkan/util/vk_shader_module.h", + "../src/vulkan/util/vk_synchronization2.c", + "../src/vulkan/util/vk_util.c", + "../src/vulkan/util/vk_util.h", + + "../src/vulkan/wsi/meson.build", + "../src/vulkan/wsi/wsi_common.c", + "../src/vulkan/wsi/wsi_common.h", + "../src/vulkan/wsi/wsi_common_display.c", + "../src/vulkan/wsi/wsi_common_display.h", + "../src/vulkan/wsi/wsi_common_drm.c", + "../src/vulkan/wsi/wsi_common_private.h", + "../src/vulkan/wsi/wsi_common_queue.h", + "../src/vulkan/wsi/wsi_common_wayland.c", + "../src/vulkan/wsi/wsi_common_win32.c", + "../src/vulkan/wsi/wsi_common_win32.h", + "../src/vulkan/wsi/wsi_common_x11.c", + + "../subprojects/DirectX-Headers.wrap", + "../subprojects/expat.wrap", + "../subprojects/libelf.wrap", + "../subprojects/perfetto.wrap", + "../subprojects/zlib.wrap", + ] +} diff --git a/ohos/meson_cross_process.py b/ohos/meson_cross_process.py new file mode 100644 index 00000000000..36dd630efe4 --- /dev/null +++ b/ohos/meson_cross_process.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2022 Huawei Device Co., Ltd. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import sys +import ntpath +import os + +sysroot_stub = 'sysroot_stub' +project_stub = 'project_stub' + +corss_file_content=''' +[properties] +needs_exe_wrapper = true + +c_args = [ + '-march=armv7-a', + '-mfloat-abi=softfp', + '-mtune=generic-armv7-a', + '-mfpu=neon', + '-mthumb', + '--target=arm-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-fPIC'] + +cpp_args = [ + '-march=armv7-a', + '--target=arm-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-fPIC'] + +c_link_args = [ + '-march=armv7-a', + '--target=arm-linux-ohosmusl', + '-fPIC', + '--sysroot=sysroot_stub', + '-Lsysroot_stub/usr/lib/arm-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/10.0.1/lib/arm-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x87_64/llvm/lib/arm-linux-ohos/c++', + '--rtlib=compiler-rt', + ] + +cpp_link_args = [ + '-march=armv7-a', + '--target=arm-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-Lsysroot_stub/usr/lib/arm-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/10.0.1/lib/arm-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x87_64/llvm/lib/arm-linux-ohos/c++', + '-fPIC', + '-Wl,--exclude-libs=libunwind_llvm.a', + '-Wl,--exclude-libs=libc++_static.a', + '-Wl,--exclude-libs=libvpx_assembly_arm.a', + '-Wl,--warn-shared-textrel', + '--rtlib=compiler-rt', + ] + +[binaries] +ar = 'project_stub/prebuilts/clang/ohos/linux-x86_64/llvm/bin/llvm-ar' +c = ['ccache', 'project_stub/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang'] +cpp = ['ccache', 'project_stub/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang++'] +c_ld= 'lld' +cpp_ld = 'lld' +strip = 'project_stub/prebuilts/clang/ohos/linux-x86_64/llvm/bin/llvm-strip' +pkgconfig = '/usr/bin/pkg-config' + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'armv7' +endian = 'little' +''' + +def generate_cross_file(project_stub_in, sysroot_stub_in): + with open("cross_file", 'w+') as file: + result = corss_file_content.replace("project_stub", project_stub_in) + result = result.replace("sysroot_stub", sysroot_stub_in) + file.write(result) + print("generate_cross_file") + +def generate_pc_file(file_raw, project_dir, product_name): + print(file_raw) + if not os.path.exists('pkgconfig'): + os.makedirs('pkgconfig') + filename = 'pkgconfig/'+ ntpath.basename(file_raw) + with open(file_raw, 'r+') as file_raw: + with open(filename, "w+") as pc_file: + raw_content = file_raw.read() + raw_content = raw_content.replace("ohos_project_directory_stub", project_dir) + raw_content = raw_content.replace("ohos-arm-release", product_name) + pc_file.write(raw_content) + print("generate_pc_file") + +def process_pkgconfig(project_dir, product_name): + template_dir = os.path.split(os.path.abspath( __file__))[0] + r"/pkgconfig_template" + templates = os.listdir(template_dir) + for template in templates: + if not os.path.isdir(template): + generate_pc_file(template_dir + '/' + template, project_dir, product_name) + print("process_pkgconfig") + +def prepare_environment(project_path, product): + global project_stub + global sysroot_stub + product = product.lower() + project_stub = project_path + sysroot_stub = os.path.join(project_stub, "out", product, "obj", "third_party", "musl") + generate_cross_file(project_path, sysroot_stub) + process_pkgconfig(project_path, product) + +if __name__ == '__main__': + if len(sys.argv) < 3: + print("must input the OpenHarmony directory and the product name") + exit(-1) + prepare_environment(sys.argv[1], sys.argv[2]) diff --git a/ohos/meson_cross_process_arm64.py b/ohos/meson_cross_process_arm64.py new file mode 100644 index 00000000000..eabe7bddd19 --- /dev/null +++ b/ohos/meson_cross_process_arm64.py @@ -0,0 +1,129 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2022 Huawei Device Co., Ltd. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import sys +import ntpath +import os + +sysroot_stub = 'sysroot_stub' +project_stub = 'project_stub' + +corss_file_content=''' +[properties] +needs_exe_wrapper = true + +c_args = [ + '--target=aarch64-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-fno-emulated-tls', + '-fPIC'] + +cpp_args = [ + '--target=aarch64-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-fno-emulated-tls', + '-fPIC'] + +c_link_args = [ + '--target=aarch64-linux-ohosmusl', + '-fPIC', + '--sysroot=sysroot_stub', + '-Lsysroot_stub/usr/lib/aarch64-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/current/lib/aarch64-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/llvm/lib/aarch64-linux-ohos/c++', + '--rtlib=compiler-rt', + ] + +cpp_link_args = [ + '--target=aarch64-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-Lsysroot_stub/usr/lib/aarch64-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/current/lib/aarch64-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/llvm/lib/aarch64-linux-ohos/c++', + '-fPIC', + '-Wl,--exclude-libs=libunwind_llvm.a', + '-Wl,--exclude-libs=libc++_static.a', + '-Wl,--exclude-libs=libvpx_assembly_arm.a', + '-Wl,--warn-shared-textrel', + '--rtlib=compiler-rt', + ] + +[binaries] +ar = 'project_stub/prebuilts/clang/ohos/linux-x86_64/llvm/bin/llvm-ar' +c = ['ccache', 'project_stub/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang'] +cpp = ['ccache', 'project_stub/prebuilts/clang/ohos/linux-x86_64/llvm/bin/clang++'] +c_ld= 'lld' +cpp_ld = 'lld' +strip = 'project_stub/prebuilts/clang/ohos/linux-x86_64/llvm/bin/llvm-strip' +pkgconfig = '/usr/bin/pkg-config' + +[host_machine] +system = 'linux' +cpu_family = 'arm' +cpu = 'armv8' +endian = 'little' +''' + +def generate_cross_file(project_stub_in, sysroot_stub_in): + with open("cross_file", 'w+') as file: + result = corss_file_content.replace("project_stub", project_stub_in) + result = result.replace("sysroot_stub", sysroot_stub_in) + file.write(result) + print("generate_cross_file") + +def generate_pc_file(file_raw, project_dir, product_name): + print(file_raw) + if not os.path.exists('pkgconfig'): + os.makedirs('pkgconfig') + filename = 'pkgconfig/'+ ntpath.basename(file_raw) + with open(file_raw, 'r+') as file_raw: + with open(filename, "w+") as pc_file: + raw_content = file_raw.read() + raw_content = raw_content.replace("ohos_project_directory_stub", project_dir) + raw_content = raw_content.replace("ohos-arm-release", product_name) + raw_content = raw_content.replace("ohos-arm", "ohos-arm64") + pc_file.write(raw_content) + print("generate_pc_file") + +def process_pkgconfig(project_dir, product_name): + template_dir = os.path.split(os.path.abspath( __file__))[0] + r"/pkgconfig_template" + templates = os.listdir(template_dir) + for template in templates: + if not os.path.isdir(template): + generate_pc_file(template_dir + '/' + template, project_dir, product_name) + print("process_pkgconfig") + +def prepare_environment(project_path, product): + global project_stub + global sysroot_stub + product = product.lower() + project_stub = project_path + sysroot_stub = os.path.join(project_stub, "out", product, "obj", "third_party", "musl") + generate_cross_file(project_path, sysroot_stub) + process_pkgconfig(project_path, product) + +if __name__ == '__main__': + if len(sys.argv) < 3: + print("must input the OpenHarmony directory and the product name") + exit(-1) + prepare_environment(sys.argv[1], sys.argv[2]) diff --git a/ohos/modifyDtsi.py b/ohos/modifyDtsi.py new file mode 100755 index 00000000000..3ec6be8a3f4 --- /dev/null +++ b/ohos/modifyDtsi.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2022 Huawei Device Co., Ltd. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from ast import Delete +import sys, os + +class Modify(): + def __init__(self, filePath) -> None: + self.filePath = filePath + self.lines = [] + + fp = open(self.filePath, 'r') + for line in fp: + self.lines.append(line) + fp.close() + + def saveAndClose(self): + s = ''.join(self.lines) + self.lines.clear() + fp = open(self.filePath, 'w') + fp.write(s) + fp.close() + + def positionSearch(self, positionText, startLineNum = 0): + linesLen = len(self.lines) + for lineNum in range(startLineNum + 1, linesLen): + if(positionText in self.lines[lineNum]): + return lineNum + return -1 + + def addItem(self, newText, positionInedx, rowNume): + assert rowNume >= 0,"rowNum含义为“要将newText添加到positionSearch所定位的条目下的第几行”,可以等于0及添加到当前行,将当前行往下挤,但不可以为负数,如需要在positionSearch所定位的条目上方添加复数行,请按顺序调用addItem函数,且rowNum都填入0" + item = '' + if("is not set" in newText): + item = newText[2:-11] + else: + item = newText[:-2] + + # 如果要添加的内容已经存在则直接返回 + for line in self.lines: + if(item in line): + if ((item + "=y" in line) or (item + " is not set" in line)): + print("Already has this item: " + item) + return + + assert positionInedx >= 0, "If want to add an item, first 'positionInedx' must be >= 0" + lineNum = positionInedx + rowNume + self.lines.insert(lineNum, newText+'\n') + if(rowNume <= 0): + positionInedx += 1 + print("Add item: "+item) + + def deleteLines(self, startLineIndex, endLineIndex): + for i in range(endLineIndex - startLineIndex): + self.lines.pop(startLineIndex) + + +if __name__ == "__main__": + path = sys.argv[1] + modify = Modify(path) + print("Start to modifying file", sys.argv[1]) + + test = [' compatible = "rockchip, rk3568-mali", "arm,mali-bifrost";', + ' reg = <0x0 0xfde60000 0x0 0x20000>;', + '', + ' interrupts = ,', + ' ,', + ' ;', + ' interrupt-names = "job", "mmu", "gpu";', + ' clocks = <&scmi_clk 1>, <&cru CLK_GPU>;', + ' clock-names = "core", "bus";', + ' operating-points-v2 = <&gpu_opp_table>;', + '', + ' #cooling-cells = <2>;', + ' power-domains = <&power RK3568_PD_GPU>;', + ' status = "disabled";'] + + if(modify.positionSearch("gpu_power_model: power-model",0) == -1): + print("rk3568.dtsi arealy modified") + exit() + + positionInedx1 = modify.positionSearch("gpu: gpu@fde60000",0) + if(positionInedx1 >= 0): + positionInedx2 = modify.positionSearch("};",positionInedx1) + modify.deleteLines(positionInedx1 + 1, positionInedx2 + 1) + + for i in range(len(test)): + modify.addItem(test[i], positionInedx1, i + 1) + + modify.saveAndClose() + + print("Succese") diff --git a/ohos/pkgconfig_template/expat.pc b/ohos/pkgconfig_template/expat.pc new file mode 100644 index 00000000000..7e6331369d8 --- /dev/null +++ b/ohos/pkgconfig_template/expat.pc @@ -0,0 +1,10 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/obj/third_party/skia/third_party/expat +includedir=${ohos_project_dir}/third_party/skia/third_party/externals/expat/expat/lib + +Name: expat +Version: 2.4.1 +Description: expat XML parser +Libs: -L${libdir} -lexpat +Cflags: -I${includedir} +expat diff --git a/ohos/pkgconfig_template/gbm.pc b/ohos/pkgconfig_template/gbm.pc new file mode 100644 index 00000000000..b3e52530e01 --- /dev/null +++ b/ohos/pkgconfig_template/gbm.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/device/rockchip/hardware/gpu +includedir=${ohos_project_dir}/device/rockchip/hardware/gpu/include + +Name: gbm +Description: Userspace interface to kernel DRM services +Version: 2.5.109 +Libs: -L${libdir} -llibgbm +Cflags: -I${ohos_project_dir}/device/rockchip/hardware/gpu/include diff --git a/ohos/pkgconfig_template/libdrm.pc b/ohos/pkgconfig_template/libdrm.pc new file mode 100644 index 00000000000..13f28825938 --- /dev/null +++ b/ohos/pkgconfig_template/libdrm.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/thirdparty/libdrm/ +includedir=${ohos_project_dir}/third_party/libdrm + +Name: libdrm +Description: Userspace interface to kernel DRM services +Version: 2.5.109 +Libs: -L${libdir} -ldrm +Cflags: -I${includedir} -I${includedir}/include/drm/ diff --git a/ohos/pkgconfig_template/libhilog.pc b/ohos/pkgconfig_template/libhilog.pc new file mode 100644 index 00000000000..db282034f77 --- /dev/null +++ b/ohos/pkgconfig_template/libhilog.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/hiviewdfx/hilog +includedir=${ohos_project_dir}/base/hiviewdfx/hilog/interfaces/native/innerkits/include + +Name: libhilog +Version: 2.4.1 +Description: libhilog +Libs: -L${libdir} -lhilog +Cflags: -I${includedir} diff --git a/ohos/pkgconfig_template/libjpeg.pc b/ohos/pkgconfig_template/libjpeg.pc new file mode 100644 index 00000000000..3ef5838d2fc --- /dev/null +++ b/ohos/pkgconfig_template/libjpeg.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/obj/third_party/libjpeg/ +includedir=${ohos_project_dir}/third_party/libjpeg + +Name: jpeg +Description: jpeg +Version: 2.5.109 +Libs: -L${libdir} -ljpeg_static +Cflags: -I${includedir} \ No newline at end of file diff --git a/ohos/pkgconfig_template/libpng.pc b/ohos/pkgconfig_template/libpng.pc new file mode 100644 index 00000000000..53fcd73b026 --- /dev/null +++ b/ohos/pkgconfig_template/libpng.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out//ohos-arm-release/common/graphic_2d/ +includedir=${ohos_project_dir}/third_party/libpng + +Name: png +Description: png +Version: 2.5.109 +Libs: -L${libdir} -lpng.z +Cflags: -I${includedir} \ No newline at end of file diff --git a/ohos/pkgconfig_template/libsurface.pc b/ohos/pkgconfig_template/libsurface.pc new file mode 100644 index 00000000000..af31e40d6ba --- /dev/null +++ b/ohos/pkgconfig_template/libsurface.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/graphic/graphic_surface/ +includedir=${ohos_project_dir}/out/ohos-arm-release/innerkits/ohos-arm/graphic_surface/surface/include/ + +Name: libsurface +Version: 2.4.1 +Description: libsurface +Libs: -L${libdir} -lsurface.z +Cflags: -I${includedir} -I${ohos_project_dir}/drivers/peripheral/display/interfaces/include -I${ohos_project_dir}/drivers/peripheral/base diff --git a/ohos/pkgconfig_template/libudev.pc b/ohos/pkgconfig_template/libudev.pc new file mode 100644 index 00000000000..2ec44585492 --- /dev/null +++ b/ohos/pkgconfig_template/libudev.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/packages/phone/system/lib/ +includedir=${ohos_project_dir}/third_party/eudev/export_include + +Name: eudev +Description: eudev +Version: 2.5.109 +Libs: -L${libdir} -ludev.z +Cflags: -I${includedir} \ No newline at end of file diff --git a/ohos/pkgconfig_template/wayland-client.pc b/ohos/pkgconfig_template/wayland-client.pc new file mode 100644 index 00000000000..8599c8bc094 --- /dev/null +++ b/ohos/pkgconfig_template/wayland-client.pc @@ -0,0 +1,11 @@ +prefix=ohos_project_directory_stub +datarootdir=${prefix}/share +pkgdatadir=${datarootdir}/wayland +libdir=${prefix}/out/ohos-arm-release/graphic/graphic_2d +includedir=${prefix}/third_party/wayland_standard/src + +Name: Wayland Client +Description: Server side implementation of the Wayland protocol +Version: 1.18.0 +Cflags: -I${includedir} -I${prefix}/out/ohos-arm-release/gen/third_party/wayland_standard/protocol +Libs: -L${libdir} -lwayland_client.0.z diff --git a/ohos/pkgconfig_template/wayland-cursor.pc b/ohos/pkgconfig_template/wayland-cursor.pc new file mode 100644 index 00000000000..4f09e7f2cde --- /dev/null +++ b/ohos/pkgconfig_template/wayland-cursor.pc @@ -0,0 +1,9 @@ +prefix=ohos_project_directory_stub +libdir=${prefix}/out/ohos-arm-release/obj/third_party/wayland_standard/ +includedir=${prefix}/third_party/wayland_standard/cursor + +Name: wayland_cursor +Description: Server side implementation of the Wayland cursor +Version: 2.5.109 +Libs: -L${libdir} -llibwayland_cursor +Cflags: -I${includedir} diff --git a/ohos/pkgconfig_template/wayland-egl-backend.pc b/ohos/pkgconfig_template/wayland-egl-backend.pc new file mode 100644 index 00000000000..cad6b287bca --- /dev/null +++ b/ohos/pkgconfig_template/wayland-egl-backend.pc @@ -0,0 +1,9 @@ +prefix=ohos_project_directory_stub +includedir=${prefix}/third_party/wayland_standard/egl + +Name: wayland-egl-backend +Description: Backend wayland-egl interface +Version: 3 +Libs: +Cflags: -I${includedir} + diff --git a/ohos/pkgconfig_template/wayland-egl.pc b/ohos/pkgconfig_template/wayland-egl.pc new file mode 100644 index 00000000000..621c6d55cf3 --- /dev/null +++ b/ohos/pkgconfig_template/wayland-egl.pc @@ -0,0 +1,11 @@ +prefix=ohos_project_directory_stub +exec_prefix=${prefix} +libdir=${prefix}/out/ohos-arm-release/graphic/graphic_2d/ +includedir=${prefix}/third_party/wayland_standard/egl + +Name: wayland-egl +Description: Frontend wayland-egl library +Version: 18.1.0 +Requires: wayland-client +Libs: -L${libdir} -lwayland_client.0.z +Cflags: -I${includedir} diff --git a/ohos/pkgconfig_template/wayland-protocols.pc b/ohos/pkgconfig_template/wayland-protocols.pc new file mode 100644 index 00000000000..c0a7cb5557d --- /dev/null +++ b/ohos/pkgconfig_template/wayland-protocols.pc @@ -0,0 +1,9 @@ +prefix=ohos_project_directory_stub +datarootdir=${prefix}/third_party +pkgdatadir=${datarootdir}/wayland-protocols_standard +includedir = ${prefix}/out/ohos-arm-release/gen/third_party/wayland_standard/protocol +Name: Wayland Protocols +Description: Wayland protocol files +Version: 1.24 +Cflags: -I${includedir} -I${prefix}/third_party/wayland_standard/egl + diff --git a/ohos/pkgconfig_template/wayland-scanner.pc b/ohos/pkgconfig_template/wayland-scanner.pc new file mode 100644 index 00000000000..d8d51f00226 --- /dev/null +++ b/ohos/pkgconfig_template/wayland-scanner.pc @@ -0,0 +1,10 @@ +prefix=ohos_project_directory_stub +exec_prefix=${prefix} +datarootdir=${prefix}/share +pkgdatadir=${datarootdir}/wayland +wayland_scanner=${prefix}/out/ohos-arm-release/clang_x64/graphic/graphic_2d/wayland_scanner + +Name: Wayland Scanner +Description: Wayland scanner +Version: 1.19.0 + diff --git a/ohos/pkgconfig_template/wayland-server.pc b/ohos/pkgconfig_template/wayland-server.pc new file mode 100644 index 00000000000..38d2a26db02 --- /dev/null +++ b/ohos/pkgconfig_template/wayland-server.pc @@ -0,0 +1,12 @@ +prefix=ohos_project_directory_stub +exec_prefix=${prefix} +datarootdir=${prefix}/share +pkgdatadir=${datarootdir}/wayland +libdir=${prefix}/out/ohos-arm-release/graphic/graphic_2d +includedir=${prefix}/third_party/wayland_standard/src + +Name: Wayland Server +Description: Server side implementation of the Wayland protocol +Version: 1.18.0 +Cflags: -I${includedir} -I${prefix}/out/ohos-arm-release/gen/third_party/wayland_standard/protocol +Libs: -L${libdir} -lwayland_server.0.z diff --git a/ohos/pkgconfig_template/zlib.pc b/ohos/pkgconfig_template/zlib.pc new file mode 100644 index 00000000000..c0bbf7772b2 --- /dev/null +++ b/ohos/pkgconfig_template/zlib.pc @@ -0,0 +1,13 @@ +prefix=ohos_project_directory_stub +exec_prefix=${prefix} +libdir=${prefix}/out/ohos-arm-release/obj/third_party/zlib +sharedlibdir=${libdir} +includedir=${prefix}/third_party/zlib + +Name: zlib +Description: zlib compression library +Version: 1.2.12 + +Requires: +Libs: -L${libdir} -L${sharedlibdir} -lz +Cflags: -I${includedir} \ No newline at end of file diff --git a/pkgconfig/expat.pc b/pkgconfig/expat.pc new file mode 100644 index 00000000000..9175285c5ea --- /dev/null +++ b/pkgconfig/expat.pc @@ -0,0 +1,10 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/dyrk3568/obj/third_party/skia/third_party/expat +includedir=${ohos_project_dir}/third_party/skia/third_party/externals/expat/expat/lib + +Name: expat +Version: 2.4.1 +Description: expat XML parser +Libs: -L${libdir} -lexpat +Cflags: -I${includedir} +expat diff --git a/pkgconfig/gbm.pc b/pkgconfig/gbm.pc new file mode 100644 index 00000000000..4bc34b6cccc --- /dev/null +++ b/pkgconfig/gbm.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/device/rockchip/hardware/gpu +includedir=${ohos_project_dir}/device/rockchip/hardware/gpu/include + +Name: gbm +Description: Userspace interface to kernel DRM services +Version: 2.5.109 +Libs: -L${libdir} -llibgbm +Cflags: -I${ohos_project_dir}/device/rockchip/hardware/gpu/include diff --git a/pkgconfig/libdrm.pc b/pkgconfig/libdrm.pc new file mode 100644 index 00000000000..1550922a80c --- /dev/null +++ b/pkgconfig/libdrm.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/dyrk3568/thirdparty/libdrm/ +includedir=${ohos_project_dir}/third_party/libdrm + +Name: libdrm +Description: Userspace interface to kernel DRM services +Version: 2.5.109 +Libs: -L${libdir} -ldrm +Cflags: -I${includedir} -I${includedir}/include/drm/ diff --git a/pkgconfig/libhilog.pc b/pkgconfig/libhilog.pc new file mode 100644 index 00000000000..63550513a1b --- /dev/null +++ b/pkgconfig/libhilog.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/dyrk3568/hiviewdfx/hilog +includedir=${ohos_project_dir}/base/hiviewdfx/hilog/interfaces/native/innerkits/include + +Name: libhilog +Version: 2.4.1 +Description: libhilog +Libs: -L${libdir} -lhilog +Cflags: -I${includedir} diff --git a/pkgconfig/libjpeg.pc b/pkgconfig/libjpeg.pc new file mode 100644 index 00000000000..2f3f79a8d03 --- /dev/null +++ b/pkgconfig/libjpeg.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/dyrk3568/obj/third_party/libjpeg/ +includedir=${ohos_project_dir}/third_party/libjpeg + +Name: jpeg +Description: jpeg +Version: 2.5.109 +Libs: -L${libdir} -ljpeg_static +Cflags: -I${includedir} \ No newline at end of file diff --git a/pkgconfig/libpng.pc b/pkgconfig/libpng.pc new file mode 100644 index 00000000000..79947294edc --- /dev/null +++ b/pkgconfig/libpng.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out//dyrk3568/common/graphic_2d/ +includedir=${ohos_project_dir}/third_party/libpng + +Name: png +Description: png +Version: 2.5.109 +Libs: -L${libdir} -lpng.z +Cflags: -I${includedir} \ No newline at end of file diff --git a/pkgconfig/libsurface.pc b/pkgconfig/libsurface.pc new file mode 100644 index 00000000000..bf134eea3b6 --- /dev/null +++ b/pkgconfig/libsurface.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/dyrk3568/graphic/graphic_surface/ +includedir=${ohos_project_dir}/out/dyrk3568/innerkits/ohos-arm64/graphic_surface/surface/include/ + +Name: libsurface +Version: 2.4.1 +Description: libsurface +Libs: -L${libdir} -lsurface.z +Cflags: -I${includedir} -I${ohos_project_dir}/drivers/peripheral/display/interfaces/include -I${ohos_project_dir}/drivers/peripheral/base diff --git a/pkgconfig/libudev.pc b/pkgconfig/libudev.pc new file mode 100644 index 00000000000..b64ee615f89 --- /dev/null +++ b/pkgconfig/libudev.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/dyrk3568/packages/phone/system/lib/ +includedir=${ohos_project_dir}/third_party/eudev/export_include + +Name: eudev +Description: eudev +Version: 2.5.109 +Libs: -L${libdir} -ludev.z +Cflags: -I${includedir} \ No newline at end of file diff --git a/pkgconfig/wayland-client.pc b/pkgconfig/wayland-client.pc new file mode 100644 index 00000000000..a837e4decf3 --- /dev/null +++ b/pkgconfig/wayland-client.pc @@ -0,0 +1,11 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +datarootdir=${prefix}/share +pkgdatadir=${datarootdir}/wayland +libdir=${prefix}/out/dyrk3568/graphic/graphic_2d +includedir=${prefix}/third_party/wayland_standard/src + +Name: Wayland Client +Description: Server side implementation of the Wayland protocol +Version: 1.18.0 +Cflags: -I${includedir} -I${prefix}/out/dyrk3568/gen/third_party/wayland_standard/protocol +Libs: -L${libdir} -lwayland_client.0.z diff --git a/pkgconfig/wayland-cursor.pc b/pkgconfig/wayland-cursor.pc new file mode 100644 index 00000000000..5da56470df6 --- /dev/null +++ b/pkgconfig/wayland-cursor.pc @@ -0,0 +1,9 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${prefix}/out/dyrk3568/obj/third_party/wayland_standard/ +includedir=${prefix}/third_party/wayland_standard/cursor + +Name: wayland_cursor +Description: Server side implementation of the Wayland cursor +Version: 2.5.109 +Libs: -L${libdir} -llibwayland_cursor +Cflags: -I${includedir} diff --git a/pkgconfig/wayland-egl-backend.pc b/pkgconfig/wayland-egl-backend.pc new file mode 100644 index 00000000000..20c55c83f6f --- /dev/null +++ b/pkgconfig/wayland-egl-backend.pc @@ -0,0 +1,9 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +includedir=${prefix}/third_party/wayland_standard/egl + +Name: wayland-egl-backend +Description: Backend wayland-egl interface +Version: 3 +Libs: +Cflags: -I${includedir} + diff --git a/pkgconfig/wayland-egl.pc b/pkgconfig/wayland-egl.pc new file mode 100644 index 00000000000..dfe60d5cab7 --- /dev/null +++ b/pkgconfig/wayland-egl.pc @@ -0,0 +1,11 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +exec_prefix=${prefix} +libdir=${prefix}/out/dyrk3568/graphic/graphic_2d/ +includedir=${prefix}/third_party/wayland_standard/egl + +Name: wayland-egl +Description: Frontend wayland-egl library +Version: 18.1.0 +Requires: wayland-client +Libs: -L${libdir} -lwayland_client.0.z +Cflags: -I${includedir} diff --git a/pkgconfig/wayland-protocols.pc b/pkgconfig/wayland-protocols.pc new file mode 100644 index 00000000000..06de45bf2b6 --- /dev/null +++ b/pkgconfig/wayland-protocols.pc @@ -0,0 +1,9 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +datarootdir=${prefix}/third_party +pkgdatadir=${datarootdir}/wayland-protocols_standard +includedir = ${prefix}/out/dyrk3568/gen/third_party/wayland_standard/protocol +Name: Wayland Protocols +Description: Wayland protocol files +Version: 1.24 +Cflags: -I${includedir} -I${prefix}/third_party/wayland_standard/egl + diff --git a/pkgconfig/wayland-scanner.pc b/pkgconfig/wayland-scanner.pc new file mode 100644 index 00000000000..64eb35a6d15 --- /dev/null +++ b/pkgconfig/wayland-scanner.pc @@ -0,0 +1,10 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +exec_prefix=${prefix} +datarootdir=${prefix}/share +pkgdatadir=${datarootdir}/wayland +wayland_scanner=${prefix}/out/dyrk3568/clang_x64/graphic/graphic_2d/wayland_scanner + +Name: Wayland Scanner +Description: Wayland scanner +Version: 1.19.0 + diff --git a/pkgconfig/wayland-server.pc b/pkgconfig/wayland-server.pc new file mode 100644 index 00000000000..4d11261e622 --- /dev/null +++ b/pkgconfig/wayland-server.pc @@ -0,0 +1,12 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +exec_prefix=${prefix} +datarootdir=${prefix}/share +pkgdatadir=${datarootdir}/wayland +libdir=${prefix}/out/dyrk3568/graphic/graphic_2d +includedir=${prefix}/third_party/wayland_standard/src + +Name: Wayland Server +Description: Server side implementation of the Wayland protocol +Version: 1.18.0 +Cflags: -I${includedir} -I${prefix}/out/dyrk3568/gen/third_party/wayland_standard/protocol +Libs: -L${libdir} -lwayland_server.0.z diff --git a/pkgconfig/zlib.pc b/pkgconfig/zlib.pc new file mode 100644 index 00000000000..987ff01d855 --- /dev/null +++ b/pkgconfig/zlib.pc @@ -0,0 +1,13 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +exec_prefix=${prefix} +libdir=${prefix}/out/dyrk3568/obj/third_party/zlib +sharedlibdir=${libdir} +includedir=${prefix}/third_party/zlib + +Name: zlib +Description: zlib compression library +Version: 1.2.12 + +Requires: +Libs: -L${libdir} -L${sharedlibdir} -lz +Cflags: -I${includedir} \ No newline at end of file diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index 51712f3c058..7ce22ed525d 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -39,6 +39,7 @@ #include "main/errors.h" #include "main/mtypes.h" #include "main/shaderobj.h" +#include "main/context.h" #include "util/u_math.h" #include "util/perf/cpu_trace.h" @@ -2719,6 +2720,13 @@ nir_shader * glsl_float64_funcs_to_nir(struct gl_context *ctx, const nir_shader_compiler_options *options) { + /* It's not possible to use float64 on GLSL ES, so don't bother trying to + * build the support code. The support code depends on higher versions of + * desktop GLSL, so it will fail to compile (below) anyway. + */ + if (!_mesa_is_desktop_gl(ctx) || ctx->Const.GLSLVersion < 400) + return NULL; + /* We pretend it's a vertex shader. Ultimately, the stage shouldn't * matter because we're not optimizing anything here. */ diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index e0dd739e832..3f683782457 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1165,6 +1165,10 @@ dri2_initialize(_EGLDisplay *disp) case _EGL_PLATFORM_ANDROID: ret = dri2_initialize_android(disp); break; + case _EGL_PLATFORM_OHOS: + // NEED add openharmony init for dri2 + ret = dri2_initialize_ohos(disp); + break; default: unreachable("Callers ensure we cannot get here."); return EGL_FALSE; diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h index 5edd810f476..ec1fbfd66ae 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -78,6 +78,10 @@ struct zwp_linux_dmabuf_feedback_v1; #include #endif +#ifdef HAVE_OHOS_PLATFORM +#include "window.h" +#endif + #endif /* HAVE_ANDROID_PLATFORM */ #include "eglconfig.h" @@ -381,9 +385,9 @@ struct dri2_egl_surface { } color_buffers[4], *back, *current; #endif -#ifdef HAVE_ANDROID_PLATFORM - struct ANativeWindow *window; - struct ANativeWindowBuffer *buffer; +#if defined(HAVE_ANDROID_PLATFORM) || defined (HAVE_OHOS_PLATFORM) + struct NativeWindow *window; + struct NativeWindowBuffer *buffer; /* in-fence associated with buffer, -1 once passed down to dri layer: */ int in_fence_fd; @@ -397,7 +401,7 @@ struct dri2_egl_surface { */ int color_buffers_count; struct { - struct ANativeWindowBuffer *buffer; + struct NativeWindowBuffer *buffer; int age; } *color_buffers, *back; uint32_t gralloc_usage; @@ -601,6 +605,17 @@ dri2_initialize_android(_EGLDisplay *disp) } #endif +#ifdef HAVE_OHOS_PLATFORM +EGLBoolean +dri2_initialize_ohos(_EGLDisplay *disp); +#else +static inline EGLBoolean +dri2_initialize_ohos(_EGLDisplay *disp) +{ + return _eglError(EGL_NOT_INITIALIZED, "ohos platform not built"); +} +#endif + EGLBoolean dri2_initialize_surfaceless(_EGLDisplay *disp); diff --git a/src/egl/drivers/dri2/platform_ohos.c b/src/egl/drivers/dri2/platform_ohos.c new file mode 100644 index 00000000000..5922cc5433b --- /dev/null +++ b/src/egl/drivers/dri2/platform_ohos.c @@ -0,0 +1,1295 @@ +/* + * Mesa 3-D graphics library + * + * Copyright (c) 2021 Huawei Device Co., Ltd. * + * + * Based on platform_android, which has + * + * Copyright (C) 2010-2011 Chia-I Wu + * Copyright (C) 2010-2011 LunarG Inc. + * + * Based on platform_x11, which has + * + * Copyright © 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "util/compiler.h" +#include "util/os_file.h" + +#include "loader.h" +#include "egl_dri2.h" +#include "platform_ohos.h" +#include "libsync.h" +#ifdef HAVE_DRM_GRALLOC +#include +#include "gralloc_drm.h" +#endif /* HAVE_DRM_GRALLOC */ +#include "ohos_log.h" + +#define ALIGN(val, align) (((val) + (align)-1) & ~((align)-1)) + +static int +get_format_bpp(int native) +{ + int bpp; + + switch (native) { + case PIXEL_FMT_RGBA_8888: + case PIXEL_FMT_RGBX_8888: + case PIXEL_FMT_BGRA_8888: + bpp = 4; + break; + case PIXEL_FMT_RGB_565: + bpp = 2; + break; + default: + bpp = 0; + break; + } + + return bpp; +} + +/* returns # of fds, and by reference the actual fds */ +static unsigned +get_native_buffer_fds(struct ANativeWindowBuffer *buf, int fds[3]) +{ + BufferHandle *handle = GetBufferHandleFromNative(buf); + if (handle == NULL) { + return 0; + } + + fds[0] = handle->fd; + return 1; +} + +/* createImageFromFds requires fourcc format */ +static int get_fourcc(int native) +{ + switch (native) { + case PIXEL_FMT_RGB_565: + return DRM_FORMAT_RGB565; + case PIXEL_FMT_BGRA_8888: + return DRM_FORMAT_ARGB8888; + case PIXEL_FMT_RGBA_8888: + return DRM_FORMAT_ABGR8888; + case PIXEL_FMT_RGBX_8888: + return DRM_FORMAT_XBGR8888; + default: + _eglLog(_EGL_WARNING, "unsupported native buffer format 0x%{public}x", native); + } + return -1; +} + +static int +native_window_buffer_get_buffer_info(struct dri2_egl_display *dri2_dpy, + struct ANativeWindowBuffer *buf, + struct buffer_info *out_buf_info) +{ + int num_planes = 0; + int drm_fourcc = 0; + int pitch = 0; + int fds[3]; + /* + * Non-YUV formats could *also* have multiple planes, such as ancillary + * color compression state buffer, but the rest of the code isn't ready + * yet to deal with modifiers: + */ + num_planes = get_native_buffer_fds(buf, fds); + if (num_planes == 0) { + return -EINVAL; + } + + assert(num_planes == 1); + BufferHandle *bufferHandle; + bufferHandle = GetBufferHandleFromNative(buf); + drm_fourcc = get_fourcc(bufferHandle->format); + if (drm_fourcc == -1) { + _eglError(EGL_BAD_PARAMETER, "eglCreateEGLImageKHR"); + return -EINVAL; + } + pitch = bufferHandle->stride; + if (pitch == 0) { + _eglError(EGL_BAD_PARAMETER, "eglCreateEGLImageKHR"); + return -EINVAL; + } + + *out_buf_info = (struct buffer_info) { + .width = bufferHandle->width, + .height = bufferHandle->height, + .drm_fourcc = drm_fourcc, + .num_planes = num_planes, + .fds = {fds[0], -1, -1, -1}, + .modifier = DRM_FORMAT_MOD_INVALID, + .offsets = {0, 0, 0, 0}, + .pitches = {pitch, 0, 0, 0}, + .yuv_color_space = EGL_ITU_REC601_EXT, + .sample_range = EGL_YUV_NARROW_RANGE_EXT, + .horizontal_siting = EGL_YUV_CHROMA_SITING_0_EXT, + .vertical_siting = EGL_YUV_CHROMA_SITING_0_EXT, + }; + + return 0; +} + +static __DRIimage * +ohos_create_image_from_buffer_info(struct dri2_egl_display *dri2_dpy, + struct buffer_info *buf_info, + void *priv) +{ + unsigned error; + + if (dri2_dpy->image->base.version >= 15 && + dri2_dpy->image->createImageFromDmaBufs2 != NULL) { + return dri2_dpy->image->createImageFromDmaBufs2( + dri2_dpy->dri_screen, buf_info->width, buf_info->height, + buf_info->drm_fourcc, buf_info->modifier, buf_info->fds, + buf_info->num_planes, buf_info->pitches, buf_info->offsets, + buf_info->yuv_color_space, buf_info->sample_range, + buf_info->horizontal_siting, buf_info->vertical_siting, &error, + priv); + } + + return dri2_dpy->image->createImageFromDmaBufs( + dri2_dpy->dri_screen, buf_info->width, buf_info->height, + buf_info->drm_fourcc, buf_info->fds, buf_info->num_planes, + buf_info->pitches, buf_info->offsets, buf_info->yuv_color_space, + buf_info->sample_range, buf_info->horizontal_siting, + buf_info->vertical_siting, &error, priv); +} + +static __DRIimage * +ohos_create_image_from_native_buffer(_EGLDisplay *disp, + struct ANativeWindowBuffer *buf, + void *priv) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + struct buffer_info buf_info; + __DRIimage *img = NULL; + + /* If dri driver is gallium virgl, real modifier info queried back from + * CrOS info (and potentially mapper metadata if integrated later) cannot + * get resolved and the buffer import will fail. Thus the fallback behavior + * is preserved down to native_window_buffer_get_buffer_info() so that the + * buffer can be imported without modifier info as a last resort. + */ + + if (!native_window_buffer_get_buffer_info(dri2_dpy, buf, &buf_info)) { + img = ohos_create_image_from_buffer_info(dri2_dpy, &buf_info, priv); + } + + return img; +} + +static EGLBoolean +ohos_window_dequeue_buffer(struct dri2_egl_surface *dri2_surf) +{ + int fence_fd; + + if (ANativeWindow_dequeueBuffer(dri2_surf->window, &dri2_surf->buffer, + &fence_fd)) { + return EGL_FALSE; + } + + /* If access to the buffer is controlled by a sync fence, then block on the + * fence. + * + * It may be more performant to postpone blocking until there is an + * immediate need to write to the buffer. But doing so would require adding + * hooks to the DRI2 loader. + * + * From the ANativeWindow_dequeueBuffer documentation: + * + * The libsync fence file descriptor returned in the int pointed to by + * the fenceFd argument will refer to the fence that must signal + * before the dequeued buffer may be written to. A value of -1 + * indicates that the caller may access the buffer immediately without + * waiting on a fence. If a valid file descriptor is returned (i.e. + * any value except -1) then the caller is responsible for closing the + * file descriptor. + */ + if (fence_fd >= 0) { + /* From the SYNC_IOC_WAIT documentation in : + * + * Waits indefinitely if timeout < 0. + */ + int timeout = -1; + sync_wait(fence_fd, timeout); + close(fence_fd); + } + /* Record all the buffers created by ANativeWindow and update back buffer + * for updating buffer's age in swap_buffers. + */ + EGLBoolean updated = EGL_FALSE; + for (int i = 0; i < dri2_surf->color_buffers_count; i++) { + if (!dri2_surf->color_buffers[i].buffer) { + dri2_surf->color_buffers[i].buffer = dri2_surf->buffer; + } + if (dri2_surf->color_buffers[i].buffer == dri2_surf->buffer) { + dri2_surf->back = &dri2_surf->color_buffers[i]; + updated = EGL_TRUE; + break; + } + } + + if (!updated) { + /* In case of all the buffers were recreated by ANativeWindow, reset + * the color_buffers + */ + for (int i = 0; i < dri2_surf->color_buffers_count; i++) { + dri2_surf->color_buffers[i].buffer = NULL; + dri2_surf->color_buffers[i].age = 0; + } + dri2_surf->color_buffers[0].buffer = dri2_surf->buffer; + dri2_surf->back = &dri2_surf->color_buffers[0]; + } + + return EGL_TRUE; +} + +static EGLBoolean +ohos_window_enqueue_buffer(_EGLDisplay *disp, struct dri2_egl_surface *dri2_surf) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + + /* To avoid blocking other EGL calls, release the display mutex before + * we enter ohos_window_enqueue_buffer() and re-acquire the mutex upon + * return. + */ + mtx_unlock(&disp->Mutex); + + /* Queue the buffer with stored out fence fd. The ANativeWindow or buffer + * consumer may choose to wait for the fence to signal before accessing + * it. If fence fd value is -1, buffer can be accessed by consumer + * immediately. Consumer or application shouldn't rely on timestamp + * associated with fence if the fence fd is -1. + * + * Ownership of fd is transferred to consumer after queueBuffer and the + * consumer is responsible for closing it. Caller must not use the fd + * after passing it to queueBuffer. + */ + int fence_fd = dri2_surf->out_fence_fd; + dri2_surf->out_fence_fd = -1; + ANativeWindow_queueBuffer(dri2_surf->window, dri2_surf->buffer, fence_fd); + + dri2_surf->buffer = NULL; + dri2_surf->back = NULL; + + mtx_lock(&disp->Mutex); + + if (dri2_surf->dri_image_back) { + dri2_dpy->image->destroyImage(dri2_surf->dri_image_back); + dri2_surf->dri_image_back = NULL; + } + + return EGL_TRUE; +} + +static void +ohos_window_cancel_buffer(struct dri2_egl_surface *dri2_surf) +{ + int ret; + int fence_fd = dri2_surf->out_fence_fd; + + dri2_surf->out_fence_fd = -1; + ret = ANativeWindow_cancelBuffer(dri2_surf->window, dri2_surf->buffer, + fence_fd); + dri2_surf->buffer = NULL; + if (ret < 0) { + _eglLog(_EGL_WARNING, "ANativeWindow_cancelBuffer failed"); + dri2_surf->base.Lost = EGL_TRUE; + } +} + +static _EGLSurface * +ohos_create_surface(_EGLDisplay *disp, EGLint type, _EGLConfig *conf, + void *native_window, const EGLint *attrib_list) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + struct dri2_egl_config *dri2_conf = dri2_egl_config(conf); + struct dri2_egl_surface *dri2_surf; + struct ANativeWindow *window = native_window; + const __DRIconfig *config; + + dri2_surf = calloc(1, sizeof *dri2_surf); + if (!dri2_surf) { + _eglError(EGL_BAD_ALLOC, "ohos_create_surface"); + return NULL; + } + + if (!dri2_init_surface(&dri2_surf->base, disp, type, conf, attrib_list, + true, native_window)) { + goto cleanup_surface; + } + + if (type == EGL_WINDOW_BIT) { + int format; + int buffer_count; + + format = ANativeWindow_getFormat(window); + if (format < 0) { + _eglError(EGL_BAD_NATIVE_WINDOW, "ohos_create_surface"); + goto cleanup_surface; + } + + /* Required buffer caching slots. */ + buffer_count = 3; // default use 3 buffer + + dri2_surf->color_buffers = calloc(buffer_count, + sizeof(*dri2_surf->color_buffers)); + if (!dri2_surf->color_buffers) { + _eglError(EGL_BAD_ALLOC, "ohos_create_surface"); + goto cleanup_surface; + } + dri2_surf->color_buffers_count = buffer_count; + + if (format != dri2_conf->base.NativeVisualID) { + _eglLog(_EGL_WARNING, "Native format mismatch: 0x%{public}x != 0x%{public}x", + format, dri2_conf->base.NativeVisualID); + } + + NativeWindowHandleOpt(window, GET_BUFFER_GEOMETRY, &dri2_surf->base.Height, &dri2_surf->base.Width); + } + + config = dri2_get_dri_config(dri2_conf, type, + dri2_surf->base.GLColorspace); + if (!config) { + _eglError(EGL_BAD_MATCH, "Unsupported surfacetype/colorspace configuration"); + goto cleanup_surface; + } + + if (!dri2_create_drawable(dri2_dpy, config, dri2_surf, dri2_surf)) { + goto cleanup_surface; + } + + if (window) { + ANativeWindow_acquire(window); + dri2_surf->window = window; + } + + return &dri2_surf->base; + +cleanup_surface: + if (dri2_surf->color_buffers_count) { + free(dri2_surf->color_buffers); + } + free(dri2_surf); + + return NULL; +} + +static _EGLSurface * +ohos_create_window_surface(_EGLDisplay *disp, _EGLConfig *conf, + void *native_window, const EGLint *attrib_list) +{ + return ohos_create_surface(disp, EGL_WINDOW_BIT, conf, + native_window, attrib_list); +} + +static _EGLSurface * +ohos_create_pbuffer_surface(_EGLDisplay *disp, _EGLConfig *conf, + const EGLint *attrib_list) +{ + return ohos_create_surface(disp, EGL_PBUFFER_BIT, conf, + NULL, attrib_list); +} + +static EGLBoolean +ohos_destroy_surface(_EGLDisplay *disp, _EGLSurface *surf) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf); + + dri2_egl_surface_free_local_buffers(dri2_surf); + + if (dri2_surf->base.Type == EGL_WINDOW_BIT) { + if (dri2_surf->buffer) { + ohos_window_cancel_buffer(dri2_surf); + } + + ANativeWindow_release(dri2_surf->window); + } + + if (dri2_surf->dri_image_back) { + _eglLog(_EGL_DEBUG, "%{public}s : %{public}d : destroy dri_image_back", __func__, __LINE__); + dri2_dpy->image->destroyImage(dri2_surf->dri_image_back); + dri2_surf->dri_image_back = NULL; + } + + if (dri2_surf->dri_image_front) { + _eglLog(_EGL_DEBUG, "%{public}s : %{public}d : destroy dri_image_front", __func__, __LINE__); + dri2_dpy->image->destroyImage(dri2_surf->dri_image_front); + dri2_surf->dri_image_front = NULL; + } + + dri2_dpy->core->destroyDrawable(dri2_surf->dri_drawable); + + dri2_fini_surface(surf); + free(dri2_surf->color_buffers); + free(dri2_surf); + + return EGL_TRUE; +} + +static int +update_buffers(struct dri2_egl_surface *dri2_surf) +{ + if (dri2_surf->base.Lost) { + return -1; + } + + if (dri2_surf->base.Type != EGL_WINDOW_BIT) { + return 0; + } + + /* try to dequeue the next back buffer */ + if (!dri2_surf->buffer && !ohos_window_dequeue_buffer(dri2_surf)) { + _eglLog(_EGL_WARNING, "Could not dequeue buffer from native window"); + dri2_surf->base.Lost = EGL_TRUE; + return -1; + } + BufferHandle *handle = GetBufferHandleFromNative(dri2_surf->buffer); + /* free outdated buffers and update the surface size */ + if (dri2_surf->base.Width != handle->width || + dri2_surf->base.Height != handle->height) { + dri2_egl_surface_free_local_buffers(dri2_surf); + dri2_surf->base.Width = handle->width; + dri2_surf->base.Height = handle->height; + } + + return 0; +} + +static int +get_front_bo(struct dri2_egl_surface *dri2_surf, unsigned int format) +{ + struct dri2_egl_display *dri2_dpy = + dri2_egl_display(dri2_surf->base.Resource.Display); + + if (dri2_surf->dri_image_front) { + return 0; + } + + if (dri2_surf->base.Type == EGL_WINDOW_BIT) { + /* According current EGL spec, front buffer rendering + * for window surface is not supported now. + * and mesa doesn't have the implementation of this case. + * Add warning message, but not treat it as error. + */ + _eglLog(_EGL_DEBUG, "DRI driver requested unsupported front buffer for window surface"); + } else if (dri2_surf->base.Type == EGL_PBUFFER_BIT) { + dri2_surf->dri_image_front = + dri2_dpy->image->createImage(dri2_dpy->dri_screen, + dri2_surf->base.Width, + dri2_surf->base.Height, + format, + 0, + NULL); + if (!dri2_surf->dri_image_front) { + _eglLog(_EGL_WARNING, "dri2_image_front allocation failed"); + return -1; + } + } + + return 0; +} + +static int +get_back_bo(struct dri2_egl_surface *dri2_surf) +{ + _EGLDisplay *disp = dri2_surf->base.Resource.Display; + + if (dri2_surf->dri_image_back) { + return 0; + } + + if (dri2_surf->base.Type == EGL_WINDOW_BIT) { + if (!dri2_surf->buffer) { + _eglLog(_EGL_WARNING, "Could not get native buffer"); + return -1; + } + + dri2_surf->dri_image_back = + ohos_create_image_from_native_buffer(disp, dri2_surf->buffer, NULL); + if (!dri2_surf->dri_image_back) { + _eglLog(_EGL_WARNING, "failed to create DRI image from FD"); + return -1; + } + } else if (dri2_surf->base.Type == EGL_PBUFFER_BIT) { + /* The EGL 1.5 spec states that pbuffers are single-buffered. Specifically, + * the spec states that they have a back buffer but no front buffer, in + * contrast to pixmaps, which have a front buffer but no back buffer. + * + * Single-buffered surfaces with no front buffer confuse Mesa; so we deviate + * from the spec, following the precedent of Mesa's EGL X11 platform. The + * X11 platform correctly assigns pbuffers to single-buffered configs, but + * assigns the pbuffer a front buffer instead of a back buffer. + * + * Pbuffers in the X11 platform mostly work today, so let's just copy its + * behavior instead of trying to fix (and hence potentially breaking) the + * world. + */ + _eglLog(_EGL_DEBUG, "DRI driver requested unsupported back buffer for pbuffer surface"); + } + + return 0; +} + +/* Some drivers will pass multiple bits in buffer_mask. + * For such case, will go through all the bits, and + * will not return error when unsupported buffer is requested, only + * return error when the allocation for supported buffer failed. + */ +static int +ohos_image_get_buffers(__DRIdrawable *driDrawable, + unsigned int format, + uint32_t *stamp, + void *loaderPrivate, + uint32_t buffer_mask, + struct __DRIimageList *images) +{ + struct dri2_egl_surface *dri2_surf = loaderPrivate; + + images->image_mask = 0; + images->front = NULL; + images->back = NULL; + + if (update_buffers(dri2_surf) < 0) { + return 0; + } + + if (_eglSurfaceInSharedBufferMode(&dri2_surf->base)) { + if (get_back_bo(dri2_surf) < 0) { + return 0; + } + + /* We have dri_image_back because this is a window surface and + * get_back_bo() succeeded. + */ + assert(dri2_surf->dri_image_back); + images->back = dri2_surf->dri_image_back; + images->image_mask |= __DRI_IMAGE_BUFFER_SHARED; + + /* There exists no accompanying back nor front buffer. */ + return 1; + } + + if (buffer_mask & __DRI_IMAGE_BUFFER_FRONT) { + if (get_front_bo(dri2_surf, format) < 0) { + return 0; + } + + if (dri2_surf->dri_image_front) { + images->front = dri2_surf->dri_image_front; + images->image_mask |= __DRI_IMAGE_BUFFER_FRONT; + } + } + + if (buffer_mask & __DRI_IMAGE_BUFFER_BACK) { + if (get_back_bo(dri2_surf) < 0) { + return 0; + } + + if (dri2_surf->dri_image_back) { + images->back = dri2_surf->dri_image_back; + images->image_mask |= __DRI_IMAGE_BUFFER_BACK; + } + } + + return 1; +} + +static EGLint +ohos_query_buffer_age(_EGLDisplay *disp, _EGLSurface *surface) +{ + struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surface); + + if (update_buffers(dri2_surf) < 0) { + _eglError(EGL_BAD_ALLOC, "ohos_query_buffer_age"); + return -1; + } + + return dri2_surf->back ? dri2_surf->back->age : 0; +} + +static EGLBoolean +ohos_swap_buffers(_EGLDisplay *disp, _EGLSurface *draw) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw); + const bool has_mutable_rb = _eglSurfaceHasMutableRenderBuffer(draw); + + /* From the EGL_KHR_mutable_render_buffer spec (v12): + * + * If surface is a single-buffered window, pixmap, or pbuffer surface + * for which there is no pending change to the EGL_RENDER_BUFFER + * attribute, eglSwapBuffers has no effect. + */ + if (has_mutable_rb && + draw->RequestedRenderBuffer == EGL_SINGLE_BUFFER && + draw->ActiveRenderBuffer == EGL_SINGLE_BUFFER) { + _eglLog(_EGL_DEBUG, "%{public}s: remain in shared buffer mode", __func__); + return EGL_TRUE; + } + + for (int i = 0; i < dri2_surf->color_buffers_count; i++) { + if (dri2_surf->color_buffers[i].age > 0) { + dri2_surf->color_buffers[i].age++; + } + } + + /* "XXX: we don't use get_back_bo() since it causes regressions in + * several dEQP tests. + */ + if (dri2_surf->back) { + dri2_surf->back->age = 1; + } + + dri2_flush_drawable_for_swapbuffers(disp, draw); + + /* dri2_surf->buffer can be null even when no error has occured. For + * example, if the user has called no GL rendering commands since the + * previous eglSwapBuffers, then the driver may have not triggered + * a callback to ANativeWindow_dequeueBuffer, in which case + * dri2_surf->buffer remains null. + */ + if (dri2_surf->buffer) { + ohos_window_enqueue_buffer(disp, dri2_surf); + } + + dri2_dpy->flush->invalidate(dri2_surf->dri_drawable); + + return EGL_TRUE; +} + +static EGLBoolean +ohos_query_surface(_EGLDisplay *disp, _EGLSurface *surf, + EGLint attribute, EGLint *value) +{ + struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf); + EGLint dummy; + switch (attribute) { + case EGL_WIDTH: + if (dri2_surf->base.Type == EGL_WINDOW_BIT && dri2_surf->window) { + NativeWindowHandleOpt(dri2_surf->window, + GET_BUFFER_GEOMETRY, &dummy, value); + return EGL_TRUE; + } + break; + case EGL_HEIGHT: + if (dri2_surf->base.Type == EGL_WINDOW_BIT && dri2_surf->window) { + NativeWindowHandleOpt(dri2_surf->window, + GET_BUFFER_GEOMETRY, value, &dummy); + return EGL_TRUE; + } + break; + default: + break; + } + return _eglQuerySurface(disp, surf, attribute, value); +} + +static _EGLImage * +dri2_create_image_ohos_native_buffer(_EGLDisplay *disp, + _EGLContext *ctx, + struct ANativeWindowBuffer *buf) +{ + if (ctx != NULL) { + /* From the EGL_OHOS_image_native_buffer spec: + * + * * If is EGL_NATIVE_BUFFER_OHOS and is not + * EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated. + */ + _eglError(EGL_BAD_CONTEXT, "eglCreateEGLImageKHR: for " + "EGL_NATIVE_BUFFER_OHOS, the context must be " + "EGL_NO_CONTEXT"); + return NULL; + } + __DRIimage *dri_image = + ohos_create_image_from_native_buffer(disp, buf, buf); + + if (dri_image) { + return dri2_create_image_from_dri(disp, dri_image); + } + + return NULL; +} + +static _EGLImage * +ohos_create_image_khr(_EGLDisplay *disp, _EGLContext *ctx, EGLenum target, + EGLClientBuffer buffer, const EGLint *attr_list) +{ + switch (target) { + case EGL_NATIVE_BUFFER_OHOS: + return dri2_create_image_ohos_native_buffer(disp, ctx, + (struct ANativeWindowBuffer *)buffer); + default: + return dri2_create_image_khr(disp, ctx, target, buffer, attr_list); + } +} + +static void +ohos_flush_front_buffer(__DRIdrawable *driDrawable, void *loaderPrivate) +{ +} + +#ifdef HAVE_DRM_GRALLOC +static int +ohos_get_buffers_parse_attachments(struct dri2_egl_surface *dri2_surf, + unsigned int *attachments, int count) +{ + int num_buffers = 0; + + /* fill dri2_surf->buffers */ + for (int i = 0; i < count * 2; i += 2) { + __DRIbuffer *buf, *local; + + assert(num_buffers < ARRAY_SIZE(dri2_surf->buffers)); + buf = &dri2_surf->buffers[num_buffers]; + + switch (attachments[i]) { + case __DRI_BUFFER_BACK_LEFT: + if (dri2_surf->base.Type == EGL_WINDOW_BIT) { + buf->attachment = attachments[i]; + buf->name = get_native_buffer_name(dri2_surf->buffer); + buf->cpp = get_format_bpp(dri2_surf->buffer->format); + buf->pitch = dri2_surf->buffer->stride * buf->cpp; + buf->flags = 0; + + buf->name ? num_buffers++ : 0; + + break; + } + FALLTHROUGH; /* for pbuffers */ + case __DRI_BUFFER_DEPTH: + case __DRI_BUFFER_STENCIL: + case __DRI_BUFFER_ACCUM: + case __DRI_BUFFER_DEPTH_STENCIL: + case __DRI_BUFFER_HIZ: + local = dri2_egl_surface_alloc_local_buffer(dri2_surf, + attachments[i], attachments[i + 1]); + + if (local) { + *buf = *local; + num_buffers++; + } + break; + case __DRI_BUFFER_FRONT_LEFT: + case __DRI_BUFFER_FRONT_RIGHT: + case __DRI_BUFFER_FAKE_FRONT_LEFT: + case __DRI_BUFFER_FAKE_FRONT_RIGHT: + case __DRI_BUFFER_BACK_RIGHT: + default: + /* no front or right buffers */ + break; + } + } + + return num_buffers; +} + +static __DRIbuffer * +ohos_get_buffers_with_format(__DRIdrawable *driDrawable, + int *width, int *height, + unsigned int *attachments, int count, + int *out_count, void *loaderPrivate) +{ + struct dri2_egl_surface *dri2_surf = loaderPrivate; + + if (update_buffers(dri2_surf) < 0) { + return NULL; + } + + *out_count = ohos_get_buffers_parse_attachments(dri2_surf, attachments, count); + + if (width) { + *width = dri2_surf->base.Width; + } + if (height) { + *height = dri2_surf->base.Height; + } + + return dri2_surf->buffers; +} +#endif /* HAVE_DRM_GRALLOC */ + +static unsigned +ohos_get_capability(void *loaderPrivate, enum dri_loader_cap cap) +{ + /* Note: loaderPrivate is _EGLDisplay* */ + switch (cap) { + case DRI_LOADER_CAP_RGBA_ORDERING: + return 1; + default: + return 0; + } +} + +static void +ohos_destroy_loader_image_state(void *loaderPrivate) +{ +} + +static EGLBoolean +ohos_add_configs_for_visuals(_EGLDisplay *disp) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + static const struct { + int format; + int rgba_shifts[4]; + unsigned int rgba_sizes[4]; + } visuals[] = { + {PIXEL_FMT_RGBA_8888, {0, 8, 16, 24}, {8, 8, 8, 8}}, + {PIXEL_FMT_RGBX_8888, {0, 8, 16, -1}, {8, 8, 8, 0}}, + {PIXEL_FMT_RGB_565, {11, 5, 0, -1}, {5, 6, 5, 0}}, + /* This must be after PIXEL_FMT_RGBA_8888, we only keep BGRA + * visual if it turns out RGBA visual is not available. + */ + {PIXEL_FMT_BGRA_8888, {16, 8, 0, 24}, {8, 8, 8, 8}}, + }; + + unsigned int format_count[ARRAY_SIZE(visuals)] = {0}; + int config_count = 0; + + bool has_rgba = false; + for (int i = 0; i < ARRAY_SIZE(visuals); i++) { + if (visuals[i].format == PIXEL_FMT_BGRA_8888 && has_rgba) { + continue; + } + for (int j = 0; dri2_dpy->driver_configs[j]; j++) { + const EGLint surface_type = EGL_WINDOW_BIT | EGL_PBUFFER_BIT; + + const EGLint config_attrs[] = { + EGL_NATIVE_VISUAL_ID, visuals[i].format, + EGL_NATIVE_VISUAL_TYPE, visuals[i].format, + EGL_NONE}; + + struct dri2_egl_config *dri2_conf = + dri2_add_config(disp, dri2_dpy->driver_configs[j], + config_count + 1, surface_type, config_attrs, + visuals[i].rgba_shifts, visuals[i].rgba_sizes); + if (dri2_conf) { + (dri2_conf->base.ConfigID == config_count + 1) ? config_count++ : 0; + format_count[i]++; + } + } + if (visuals[i].format == PIXEL_FMT_RGBA_8888 && format_count[i]) { + has_rgba = true; + } + } + + for (int i = 0; i < ARRAY_SIZE(format_count); i++) { + if (!format_count[i]) { + _eglLog(_EGL_DEBUG, "No DRI config supports native format 0x%{public}x", + visuals[i].format); + } + } + + return (config_count != 0); +} + +static const struct dri2_egl_display_vtbl ohos_display_vtbl = { + .authenticate = NULL, + .create_window_surface = ohos_create_window_surface, + .create_pbuffer_surface = ohos_create_pbuffer_surface, + .destroy_surface = ohos_destroy_surface, + .create_image = ohos_create_image_khr, + .swap_buffers = ohos_swap_buffers, + .swap_interval = NULL, + .query_buffer_age = ohos_query_buffer_age, + .query_surface = ohos_query_surface, + .get_dri_drawable = dri2_surface_get_dri_drawable, +}; + +static const __DRIimageLoaderExtension ohos_image_loader_extension = { + .base = {__DRI_IMAGE_LOADER, 4}, + + .getBuffers = ohos_image_get_buffers, + .flushFrontBuffer = ohos_flush_front_buffer, + .getCapability = ohos_get_capability, + .flushSwapBuffers = NULL, + .destroyLoaderImageState = ohos_destroy_loader_image_state, +}; + +static void +ohos_display_shared_buffer(__DRIdrawable *driDrawable, int fence_fd, + void *loaderPrivate) +{ + struct dri2_egl_surface *dri2_surf = loaderPrivate; + struct ANativeWindowBuffer *old_buffer UNUSED = dri2_surf->buffer; + + if (!_eglSurfaceInSharedBufferMode(&dri2_surf->base)) { + _eglLog(_EGL_WARNING, "%{public}s: internal error: buffer is not shared", + __func__); + return; + } + + if (fence_fd >= 0) { + /* The driver's fence is more recent than the surface's out fence, if it + * exists at all. So use the driver's fence. + */ + if (dri2_surf->out_fence_fd >= 0) { + close(dri2_surf->out_fence_fd); + dri2_surf->out_fence_fd = -1; + } + } else if (dri2_surf->out_fence_fd >= 0) { + fence_fd = dri2_surf->out_fence_fd; + dri2_surf->out_fence_fd = -1; + } + + if (ANativeWindow_queueBuffer(dri2_surf->window, dri2_surf->buffer, + fence_fd)) { + _eglLog(_EGL_WARNING, "%{public}s: ANativeWindow_queueBuffer failed", __func__); + close(fence_fd); + return; + } + + fence_fd = -1; + + if (ANativeWindow_dequeueBuffer(dri2_surf->window, &dri2_surf->buffer, + &fence_fd)) { + /* Tear down the surface because it no longer has a back buffer. */ + struct dri2_egl_display *dri2_dpy = + dri2_egl_display(dri2_surf->base.Resource.Display); + + _eglLog(_EGL_WARNING, "%{public}s: ANativeWindow_dequeueBuffer failed", __func__); + + dri2_surf->base.Lost = true; + dri2_surf->buffer = NULL; + dri2_surf->back = NULL; + + if (dri2_surf->dri_image_back) { + dri2_dpy->image->destroyImage(dri2_surf->dri_image_back); + dri2_surf->dri_image_back = NULL; + } + + dri2_dpy->flush->invalidate(dri2_surf->dri_drawable); + return; + } + + if (fence_fd < 0) { + return; + } + + /* Access to the buffer is controlled by a sync fence. Block on it. + * + * Ideally, we would submit the fence to the driver, and the driver would + * postpone command execution until it signalled. But DRI lacks API for + * that (as of 2018-04-11). + * + * SYNC_IOC_WAIT waits forever if timeout < 0 + */ + sync_wait(fence_fd, -1); + close(fence_fd); +} + +static const __DRImutableRenderBufferLoaderExtension ohos_mutable_render_buffer_extension = { + .base = {__DRI_MUTABLE_RENDER_BUFFER_LOADER, 1}, + .displaySharedBuffer = ohos_display_shared_buffer, +}; + +static const __DRIextension *ohos_image_loader_extensions[] = { + &ohos_image_loader_extension.base, + &image_lookup_extension.base, + &use_invalidate.base, + &ohos_mutable_render_buffer_extension.base, + NULL, +}; + +static EGLBoolean +ohos_load_driver(_EGLDisplay *disp, bool swrast) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + + dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd); + if (dri2_dpy->driver_name == NULL) { + return false; + } + +#ifdef HAVE_DRM_GRALLOC + /* Handle control nodes using __DRI_DRI2_LOADER extension and GEM names + * for backwards compatibility with drm_gralloc. (Do not use on new + * systems.) */ + dri2_dpy->loader_extensions = ohos_dri2_loader_extensions; + if (!dri2_load_driver(disp)) { + goto error; + } +#else + if (swrast) { + /* Use kms swrast only with vgem / virtio_gpu. + * virtio-gpu fallbacks to software rendering when 3D features + * are unavailable since 6c5ab. + */ + if (strcmp(dri2_dpy->driver_name, "vgem") == 0 || + strcmp(dri2_dpy->driver_name, "virtio_gpu") == 0) { + free(dri2_dpy->driver_name); + dri2_dpy->driver_name = strdup("kms_swrast"); + } else { + goto error; + } + } + + dri2_dpy->loader_extensions = ohos_image_loader_extensions; + if (!dri2_load_driver_dri3(disp)) { + goto error; + } +#endif + + return true; + +error: + free(dri2_dpy->driver_name); + dri2_dpy->driver_name = NULL; + return false; +} + +static void +ohos_unload_driver(_EGLDisplay *disp) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + + dlclose(dri2_dpy->driver); + dri2_dpy->driver = NULL; + free(dri2_dpy->driver_name); + dri2_dpy->driver_name = NULL; +} + +static int +ohos_filter_device(_EGLDisplay *disp, int fd, const char *vendor) +{ + drmVersionPtr ver = drmGetVersion(fd); + if (!ver) { + return -1; + } + + if (strcmp(vendor, ver->name) != 0) { + drmFreeVersion(ver); + return -1; + } + + drmFreeVersion(ver); + return 0; +} + +static EGLBoolean +ohos_probe_device(_EGLDisplay *disp, bool swrast) +{ + /* Check that the device is supported, by attempting to: + * - load the dri module + * - and, create a screen + */ + if (!ohos_load_driver(disp, swrast)) { + return EGL_FALSE; + } + + if (!dri2_create_screen(disp)) { + _eglLog(_EGL_WARNING, "DRI2: failed to create screen"); + ohos_unload_driver(disp); + return EGL_FALSE; + } + return EGL_TRUE; +} + +#ifdef HAVE_DRM_GRALLOC +static EGLBoolean +ohos_open_device(_EGLDisplay *disp, bool swrast) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + int fd = -1, err = -EINVAL; + + if (swrast) { + return EGL_FALSE; + } + + if (dri2_dpy->gralloc->perform) { + err = dri2_dpy->gralloc->perform(dri2_dpy->gralloc, + GRALLOC_MODULE_PERFORM_GET_DRM_FD, + &fd); + } + if (err || fd < 0) { + _eglLog(_EGL_WARNING, "fail to get drm fd"); + return EGL_FALSE; + } + + dri2_dpy->fd = os_dupfd_cloexec(fd); + if (dri2_dpy->fd < 0) { + return EGL_FALSE; + } + + if (drmGetNodeTypeFromFd(dri2_dpy->fd) == DRM_NODE_RENDER) { + return EGL_FALSE; + } + + return ohos_probe_device(disp, swrast); +} +#else +static EGLBoolean +ohos_open_device(_EGLDisplay *disp, bool swrast) +{ +#define MAX_DRM_DEVICES 64 + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + drmDevicePtr device, devices[MAX_DRM_DEVICES] = {NULL}; + int num_devices; + + char *vendor_name = NULL; + +#ifdef EGL_FORCE_RENDERNODE + const unsigned node_type = DRM_NODE_RENDER; +#else + const unsigned node_type = swrast ? DRM_NODE_PRIMARY : DRM_NODE_RENDER; +#endif + + num_devices = drmGetDevices2(0, devices, ARRAY_SIZE(devices)); + _eglLog(_EGL_WARNING, "ohos_open_device %{public}d", num_devices); + if (num_devices < 0) { + return EGL_FALSE; + } + + for (int i = 0; i < num_devices; i++) { + device = devices[i]; + + if (!(device->available_nodes & (1 << node_type))) { + continue; + } + + dri2_dpy->fd = loader_open_device(device->nodes[node_type]); + if (dri2_dpy->fd < 0) { + DISPLAY_LOGI(); + _eglLog(_EGL_WARNING, "%{public}s() Failed to open DRM device %{public}s", + __func__, device->nodes[node_type]); + continue; + } + + /* If a vendor is explicitly provided, we use only that. + * Otherwise we fall-back the first device that is supported. + */ + DISPLAY_LOGI("vendor_name %{public}s", vendor_name); + if (vendor_name) { + if (ohos_filter_device(disp, dri2_dpy->fd, vendor_name)) { + /* Device does not match - try next device */ + close(dri2_dpy->fd); + dri2_dpy->fd = -1; + DISPLAY_LOGI(); + continue; + } + /* If the requested device matches - use it. Regardless if + * init fails, do not fall-back to any other device. + */ + if (!ohos_probe_device(disp, false)) { + close(dri2_dpy->fd); + dri2_dpy->fd = -1; + } + DISPLAY_LOGI(); + break; + } + if (ohos_probe_device(disp, swrast)) { + break; + } + DISPLAY_LOGI(); + /* No explicit request - attempt the next device */ + close(dri2_dpy->fd); + dri2_dpy->fd = -1; + } + drmFreeDevices(devices, num_devices); + DISPLAY_LOGI(); + if (dri2_dpy->fd < 0) { + DISPLAY_LOGI(); + _eglLog(_EGL_WARNING, "Failed to open %{public}s DRM device", + vendor_name ? "desired" : "any"); + return EGL_FALSE; + } + + return EGL_TRUE; +#undef MAX_DRM_DEVICES +} + +#endif + +EGLBoolean +dri2_initialize_ohos(_EGLDisplay *disp) +{ + _EGLDevice *dev; + bool device_opened = false; + struct dri2_egl_display *dri2_dpy; + const char *err; + + dri2_dpy = calloc(1, sizeof(*dri2_dpy)); + if (!dri2_dpy) + return _eglError(EGL_BAD_ALLOC, "eglInitialize"); + + dri2_dpy->fd = -1; + + disp->DriverData = (void *)dri2_dpy; + device_opened = ohos_open_device(disp, disp->Options.ForceSoftware); + + if (!device_opened) { + err = "DRI2: failed to open device"; + goto cleanup; + } + + dev = _eglAddDevice(dri2_dpy->fd, false); + if (!dev) { + err = "DRI2: failed to find EGLDevice"; + goto cleanup; + } + + disp->Device = dev; + + if (!dri2_setup_extensions(disp)) { + err = "DRI2: failed to setup extensions"; + goto cleanup; + } + + dri2_setup_screen(disp); + + dri2_setup_swap_interval(disp, 1); + + disp->Extensions.KHR_image = EGL_TRUE; + + /* Create configs *after* enabling extensions because presence of DRI + * driver extensions can affect the capabilities of EGLConfigs. + */ + if (!ohos_add_configs_for_visuals(disp)) { + err = "DRI2: failed to add configs"; + goto cleanup; + } + + /* Fill vtbl last to prevent accidentally calling virtual function during + * initialization. + */ + dri2_dpy->vtbl = &ohos_display_vtbl; + + return EGL_TRUE; + +cleanup: + dri2_display_destroy(disp); + return _eglError(EGL_NOT_INITIALIZED, err); +} diff --git a/src/egl/drivers/dri2/platform_ohos.h b/src/egl/drivers/dri2/platform_ohos.h new file mode 100644 index 00000000000..dfec8bd38a7 --- /dev/null +++ b/src/egl/drivers/dri2/platform_ohos.h @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * Based on platform_android, which has + * + * Copyright © 2021, Google Inc. + * Copyright (C) 2021, GlobalLogic Ukraine + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef EGL_OHOS_INCLUDED +#define EGL_OHOS_INCLUDED + +#include +#include +#include + +#include + +#include "egl_dri2.h" +#include "display_type.h" +#include "window.h" + +#define ANativeWindow NativeWindow +#define ANativeWindowBuffer NativeWindowBuffer +static inline void +ANativeWindow_acquire(struct ANativeWindow *window) +{ + NativeObjectReference(window); +} + +static inline void +ANativeWindow_release(struct ANativeWindow *window) +{ + NativeObjectReference(window); +} + +static inline int32_t +ANativeWindow_getFormat(struct ANativeWindow *window) +{ + int32_t format = PIXEL_FMT_RGBA_8888; + int32_t res = NativeWindowHandleOpt(window, GET_FORMAT, &format); + return res == 0 ? format : res; +} + +static inline int32_t +ANativeWindow_dequeueBuffer(struct ANativeWindow *window, + struct ANativeWindowBuffer **buffer, + int *fenceFd) +{ + return NativeWindowRequestBuffer(window, buffer, fenceFd); +} + +static inline int32_t +ANativeWindow_queueBuffer(struct ANativeWindow *window, + struct ANativeWindowBuffer *buffer, + int fenceFd) +{ + struct Region dirty; + dirty.rectNumber = 0; + dirty.rects = NULL; + return NativeWindowFlushBuffer(window, buffer, fenceFd, dirty); +} + +static inline int32_t +ANativeWindow_cancelBuffer(struct ANativeWindow *window, + struct ANativeWindowBuffer *buffer, + int fenceFd) +{ + return NativeWindowCancelBuffer(window, buffer); +} + +static inline int32_t +ANativeWindow_setUsage(struct ANativeWindow *window, uint64_t usage) +{ + return NativeWindowHandleOpt(window, SET_USAGE, usage); +} + +struct buffer_info { + int width; + int height; + uint32_t drm_fourcc; + int num_planes; + int fds[4]; + uint64_t modifier; + int offsets[4]; + int pitches[4]; + enum __DRIYUVColorSpace yuv_color_space; + enum __DRISampleRange sample_range; + enum __DRIChromaSiting horizontal_siting; + enum __DRIChromaSiting vertical_siting; +}; + +#endif /* EGL_OHOS_INCLUDED */ diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index d50be23e871..91583bebb9b 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -458,6 +458,11 @@ _eglGetPlatformDisplayCommon(EGLenum platform, void *native_display, case EGL_PLATFORM_ANDROID_KHR: disp = _eglGetAndroidDisplay(native_display, attrib_list); break; +#endif +#ifdef HAVE_OHOS_PLATFORM + case EGL_PLATFORM_OHOS_KHR: + disp = _eglGetOHOSDisplay(native_display, attrib_list); + break; #endif case EGL_PLATFORM_DEVICE_EXT: disp = _eglGetDeviceDisplay(native_display, attrib_list); diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index 4eadb8f10aa..3c766054deb 100644 --- a/src/egl/main/egldisplay.c +++ b/src/egl/main/egldisplay.c @@ -83,6 +83,7 @@ static const struct { {_EGL_PLATFORM_SURFACELESS, "surfaceless"}, {_EGL_PLATFORM_DEVICE, "device"}, {_EGL_PLATFORM_WINDOWS, "windows"}, + { _EGL_PLATFORM_OHOS, "openharmony" }, }; /** @@ -695,6 +696,22 @@ _eglGetAndroidDisplay(void *native_display, const EGLAttrib *attrib_list) } #endif /* HAVE_ANDROID_PLATFORM */ +#ifdef HAVE_OHOS_PLATFORM +_EGLDisplay* +_eglGetOHOSDisplay(void *native_display, + const EGLAttrib *attrib_list) +{ + /* This platform recognizes no display attributes. */ + if (attrib_list != NULL && attrib_list[0] != EGL_NONE) { + _eglError(EGL_BAD_ATTRIBUTE, "eglGetPlatformDisplay"); + return NULL; + } + + return _eglFindDisplay(_EGL_PLATFORM_OHOS, native_display, + attrib_list); +} +#endif /* HAVE_OHOS_PLATFORM */ + _EGLDisplay * _eglGetDeviceDisplay(void *native_display, const EGLAttrib *attrib_list) { diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h index ea75cd33d95..14f41c7b3d5 100644 --- a/src/egl/main/egldisplay.h +++ b/src/egl/main/egldisplay.h @@ -55,6 +55,7 @@ enum _egl_platform_type { _EGL_PLATFORM_SURFACELESS, _EGL_PLATFORM_DEVICE, _EGL_PLATFORM_WINDOWS, + _EGL_PLATFORM_OHOS, _EGL_NUM_PLATFORMS, _EGL_INVALID_PLATFORM = -1 @@ -330,6 +331,12 @@ _EGLDisplay * _eglGetAndroidDisplay(void *native_display, const EGLAttrib *attrib_list); #endif +#ifdef HAVE_OHOS_PLATFORM +_EGLDisplay* +_eglGetOHOSDisplay(void *native_display, + const EGLAttrib *attrib_list); +#endif + _EGLDisplay * _eglGetDeviceDisplay(void *native_display, const EGLAttrib *attrib_list); diff --git a/src/egl/meson.build b/src/egl/meson.build index 00a1da395e8..4a4c7e8c8b3 100644 --- a/src/egl/meson.build +++ b/src/egl/meson.build @@ -118,7 +118,7 @@ if with_dri2 endif deps_for_egl += [dep_x11_xcb, dep_xcb_dri2, dep_xcb_xrandr, dep_xcb_xfixes] endif - if with_gbm and not with_platform_android + if with_gbm and not with_platform_android and not with_platform_ohos files_egl += files('drivers/dri2/platform_drm.c') link_for_egl += libgbm incs_for_egl += [inc_gbm, include_directories('../gbm/main')] @@ -141,6 +141,10 @@ if with_dri2 cpp_args_for_egl += '-DUSE_IMAPPER4_METADATA_API' endif endif + if with_platform_ohos + deps_for_egl += dep_ohos + files_egl += files('drivers/dri2/platform_ohos.c') + endif elif with_platform_haiku c_args_for_egl += [ '-D_EGL_BUILT_IN_DRIVER_HAIKU', diff --git a/src/loader/loader.c b/src/loader/loader.c index 19c456c7020..3cd186aa7de 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -71,26 +71,59 @@ #define PATH_MAX 4096 #endif +#include "ohos_log.h" + static void default_logger(int level, const char *fmt, ...) { + const int MAX_BUFFER_LEN = 1024; + char log_string[MAX_BUFFER_LEN]; if (level <= _LOADER_WARNING) { va_list args; va_start(args, fmt); vfprintf(stderr, fmt, args); va_end(args); } + DISPLAY_LOGI(); } -static loader_logger *log_ = default_logger; +static void ohos_logger(int level, const char *fmt, ...) +{ + const int MAX_BUFFER_LEN = 1024; + char log_string[MAX_BUFFER_LEN]; + va_list args; + va_start(args, fmt); + (void)snprintf(log_string, MAX_BUFFER_LEN, fmt, args); + va_end(args); + switch (level) { + case _LOADER_WARNING: + DISPLAY_LOGW("%{public}s", log_string); + break; + case _LOADER_DEBUG: + DISPLAY_LOGD("%{public}s", log_string); + break; + case _LOADER_FATAL: + DISPLAY_LOGE("%{public}s", log_string); + break; + case _LOADER_INFO: + DISPLAY_LOGI("%{public}s", log_string); + break; + default: + break; + } + DISPLAY_LOGI(); +} + +static loader_logger *log_ = ohos_logger; int loader_open_device(const char *device_name) { + log_(_LOADER_WARNING, "loader_open_device %s", device_name); int fd; #ifdef O_CLOEXEC fd = open(device_name, O_RDWR | O_CLOEXEC); - if (fd == -1 && errno == EINVAL) #endif + if (fd == -1 && errno == EINVAL) { fd = open(device_name, O_RDWR); if (fd != -1) @@ -374,12 +407,14 @@ bool loader_get_user_preferred_fd(int *fd_render_gpu, int *original_fd) char *str; } prime = {}; prime.str = NULL; - +#ifdef USE_DRICONF if (dri_prime) prime.str = strdup(dri_prime); -#ifdef USE_DRICONF else prime.str = loader_get_dri_config_device_id(); +#else + if (dri_prime) + prime = strdup(dri_prime); #endif if (prime.str == NULL) { diff --git a/src/loader/loader.h b/src/loader/loader.h index 8cbfb1afc00..da421492144 100644 --- a/src/loader/loader.h +++ b/src/loader/loader.h @@ -41,7 +41,7 @@ struct __DRIextensionRec; /* Helpers to figure out driver and device name, eg. from pci-id, etc. */ int -loader_open_device(const char *); +loader_open_device(const char *device_name); char * loader_get_kernel_driver_name(int fd); diff --git a/src/loader/meson.build b/src/loader/meson.build index 35f9991ba2f..ecda454599e 100644 --- a/src/loader/meson.build +++ b/src/loader/meson.build @@ -47,6 +47,6 @@ libloader = static_library( c_args : loader_c_args, gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src, inc_util], - dependencies : [dep_libdrm, dep_thread, dep_xcb_xrandr], + dependencies : [dep_libdrm, dep_thread, dep_xcb_xrandr, dep_hilog], build_by_default : false, ) diff --git a/src/util/build_id.c b/src/util/build_id.c index 8b4f8f30afb..e56eecd4d6b 100644 --- a/src/util/build_id.c +++ b/src/util/build_id.c @@ -91,6 +91,13 @@ build_id_find_nhdr_callback(struct dl_phdr_info *info, size_t size, void *data_) size_t offset = sizeof(ElfW(Nhdr)) + ALIGN_POT(note->nhdr.n_namesz, 4) + ALIGN_POT(note->nhdr.n_descsz, 4); + + // 05 00 00 00 04 00 00 00 4f 48 4f 53 00 01 00 00 00 00 00 00 + if ((note->nhdr.n_type == 0x534f484f) && (len > 20)) { + // .note.ohos.ident is not a valid PT_NOTE section, use offset in section header later + offset = 20; + } + note = (struct build_id_note *)((char *)note + offset); len -= offset; }