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

Ye, Tony
2019-01-11T03:18:45Z

On 1/10/2019 10:02 PM, Michał Winiarski wrote:
> 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ł

Padding 128 bytes of zeros are required by Gen HW. It is required for
all shaders unless your compiler did it quietly.

It makes sense to combine the instructions into lib/i915/shaders/README
and use existing python script to dump hex.

But the README seems to be outdated. I could not find intel-gen4asm when
I follow the instructions to build intel-graphics-compiler. Can you
update the README firstly to make it workable with latest
https://github.com/intel/intel-graphics-compiler?

Regards, --Tony

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