commit | a3e5296369e3da04024f836576db4de29ec824bd | [log] [tgz] |
---|---|---|
author | Wladimir J. van der Laan <laanwj@gmail.com> | Thu Dec 08 09:03:20 2016 +0000 |
committer | Wladimir J. van der Laan <laanwj@gmail.com> | Thu Dec 08 10:01:54 2016 +0000 |
tree | e65c1db3fa1eb83ac8811682dc52d9f373818c5a | |
parent | 1ba75b28b0a6a1620f97884ed87f0b486c3b9baa [diff] |
GC3000 support in etnaviv_verifyops This makes the base framework run - some specific instructions do fail. The significant differences with GC2000: - CL seems to run on PS, not on VS - PA/RA must be set up differently - Use unified uniforms insted of VS uniforms - Code must be in memory, not loaded into the GPU - GC3000 has some extra state that must be set up Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com>
This contains various tests for Vivante GPUs based on the Etnaviv DRM driver.
./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.
This package needs libdrm
installed with libdrm_etnaviv
enabled. MESA is not necessary.
This is an extremely basic test that writes “Hello World” to memory from a CL shader.
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