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:[email protected]] On Behalf Of > Song, Ruiling > Sent: Tuesday, May 20, 2014 2:35 PM > To: He Junyan; [email protected] > 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:[email protected]] On Behalf Of He > Junyan > Sent: Tuesday, May 20, 2014 1:33 PM > To: [email protected] > 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, [email protected] wrote: > > From: Junyan He <[email protected]> > > > > Signed-off-by: Junyan He <[email protected]> > > --- > > 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 > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
