xref: /openbmc/linux/drivers/gpu/drm/i915/gt/shaders/README (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1*55fd7e02SRodrigo ViviASM sources for auto generated shaders
2*55fd7e02SRodrigo Vivi======================================
3*55fd7e02SRodrigo Vivi
4*55fd7e02SRodrigo ViviThe i915/gt/hsw_clear_kernel.c and i915/gt/ivb_clear_kernel.c files contain
5*55fd7e02SRodrigo Vivipre-compiled batch chunks that will clear any residual render cache during
6*55fd7e02SRodrigo Vivicontext switch.
7*55fd7e02SRodrigo Vivi
8*55fd7e02SRodrigo ViviThey are generated from their respective platform ASM files present on
9*55fd7e02SRodrigo Vivii915/gt/shaders/clear_kernel directory.
10*55fd7e02SRodrigo Vivi
11*55fd7e02SRodrigo ViviThe generated .c files should never be modified directly. Instead, any modification
12*55fd7e02SRodrigo Vivineeds to be done on the on their respective ASM files and build instructions below
13*55fd7e02SRodrigo Vivineedes to be followed.
14*55fd7e02SRodrigo Vivi
15*55fd7e02SRodrigo ViviBuilding
16*55fd7e02SRodrigo Vivi========
17*55fd7e02SRodrigo Vivi
18*55fd7e02SRodrigo ViviEnvironment
19*55fd7e02SRodrigo Vivi-----------
20*55fd7e02SRodrigo Vivi
21*55fd7e02SRodrigo ViviIGT GPU tool scripts and the Mesa's i965 instruction assembler tool are used
22*55fd7e02SRodrigo Vivion building.
23*55fd7e02SRodrigo Vivi
24*55fd7e02SRodrigo ViviPlease make sure your Mesa tool is compiled with "-Dtools=intel" and
25*55fd7e02SRodrigo Vivi"-Ddri-drivers=i965", and run this script from IGT source root directory"
26*55fd7e02SRodrigo Vivi
27*55fd7e02SRodrigo ViviThe instructions bellow assume:
28*55fd7e02SRodrigo Vivi    *  IGT gpu tools source code is located on your home directory (~) as ~/igt
29*55fd7e02SRodrigo Vivi    *  Mesa source code is located on your home directory (~) as ~/mesa
30*55fd7e02SRodrigo Vivi       and built under the ~/mesa/build directory
31*55fd7e02SRodrigo Vivi    *  Linux kernel source code is under your home directory (~) as ~/linux
32*55fd7e02SRodrigo Vivi
33*55fd7e02SRodrigo ViviInstructions
34*55fd7e02SRodrigo Vivi------------
35*55fd7e02SRodrigo Vivi
36*55fd7e02SRodrigo Vivi~ $ cp ~/linux/drivers/gpu/drm/i915/gt/shaders/clear_kernel/ivb.asm \
37*55fd7e02SRodrigo Vivi       ~/igt/lib/i915/shaders/clear_kernel/ivb.asm
38*55fd7e02SRodrigo Vivi~ $ cd ~/igt
39*55fd7e02SRodrigo Viviigt $ ./scripts/generate_clear_kernel.sh -g ivb \
40*55fd7e02SRodrigo Vivi      -m ~/mesa/build/src/intel/tools/i965_asm
41*55fd7e02SRodrigo Vivi
42*55fd7e02SRodrigo Vivi~ $ cp ~/linux/drivers/gpu/drm/i915/gt/shaders/clear_kernel/hsw.asm \
43*55fd7e02SRodrigo Vivi    ~/igt/lib/i915/shaders/clear_kernel/hsw.asm
44*55fd7e02SRodrigo Vivi~ $ cd ~/igt
45*55fd7e02SRodrigo Viviigt $ ./scripts/generate_clear_kernel.sh -g hsw \
46*55fd7e02SRodrigo Vivi      -m ~/mesa/build/src/intel/tools/i965_asm