[igt-dev] [PATCH i-g-t v2 1/2] shaders: Add assembler instructions and update README for shaders
Katarzyna Dec
katarzyna.dec at intel.com
Fri Jun 15 10:15:01 UTC 2018
On Fri, Jun 15, 2018 at 10:19:02AM +0100, Chris Wilson wrote:
> Quoting Katarzyna Dec (2018-06-15 10:12:59)
> > We're not planning to work on assembler in igt anymore, since we can
> > reuse an existing project (IGA) that will do this work for us. The
> > only extra thing we need to do is convert the result binary to C-array,
> > simple python script.
> >
> > Signed-off-by: Katarzyna Dec <katarzyna.dec at intel.com>
> > Cc: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
> > Cc: Petri Latvala <petri.latvala at intel.com>
> > Cc: Kalamarz Lukasz <lukasz.kalamarz at intel.com>
> > Cc: Antonio Argenziano <antonio.argenziano at intel.com>
> > ---
> > shaders/README | 37 +++++++++++++++++++++++++++++++++++++
> > shaders/gpgpu/README | 11 +++++++++++
> > shaders/gpgpu/gpgpu_fill_gen8.asm | 10 ++++++++++
> > shaders/gpgpu/gpgpu_fill_gen9.asm | 10 ++++++++++
> > shaders/media/README | 9 +++++++++
> > shaders/media/media_fill_gen8.asm | 11 +++++++++++
> > shaders/ps/README | 8 ++++++++
> > shaders/ps/blit_gen8.asm | 7 +++++++
> > shaders/ps/neg1_gen8.asm | 9 +++++++++
> > 9 files changed, 112 insertions(+)
> > create mode 100644 shaders/README
> > create mode 100644 shaders/gpgpu/gpgpu_fill_gen8.asm
> > create mode 100644 shaders/gpgpu/gpgpu_fill_gen9.asm
> > create mode 100644 shaders/media/media_fill_gen8.asm
> > create mode 100644 shaders/ps/blit_gen8.asm
> > create mode 100644 shaders/ps/neg1_gen8.asm
> >
> > diff --git a/shaders/README b/shaders/README
> > new file mode 100644
> > index 00000000..9e6bf410
> > --- /dev/null
> > +++ b/shaders/README
> > @@ -0,0 +1,37 @@
> > +This directory is for shaders used in media_fill, gpgpu_fill, rendercopy
> > +and media_spin libraries.
> > +
> > +Till Gen8 shaders were generated using intel-gen4asm script (implementation in
> > +assembler/ directory). From Gen8 it is possible to use Intel Graphics Assembler
> > +to generate binary from asm instructions
> > +https://github.com/intel/intel-graphics-compiler/tree/master/visa/iga
> > +Clone and build this project to use IGA.
> > +
> > +where to find IGA binary TODO: add path
> > +
> > +For maintaining compatibility with our tests there is a bin to hex converter
> > +written in python.
> > +Instructions how to build media, gpgpu or ps shaders included in their
> > +subdirectories.
> > +
> > +Converter:
> > +#!/usr/bin/env python2
> > +import struct
> > +import sys
> > +
> > +print "static const uint32_t kernel[][4] = {"
> > +
> > +with open(sys.argv[1], 'r') as f:
> > + fmt = '<LLLL'
> > + step = struct.calcsize(fmt)
> > + while True:
> > + buf = f.read(step)
> > + if not buf:
> > + break
> > + elif len(buf) < step:
> > + buf += '\x00' * (step - len(buf))
> > +
> > + val = struct.unpack('<LLLL', buf)
> > + print " {{ 0x{:08x}, 0x{:08x}, 0x{:08x}, 0x{:08x} }},".format(*val)
> > +
> > +print "};"
> > \ No newline at end of file
>
> How difficult is to make it into a pipe? converter.py < asm.obj > asm.c
> (As well as converter.py -i asm.obj -o asm.c)
>
> Rather than putting this in a README, save the cut'n'paste and include
> it as a .py.
> -Chris
I will add this converter as single file.
Kasia
More information about the igt-dev
mailing list