xref: /openbmc/linux/drivers/gpu/drm/i915/gt/shaders/README (revision 55fd7e02)
155fd7e02SRodrigo ViviASM sources for auto generated shaders
255fd7e02SRodrigo Vivi======================================
355fd7e02SRodrigo Vivi
455fd7e02SRodrigo ViviThe i915/gt/hsw_clear_kernel.c and i915/gt/ivb_clear_kernel.c files contain
555fd7e02SRodrigo Vivipre-compiled batch chunks that will clear any residual render cache during
655fd7e02SRodrigo Vivicontext switch.
755fd7e02SRodrigo Vivi
855fd7e02SRodrigo ViviThey are generated from their respective platform ASM files present on
955fd7e02SRodrigo Vivii915/gt/shaders/clear_kernel directory.
1055fd7e02SRodrigo Vivi
1155fd7e02SRodrigo ViviThe generated .c files should never be modified directly. Instead, any modification
1255fd7e02SRodrigo Vivineeds to be done on the on their respective ASM files and build instructions below
1355fd7e02SRodrigo Vivineedes to be followed.
1455fd7e02SRodrigo Vivi
1555fd7e02SRodrigo ViviBuilding
1655fd7e02SRodrigo Vivi========
1755fd7e02SRodrigo Vivi
1855fd7e02SRodrigo ViviEnvironment
1955fd7e02SRodrigo Vivi-----------
2055fd7e02SRodrigo Vivi
2155fd7e02SRodrigo ViviIGT GPU tool scripts and the Mesa's i965 instruction assembler tool are used
2255fd7e02SRodrigo Vivion building.
2355fd7e02SRodrigo Vivi
2455fd7e02SRodrigo ViviPlease make sure your Mesa tool is compiled with "-Dtools=intel" and
2555fd7e02SRodrigo Vivi"-Ddri-drivers=i965", and run this script from IGT source root directory"
2655fd7e02SRodrigo Vivi
2755fd7e02SRodrigo ViviThe instructions bellow assume:
2855fd7e02SRodrigo Vivi    *  IGT gpu tools source code is located on your home directory (~) as ~/igt
2955fd7e02SRodrigo Vivi    *  Mesa source code is located on your home directory (~) as ~/mesa
3055fd7e02SRodrigo Vivi       and built under the ~/mesa/build directory
3155fd7e02SRodrigo Vivi    *  Linux kernel source code is under your home directory (~) as ~/linux
3255fd7e02SRodrigo Vivi
3355fd7e02SRodrigo ViviInstructions
3455fd7e02SRodrigo Vivi------------
3555fd7e02SRodrigo Vivi
3655fd7e02SRodrigo Vivi~ $ cp ~/linux/drivers/gpu/drm/i915/gt/shaders/clear_kernel/ivb.asm \
3755fd7e02SRodrigo Vivi       ~/igt/lib/i915/shaders/clear_kernel/ivb.asm
3855fd7e02SRodrigo Vivi~ $ cd ~/igt
3955fd7e02SRodrigo Viviigt $ ./scripts/generate_clear_kernel.sh -g ivb \
4055fd7e02SRodrigo Vivi      -m ~/mesa/build/src/intel/tools/i965_asm
4155fd7e02SRodrigo Vivi
4255fd7e02SRodrigo Vivi~ $ cp ~/linux/drivers/gpu/drm/i915/gt/shaders/clear_kernel/hsw.asm \
4355fd7e02SRodrigo Vivi    ~/igt/lib/i915/shaders/clear_kernel/hsw.asm
4455fd7e02SRodrigo Vivi~ $ cd ~/igt
4555fd7e02SRodrigo Viviigt $ ./scripts/generate_clear_kernel.sh -g hsw \
4655fd7e02SRodrigo Vivi      -m ~/mesa/build/src/intel/tools/i965_asm