I’m going to drop patch 10 from the patchset for now.

-Tim

On Mar 27, 2017, at 9:42 PM, Kyriazis, George 
<george.kyria...@intel.com<mailto:george.kyria...@intel.com>> wrote:

Tried Depends(), but it doesn’t work all the time.  There are some cases where 
it works, and some others where it doesn’t.

I’ll need to investigate more.  Fix in a separate checkin later?

George

On Mar 27, 2017, at 8:38 PM, Rowley, Timothy O 
<timothy.o.row...@intel.com<mailto:timothy.o.row...@intel.com>> wrote:

On closer review of 10/10, I don’t like the approach taken here.

You’ve added a —template argument to gen_backends.py, making it different from 
the rest of the scripts and actually running it with different parameters on 
automake and scons.  Can’t you get scons to have the necessary dependency using 
its Depends() call?

http://scons.org/doc/production/HTML/scons-user/ch06s05.html

On Mar 27, 2017, at 7:39 PM, George Kyriazis 
<george.kyria...@intel.com<mailto:george.kyria...@intel.com>> wrote:

Fix codegen build break that was introduced earlier

v2: update rules for gen_knobs.cpp and gen_knobs.h

---
src/gallium/drivers/swr/Makefile.am                |  4 +--
src/gallium/drivers/swr/SConscript                 | 15 ++++++-----
.../drivers/swr/rasterizer/codegen/gen_backends.py | 30 ++++++++++++++--------
.../swr/rasterizer/codegen/gen_llvm_ir_macros.py   | 20 +++++++--------
4 files changed, 39 insertions(+), 30 deletions(-)

diff --git a/src/gallium/drivers/swr/Makefile.am 
b/src/gallium/drivers/swr/Makefile.am
index 515a9089cc..cc37abf3e8 100644
--- a/src/gallium/drivers/swr/Makefile.am
+++ b/src/gallium/drivers/swr/Makefile.am
@@ -97,14 +97,14 @@ rasterizer/jitter/gen_builder.hpp: 
rasterizer/codegen/gen_llvm_ir_macros.py rast
$(PYTHON_GEN) \
$(srcdir)/rasterizer/codegen/gen_llvm_ir_macros.py \
--input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \
- --output rasterizer/jitter \
+ --output $@ \
--gen_h

rasterizer/jitter/gen_builder_x86.hpp: rasterizer/codegen/gen_llvm_ir_macros.py 
rasterizer/codegen/templates/gen_builder.hpp rasterizer/codegen/gen_common.py
$(MKDIR_GEN)
$(PYTHON_GEN) \
$(srcdir)/rasterizer/codegen/gen_llvm_ir_macros.py \
- --output rasterizer/jitter \
+ --output $@ \
--gen_x86_h

rasterizer/archrast/gen_ar_event.hpp: rasterizer/codegen/gen_archrast.py 
rasterizer/codegen/templates/gen_ar_event.hpp rasterizer/archrast/events.proto 
rasterizer/codegen/gen_common.py
diff --git a/src/gallium/drivers/swr/SConscript 
b/src/gallium/drivers/swr/SConscript
index ad16162c29..aa4a8e6d55 100644
--- a/src/gallium/drivers/swr/SConscript
+++ b/src/gallium/drivers/swr/SConscript
@@ -51,15 +51,15 @@ swrroot = '#src/gallium/drivers/swr/'
env.CodeGenerate(
    target = 'rasterizer/codegen/gen_knobs.cpp',
    script = swrroot + 'rasterizer/codegen/gen_knobs.py',
-    source = 'rasterizer/codegen/templates/gen_knobs.cpp',
-    command = python_cmd + ' $SCRIPT --input $SOURCE --output $TARGET 
--gen_cpp'
+    source = '',
+    command = python_cmd + ' $SCRIPT --output $TARGET --gen_cpp'
)

env.CodeGenerate(
    target = 'rasterizer/codegen/gen_knobs.h',
    script = swrroot + 'rasterizer/codegen/gen_knobs.py',
-    source = 'rasterizer/codegen/templates/gen_knobs.cpp',
-    command = python_cmd + ' $SCRIPT --input $SOURCE --output $TARGET --gen_h'
+    source = '',
+    command = python_cmd + ' $SCRIPT --output $TARGET --gen_h'
)

env.CodeGenerate(
@@ -73,14 +73,14 @@ env.CodeGenerate(
    target = 'rasterizer/jitter/gen_builder.hpp',
    script = swrroot + 'rasterizer/codegen/gen_llvm_ir_macros.py',
    source = os.path.join(llvm_includedir, 'llvm/IR/IRBuilder.h'),
-    command = python_cmd + ' $SCRIPT --input $SOURCE --output 
rasterizer/jitter --gen_h'
+    command = python_cmd + ' $SCRIPT --input $SOURCE --output $TARGET --gen_h'
)

env.CodeGenerate(
    target = 'rasterizer/jitter/gen_builder_x86.hpp',
    script = swrroot + 'rasterizer/codegen/gen_llvm_ir_macros.py',
    source = '',
-    command = python_cmd + ' $SCRIPT --output rasterizer/jitter --gen_x86_h'
+    command = python_cmd + ' $SCRIPT --output $TARGET --gen_x86_h'
)

env.CodeGenerate(
@@ -127,7 +127,8 @@ env.CodeGenerate(
env.CodeGenerate(
    target = 'rasterizer/core/gen_BackendPixelRate0.cpp',
    script = swrroot + 'rasterizer/codegen/gen_backends.py',
-    command = python_cmd + ' $SCRIPT --output rasterizer/core --dim 5 2 3 2 2 
2 --split 0 --cpp'
+    source = swrroot + 'rasterizer/codegen/templates/gen_backend.cpp',
+    command = python_cmd + ' $SCRIPT --output $TARGET --template $SOURCE --dim 
5 2 3 2 2 2 --split 0 --cpp'
)

# Auto-generated .cpp files (that need to generate object files)
diff --git a/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py 
b/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py
index 242ab7a73e..8f7ba94ba1 100644
--- a/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py
+++ b/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py
@@ -34,7 +34,10 @@ def main(args=sys.argv[1:]):
    parser = ArgumentParser("Generate files and initialization functions for 
all permutuations of BackendPixelRate.")
    parser.add_argument('--dim', help="gBackendPixelRateTable array 
dimensions", nargs='+', type=int, required=True)
    parser.add_argument('--outdir', help="output directory", nargs='?', 
type=str, default=thisDir)
+    parser.add_argument('--output', help="output filename", nargs='?', 
type=str)
+    parser.add_argument('--template', help="input template", nargs='?', 
type=str)
    parser.add_argument('--split', help="how many lines of initialization per 
file [0=no split]", nargs='?', type=int, default='512')
+    parser.add_argument('--index', help="file to output", nargs='?', type=int, 
default=0)
    parser.add_argument('--cpp', help="Generate cpp file(s)", 
action='store_true', default=False)
    parser.add_argument('--cmake', help="Generate cmake file", 
action='store_true', default=False)

@@ -72,18 +75,25 @@ def main(args=sys.argv[1:]):

    # generate .cpp files
    if args.cpp:
-        baseCppName = os.path.join(args.outdir, 'gen_BackendPixelRate%s.cpp')
-        templateCpp = os.path.join(thisDir, 'templates', 'gen_backend.cpp')
-
-        for fileNum in range(numFiles):
-            filename = baseCppName % str(fileNum)
-            #print('Generating', filename)
+        if not args.output:
+            baseCppName = os.path.join(args.outdir, 
'gen_BackendPixelRate%s.cpp')
+            templateCpp = os.path.join(thisDir, 'templates', 'gen_backend.cpp')
+
+            for fileNum in range(numFiles):
+                MakoTemplateWriter.to_file(
+                    templateCpp,
+                    baseCppName % str(fileNum),
+                    cmdline=sys.argv,
+                    fileNum=fileNum,
+                    funcList=chunkedList[fileNum])
+
+        else:
            MakoTemplateWriter.to_file(
-                templateCpp,
-                baseCppName % str(fileNum),
+                args.template,
+                args.output,
                cmdline=sys.argv,
-                fileNum=fileNum,
-                funcList=chunkedList[fileNum])
+                fileNum=args.index,
+                funcList=chunkedList[args.index])

    # generate gen_backend.cmake file
    if args.cmake:
diff --git a/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py 
b/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py
index dbf56471ee..4cd9b6fbb6 100644
--- a/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py
+++ b/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py
@@ -178,9 +178,8 @@ def parse_ir_builder(input_file):
'''
    Auto-generates macros for LLVM IR
'''
-def generate_gen_h(functions, output_dir):
-    filename = 'gen_builder.hpp'
-    output_filename = os.path.join(output_dir, filename)
+def generate_gen_h(functions, output):
+    output_filename = output

    templfuncs = []
    for func in functions:
@@ -197,16 +196,15 @@ def generate_gen_h(functions, output_dir):
        output_filename,
        cmdline=sys.argv,
        comment='Builder IR Wrappers',
-        filename=filename,
+        filename=os.path.basename(output_filename),
        functions=templfuncs,
        isX86=False)

'''
    Auto-generates macros for LLVM IR
'''
-def generate_x86_h(output_dir):
-    filename = 'gen_builder_x86.hpp'
-    output_filename = os.path.join(output_dir, filename)
+def generate_x86_h(output):
+    output_filename = output

    functions = []
    for inst in intrinsics:
@@ -224,7 +222,7 @@ def generate_x86_h(output_dir):
        output_filename,
        cmdline=sys.argv,
        comment='x86 intrinsics',
-        filename=filename,
+        filename=os.path.basename(output_filename),
        functions=functions,
        isX86=True)

@@ -238,13 +236,13 @@ def main():
    # Parse args...
    parser = ArgumentParser()
    parser.add_argument('--input', '-i', type=FileType('r'), help='Path to 
IRBuilder.h', required=False)
-    parser.add_argument('--output-dir', '-o', action='store', dest='output', 
help='Path to output directory', required=True)
+    parser.add_argument('--output', '-o', action='store', dest='output', 
help='Output filename', required=True)
    parser.add_argument('--gen_h', help='Generate builder_gen.h', 
action='store_true', default=False)
    parser.add_argument('--gen_x86_h', help='Generate x86 intrinsics. No input 
is needed.', action='store_true', default=False)
    args = parser.parse_args()

-    if not os.path.exists(args.output):
-        os.makedirs(args.output)
+    if not os.path.exists(os.path.dirname(args.output)):
+        os.makedirs(os.path.dirname(args.output))

    if args.input:
        functions = parse_ir_builder(args.input)
--
2.11.1.windows.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org<mailto:mesa-dev@lists.freedesktop.org>
https://lists.freedesktop.org/mailman/listinfo/mesa-dev



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to