diff --git a/cpmesa.sh b/cpmesa.sh new file mode 100755 index 00000000000..ca9b5e1a7e1 --- /dev/null +++ b/cpmesa.sh @@ -0,0 +1,6 @@ +cp build-ohos/src/gallium/targets/dri/libgallium_dri.so ../../device/soc/vortexnova/x86_general/hardware/gpu/lib64 +cp build-ohos/src/egl/libEGL.so.1.0.0 ../../device/soc/vortexnova/x86_general/hardware/gpu/lib64 +cp build-ohos/install/lib/libGLESv1_CM.so.1.1.0 ../../device/soc/vortexnova/x86_general/hardware/gpu/lib64 +cp build-ohos/install/lib/libGLESv2.so.2.0.0 ../../device/soc/vortexnova/x86_general/hardware/gpu/lib64 +cp build-ohos/install/lib/libgbm.so.1.0.0 ../../device/soc/vortexnova/x86_general/hardware/gpu/lib64 +cp build-ohos/install/lib/libglapi.so.0.0.0 ../../device/soc/vortexnova/x86_general/hardware/gpu/lib64 diff --git a/cross_file b/cross_file new file mode 100644 index 00000000000..72461ff13dc --- /dev/null +++ b/cross_file @@ -0,0 +1,145 @@ + +[properties] +needs_exe_wrapper = true + +c_args = [ + '-march=x86-64', + '--target=x86_64-linux-ohosmusl', + '--sysroot=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/surface/obj/third_party/musl', + '-fPIC', + '-fno-emulated-tls'] + +cpp_args = [ + '-march=x86-64', + '--target=x86_64-linux-ohosmusl', + '--sysroot=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/surface/obj/third_party/musl', + '-fPIC', + '-fno-emulated-tls'] + +c_link_args = [ + '-march=x86-64', + '--target=x86_64-linux-ohosmusl', + '-fPIC', + '--sysroot=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/surface/obj/third_party/musl', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/surface/obj/third_party/musl/usr/lib/x86_64-linux-ohos', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/15.0.4/lib/x86_64-linux-ohos', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/15.0.4/llvm/include/x86_64-linux-ohos/c++', + '--rtlib=compiler-rt', + ] + +cpp_link_args = [ + '-march=x86-64', + '--target=x86_64-linux-ohosmusl', + '--sysroot=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/surface/obj/third_party/musl', + '-fPIC', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/out/surface/obj/third_party/musl/usr/lib/x86_64-linux-ohos', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/15.0.4/lib/x86_64-linux-ohos', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/prebuilts/clang/ohos/linux-x86_64/llvm/lib/include/x86_64-linux-ohos/c++', + '-Wl,--exclude-libs=libunwind_llvm.a', + '-Wl,--exclude-libs=libc++_static.a', + '-Wl,--warn-shared-textrel', + '--rtlib=compiler-rt', + '-L/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/third_party/mesa3d/subprojects/llvm', + '-lLLVMMCDisassembler', + '-lLLVMSelectionDAG', + '-lLLVMExtensions', + '-lLLVMRemarks', + '-lLLVMRuntimeDyld', + '-lLLVMDemangle', + '-lLLVMBinaryFormat', + '-lLLVMAsmParser', + '-lLLVMTarget', + '-lLLVMX86Disassembler', + '-lLLVMInterfaceStub', + '-lLLVMX86Info', + '-lLLVMLTO', + '-lLLVMMCA', + '-lLLVMOption', + '-lLLVMFuzzerCLI', + '-lLLVMDlltoolDriver', + '-lLLVMDebugInfoPDB', + '-lLLVMTextAPI', + '-lLLVMMCJIT', + '-lLLVMAggressiveInstCombine', + '-lLLVMCore', + '-lLLVMOrcTargetProcess', + '-lLLVMAnalysis', + '-lLLVMBitWriter', + '-lLLVMObjCopy', + '-lLLVMBitstreamReader', + '-lLLVMTransformUtils', + '-lLLVMExecutionEngine', + '-lLLVMObjCARCOpts', + '-lLLVMAMDGPUCodeGen', + '-lLLVMFrontendOpenACC', + '-lLLVMAMDGPUInfo', + '-lLLVMDWARFLinker', + '-lLLVMTableGen', + '-lLLVMX86Desc', + '-lLLVMMCParser', + '-lLLVMInstrumentation', + '-lLLVMOrcShared', + '-lLLVMInstCombine', + '-lLLVMSupport', + '-lLLVMAsmPrinter', + '-lLLVMWindowsManifest', + '-lLLVMLineEditor', + '-lLLVMAMDGPUDisassembler', + '-lLLVMDebugInfoGSYM', + '-lLLVMDebugInfoCodeView', + '-lLLVMInterpreter', + '-lLLVMVectorize', + '-lLLVMX86CodeGen', + '-lLLVMAMDGPUUtils', + '-lLLVMParts', + '-lLLVMDebugInfoMSF', + '-lLLVMXRay', + '-lLLVMPasses', + '-lLLVMTableGenGlobalISel', + '-lLLVMGlobalISel', + '-lLLVMBitReader', + '-lLLVMipo', + '-lLLVMLinker', + '-lLLVMX86TargetMCA', + '-lLLVMProfileData', + '-lLLVMCoroutines', + '-lLLVMScalarOpts', + '-lLLVMCodeGen', + '-lLLVMObject', + '-lLLVMWindowsDriver', + '-lLLVMCFGuard', + '-lLLVMDebugInfoDWARF', + '-lLLVMAMDGPUAsmParser', + '-lLLVMFrontendOpenMP', + '-lLLVMJITLink', + '-lLLVMIRReader', + '-lLLVMX86AsmParser', + '-lLLVMMC', + '-lLLVMSymbolize', + '-lLLVMLibDriver', + '-lLLVMObjectYAML', + '-lLLVMFileCheck', + '-lLLVMDWP', + '-lLLVMAMDGPUTargetMCA', + '-lLLVMMIRParser', + '-lLLVMAMDGPUDesc', + '-lLLVMFuzzMutate', + '-lLLVMCoverage', + '-lLLVMOrcJIT', + ] + +[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/tools/llvm-project-llvmorg-18.1.8/build/bin/llvm-strip' +llvm-config = '/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/tools/llvm-project-llvmorg-18.1.8/build/bin/llvm-config' +pkgconfig = '/usr/bin/pkg-config' + +[host_machine] +system = 'linux' +cpu_family = 'x86_64' +cpu = 'x86_64' +endian = 'little' diff --git a/include/EGL/eglext.h b/include/EGL/eglext.h index 9932ebeec55..9ad870da745 100644 --- a/include/EGL/eglext.h +++ b/include/EGL/eglext.h @@ -134,7 +134,7 @@ typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLen 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 +#if defined(EGL_EGLEXT_PROTOTYPES) || defined(HAVE_OHOS_PLATFORM) 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); @@ -188,7 +188,7 @@ typedef void *EGLImageKHR; #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 +#if defined(EGL_EGLEXT_PROTOTYPES) || defined(HAVE_OHOS_PLATFORM) 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 @@ -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 @@ -438,7 +443,7 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSu #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 +#if defined(EGL_EGLEXT_PROTOTYPES) || defined(HAVE_OHOS_PLATFORM) EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); #endif #endif /* EGL_KHR_wait_sync */ @@ -533,7 +538,7 @@ EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct #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 +#if defined(EGL_EGLEXT_PROTOTYPES) || defined(HAVE_OHOS_PLATFORM) EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); #endif #endif /* EGL_ANDROID_native_fence_sync */ @@ -1456,6 +1461,11 @@ EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); #define EGL_PLATFORM_SCREEN_QNX 0x3550 #endif /* EGL_QNX_platform_screen */ +#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/GL/gl.h b/include/GL/gl.h index 88efd27288e..03aac8b2024 100644 --- a/include/GL/gl.h +++ b/include/GL/gl.h @@ -2082,7 +2082,7 @@ typedef void* GLeglImageOES; #ifndef GL_OES_EGL_image #define GL_OES_EGL_image 1 -#ifdef GL_GLEXT_PROTOTYPES +#if defined(GL_GLEXT_PROTOTYPES) || defined(HAVE_OHOS_PLATFORM) GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); #endif diff --git a/include/KHR/khrplatform.h b/include/KHR/khrplatform.h index 01646449cae..c7c8eb55d46 100644 --- a/include/KHR/khrplatform.h +++ b/include/KHR/khrplatform.h @@ -109,6 +109,8 @@ # define KHRONOS_APICALL IMPORT_C #elif defined(__ANDROID__) # define KHRONOS_APICALL __attribute__((visibility("default"))) +#elif defined(HAVE_OHOS_PLATFORM) +# define KHRONOS_APICALL __attribute__((visibility("default"))) #else # define KHRONOS_APICALL #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 de9c9af53a1..2ffc4c6705e 100644 --- a/meson.build +++ b/meson.build @@ -125,7 +125,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2 # Only build shared_glapi if at least one OpenGL API is enabled with_shared_glapi = with_shared_glapi and with_any_opengl -system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos', 'android', 'managarm'].contains(host_machine.system()) +system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos', 'android', 'managarm', 'ohos'].contains(host_machine.system()) gallium_drivers = get_option('gallium-drivers') if gallium_drivers.contains('auto') @@ -410,6 +410,7 @@ with_platform_wayland = _platforms.contains('wayland') with_platform_haiku = _platforms.contains('haiku') with_platform_windows = _platforms.contains('windows') with_platform_macos = _platforms.contains('macos') +with_platform_ohos = _platforms.contains('ohos') with_glx = get_option('glx') if with_glx == 'auto' @@ -470,7 +471,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 @@ -902,7 +903,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', ''' @@ -1638,7 +1650,7 @@ dep_libdrm_intel = null_dep _drm_amdgpu_ver = '2.4.121' _drm_radeon_ver = '2.4.71' -_drm_intel_ver = '2.4.75' +_drm_intel_ver = '2.4.111' _drm_ver = '2.4.109' _libdrm_checks = [ @@ -1671,6 +1683,10 @@ foreach d : _libdrm_checks endif endforeach +dep_hilog = dependency( + 'libhilog' +) + with_gallium_drisw_kms = false if system_has_kms_drm dep_libdrm = dependency( @@ -1691,7 +1707,7 @@ endif dep_libudev = dependency('libudev', required : false) if dep_libudev.found() - pre_args += '-DHAVE_LIBUDEV' + # pre_args += '-DHAVE_LIBUDEV' endif llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit', 'core', 'executionengine', 'scalaropts', 'transformutils', 'instcombine'] diff --git a/meson_options.txt b/meson_options.txt index 79ee65e6094..bffe5e81a25 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -12,7 +12,7 @@ option( type : 'array', value : ['auto'], choices : [ - 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', 'macos', + 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', 'macos', 'ohos', ], description : 'window systems to support. If this is set to `auto`, all ' + 'platforms applicable will be enabled.' @@ -24,7 +24,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_ohos_x86.py b/ohos/build_ohos_x86.py new file mode 100644 index 00000000000..815a1bfdeea --- /dev/null +++ b/ohos/build_ohos_x86.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_x86.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 -Dgallium-drivers=crocus,iris \ + -Dvulkan-drivers= -Dgbm=enabled -Degl=enabled -Dcpp_rtti=false -Dglx=disabled -Dtools=intel ' + 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_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/meson_cross_process_x86.py b/ohos/meson_cross_process_x86.py new file mode 100644 index 00000000000..f3530aec92d --- /dev/null +++ b/ohos/meson_cross_process_x86.py @@ -0,0 +1,219 @@ +#!/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=x86-64', + '--target=x86_64-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-fPIC', + '-fno-emulated-tls'] + +cpp_args = [ + '-march=x86-64', + '--target=x86_64-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-fPIC', + '-fno-emulated-tls'] + +c_link_args = [ + '-march=x86-64', + '--target=x86_64-linux-ohosmusl', + '-fPIC', + '--sysroot=sysroot_stub', + '-Lsysroot_stub/usr/lib/x86_64-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/15.0.4/lib/x86_64-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/15.0.4/llvm/include/x86_64-linux-ohos/c++', + '--rtlib=compiler-rt', + ] + +cpp_link_args = [ + '-march=x86-64', + '--target=x86_64-linux-ohosmusl', + '--sysroot=sysroot_stub', + '-fPIC', + '-Lsysroot_stub/usr/lib/x86_64-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/15.0.4/lib/x86_64-linux-ohos', + '-Lproject_stub/prebuilts/clang/ohos/linux-x86_64/llvm/lib/include/x86_64-linux-ohos/c++', + '-Wl,--exclude-libs=libunwind_llvm.a', + '-Wl,--exclude-libs=libc++_static.a', + '-Wl,--warn-shared-textrel', + '--rtlib=compiler-rt', + '-Lproject_stub/third_party/mesa3d/subprojects/llvm', + '-lLLVMMCDisassembler', + '-lLLVMSelectionDAG', + '-lLLVMExtensions', + '-lLLVMRemarks', + '-lLLVMRuntimeDyld', + '-lLLVMDemangle', + '-lLLVMBinaryFormat', + '-lLLVMAsmParser', + '-lLLVMTarget', + '-lLLVMX86Disassembler', + '-lLLVMInterfaceStub', + '-lLLVMX86Info', + '-lLLVMLTO', + '-lLLVMMCA', + '-lLLVMOption', + '-lLLVMFuzzerCLI', + '-lLLVMDlltoolDriver', + '-lLLVMDebugInfoPDB', + '-lLLVMTextAPI', + '-lLLVMMCJIT', + '-lLLVMAggressiveInstCombine', + '-lLLVMCore', + '-lLLVMOrcTargetProcess', + '-lLLVMAnalysis', + '-lLLVMBitWriter', + '-lLLVMObjCopy', + '-lLLVMBitstreamReader', + '-lLLVMTransformUtils', + '-lLLVMExecutionEngine', + '-lLLVMObjCARCOpts', + '-lLLVMAMDGPUCodeGen', + '-lLLVMFrontendOpenACC', + '-lLLVMAMDGPUInfo', + '-lLLVMDWARFLinker', + '-lLLVMTableGen', + '-lLLVMX86Desc', + '-lLLVMMCParser', + '-lLLVMInstrumentation', + '-lLLVMOrcShared', + '-lLLVMInstCombine', + '-lLLVMSupport', + '-lLLVMAsmPrinter', + '-lLLVMWindowsManifest', + '-lLLVMLineEditor', + '-lLLVMAMDGPUDisassembler', + '-lLLVMDebugInfoGSYM', + '-lLLVMDebugInfoCodeView', + '-lLLVMInterpreter', + '-lLLVMVectorize', + '-lLLVMX86CodeGen', + '-lLLVMAMDGPUUtils', + '-lLLVMParts', + '-lLLVMDebugInfoMSF', + '-lLLVMXRay', + '-lLLVMPasses', + '-lLLVMTableGenGlobalISel', + '-lLLVMGlobalISel', + '-lLLVMBitReader', + '-lLLVMipo', + '-lLLVMLinker', + '-lLLVMX86TargetMCA', + '-lLLVMProfileData', + '-lLLVMCoroutines', + '-lLLVMScalarOpts', + '-lLLVMCodeGen', + '-lLLVMObject', + '-lLLVMWindowsDriver', + '-lLLVMCFGuard', + '-lLLVMDebugInfoDWARF', + '-lLLVMAMDGPUAsmParser', + '-lLLVMFrontendOpenMP', + '-lLLVMJITLink', + '-lLLVMIRReader', + '-lLLVMX86AsmParser', + '-lLLVMMC', + '-lLLVMSymbolize', + '-lLLVMLibDriver', + '-lLLVMObjectYAML', + '-lLLVMFileCheck', + '-lLLVMDWP', + '-lLLVMAMDGPUTargetMCA', + '-lLLVMMIRParser', + '-lLLVMAMDGPUDesc', + '-lLLVMFuzzMutate', + '-lLLVMCoverage', + '-lLLVMOrcJIT', + ] + +[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/tools/llvm-project-llvmorg-18.1.8/build/bin/llvm-strip' +llvm-config = 'project_stub/tools/llvm-project-llvmorg-18.1.8/build/bin/llvm-config' +pkgconfig = '/usr/bin/pkg-config' + +[host_machine] +system = 'linux' +cpu_family = 'x86_64' +cpu = 'x86_64' +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/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/libdrm_amdgpu.pc b/ohos/pkgconfig_template/libdrm_amdgpu.pc new file mode 100644 index 00000000000..b2f4ab80e00 --- /dev/null +++ b/ohos/pkgconfig_template/libdrm_amdgpu.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/vortexnova_soc_products/vortexnova_x86_general/ +includedir=${ohos_project_dir}/third_party/libdrm + +Name: libdrm_amdgpu +Description: Userspace interface to kernel DRM services +Version: 2.5.109 +Libs: -L${libdir} -ldrm_amdgpu +Cflags: -I${includedir} -I${includedir}/include/drm/ -I${includedir}/amdgpu diff --git a/ohos/pkgconfig_template/libdrm_radeon.pc b/ohos/pkgconfig_template/libdrm_radeon.pc new file mode 100644 index 00000000000..86bd291c902 --- /dev/null +++ b/ohos/pkgconfig_template/libdrm_radeon.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/vortexnova_soc_products/vortexnova_x86_general/ +includedir=${ohos_project_dir}/third_party/libdrm + +Name: libdrm_radeon +Description: Userspace interface to kernel DRM services +Version: 2.5.109 +Libs: -L${libdir} -ldrm_radeon +Cflags: -I${includedir} -I${includedir}/include/drm/ -I${includedir}/radeon diff --git a/ohos/pkgconfig_template/libelf.pc b/ohos/pkgconfig_template/libelf.pc new file mode 100644 index 00000000000..66b124d1288 --- /dev/null +++ b/ohos/pkgconfig_template/libelf.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/vortexnova_soc_products/vortexnova_x86_general/ +includedir=${ohos_project_dir}/third_party/elfutils/libelf/ + +Name: libelf +Description: elfutils libelf library to read and write ELF files +Version: 0.185 +Libs: -L${libdir} -lelf +Cflags: -I${includedir} 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..cc091dcfb9b --- /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-turbo/ +includedir=${ohos_project_dir}/third_party/libjpeg-turbo + +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..6f534c961ee --- /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/thirdparty/libpng/ +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..62fff8b0757 --- /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-x86_64/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..b078feb46d5 --- /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/obj/foundation/multimodalinput/input/libudev/ +includedir=${ohos_project_dir}/foundation/multimodalinput/input/libudev/include/ + +Name: udev +Description: udev +Version: 2.5.109 +Libs: -L${libdir} -lmmi_libudev +Cflags: -I${includedir} \ No newline at end of file diff --git a/ohos/pkgconfig_template/libxml2.pc b/ohos/pkgconfig_template/libxml2.pc new file mode 100644 index 00000000000..06ce53a188c --- /dev/null +++ b/ohos/pkgconfig_template/libxml2.pc @@ -0,0 +1,9 @@ +ohos_project_dir=ohos_project_directory_stub +libdir=${ohos_project_dir}/out/ohos-arm-release/thirdparty/libxml2/ +includedir=${ohos_project_dir}/third_party/libxml2/include + +Name: xml2 +Description: xml2 +Version: 2.9.13 +Libs: -L${libdir} -lxml2.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/LLVMSPIRVLib.pc b/pkgconfig/LLVMSPIRVLib.pc new file mode 100644 index 00000000000..2bfb52a7629 --- /dev/null +++ b/pkgconfig/LLVMSPIRVLib.pc @@ -0,0 +1,12 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/tools/SPIRV-LLVM-Translator-18.1.12/build +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: LLVMSPIRVLib +Description: LLVM/SPIR-V bi-directional translator +Version: 18.1.0.0 +URL: https://github.com/KhronosGroup/SPIRV-LLVM-Translator + +Libs: -L${libdir} -lLLVMSPIRVLib +Cflags: -I${includedir} diff --git a/pkgconfig/SPIRV-Tools-shared.pc b/pkgconfig/SPIRV-Tools-shared.pc new file mode 100644 index 00000000000..55b75e0553e --- /dev/null +++ b/pkgconfig/SPIRV-Tools-shared.pc @@ -0,0 +1,12 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/tools/SPIRV-Tools-2024.4/build +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: SPIRV-Tools +Description: Tools for SPIR-V +Version: 2024.4.1 +URL: https://github.com/KhronosGroup/SPIRV-Tools + +Libs: -L${libdir} -lSPIRV-Tools-shared +Cflags: -I${includedir} diff --git a/pkgconfig/SPIRV-Tools.pc b/pkgconfig/SPIRV-Tools.pc new file mode 100644 index 00000000000..b4efda71a30 --- /dev/null +++ b/pkgconfig/SPIRV-Tools.pc @@ -0,0 +1,12 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release/tools/SPIRV-Tools-2024.4/build +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: SPIRV-Tools +Description: Tools for SPIR-V +Version: 2024.4.1 +URL: https://github.com/KhronosGroup/SPIRV-Tools + +Libs: -L${libdir} -lSPIRV-Tools-opt -lSPIRV-Tools -lSPIRV-Tools-link +Cflags: -I${includedir} diff --git a/pkgconfig/expat.pc b/pkgconfig/expat.pc new file mode 100644 index 00000000000..d8517a4a5ec --- /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/surface/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..1f6e5221e78 --- /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/surface/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/libdrm_amdgpu.pc b/pkgconfig/libdrm_amdgpu.pc new file mode 100644 index 00000000000..987f68710dd --- /dev/null +++ b/pkgconfig/libdrm_amdgpu.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/surface/vortexnova_soc_products/vortexnova_x86_general/ +includedir=${ohos_project_dir}/third_party/libdrm + +Name: libdrm_amdgpu +Description: Userspace interface to kernel DRM services +Version: 2.5.109 +Libs: -L${libdir} -ldrm_amdgpu +Cflags: -I${includedir} -I${includedir}/include/drm/ -I${includedir}/amdgpu diff --git a/pkgconfig/libdrm_radeon.pc b/pkgconfig/libdrm_radeon.pc new file mode 100644 index 00000000000..38eb72a35a7 --- /dev/null +++ b/pkgconfig/libdrm_radeon.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/surface/vortexnova_soc_products/vortexnova_x86_general/ +includedir=${ohos_project_dir}/third_party/libdrm + +Name: libdrm_radeon +Description: Userspace interface to kernel DRM services +Version: 2.5.109 +Libs: -L${libdir} -ldrm_radeon +Cflags: -I${includedir} -I${includedir}/include/drm/ -I${includedir}/radeon diff --git a/pkgconfig/libelf.pc b/pkgconfig/libelf.pc new file mode 100644 index 00000000000..12b20beac13 --- /dev/null +++ b/pkgconfig/libelf.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/surface/vortexnova_soc_products/vortexnova_x86_general/ +includedir=${ohos_project_dir}/third_party/elfutils/libelf/ + +Name: libelf +Description: elfutils libelf library to read and write ELF files +Version: 0.185 +Libs: -L${libdir} -lelf +Cflags: -I${includedir} diff --git a/pkgconfig/libhilog.pc b/pkgconfig/libhilog.pc new file mode 100644 index 00000000000..ffb15b1bfc3 --- /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/surface/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..784420a3dde --- /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/surface/obj/third_party/libjpeg-turbo/ +includedir=${ohos_project_dir}/third_party/libjpeg-turbo + +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..1929b0b7155 --- /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/surface/thirdparty/libpng/ +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..92753af1142 --- /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/surface/graphic/graphic_surface/ +includedir=${ohos_project_dir}/out/surface/innerkits/ohos-x86_64/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..96dbab7aa30 --- /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/surface/obj/foundation/multimodalinput/input/libudev/ +includedir=${ohos_project_dir}/foundation/multimodalinput/input/libudev/include/ + +Name: udev +Description: udev +Version: 2.5.109 +Libs: -L${libdir} -lmmi_libudev +Cflags: -I${includedir} \ No newline at end of file diff --git a/pkgconfig/libxml2.pc b/pkgconfig/libxml2.pc new file mode 100644 index 00000000000..e949cfc9d7d --- /dev/null +++ b/pkgconfig/libxml2.pc @@ -0,0 +1,9 @@ +ohos_project_dir=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${ohos_project_dir}/out/surface/thirdparty/libxml2/ +includedir=${ohos_project_dir}/third_party/libxml2/include + +Name: xml2 +Description: xml2 +Version: 2.9.13 +Libs: -L${libdir} -lxml2.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..b7d147f24a3 --- /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/surface/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/surface/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..87a453c0792 --- /dev/null +++ b/pkgconfig/wayland-cursor.pc @@ -0,0 +1,9 @@ +prefix=/home/geekyharmony/ohsc/OpenHarmony-5.1.0-Release +libdir=${prefix}/out/surface/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..c3f32c77700 --- /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/surface/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..09e68d683d6 --- /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/surface/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..b749558ffea --- /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/surface/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..c1bc38e7d31 --- /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/surface/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/surface/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..0cc348c89a4 --- /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/surface/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 5e47477c8d9..af73dafde67 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" @@ -2836,6 +2837,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 abab8c9edbc..f611378a146 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -924,6 +924,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 4278ff969f1..6d9e376a59f 100644 --- a/src/egl/drivers/dri2/egl_dri2.h +++ b/src/egl/drivers/dri2/egl_dri2.h @@ -81,6 +81,10 @@ struct zwp_linux_dmabuf_feedback_v1; #include #endif +#ifdef HAVE_OHOS_PLATFORM +#include "window.h" +#endif + #endif /* HAVE_ANDROID_PLATFORM */ #include "eglconfig.h" @@ -374,9 +378,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; @@ -390,7 +394,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; @@ -582,6 +586,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..685c3b44276 --- /dev/null +++ b/src/egl/drivers/dri2/platform_ohos.c @@ -0,0 +1,1142 @@ +/* + * Mesa 3-D graphics library + * + * Copyright (c) 2021 Huawei Device Co., Ltd. * + * + * Based on platform_ohos, 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 "loader_dri_helper.h" +#include "main/glconfig.h" +#include "egl_dri2.h" +#include "eglglobals.h" +#include "platform_ohos.h" +#include "libsync.h" + +#include "ohos_log.h" + +static __DRIimage * +ohos_create_image_from_buffer_info( + struct dri2_egl_display *dri2_dpy, int width, int height, + struct u_gralloc_buffer_basic_info *buf_info, + struct u_gralloc_buffer_color_info *color_info, void *priv) +{ + unsigned error; + + return dri2_from_dma_bufs( + dri2_dpy->dri_screen_render_gpu, width, height, buf_info->drm_fourcc, + buf_info->modifier, buf_info->fds, buf_info->num_planes, + buf_info->strides, buf_info->offsets, color_info->yuv_color_space, + color_info->sample_range, color_info->horizontal_siting, + color_info->vertical_siting, 0, &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 u_gralloc_buffer_basic_info buf_info; + struct u_gralloc_buffer_color_info color_info = { + .yuv_color_space = __DRI_YUV_COLOR_SPACE_ITU_REC601, + .sample_range = __DRI_YUV_NARROW_RANGE, + .horizontal_siting = __DRI_YUV_CHROMA_SITING_0, + .vertical_siting = __DRI_YUV_CHROMA_SITING_0, + }; + struct u_gralloc_buffer_handle gr_handle = { + .handle = buf->handle, + .hal_format = buf->format, + .pixel_stride = buf->stride, + }; + struct dri_image *img = NULL; + + if (u_gralloc_get_buffer_basic_info(dri2_dpy->gralloc, &gr_handle, + &buf_info)) + return 0; + + /* May fail in some cases, defaults will be used in that case */ + u_gralloc_get_buffer_color_info(dri2_dpy->gralloc, &gr_handle, &color_info); + + img = ohos_create_image_from_buffer_info(dri2_dpy, buf->width, buf->height, + &buf_info, &color_info, priv); + + if (!img) { + /* 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 so that the buffer can be imported without + * modifier info as a last resort. + */ + buf_info.modifier = DRM_FORMAT_MOD_INVALID; + img = ohos_create_image_from_buffer_info( + dri2_dpy, buf->width, buf->height, &buf_info, &color_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) +{ + /* 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; + + if (dri2_surf->dri_image_back) { + dri2_dpy->image->dri2_destroy_image(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 struct dri_config *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_surface *dri2_surf = dri2_egl_surface(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_destroy_image(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_destroy_image(dri2_surf->dri_image_front); + dri2_surf->dri_image_front = NULL; + } + + driDestroyDrawable(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_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 = + dri_create_image(dri2_dpy->dri_screen_render_gpu, + dri2_surf->base.Width, + dri2_surf->base.Height, + format, NULL, 0, + 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(struct dri_drawable *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_flags(disp, draw, + __DRI2_NOTHROTTLE_SWAPBUFFER); + + if (dri2_dpy->pure_swrast) { + driSwapBuffers(dri2_surf->dri_drawable); + if (dri2_surf->buffer) + ohos_window_enqueue_buffer(disp, dri2_surf); + } else { + /* 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); + } + + dri_invalidate_drawable(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; + } + struct dri_image *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(struct dri_image *driDrawable, void *loaderPrivate) +{ +} + +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 void +ohos_add_configs_for_visuals(_EGLDisplay *disp) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + static const struct { + int hal_format; + enum pipe_format pipe_format; + } visuals[] = { + {PIXEL_FMT_RGBA_8888, PIPE_FORMAT_RGBA8888_UNORM}, + {PIXEL_FMT_RGBX_8888, PIPE_FORMAT_RGBX8888_UNORM}, + {PIXEL_FMT_RGB_565, PIPE_FORMAT_B5G6R5_UNORM}, + /* 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, PIPE_FORMAT_BGRA8888_UNORM}, + }; + + unsigned int format_count[ARRAY_SIZE(visuals)] = {0}; + + bool has_rgba = false; + for (int i = 0; i < ARRAY_SIZE(visuals); i++) { + if (visuals[i].hal_format == PIXEL_FMT_BGRA_8888 && has_rgba) { + continue; + } + for (int j = 0; dri2_dpy->driver_configs[j]; j++) { + const struct gl_config *gl_config = + (struct gl_config *) dri2_dpy->driver_configs[j]; + + /* Rather than have duplicate table entries for _SRGB formats, just + * use the linear version of the format for the comparision: + */ + enum pipe_format linear_format = + util_format_linear(gl_config->color_format); + if (linear_format != visuals[i].pipe_format) + continue; + + const EGLint surface_type = EGL_WINDOW_BIT | EGL_PBUFFER_BIT; + const EGLint config_attrs[] = { + EGL_NATIVE_VISUAL_ID, visuals[i].hal_format, + EGL_NATIVE_VISUAL_TYPE, visuals[i].hal_format, + EGL_NONE}; + + struct dri2_egl_config *dri2_conf = dri2_add_config( + disp, dri2_dpy->driver_configs[j], surface_type, config_attrs); + if (dri2_conf) + format_count[i]++; + } + + if (visuals[i].hal_format == HAL_PIXEL_FORMAT_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%x", + visuals[i].hal_format); + } + } +} + +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(__DRIdrstruct dri_drawableawable *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. */ + _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_destroy_image(dri2_surf->dri_image_back); + dri2_surf->dri_image_back = NULL; + } + + dri_invalidate_drawable(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 void +ohos_swrast_get_drawable_info(struct dri_drawable *drawable, + int *x, int *y, int *width, int *height, + void *loaderPrivate) +{ + struct dri2_egl_surface *dri2_surf = loaderPrivate; + + update_buffers(dri2_surf); + + *x = 0; + *y = 0; + *width = dri2_surf->base.Width; + *height = dri2_surf->base.Height; +} + +static void +ohos_swrast_put_image2(struct dri_drawable *draw, int op, int x, int y, int w, + int h, int stride, char *data, void *loaderPrivate) +{ + return; +} + +static void +ohos_swrast_put_image(struct dri_drawable *draw, int op, int x, int y, int w, + int h, char *data, void *loaderPrivate) +{ + return; +} + +static void +ohos_swrast_get_image(struct dri_drawable *read, int x, int y, int w, int h, + char *data, void *loaderPrivate) +{ + return; +} + +static const __DRIswrastLoaderExtension swrast_loader_extension = { + .base = {__DRI_SWRAST_LOADER, 2}, + + .getDrawableInfo = ohos_swrast_get_drawable_info, + .putImage = ohos_swrast_put_image, + .getImage = ohos_swrast_get_image, + .putImage2 = ohos_swrast_put_image2, +}; + +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 const __DRIextension *ohos_swrast_image_loader_extensions[] = { + &ohos_image_loader_extension.base, + &image_lookup_extension.base, + &use_invalidate.base, + &ohos_mutable_render_buffer_extension.base, + &swrast_loader_extension.base, + NULL, +}; + +static EGLBoolean +ohos_load_driver(_EGLDisplay *disp, bool swrast) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + if (disp->Options.Zink) + dri2_dpy->driver_name = strdup("zink"); + else + dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd_render_gpu); + 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 && !disp->Options.Zink) { + /* 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(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); + + 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; +} + +static EGLBoolean +ohos_open_device(_EGLDisplay *disp, bool swrast) +{ +#define MAX_DRM_DEVICES 64 + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + _EGLDevice *dev_list = _eglGlobal.DeviceList; + drmDevicePtr device; + + 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 + + while (dev_list) { + if (!_eglDeviceSupports(dev_list, _EGL_DEVICE_DRM)) + goto next; + + device = _eglDeviceDrm(dev_list); + assert(device); + + if (!(device->available_nodes & (1 << node_type))) + goto next; + + dri2_dpy->fd_render_gpu = loader_open_device(device->nodes[node_type]); + if (dri2_dpy->fd_render_gpu < 0) { + DISPLAY_LOGI(); + _eglLog(_EGL_WARNING, "%s() Failed to open DRM device %s", + __func__, device->nodes[node_type]); + goto next; + } + + /* 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_render_gpu, vendor_name)) { + /* Device does not match - try next device */ + close(dri2_dpy->fd_render_gpu); + dri2_dpy->fd_render_gpu = -1; + DISPLAY_LOGI(); + goto next; + } + /* 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_render_gpu); + dri2_dpy->fd_render_gpu = -1; + } + DISPLAY_LOGI(); + break; + } + if (ohos_probe_device(disp, swrast)) + break; + + DISPLAY_LOGI(); + /* No explicit request - attempt the next device */ + close(dri2_dpy->fd_render_gpu); + dri2_dpy->fd_render_gpu = -1; + + next: + dev_list = _eglDeviceNext(dev_list); + } + + if (dri2_dpy->fd_render_gpu < 0) { + _eglLog(_EGL_WARNING, "Failed to open %s DRM device", + vendor_name ? "desired": "any"); + return EGL_FALSE; + } + + return EGL_TRUE; +} + +EGLBoolean +dri2_initialize_ohos(_EGLDisplay *disp) +{ + bool device_opened = false; + struct dri2_egl_display *dri2_dpy; + const char *err; + + dri2_dpy = dri2_display_create(); + if (!dri2_dpy) + return _eglError(EGL_BAD_ALLOC, "eglInitialize"); + + dri2_dpy->gralloc = u_gralloc_create(U_GRALLOC_TYPE_AUTO); + bool force_pure_swrast = debug_get_bool_option("MESA_OPENHARMONY_NO_KMS_SWRAST", false); + + disp->DriverData = (void *)dri2_dpy; + if (!force_pure_swrast) + device_opened = ohos_open_device(disp, disp->Options.ForceSoftware); + + if ((!device_opened && disp->Options.ForceSoftware) || + force_pure_swrast) { + dri2_dpy->driver_name = strdup("swrast"); + dri2_dpy->loader_extensions = ohos_swrast_image_loader_extensions; + dri2_dpy->fd_render_gpu = -1; + dri2_dpy->pure_swrast = true; + if(!dri2_load_driver(disp)) { + err = "DRI2: Failed to load swrast"; + goto cleanup; + } + + if (!dri2_create_screen(disp)) { + err = "DRI2: Failed to create swrast screen"; + goto cleanup; + } + + device_opened = EGL_TRUE; + } + + if (!device_opened) { + err = "DRI2: failed to open device"; + goto cleanup; + } + + dri2_dpy->fd_display_gpu = dri2_dpy->fd_render_gpu; + + if (!dri2_dpy->pure_swrast && !dri2_setup_device(disp, false)) { + err = "DRI2: failed to setup EGLDevice"; + 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. + */ + ohos_add_configs_for_visuals(disp); + + /* 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); +} + +GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image){} \ No newline at end of file diff --git a/src/egl/drivers/dri2/platform_ohos.h b/src/egl/drivers/dri2/platform_ohos.h new file mode 100644 index 00000000000..801ded2c39c --- /dev/null +++ b/src/egl/drivers/dri2/platform_ohos.h @@ -0,0 +1,116 @@ +/* + * 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) +{ + NativeObjectUnreference(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) +{ + int32_t ret = NativeWindowRequestBuffer(window, buffer, fenceFd); + NativeObjectReference(*buffer); + return ret; +} + +static inline int32_t +ANativeWindow_queueBuffer(struct ANativeWindow *window, + struct ANativeWindowBuffer *buffer, + int fenceFd) +{ + struct Region dirty; + dirty.rectNumber = 0; + dirty.rects = NULL; + int32_t ret = NativeWindowFlushBuffer(window, buffer, fenceFd, dirty); + NativeObjectUnreference(buffer); + return ret; +} + +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 ca5015fe863..298f686fad1 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -114,6 +114,8 @@ #include "GL/mesa_glinterop.h" +#include "ohos_log.h" + /** * Macros to help return an API entrypoint. * @@ -461,6 +463,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); @@ -1855,7 +1862,7 @@ _eglCreateImageCommon(_EGLDisplay *disp, EGLContext ctx, EGLenum target, RETURN_EGL_EVAL(disp, ret); } -static EGLImage EGLAPIENTRY +EGLAPI EGLImage EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attr_list) { @@ -1909,7 +1916,7 @@ eglDestroyImage(EGLDisplay dpy, EGLImage image) return _eglDestroyImageCommon(disp, img); } -static EGLBoolean EGLAPIENTRY +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImage image) { _EGLDisplay *disp = _eglLockDisplay(dpy); @@ -1982,7 +1989,7 @@ _eglCreateSync(_EGLDisplay *disp, EGLenum type, const EGLAttrib *attrib_list, RETURN_EGL_EVAL(disp, ret); } -static EGLSync EGLAPIENTRY +EGLAPI EGLSync EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *int_list) { _EGLDisplay *disp = _eglLockDisplay(dpy); @@ -2053,7 +2060,7 @@ eglDestroySync(EGLDisplay dpy, EGLSync sync) return _eglDestroySync(disp, s); } -static EGLBoolean EGLAPIENTRY +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSync sync) { _EGLDisplay *disp = _eglLockDisplay(dpy); @@ -2092,7 +2099,7 @@ eglClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout) return _eglClientWaitSyncCommon(disp, s, flags, timeout); } -static EGLint EGLAPIENTRY +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout) { @@ -2125,7 +2132,7 @@ _eglWaitSyncCommon(_EGLDisplay *disp, _EGLSync *s, EGLint flags) RETURN_EGL_EVAL(disp, ret); } -static EGLint EGLAPIENTRY +EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSync sync, EGLint flags) { _EGLDisplay *disp = _eglLockDisplay(dpy); @@ -2196,7 +2203,7 @@ eglGetSyncAttrib(EGLDisplay dpy, EGLSync sync, EGLint attribute, return _eglGetSyncAttribCommon(disp, s, attribute, value); } -static EGLBoolean EGLAPIENTRY +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLint *value) { @@ -2224,7 +2231,7 @@ eglGetSyncAttribKHR(EGLDisplay dpy, EGLSync sync, EGLint attribute, return result; } -static EGLint EGLAPIENTRY +EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID(EGLDisplay dpy, EGLSync sync) { _EGLDisplay *disp = _eglLockDisplay(dpy); @@ -2856,6 +2863,8 @@ eglGetProcAddress(const char *procname) }; _EGLProc ret = NULL; + DISPLAY_LOGI("procname = %{public}s", procname); + if (!procname) RETURN_EGL_SUCCESS(NULL, NULL); diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index 4eadb8f10aa..e07e303a5ad 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 d510483e493..43f877b8557 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 @@ -355,6 +356,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 3a5a32a6cf9..c71affe5d75 100644 --- a/src/egl/meson.build +++ b/src/egl/meson.build @@ -104,7 +104,7 @@ if with_dri endif deps_for_egl += [dep_x11_xcb, dep_xcb_dri2, dep_xcb_xrandr, dep_xcb_xfixes, dep_xcb_shm] 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')] @@ -122,6 +122,10 @@ if with_dri deps_for_egl += [dep_android, idep_u_gralloc] files_egl += files('drivers/dri2/platform_android.c') 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/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build index afac59ce6a6..0d7b5a64828 100644 --- a/src/gallium/auxiliary/meson.build +++ b/src/gallium/auxiliary/meson.build @@ -522,7 +522,7 @@ libgallium = static_library( gnu_symbol_visibility : 'hidden', dependencies : [ dep_libdrm, dep_llvm, dep_dl, dep_m, dep_thread, dep_lmsensors, dep_ws2_32, - idep_nir, idep_nir_headers, idep_mesautil, + idep_nir, idep_nir_headers, idep_mesautil, dep_unwind, ], build_by_default : false ) diff --git a/src/intel/common/meson.build b/src/intel/common/meson.build index 95ac18c2d27..9b9e7ac1ccf 100644 --- a/src/intel/common/meson.build +++ b/src/intel/common/meson.build @@ -87,7 +87,7 @@ if install_intel_gpu_tests and not with_tests error('`install-intel-gpu-tests` requires `build-tests`') endif -if with_tests and not with_platform_android +if with_tests and not with_platform_android and not with_platform_ohos foreach g : [['70', 'gfx7'], ['75', 'hsw'], ['80', 'gfx8'], ['90', 'gfx9'], ['110', 'gfx11'], ['120', 'gfx12'], ['125', 'gfx125'], ['200', 'gfx20']] diff --git a/src/intel/genxml/meson.build b/src/intel/genxml/meson.build index 13c0a04e72b..9e32536aa42 100644 --- a/src/intel/genxml/meson.build +++ b/src/intel/genxml/meson.build @@ -137,11 +137,24 @@ idep_genxml = declare_dependency( sources : [gen_xml_pack, gen_cl_xml_pack, genX_bits_h, genX_xml_h] ) +# 1. 声明Python解释器(自动检测系统路径) +prog_python = find_program('python3', required: true) + +# 2. 声明测试脚本(无需编译) +gen_sort_script = files('gen_sort_tags.py') + +# 3. 定义测试用例(正确调用方式) foreach f : gen_xml_files + gen_xml_rt_files test( 'genxml sort @0@'.format(f), - prog_python, - args : [files('gen_sort_tags.py'), files(f), '--validate', '--quiet'], - suite : ['intel'], + prog_python, # 使用Python解释器作为可执行目标 + args: [ + gen_sort_script, # 直接引用脚本文件 + f, # 输入文件 + '--validate', + '--quiet' + ], + suite: ['intel'], + protocol: 'tap' ) -endforeach +endforeach \ No newline at end of file diff --git a/src/intel/tools/intel_dump_gpu.c b/src/intel/tools/intel_dump_gpu.c index 46cf4467598..cbf07f2b981 100644 --- a/src/intel/tools/intel_dump_gpu.c +++ b/src/intel/tools/intel_dump_gpu.c @@ -736,8 +736,8 @@ intercept_ioctl(int fd, unsigned long request, ...) } } -__attribute__ ((visibility ("default"))) int -ioctl(int fd, unsigned long request, ...) +__attribute__ ((visibility ("default"))) static int +inte_dump_gpu_ioctl(int fd, unsigned long request, ...) { static thread_local bool entered = false; va_list args; diff --git a/src/intel/tools/intel_sanitize_gpu.c b/src/intel/tools/intel_sanitize_gpu.c index dc99e1b7960..e06fa734504 100644 --- a/src/intel/tools/intel_sanitize_gpu.c +++ b/src/intel/tools/intel_sanitize_gpu.c @@ -320,8 +320,8 @@ is_i915(int fd) { return strcmp("i915", name) == 0; } -__attribute__ ((visibility ("default"))) int -open(const char *path, int flags, ...) +__attribute__ ((visibility ("default"))) static int +intel_sanitize_gpu_open(const char *path, int flags, ...) { va_list args; mode_t mode; @@ -342,11 +342,11 @@ open(const char *path, int flags, ...) return fd; } -__attribute__ ((visibility ("default"), alias ("open"))) int -open64(const char *path, int flags, ...); +__attribute__ ((visibility ("default"), alias ("intel_sanitize_gpu_open"))) static int +intel_sanitize_gpu_open64(const char *path, int flags, ...); -__attribute__ ((visibility ("default"))) int -close(int fd) +__attribute__ ((visibility ("default"))) static int +intel_sanitize_gpu_close(int fd) { MUTEX_LOCK(); @@ -358,8 +358,8 @@ close(int fd) return libc_close(fd); } -__attribute__ ((visibility ("default"))) int -fcntl(int fd, int cmd, ...) +__attribute__ ((visibility ("default"))) static int +intel_sanitize_gpu_fcntl(int fd, int cmd, ...) { va_list args; int param; @@ -380,8 +380,8 @@ fcntl(int fd, int cmd, ...) return res; } -__attribute__ ((visibility ("default"))) int -ioctl(int fd, unsigned long request, ...) +__attribute__ ((visibility ("default"))) static int +intel_sanitize_gpu_ioctl(int fd, unsigned long request, ...) { int res; va_list args; diff --git a/src/loader/loader.c b/src/loader/loader.c index e9eb4d8b796..a479d594200 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -72,26 +72,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)vsnprintf(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) @@ -406,12 +439,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 b3f28418f35..3bff143bd38 100644 --- a/src/loader/loader.h +++ b/src/loader/loader.h @@ -39,7 +39,7 @@ extern "C" { /* 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 1eded70b29b..a086be44d1a 100644 --- a/src/loader/meson.build +++ b/src/loader/meson.build @@ -28,6 +28,6 @@ libloader = static_library( c_args : loader_c_args, gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src, inc_util, inc_gallium], - dependencies : [idep_mesautil, dep_libdrm, dep_thread, dep_xcb, dep_xcb_xrandr], + dependencies : [idep_mesautil, dep_libdrm, dep_thread, dep_xcb, 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..3e029d6742c 100644 --- a/src/util/build_id.c +++ b/src/util/build_id.c @@ -79,7 +79,7 @@ build_id_find_nhdr_callback(struct dl_phdr_info *info, size_t size, void *data_) info->dlpi_phdr[i].p_vaddr); ptrdiff_t len = info->dlpi_phdr[i].p_filesz; - while (len >= sizeof(struct build_id_note)) { + while (len >= (int)(sizeof(struct build_id_note))) { if (note->nhdr.n_type == NT_GNU_BUILD_ID && note->nhdr.n_descsz != 0 && note->nhdr.n_namesz == 4 && diff --git a/src/util/u_debug_stack.h b/src/util/u_debug_stack.h index f729ba66500..db6d9a1e522 100644 --- a/src/util/u_debug_stack.h +++ b/src/util/u_debug_stack.h @@ -34,7 +34,7 @@ #ifdef HAVE_LIBUNWIND #define UNW_LOCAL_ONLY -#include +#include "libunwind.h" #endif /**