• Home
  • Raw
  • Download

Lines Matching +full:run +full:- +full:shader +full:- +full:db

6 on Mali-G52 and Mali-G57 but **non-conformant** on other GPUs. The following
36 --------
38 Panfrost's OpenGL support is a Gallium driver. Since Mali GPUs are 3D-only and
47 Build like ``meson . build/ -Dvulkan-drivers=
48 -Dgallium-drivers=panfrost -Dllvm=disabled`` for a build directory
55 ----
62 --------------------------
67 every system-on-chip with a Mali GPU support all these formats. Many lower-end
70 system-on-chip, Panfrost includes a ``panfrost_texfeatures`` tool to query
73 To use this tool, include the option ``-Dtools=panfrost`` when configuring Mesa.
76 set as executable as necessary, and run on the target device. A table of
79 drm-shim
80 --------
82 Panfrost implements ``drm-shim``, stubbing out the Panfrost kernel interface.
85 - Future hardware bring up
86 - Running shader-db on non-Mali workstations
87 - Reproducing compiler (and some driver) bugs without Mali hardware
91 compiler on shader-db on an Intel desktop.
93 To build Mesa with Panfrost drm-shim, configure Meson with
94 ``-Dgallium-drivers=panfrost`` and ``-Dtools=drm-shim``. See the above
95 building section for a full invocation. The drm-shim binary will be built to
96 ``build/src/panfrost/drm-shim/libpanfrost_noop_drm_shim.so``.
98 To use, set the ``LD_PRELOAD`` environment variable to the drm-shim binary. It
102 By default, drm-shim mocks a Mali-G52 system. To select a specific Mali GPU,
108 Mali-T720 Midgard (v4) 720
109 Mali-T860 Midgard (v5) 860
110 Mali-G72 Bifrost (v6) 6221
111 Mali-G52 Bifrost (v7) 7212
112 Mali-G57 Valhall (v9) 9093
119 build directory is ``~/mesa/build``, a shader can be compiled for Mali-G52 as:
121 .. code-block:: sh
123 ~/shader-db$ BIFROST_MESA_DEBUG=shaders \
125 LD_PRELOAD=~/mesa/build/src/panfrost/drm-shim/libpanfrost_noop_drm_shim.so \
127 ./run shaders/glmark/1-1.shader_test
129 The same shader can be compiled for Mali-T720 as:
131 .. code-block:: sh
133 ~/shader-db$ MIDGARD_MESA_DEBUG=shaders \
135 LD_PRELOAD=~/mesa/build/src/panfrost/drm-shim/libpanfrost_noop_drm_shim.so \
137 ./run shaders/glmark/1-1.shader_test
143 As another example, this invocation runs a single dEQP test "on" Mali-G52,
144 pretty-printing GPU data structures and disassembling all shaders
151 .. code-block:: sh
153 ~/VK-GL-CTS/build/external/openglcts/modules$ PAN_MESA_DEBUG=trace,dump \
155 LD_PRELOAD=~/mesa/build/src/panfrost/drm-shim/libpanfrost_noop_drm_shim.so \
157 ./glcts --deqp-surface-type=pbuffer \
158 --deqp-gl-config-name=rgba8888d24s8ms0 --deqp-surface-width=256 \
159 --deqp-surface-height=256 -n \
160 dEQP-GLES31.functional.shaders.builtin_functions.common.abs.float_highp_compute
162 U-interleaved tiling
163 ---------------------
165 Panfrost supports u-interleaved tiling. U-interleaved tiling is
171 each tile are reordered according to a space-filling curve.
175 (16 pixels) at 4 bytes per pixel equals a single 64-byte cache line.
188 Reference routines to encode/decode u-interleaved images are available in
189 ``src/panfrost/shared/test/test-tiling.cpp``, which documents the space-filling
196 Mali-T760 and newer, Arm Framebuffer Compression (AFBC) is more efficient and
198 compressible, so u-interleaved tiling remains an important fallback on Panfrost.
201 ----------
263 2. Use the linear_id modulo a constant. This is used for per-vertex
273 per-vertex attributes.
277 to user-specified divisor. So first we compute padded_num_vertices, again
279 by the GL-level divisor to get the hardware-level divisor. This case is
280 further divided into two more cases. If the hardware-level divisor is a
282 the shift field, so that the hardware-level divisor is just
286 For that, we use the well-known technique of multiplying by an approximation
289 hardware and driver also use the "round-down" optimization as described in
293 to 0 by the driver -- presumably this simplifies the hardware multiplier a
295 takes the high 32 bits, then applies the round-down correction if
300 doesn't always produce the right constants. Mali does not use the pre-shift
302 would have to always do the pre-shift, multiply, and post-shift operations).
304 that the exponent is entirely fixed, so there is no trial-and-error.
309 3. If :math:`e <= 2^{shift}`, then we need to use the round-down algorithm. Set
310 magic_divisor = m - 1 and extra_flags = 1. 4. Otherwise, set magic_divisor =