Re: [igt-dev] [PATCH i-g-t 3/4] tests/gem_media_vme: Simple test to exercise the VME block

Michał Winiarski
2019-01-10T14:02:35Z

On Tue, Jan 08, 2019 at 03:13:02PM +0000, Tvrtko Ursulin wrote:
> From: Tony Ye <tony.ye@intel.com>
>
> Simple test which exercises the VME fixed function block.
>
> v2: (Tvrtko Ursulin)
> * Small cleanups like copyright date, tabs, remove unused bits.
>
> v3: (Tony Ye)
> * Added curbe data entry for dst surface.
> * Read the dst surface after the VME kernel being executed.
>
> v4: (Tony Ye)
> * Added the media_vme.gxa kernel source code and compile instructions.
>
> v5: (Tvrtko Ursulin)
> * Added hang detector.
>
> v6: (Tvrtko Ursulin)
> * Replace gem_read with gem_sync. (Chris Wilson)
>
> Signed-off-by: Tony Ye <tony.ye@intel.com>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Tony Ye <tony.ye@intel.com>
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> ---
> lib/gpu_cmds.c | 136 ++++++++++++++++++++
> lib/gpu_cmds.h | 20 ++-
> lib/i915/shaders/media/README_media_vme.txt | 65 ++++++++++
> lib/i915/shaders/media/media_vme.gxa | 51 ++++++++
> lib/intel_batchbuffer.c | 9 ++
> lib/intel_batchbuffer.h | 7 +
> lib/media_fill.c | 110 ++++++++++++++++
> lib/media_fill.h | 6 +
> lib/surfaceformat.h | 2 +
> tests/Makefile.sources | 3 +
> tests/i915/gem_media_vme.c | 117 +++++++++++++++++
> tests/meson.build | 1 +
> 12 files changed, 525 insertions(+), 2 deletions(-)
> create mode 100755 lib/i915/shaders/media/README_media_vme.txt
> create mode 100755 lib/i915/shaders/media/media_vme.gxa
> create mode 100644 tests/i915/gem_media_vme.c
>
> diff --git a/lib/i915/shaders/media/README_media_vme.txt b/lib/i915/shaders/media/README_media_vme.txt
> new file mode 100755
> index 000000000000..2470fdd89825
> --- /dev/null
> +++ b/lib/i915/shaders/media/README_media_vme.txt
> @@ -0,0 +1,65 @@
> +Step1: Building IGA (Intel Graphics Assembler)
> +========================================================================
> +
> +1. Download or clone IGC (Intel Graphics Compiler)
> +
> + https://github.com/intel/intel-graphics-compiler.git
> +
> +2. Chdir into 'intel-graphics-compiler' (or any other workspace folder of choice)
> +
> + It should read the following folder strucutre:
> +
> + workspace
> + |- visa
> + |- IGC
> + |- inc
> + |- 3d
> + |- skuwa
> +
> +3. Chdir into IGA sub-component
> +
> + cd visa/iga
> +
> +4. Create build directory
> +
> + mkdir build
> +
> +5. Change into build directory
> +
> + cd build
> +
> +6. Run cmake
> +
> + cmake ../
> +
> +7. Run make to build IGA project
> +
> + make
> +
> +8. Get the output executable "iga64" in IGAExe folder
> +
> + usage: ./iga64 OPTIONS ARGS
> + where OPTIONS:
> + -h --help shows help on an option
> + -d --disassemble disassembles the input file
> + -a --assemble assembles the input file
> + -n --numeric-labels use numeric labels
> + -p --platform DEVICE specifies the platform (e.g. "GEN9")
> + -o --output FILE specifies the output file
> +
> + EXAMPLES:
> + ./iga64 file.gxa -p=11 -a -o file.krn
> +
> +Step2: Building ASM code
> +========================================================================
> +1. Command line to convert asm code to binary:
> +
> + iga64 media_vme.gxa -p=11 -a -o media_vme.krn
> +
> +2. Pad 128 bytes zeros to the kernel:
> +
> + dd if=/dev/zero bs=1 count=128 >> media_vme.krn

Why we're padding it with 128B zeroes?
We don't seem to do that for any other shaders.

Could you modify this instruction to use lib/i915/shaders/converter.py and
rather than adding yet another README, update lib/i915/shaders/README instead?

-Michał

> +
> +3. Generate hexdump:
> +
> + hexdump -v -e '4/4 "0x%08x " "\n"' media_vme.krn > media_vme.hex