Lines Matching +full:android +full:- +full:variables
5 ------------
10 to x86, x86-64, or ppc64le machine code. Also, the driver is
15 ------------
17 - For x86 or amd64 processors, 64-bit mode is recommended. Support for
25 Vector-Scalar Facility) is recommended if supported AND Mesa is built
30 - Unless otherwise stated, LLVM version 3.9 or later is required.
34 .. code-block:: sh
36 aptitude install llvm-dev
43 For a RPM-based distribution do:
45 .. code-block:: sh
47 yum install llvm-devel
50 … the Copr repository at `fedora-llvm-team/llvm-snapshots <https://copr.fedorainfracloud.org/coprs/…
58 ``-DLLVM_USE_CRT_xxx=yyy`` as described below.
61 +-----------------+----------------------------------------------------------------+
62 | LLVM build-type | Mesa build-type |
63 | +--------------------------------+-------------------------------+
66 | Debug | ``-DLLVM_USE_CRT_DEBUG=MTd`` | ``-DLLVM_USE_CRT_DEBUG=MT`` |
67 +-----------------+--------------------------------+-------------------------------+
68 | Release | ``-DLLVM_USE_CRT_RELEASE=MTd`` | ``-DLLVM_USE_CRT_RELEASE=MT`` |
69 +-----------------+--------------------------------+-------------------------------+
72 ``-DLLVM_TARGETS_TO_BUILD=X86`` to CMake.
75 --------
79 .. code-block:: sh
83 meson -D glx=xlib -D gallium-drivers=swrast
86 Building for Android
87 --------------------
89 To build for Android requires the additional step of building LLVM
90 for Android using the NDK. Before following the steps in
91 :doc:`Android's documentation <../android>` you must build a version
95 properly using the Android NDK, so the script below can be
98 ``LLVML_INSTALL_PREFIX`` environment variables appropriately.
100 .. code-block:: sh
104 set -e
105 set -u
107 # Early check for required env variables, relies on `set -u`
112 cmake -GNinja -S llvm -B build/ \
113 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake \
114 -DANDROID_ABI=x86_64 \
115 -DANDROID_PLATFORM=android-${ANDROID_SDK_VERSION} \
116 -DANDROID_NDK=${ANDROID_NDK_ROOT} \
117 -DCMAKE_ANDROID_ARCH_ABI=x86_64 \
118 -DCMAKE_ANDROID_NDK=${ANDROID_NDK_ROOT} \
119 -DCMAKE_BUILD_TYPE=MinSizeRel \
120 -DCMAKE_SYSTEM_NAME=Android \
121 -DCMAKE_SYSTEM_VERSION=${ANDROID_SDK_VERSION} \
122 -DCMAKE_INSTALL_PREFIX=${LLVM_INSTALL_PREFIX} \
123 … -DCMAKE_CXX_FLAGS="-march=x86-64 --target=x86_64-linux-android${ANDROID_SDK_VERSION} -fno-rtti" \
124 -DLLVM_HOST_TRIPLE=x86_64-linux-android${ANDROID_SDK_VERSION} \
125 -DLLVM_TARGETS_TO_BUILD=X86 \
126 -DLLVM_BUILD_LLVM_DYLIB=OFF \
127 -DLLVM_BUILD_TESTS=OFF \
128 -DLLVM_BUILD_EXAMPLES=OFF \
129 -DLLVM_BUILD_DOCS=OFF \
130 -DLLVM_BUILD_TOOLS=OFF \
131 -DLLVM_ENABLE_RTTI=OFF \
132 -DLLVM_BUILD_INSTRUMENTED_COVERAGE=OFF \
133 -DLLVM_NATIVE_TOOL_DIR=${ANDROID_NDK_ROOT}toolchains/llvm/prebuilt/linux-x86_64/bin \
134 -DLLVM_ENABLE_PIC=False
136 ninja -C build/ install
149 .. code-block:: sh
153 set -exu
155 # Early check for required env variables, relies on `set -u`
158 if [ ! -d "$LLVM_INSTALL_PREFIX" ]; then
163 mkdir -p subprojects/llvm
180 …version : '$(sed -n -e 's/^#define LLVM_VERSION_STRING "\([^"]*\)".*/\1/p' "${LLVM_INSTALL_PREFIX}…
188 on :doc:`Android <../android>` and follow the steps to add the driver
189 directly to an Android OS image.
192 -----
194 Environment variables
216 On Linux, building will create a drop-in alternative for ``libGL.so``
221 build/foo/gallium/targets/libgl-xlib/libGL.so
235 ``build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll`` which
236 is a drop-in alternative for system's ``opengl32.dll``, which will use
237 the Mesa ICD, ``build/windows-x86-debug/gallium/targets/wgl/libgallium_wgl.dll``.
246 - copy
247 ``build/windows-x86-debug/gallium/targets/wgl/libgallium_wgl.dll`` to
250 - load this registry settings:
256 ; https://technet.microsoft.com/en-us/library/cc749368.aspx
257 …; https://www.msfn.org/board/topic/143241-portable-windows-7-build-from-winpe-30/page-5#entry942596
264 - Ditto for 64 bits drivers if you need them.
267 ---------
277 perf record -g /my/application
281 ``/tmp/perf-XXXXX.map`` file with symbol address table. It also dumps
282 assembly code to ``/tmp/perf-XXXXX.map.asm``, which can be used by the
283 ``bin/perf-annotate-jit.py`` script to produce disassembly of the
287 `Gprof2Dot <https://github.com/jrfonseca/gprof2dot#linux-perf>`__.
302 LLVMpipe will create a ``jit-symbols-XXXXX.map`` file containing the symbol
304 disassemblies to ``jit-symbols-XXXXX.map.asm``. Run your folded traces and
309 ------------
312 ``build/linux-???-debug/gallium/drivers/llvmpipe``:
314 - ``lp_test_blend``: blending
315 - ``lp_test_conv``: SIMD vector conversion
316 - ``lp_test_format``: pixel unpacking/packing
318 Some of these tests can output results and benchmarks to a tab-separated
323 build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv
326 -----------------
328 - When looking at this code for the first time, start in lp_state_fs.c,
331 - The driver-independent parts of the LLVM / Gallium code are found in
335 - We use LLVM-C bindings for now. They are not documented, but follow
337 code generation. See `this stand-alone
338 example <https://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html>`__.
339 See the ``llvm-c/Core.h`` file for reference.
344 -------------------
346 - Rasterization
348 - `Triangle Scan Conversion using 2D Homogeneous
349 Coordinates <https://userpages.cs.umbc.edu/olano/papers/2dh-tri/>`__
350 - `Rasterization on
351 Larrabee <https://www.drdobbs.com/parallel/rasterization-on-larrabee/217200602>`__
352 - `Rasterization using half-space
354 - `Advanced
355 …ttp://web.archive.org/web/20140514220546/http://devmaster.net/posts/6145/advanced-rasterization>`__
356 - `Optimizing Software Occlusion
357 Culling <https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/>`__
359 - Texture sampling
361 - `Perspective Texture
363 - `Texturing As In
365 - `Run-Time MIP-Map
367 - `Will "brilinear" filtering
368 persist? <https://alt.3dcenter.org/artikel/2003/10-26_a_english.php>`__
369 - `Trilinear
370 filtering <http://ixbtlabs.com/articles2/gffx/nv40-rx800-3.html>`__
371 - `Texture tiling and
372 swizzling <https://fgiesen.wordpress.com/2011/01/17/texture-tiling-and-swizzling/>`__
374 - SIMD
376 - `Whole-Function
377 Vectorization <https://compilers.cs.uni-saarland.de/projects/wfv/#pubs>`__
379 - Optimization
381 - `Optimizing Pixomatic For Modern x86
382 Processors <https://www.drdobbs.com/optimizing-pixomatic-for-modern-x86-proc/184405807>`__
383 - `Intel 64 and IA-32 Architectures Optimization Reference
384 …/www.intel.com/content/www/us/en/content-details/779559/intel-64-and-ia-32-architectures-optimizat…
385 - `Software optimization
387 - `Intel Intrinsics
388 Guide <https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html>`__
390 - LLVM
392 - `LLVM Language Reference
394 - `The secret of LLVM C
395 bindings <https://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html>`__
397 - General
399 - `A trip through the Graphics
400 …Pipeline <https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index…
401 - `WARP Architecture and
402 …rformance <https://learn.microsoft.com/en-us/windows/win32/direct3darticles/directx-warp#warp-arch…