<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
I’m going to drop patch 10 from the patchset for now.
<div class=""><br class="">
</div>
<div class="">-Tim</div>
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Mar 27, 2017, at 9:42 PM, Kyriazis, George <<a href="mailto:george.kyriazis@intel.com" class="">george.kyriazis@intel.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Tried Depends(), but it doesn’t work all the time.  There are some cases where it works, and some others where it doesn’t.
<div class=""><br class="">
</div>
<div class="">I’ll need to investigate more.  Fix in a separate checkin later?</div>
<div class=""><br class="">
</div>
<div class="">George</div>
<div class=""><br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On Mar 27, 2017, at 8:38 PM, Rowley, Timothy O <<a href="mailto:timothy.o.rowley@intel.com" class="">timothy.o.rowley@intel.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
On closer review of 10/10, I don’t like the approach taken here.
<div class=""><br class="">
</div>
<div class="">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?</div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span><a href="http://scons.org/doc/production/HTML/scons-user/ch06s05.html" class="">http://scons.org/doc/production/HTML/scons-user/ch06s05.html</a></div>
<div class=""><br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On Mar 27, 2017, at 7:39 PM, George Kyriazis <<a href="mailto:george.kyriazis@intel.com" class="">george.kyriazis@intel.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">Fix codegen build break that was introduced earlier<br class="">
<br class="">
v2: update rules for gen_knobs.cpp and gen_knobs.h<br class="">
<br class="">
---<br class="">
src/gallium/drivers/swr/Makefile.am                |  4 +--<br class="">
src/gallium/drivers/swr/SConscript                 | 15 ++++++-----<br class="">
.../drivers/swr/rasterizer/codegen/gen_backends.py | 30 ++++++++++++++--------<br class="">
.../swr/rasterizer/codegen/gen_llvm_ir_macros.py   | 20 +++++++--------<br class="">
4 files changed, 39 insertions(+), 30 deletions(-)<br class="">
<br class="">
diff --git a/src/gallium/drivers/swr/Makefile.am b/src/gallium/drivers/swr/Makefile.am<br class="">
index 515a9089cc..cc37abf3e8 100644<br class="">
--- a/src/gallium/drivers/swr/Makefile.am<br class="">
+++ b/src/gallium/drivers/swr/Makefile.am<br class="">
@@ -97,14 +97,14 @@ rasterizer/jitter/gen_builder.hpp: rasterizer/codegen/gen_llvm_ir_macros.py rast<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>$(PYTHON_GEN) \<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>$(srcdir)/rasterizer/codegen/gen_llvm_ir_macros.py \<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>--input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span><span class="Apple-tab-span" style="white-space:pre"></span>--output rasterizer/jitter \<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span><span class="Apple-tab-span" style="white-space:pre"></span>--output $@ \<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>--gen_h<br class="">
<br class="">
rasterizer/jitter/gen_builder_x86.hpp: rasterizer/codegen/gen_llvm_ir_macros.py rasterizer/codegen/templates/gen_builder.hpp rasterizer/codegen/gen_common.py<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>$(MKDIR_GEN)<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>$(PYTHON_GEN) \<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>$(srcdir)/rasterizer/codegen/gen_llvm_ir_macros.py \<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span><span class="Apple-tab-span" style="white-space:pre"></span>--output rasterizer/jitter \<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span><span class="Apple-tab-span" style="white-space:pre"></span>--output $@ \<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>--gen_x86_h<br class="">
<br class="">
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<br class="">
diff --git a/src/gallium/drivers/swr/SConscript b/src/gallium/drivers/swr/SConscript<br class="">
index ad16162c29..aa4a8e6d55 100644<br class="">
--- a/src/gallium/drivers/swr/SConscript<br class="">
+++ b/src/gallium/drivers/swr/SConscript<br class="">
@@ -51,15 +51,15 @@ swrroot = '#src/gallium/drivers/swr/'<br class="">
env.CodeGenerate(<br class="">
    target = 'rasterizer/codegen/gen_knobs.cpp',<br class="">
    script = swrroot + 'rasterizer/codegen/gen_knobs.py',<br class="">
-    source = 'rasterizer/codegen/templates/gen_knobs.cpp',<br class="">
-    command = python_cmd + ' $SCRIPT --input $SOURCE --output $TARGET --gen_cpp'<br class="">
+    source = '',<br class="">
+    command = python_cmd + ' $SCRIPT --output $TARGET --gen_cpp'<br class="">
)<br class="">
<br class="">
env.CodeGenerate(<br class="">
    target = 'rasterizer/codegen/gen_knobs.h',<br class="">
    script = swrroot + 'rasterizer/codegen/gen_knobs.py',<br class="">
-    source = 'rasterizer/codegen/templates/gen_knobs.cpp',<br class="">
-    command = python_cmd + ' $SCRIPT --input $SOURCE --output $TARGET --gen_h'<br class="">
+    source = '',<br class="">
+    command = python_cmd + ' $SCRIPT --output $TARGET --gen_h'<br class="">
)<br class="">
<br class="">
env.CodeGenerate(<br class="">
@@ -73,14 +73,14 @@ env.CodeGenerate(<br class="">
    target = 'rasterizer/jitter/gen_builder.hpp',<br class="">
    script = swrroot + 'rasterizer/codegen/gen_llvm_ir_macros.py',<br class="">
    source = os.path.join(llvm_includedir, 'llvm/IR/IRBuilder.h'),<br class="">
-    command = python_cmd + ' $SCRIPT --input $SOURCE --output rasterizer/jitter --gen_h'<br class="">
+    command = python_cmd + ' $SCRIPT --input $SOURCE --output $TARGET --gen_h'<br class="">
)<br class="">
<br class="">
env.CodeGenerate(<br class="">
    target = 'rasterizer/jitter/gen_builder_x86.hpp',<br class="">
    script = swrroot + 'rasterizer/codegen/gen_llvm_ir_macros.py',<br class="">
    source = '',<br class="">
-    command = python_cmd + ' $SCRIPT --output rasterizer/jitter --gen_x86_h'<br class="">
+    command = python_cmd + ' $SCRIPT --output $TARGET --gen_x86_h'<br class="">
)<br class="">
<br class="">
env.CodeGenerate(<br class="">
@@ -127,7 +127,8 @@ env.CodeGenerate(<br class="">
env.CodeGenerate(<br class="">
    target = 'rasterizer/core/gen_BackendPixelRate0.cpp',<br class="">
    script = swrroot + 'rasterizer/codegen/gen_backends.py',<br class="">
-    command = python_cmd + ' $SCRIPT --output rasterizer/core --dim 5 2 3 2 2 2 --split 0 --cpp'<br class="">
+    source = swrroot + 'rasterizer/codegen/templates/gen_backend.cpp',<br class="">
+    command = python_cmd + ' $SCRIPT --output $TARGET --template $SOURCE --dim 5 2 3 2 2 2 --split 0 --cpp'<br class="">
)<br class="">
<br class="">
# Auto-generated .cpp files (that need to generate object files)<br class="">
diff --git a/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py b/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py<br class="">
index 242ab7a73e..8f7ba94ba1 100644<br class="">
--- a/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py<br class="">
+++ b/src/gallium/drivers/swr/rasterizer/codegen/gen_backends.py<br class="">
@@ -34,7 +34,10 @@ def main(args=sys.argv[1:]):<br class="">
    parser = ArgumentParser("Generate files and initialization functions for all permutuations of BackendPixelRate.")<br class="">
    parser.add_argument('--dim', help="gBackendPixelRateTable array dimensions", nargs='+', type=int, required=True)<br class="">
    parser.add_argument('--outdir', help="output directory", nargs='?', type=str, default=thisDir)<br class="">
+    parser.add_argument('--output', help="output filename", nargs='?', type=str)<br class="">
+    parser.add_argument('--template', help="input template", nargs='?', type=str)<br class="">
    parser.add_argument('--split', help="how many lines of initialization per file [0=no split]", nargs='?', type=int, default='512')<br class="">
+    parser.add_argument('--index', help="file to output", nargs='?', type=int, default=0)<br class="">
    parser.add_argument('--cpp', help="Generate cpp file(s)", action='store_true', default=False)<br class="">
    parser.add_argument('--cmake', help="Generate cmake file", action='store_true', default=False)<br class="">
<br class="">
@@ -72,18 +75,25 @@ def main(args=sys.argv[1:]):<br class="">
<br class="">
    # generate .cpp files<br class="">
    if args.cpp:<br class="">
-        baseCppName = os.path.join(args.outdir, 'gen_BackendPixelRate%s.cpp')<br class="">
-        templateCpp = os.path.join(thisDir, 'templates', 'gen_backend.cpp')<br class="">
-<br class="">
-        for fileNum in range(numFiles):<br class="">
-            filename = baseCppName % str(fileNum)<br class="">
-            #print('Generating', filename)<br class="">
+        if not args.output:<br class="">
+            baseCppName = os.path.join(args.outdir, 'gen_BackendPixelRate%s.cpp')<br class="">
+            templateCpp = os.path.join(thisDir, 'templates', 'gen_backend.cpp')<br class="">
+<br class="">
+            for fileNum in range(numFiles):<br class="">
+                MakoTemplateWriter.to_file(<br class="">
+                    templateCpp,<br class="">
+                    baseCppName % str(fileNum),<br class="">
+                    cmdline=sys.argv,<br class="">
+                    fileNum=fileNum,<br class="">
+                    funcList=chunkedList[fileNum])<br class="">
+<br class="">
+        else:<br class="">
            MakoTemplateWriter.to_file(<br class="">
-                templateCpp,<br class="">
-                baseCppName % str(fileNum),<br class="">
+                args.template,<br class="">
+                args.output,<br class="">
                cmdline=sys.argv,<br class="">
-                fileNum=fileNum,<br class="">
-                funcList=chunkedList[fileNum])<br class="">
+                fileNum=args.index,<br class="">
+                funcList=chunkedList[args.index])<br class="">
<br class="">
    # generate gen_backend.cmake file<br class="">
    if args.cmake:<br class="">
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<br class="">
index dbf56471ee..4cd9b6fbb6 100644<br class="">
--- a/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py<br class="">
+++ b/src/gallium/drivers/swr/rasterizer/codegen/gen_llvm_ir_macros.py<br class="">
@@ -178,9 +178,8 @@ def parse_ir_builder(input_file):<br class="">
'''<br class="">
    Auto-generates macros for LLVM IR<br class="">
'''<br class="">
-def generate_gen_h(functions, output_dir):<br class="">
-    filename = 'gen_builder.hpp'<br class="">
-    output_filename = os.path.join(output_dir, filename)<br class="">
+def generate_gen_h(functions, output):<br class="">
+    output_filename = output<br class="">
<br class="">
    templfuncs = []<br class="">
    for func in functions:<br class="">
@@ -197,16 +196,15 @@ def generate_gen_h(functions, output_dir):<br class="">
        output_filename,<br class="">
        cmdline=sys.argv,<br class="">
        comment='Builder IR Wrappers',<br class="">
-        filename=filename,<br class="">
+        filename=os.path.basename(output_filename),<br class="">
        functions=templfuncs,<br class="">
        isX86=False)<br class="">
<br class="">
'''<br class="">
    Auto-generates macros for LLVM IR<br class="">
'''<br class="">
-def generate_x86_h(output_dir):<br class="">
-    filename = 'gen_builder_x86.hpp'<br class="">
-    output_filename = os.path.join(output_dir, filename)<br class="">
+def generate_x86_h(output):<br class="">
+    output_filename = output<br class="">
<br class="">
    functions = []<br class="">
    for inst in intrinsics:<br class="">
@@ -224,7 +222,7 @@ def generate_x86_h(output_dir):<br class="">
        output_filename,<br class="">
        cmdline=sys.argv,<br class="">
        comment='x86 intrinsics',<br class="">
-        filename=filename,<br class="">
+        filename=os.path.basename(output_filename),<br class="">
        functions=functions,<br class="">
        isX86=True)<br class="">
<br class="">
@@ -238,13 +236,13 @@ def main():<br class="">
    # Parse args...<br class="">
    parser = ArgumentParser()<br class="">
    parser.add_argument('--input', '-i', type=FileType('r'), help='Path to IRBuilder.h', required=False)<br class="">
-    parser.add_argument('--output-dir', '-o', action='store', dest='output', help='Path to output directory', required=True)<br class="">
+    parser.add_argument('--output', '-o', action='store', dest='output', help='Output filename', required=True)<br class="">
    parser.add_argument('--gen_h', help='Generate builder_gen.h', action='store_true', default=False)<br class="">
    parser.add_argument('--gen_x86_h', help='Generate x86 intrinsics. No input is needed.', action='store_true', default=False)<br class="">
    args = parser.parse_args()<br class="">
<br class="">
-    if not os.path.exists(args.output):<br class="">
-        os.makedirs(args.output)<br class="">
+    if not os.path.exists(os.path.dirname(args.output)):<br class="">
+        os.makedirs(os.path.dirname(args.output))<br class="">
<br class="">
    if args.input:<br class="">
        functions = parse_ir_builder(args.input)<br class="">
-- <br class="">
2.11.1.windows.1<br class="">
<br class="">
_______________________________________________<br class="">
mesa-dev mailing list<br class="">
<a href="mailto:mesa-dev@lists.freedesktop.org" class="">mesa-dev@lists.freedesktop.org</a><br class="">
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" class="">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>