Clone this repo:
  1. 58d012c Hello world test for gc7000 by Craig Stout · 2 months ago master
  2. 783efbf Merge pull request #1 from AgentD/master by Wladimir J. van der Laan · 9 months ago upstream/master
  3. 9c0d098 Actually cycle through GPU IDs in find_suitable_gpu by David Oberhollenzer · 9 months ago
  4. 86eaf4a Move blt operations to a library by Wladimir J. van der Laan · 10 months ago
  5. 40eabda Add etnaviv_blttest2_gc7000 by Wladimir J. van der Laan · 10 months ago

Etnaviv GPU tests

This contains various tests for Vivante GPUs based on the Etnaviv DRM driver.

Building

./autogen.sh
./configure
make

For cross-builds simply pass --host=<toolchain-tuple> to configure. You may have to override PKG_CONFIG_PATH PKG_CONFIG_SYSROOT_DIR PKG_CONFIG_LIBDIR as well to make it able to find the DRM libraries.

Dependencies

This package needs libdrm installed with libdrm_etnaviv enabled. MESA is not necessary.

Tests

etnaviv_cl_test

This is an extremely basic test that writes “Hello World” to memory from a CL shader.

etnaviv_verifyops

The intent of this test is to test the output of various opcodes against putative CPU implementation of the same operation, and thus figure out exactly what the GPU instructions do.

This is achieved by using the CL (OpenCL) functionality of GC2000 and higher.

Example output:

$ etnaviv_verifyops /dev/dri/renderD128
Version: 1.0.0
  Name: etnaviv
  Date: 20151214
  Description: etnaviv DRM
add.u32: PASS
imullo0.u32: PASS
lshift.u32: PASS
rshift.u32: PASS
rotate.u32: PASS
or.u32: PASS
and.u32: PASS
xor.u32: PASS
not.u32: PASS

etnaviv_cl_bench

Executes various CL shader benchmarks.

The goal is to figure out how the use of various instructions impacts performance.

However currently they all measure memory throughput.

Example output:

[read]    [ram]    Speed: 113.606 MB/s
[readacc] [ram]    Speed:  82.522 MB/s
[write]   [ram]    Speed: 234.779 MB/s