[Libva] [PATCH 5/9] shaders: fix out of tree builds

Xiang, Haihao haihao.xiang at intel.com
Sun Nov 9 20:44:11 PST 2014


> Hi Haihao,
> 
> That is true. The current series it will not pick the files from the
> builddir, but that is because intel-gen4asm is optional, thus the files
> will not always be present.
> I believe that fixing it is an orthogonal issue - I'm trying to get
> "make distcheck" working in any shape or form. Fixing everything else is
> part of another series.

I pushed your patches to the master branch. 

> And to clarify what I mean with everything else:
>  - Do not use of m4 to pre-process the headers.

intel-gen4asm can't recognize some symbols in .gxa (x=4,5,6,7,8) files
if don't use m4 to pre-process .gxa files.

>  - Add android rules to build/assemble the shaders.
>  - Mandate the presence of intel-gen4asm at build-time.

I prefer not to mandate the presence of intel-gen4asm. 

Thanks
Haihao


>  - Drop all the in-tree pre-processed and assembled shaders.
>  - (Parallel to the last point) Make sure that the shaders in the build
> folder are used.
> 
> The Android stuff is obviously going to be a pain, yet everything else
> is dead trivial.
> 
> Does it make sense or do you prefer that I send a patch that does
> multiple (seemingly unrelated imho) things at the same time ?
> 
> Cheers,
> Emil
> 
> P.S. Is it normal to have to different files produce the exact same
> shader - something like PL3_AVS_Buf_2.g8a PL3_AVS_Buf_3.g8a
> producing the same binary ? Don't remember the exact files so these are
> just an example.
> 
> On 05/11/14 06:50, Xiang, Haihao wrote:
> > 
> > Hi Emil,
> > 
> > Sorry for slowly responding.
> > 
> > My concern is the generated assembled objects for OOT builds aren't
> > used, e.g. I can build the driver after remove a '{' in 
> > {build_dir}/src/shaders/vme/inter_frame.g7b:
> > 
> >       1     0x00800001, 0x24000061, 0x00000000, 0x00000000 },
> >       2    { 0x00800001, 0x24400061, 0x00000000, 0x00000000 },
> >       3    { 0x00800001, 0x24600061, 0x00000000, 0x00000000 },
> > 
> > I am fine with your other fixes.
> > 
> > Thanks
> > Haihao
> > 
> >> Another weekly reminder.
> >>
> >> Haihao, I understand that you're busy yet sparing a few minutes will be
> >> greatly appreciated.
> >>
> >> Cheers,
> >> Emil
> >>
> >> On 27/10/14 16:48, Emil Velikov wrote:
> >>> Humble ping ?
> >>>
> >>> On 14/10/14 17:19, Emil Velikov wrote:
> >>>> Hmm I still do not see how your reply relates to any part of the patch.
> >>>> Can you try to be more specific about your concerns ?
> >>>>
> >>>> The missing include directives (added with this patch) are related to
> >>>> including the original sources assembler file(s) (g*a) in order to
> >>>> create the preprocessed (g*a.g*s) & final assembled objects (g*s.g*b*).
> >>>> They have nothing to do wrt how/which blobs (*.g*b*) are included in the
> >>>> source files (src/*.c)
> >>>>
> >>>> Cheers,
> >>>> Emil
> >>>>
> >>>> On 13/10/14 03:12, Xiang, Haihao wrote:
> >>>>>
> >>>>>> Can you be more specific as to which "some .c files" you have in mind. 
> >>>>>
> >>>>> src/gen6_mfc.c
> >>>>> src/gen6_vme.c
> >>>>> src/gen75_mfc.c
> >>>>> src/gen7_mfc.c
> >>>>> src/gen7_vme.c
> >>>>> src/gen8_mfc.c
> >>>>> src/gen8_vme.c
> >>>>> src/i965_render.c
> >>>>> src/i965_post_processing.c
> >>>>> src/gen8_post_processing.c
> >>>>> src/gen8_render.c
> >>>>> src/i965_avc_hw_scoreboard.c
> >>>>> src/i965_avc_ildb.c
> >>>>> src/i965_media_h264.c
> >>>>> src/i965_media_mpeg2.c
> >>>>>
> >>>>>
> >>>>>> IIRC there may be an extra patch needed to resolve all the issues for OOT builds (when GEN4ASM is available, GEN4ASM less builds are good), but this clears up most of the problems.
> >>>>>> IMHO one should remove the blobs from version control and just require GEN4ASM but I feel that this is a topic for another discussion :)
> >>>>>>
> >>>>>> -Emil
> >>>>>>
> >>>>>> On 10/10/14 07:30, Xiang, Haihao wrote:
> >>>>>>>
> >>>>>>> The outputs should be included by some .c files, otherwise it still use
> >>>>>>> pre-built output in the source tree even if a shaders is changed.
> >>>>>>>
> >>>>>>> Thanks
> >>>>>>> Haihao
> >>>>>>>
> >>>>>>>
> >>>>>>>> - correctly set include dir
> >>>>>>>>  - prefix the file 'list' - it's located in the source folder
> >>>>>>>>  - add missing prefix for gpp.py
> >>>>>>>>
> >>>>>>>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
> >>>>>>>> ---
> >>>>>>>>  src/shaders/h264/mc/Makefile.am   | 12 ++++++------
> >>>>>>>>  src/shaders/mpeg2/vld/Makefile.am |  2 +-
> >>>>>>>>  src/shaders/render/Makefile.am    |  8 ++++----
> >>>>>>>>  3 files changed, 11 insertions(+), 11 deletions(-)
> >>>>>>>>
> >>>>>>>> diff --git a/src/shaders/h264/mc/Makefile.am b/src/shaders/h264/mc/Makefile.am
> >>>>>>>> index ecc3b2e..13bef17 100644
> >>>>>>>> --- a/src/shaders/h264/mc/Makefile.am
> >>>>>>>> +++ b/src/shaders/h264/mc/Makefile.am
> >>>>>>>> @@ -185,17 +185,17 @@ if HAVE_GEN4ASM
> >>>>>>>>  	rm $*.g4m
> >>>>>>>>  
> >>>>>>>>  $(INTEL_MC_GEN5_ASM): $(INTEL_MC_ASM) $(INTEL_MC_INC) $(INTEL_ILDB_ASM)
> >>>>>>>> -	$(AM_V_GEN)cpp -DDEV_ILK -DBOOTSTRAP -I ../ildb/ AllAVC.asm > _mc0.$@	&& \
> >>>>>>>> -	../../gpp.py _mc0.$@ $@						&& \
> >>>>>>>> -	$(GEN4ASM) -l list -a -e tmp.$(INTEL_MC_EXPORT_GEN5) -g 5 $@	   \
> >>>>>>>> +	$(AM_V_GEN)cpp -DDEV_ILK -DBOOTSTRAP -I $(srcdir)/../ildb/ $(srcdir)/AllAVC.asm > _mc0.$@	&& \
> >>>>>>>> +	$(top_srcdir)/src/shaders/gpp.py _mc0.$@ $@			&& \
> >>>>>>>> +	$(GEN4ASM) -l $(srcdir)/list -a -e tmp.$(INTEL_MC_EXPORT_GEN5) -g 5 $@	   \
> >>>>>>>>  		-o /dev/null						&& \
> >>>>>>>>  	mv tmp.$(INTEL_MC_EXPORT_GEN5) $(INTEL_MC_EXPORT_GEN5)		&& \
> >>>>>>>> -	cpp -DDEV_ILK -I ../ildb/ AllAVC.asm > _mc1.$@			&& \
> >>>>>>>> -	../../gpp.py _mc1.$@ $@						&& \
> >>>>>>>> +	cpp -DDEV_ILK -I $(srcdir)/../ildb/ $(srcdir)/AllAVC.asm > _mc1.$@	&& \
> >>>>>>>> +	$(top_srcdir)/src/shaders/gpp.py _mc1.$@ $@			&& \
> >>>>>>>>  	rm _mc0.$@ _mc1.$@
> >>>>>>>>  
> >>>>>>>>  $(INTEL_MC_G4B_GEN5): $(INTEL_MC_GEN5_ASM)
> >>>>>>>> -	$(AM_V_GEN)$(GEN4ASM) -l list -a -e tmp.$(INTEL_MC_EXPORT_GEN5) -g 5 $<	   \
> >>>>>>>> +	$(AM_V_GEN)$(GEN4ASM) -l $(srcdir)/list -a -e tmp.$(INTEL_MC_EXPORT_GEN5) -g 5 $<	   \
> >>>>>>>>  		-o $@							&& \
> >>>>>>>>  	cat tmp.$(INTEL_MC_EXPORT_GEN5) | sed "s/_IP/_IP_GEN5/g"	   \
> >>>>>>>>  		> $(INTEL_MC_EXPORT_GEN5)				&& \
> >>>>>>>> diff --git a/src/shaders/mpeg2/vld/Makefile.am b/src/shaders/mpeg2/vld/Makefile.am
> >>>>>>>> index bf718e0..37955dc 100644
> >>>>>>>> --- a/src/shaders/mpeg2/vld/Makefile.am
> >>>>>>>> +++ b/src/shaders/mpeg2/vld/Makefile.am
> >>>>>>>> @@ -102,7 +102,7 @@ SUFFIXES = .g4a .g4s .g4b .g4b.gen5
> >>>>>>>>  if HAVE_GEN4ASM
> >>>>>>>>  $(INTEL_G4S): $(INTEL_G4A) $(INTEL_G4I)
> >>>>>>>>  .g4a.g4s:
> >>>>>>>> -	$(AM_V_GEN)m4 $< > $@
> >>>>>>>> +	$(AM_V_GEN)m4 -I$(srcdir) $< > $@
> >>>>>>>>  .g4s.g4b:
> >>>>>>>>  	$(AM_V_GEN)$(GEN4ASM) -o $@ $<
> >>>>>>>>  .g4s.g4b.gen5:
> >>>>>>>> diff --git a/src/shaders/render/Makefile.am b/src/shaders/render/Makefile.am
> >>>>>>>> index e7d5e76..9024351 100644
> >>>>>>>> --- a/src/shaders/render/Makefile.am
> >>>>>>>> +++ b/src/shaders/render/Makefile.am
> >>>>>>>> @@ -120,7 +120,7 @@ SUFFIXES = .g4a .g4s .g4b .g4b.gen5 .g6a .g6s .g6b .g7a .g7s .g7b .g7b.haswell .
> >>>>>>>>  if HAVE_GEN4ASM
> >>>>>>>>  $(INTEL_G4S): $(INTEL_G4A) $(INTEL_G4I)
> >>>>>>>>  .g4a.g4s:
> >>>>>>>> -	$(AM_V_GEN)m4 $< > $@
> >>>>>>>> +	$(AM_V_GEN)m4 -I$(srcdir) $< > $@
> >>>>>>>>  .g4s.g4b:
> >>>>>>>>  	$(AM_V_GEN)$(GEN4ASM) -o $@ $<
> >>>>>>>>  .g4s.g4b.gen5:
> >>>>>>>> @@ -128,13 +128,13 @@ $(INTEL_G4S): $(INTEL_G4A) $(INTEL_G4I)
> >>>>>>>>  
> >>>>>>>>  $(INTEL_G6S): $(INTEL_G6A) $(INTEL_G6I)
> >>>>>>>>  .g6a.g6s:
> >>>>>>>> -	$(AM_V_GEN)m4 $< > $@
> >>>>>>>> +	$(AM_V_GEN)m4 -I$(srcdir) $< > $@
> >>>>>>>>  .g6s.g6b:
> >>>>>>>>  	$(AM_V_GEN)$(GEN4ASM) -g 6 -o $@ $<
> >>>>>>>>  
> >>>>>>>>  $(INTEL_G7S): $(INTEL_G7A) $(INTEL_G7I)
> >>>>>>>>  .g7a.g7s:
> >>>>>>>> -	$(AM_V_GEN)m4 $< > $@
> >>>>>>>> +	$(AM_V_GEN)m4 -I$(srcdir) $< > $@
> >>>>>>>>  .g7s.g7b:
> >>>>>>>>  	$(AM_V_GEN)$(GEN4ASM) -g 7 -o $@ $<
> >>>>>>>>  .g7s.g7b.haswell:
> >>>>>>>> @@ -143,7 +143,7 @@ $(INTEL_G7S): $(INTEL_G7A) $(INTEL_G7I)
> >>>>>>>>  
> >>>>>>>>  $(INTEL_G8S): $(INTEL_G8A) $(INTEL_G8I)
> >>>>>>>>  .g8a.g8s:
> >>>>>>>> -	$(AM_V_GEN)m4 $< > $@
> >>>>>>>> +	$(AM_V_GEN)m4 -I$(srcdir) $< > $@
> >>>>>>>>  .g8s.g8b:
> >>>>>>>>  	$(AM_V_GEN)$(GEN4ASM) -g 8 -o $@ $<
> >>>>>>>>  
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>
> >>
> > 
> > 
> 




More information about the Libva mailing list