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

Ye, Tony tony.ye at intel.com
Fri Jan 11 03:18:45 UTC 2019


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 at 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 at intel.com>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>> Cc: Tony Ye <tony.ye at intel.com>
>> Reviewed-by: Joonas Lahtinen <joonas.lahtinen at 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


More information about the igt-dev mailing list