[Beignet] [PATCH] Add the pci id support for gbe_generate
He Junyan
junyan.he at inbox.com
Tue May 20 01:02:10 PDT 2014
Yes, it's on my plan and this patch is just the first step to make the
HSW's buffer copy and image copy workable.
On Tue, 2014-05-20 at 07:57 +0000, Yang, Rong R wrote:
> This patch detect the building platform's pci id and generate the bin for host when building, it is necessary to generate the corresponding binary for IVB and HSW.
> I think support cross platform bin generate and use a string in command line is next step.
>
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of Song, Ruiling
> Sent: Tuesday, May 20, 2014 2:35 PM
> To: He Junyan; beignet at lists.freedesktop.org
> Cc: Junyan He
> Subject: Re: [Beignet] [PATCH] Add the pci id support for gbe_generate
>
> You directly use pcid, right?
> What about changing to use a string as the command argument. Like 'ivb', 'hsw'?
> That would be meaningful for users.
>
> Thanks!
> Ruiling
>
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of He Junyan
> Sent: Tuesday, May 20, 2014 1:33 PM
> To: beignet at lists.freedesktop.org
> Cc: Junyan He
> Subject: Re: [Beignet] [PATCH] Add the pci id support for gbe_generate
>
> ping for review
>
> On Tue, 2014-05-13 at 09:34 +0800, junyan.he at inbox.com wrote:
> > From: Junyan He <junyan.he at linux.intel.com>
> >
> > Signed-off-by: Junyan He <junyan.he at linux.intel.com>
> > ---
> > backend/src/gbe_bin_generater.cpp | 20 +++++++++++++++++++-
> > src/CMakeLists.txt | 8 +++++++-
> > src/GetGenID.sh | 2 ++
> > utests/CMakeLists.txt | 7 ++++++-
> > 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100755
> > src/GetGenID.sh
> >
> > diff --git a/backend/src/gbe_bin_generater.cpp
> > b/backend/src/gbe_bin_generater.cpp
> > index 15bdbd1..b6248ae 100644
> > --- a/backend/src/gbe_bin_generater.cpp
> > +++ b/backend/src/gbe_bin_generater.cpp
> > @@ -46,6 +46,8 @@ using namespace std; #define FILE_BUILD_FAILED 3
> > #define FILE_SERIALIZATION_FAILED 4
> >
> > +static int gen_pci_id = 0;
> > +
> > class program_build_instance {
> >
> > protected:
> > @@ -249,7 +251,7 @@ int main (int argc, const char **argv)
> > argv_saved.push_back(string(argv[i]));
> > }
> >
> > - while ( (oc = getopt(argc, (char * const *)argv, "o:p:s")) != -1 ) {
> > + while ( (oc = getopt(argc, (char * const *)argv, "t:o:p:s")) !=
> > + -1 ) {
> > switch (oc) {
> > case 'p':
> > {
> > @@ -283,6 +285,22 @@ int main (int argc, const char **argv)
> > used_index[optind-1] = 1;
> > break;
> >
> > + case 't':
> > + {
> > + char *s = optarg;
> > + if (optarg[0] == '0' && (optarg[1] == 'x' || optarg[1] == 'X'))
> > + s += 2;
> > +
> > + if (s[0] < '0' || s[0] > '9') {
> > + cout << "Invalid target option argument" << endl;
> > + return 1;
> > + }
> > +
> > + gen_pci_id = (s[0] - '0') << 12 | (s[1] - '0') << 8 | (s[2] - '0') << 4 | (s[3] - '0');
> > + used_index[optind-1] = 1;
> > + break;
> > + }
> > +
> > case 's':
> > program_build_instance::set_str_fmt_out(true);
> > used_index[optind-1] = 1; diff --git a/src/CMakeLists.txt
> > b/src/CMakeLists.txt index 8164a44..f93ddcd 100644
> > --- a/src/CMakeLists.txt
> > +++ b/src/CMakeLists.txt
> > @@ -4,6 +4,12 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}
> > ${CMAKE_CURRENT_SOURCE_DIR}/../backend/src/backend/
> > ${CMAKE_CURRENT_SOURCE_DIR}/../include
> > ${MESA_SOURCE_INCLUDES})
> > +
> > +set(GEN_PCI_ID)
> > +execute_process(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/GetGenID.sh"
> > + OUTPUT_VARIABLE GEN_PCI_ID)
> > +message(STATUS "Platform Gen PCI id is " ${GEN_PCI_ID})
> > +
> > macro (MakeKernelBinStr KERNEL_PATH KERNEL_FILES) foreach (KF
> > ${KERNEL_FILES})
> > set (input_file ${KERNEL_PATH}/${KF}.cl) @@ -12,7 +18,7 @@ foreach
> > (KF ${KERNEL_FILES})
> > add_custom_command(
> > OUTPUT ${output_file}
> > COMMAND rm -rf ${output_file}
> > - COMMAND ${GBE_BIN_GENERATER} -s ${input_file} -o${output_file}
> > + COMMAND ${GBE_BIN_GENERATER} -s ${input_file} -o${output_file}
> > + -t${GEN_PCI_ID}
> > DEPENDS ${input_file}
> > ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater)
> > endforeach (KF)
> > endmacro (MakeKernelBinStr)
> > diff --git a/src/GetGenID.sh b/src/GetGenID.sh new file mode 100755
> > index 0000000..3114bd8
> > --- /dev/null
> > +++ b/src/GetGenID.sh
> > @@ -0,0 +1,2 @@
> > +#!/bin/bash
> > +lspci -nn | grep "Gen .* Graphics" -i | grep "\[8086:.*\]" -o | awk -F : '{print $2}' | awk -F ] '{print $1}'
> > diff --git a/utests/CMakeLists.txt b/utests/CMakeLists.txt index
> > 704438d..2a9ea66 100644
> > --- a/utests/CMakeLists.txt
> > +++ b/utests/CMakeLists.txt
> > @@ -180,10 +180,15 @@ set (utests_sources
> > utest_file_map.cpp
> > utest_helper.cpp)
> >
> > +set(GEN_PCI_ID)
> > +execute_process(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/GetGenID.sh"
> > + OUTPUT_VARIABLE GEN_PCI_ID)
> > +
> > +message(STATUS "Platform Gen PCI id is " ${GEN_PCI_ID})
> > SET (kernel_bin ${CMAKE_CURRENT_SOURCE_DIR}/../kernels/compiler_ceil)
> > ADD_CUSTOM_COMMAND(
> > OUTPUT ${kernel_bin}.bin
> > - COMMAND ${GBE_BIN_GENERATER} ${kernel_bin}.cl -o${kernel_bin}.bin
> > + COMMAND ${GBE_BIN_GENERATER} ${kernel_bin}.cl -o${kernel_bin}.bin
> > + -t${GEN_PCI_ID}
> > DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/../backend/src/gbe_bin_generater ${kernel_bin}.cl
> > )
> >
>
>
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list