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

Emil Velikov emil.l.velikov at gmail.com
Thu Nov 6 14:45:29 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.

And to clarify what I mean with everything else:
 - Do not use of m4 to pre-process the headers.
 - Add android rules to build/assemble the shaders.
 - Mandate the presence of intel-gen4asm at build-time.
 - 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