analysis
13
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7baa2937b0 |
Odds and ends to enable BATCHED execution of most testsuite (#1453)
* Enable BATCHED execution of most testsuite entries that don't use closures or point cloud. Added batched implementation of hash function. Updated batched implementation to use the symbol.get_int(), symbol.get_float(), and symbol.get_string() methods vs. *(int*)symbol.data() approach. Fixed bug in batched code gen where mangled symbol names were output as part of debug uninit warnings and range checking. Signed-off-by: Alex M. Wells <alex.m.wells@intel.com> * Fixed reparameter in batched execution. Updated batched behavior for unlocked geom shader output parameters to function like scalar version. Fixed batched bug when non-entry layers are executed and execution masks are compared producing a <i1x16> instead of i1 for use in conditional operation. Added more reparameter test cases to cover arrays and arrays of aggregate types. Signed-off-by: Alex M. Wells <alex.m.wells@intel.com> * Enabled command line assignable user data for batched execution in testshade, which fixes testsuite/userdata-passthrough Changed print_outputs for batched execution to not use << operator which includes parenthesis, but instead output each componenet with spaces to match the non-batched print_outputs. renamed MaskedData<...>::assign_from(void* ptr_wide_data) to assign_val_from(const void* ptr_wide_data) to better reflect that only the value is assigned, and Dx and Dy are NOT assigned. Added MaskedData<...>::assign_all_from(const void* ptr_data) to take a scalar DataT and broadcast it to all lanes of the MaskedData, masked off lanes are NOT overwritten, and value, Dx, Dy are assigned. Signed-off-by: Alex M. Wells <alex.m.wells@intel.com> * Apply clang-format to wide.h Add some paranetheses to conditional to avoid warning. Signed-off-by: Alex M. Wells <alex.m.wells@intel.com> * Wrapped all printf arguments with pretty() in testsuite/geomath/test.osl to avoid small floating point differences from affecting printed results in test. Signed-off-by: Alex M. Wells <alex.m.wells@intel.com> * Add testsuite/geomath/ref/out-alt.txt to allow for minute floating point differences with some compiler/platform combinations. Signed-off-by: Alex M. Wells <alex.m.wells@intel.com> |
||
|
|
04d331e439 |
Transitioning repository to ASWF (#1329)
* Rename CLA files so they no longer say "draft." * Change CONTRIBUTING.mv to correctly describe the new CLA process, remove language related to the old SPI CLAs. Also some touchups to README.md. * Update the project_intake.md to check of various things that we've completed. * Change all references to the old imageworks GitHub URLs to the new ASWF ones. (This touches comments at the start of basically every file.) Signed-off-by: Larry Gritz <lg@larrygritz.com> |
||
|
|
ffc5303dcf |
Big copyright and license cleanup to follow ASWF conventions (#1145)
This brings us into conformance with ASWF standards for license text and how the copyright notices read. (And was cleared by Sony and Linux Foundation.) This is the same set of changes made to all the other projects coming into the foundation, including OpenColorIO. Please note that none of the licenses are changing -- it's the same 3-clause BSD license we have always used. Also, this doesn't change any of the copyright holders -- it has always been the case that the authors of each patch retain the copyright to their specific additions or changes. OSL has never required copyright assignment for contributions. * Add a LICENSE-THIRD-PARTY.md file that documents imported software. * Update documentation license to CC-BY-4.0 (from 3.0). * Fully reproduce the Qt license in the two files derived from Qt example code. * Change copyright notice to the new wording of 'Contributors to the Open Shading Language project', per ASWF convention. * Replace lengthy per-file copyright boilerplate with SPDX short form. (This is more readable and is easily scanned by automated software to detect which licenses are used.) * For any files lacking a copyright notice, license text, or SPDX identifier, add them. * Fix test output for many unit tests where line numbers changed after license info was added to .osl files in the testsuite. |
||
|
|
5b4998764e |
Enable OptiX on many tests (#1018)
Add 'OPTIX' label files to a whole bunch of testsuite tests to force them to run in OptiX mode also. Make sure optix tests run both optimized and unoptimized. Moany tests still ran 'testsuite -g 2 2' to run at 4 points as if on a grid. This was an artifact from the early days when we had a "batched shader bytecode interpreter" that handled "varying" specially and needed to run on multiple points at once to ensure that they were shading entire grids properly. But once we switched to LLVM JIT and a "single point shading model", that was no longer necessary. But never had a good reason to change them before. Lots of tests "failed" OptiX mode just because printf wasn't working correctly for multiple points. That's silly, we can test printf interleaving separately and with one test. No need to make passing dozens or hundreds of others contingent on that one problem, rather than hinging on whether OptiX path can really implement the feature that the test was designed to demonstrate. So for a bunch of tests, I changed them from running 'testsuite -g 2 2' to just running on one point, and enabled OptiX mode to get a pass. All in all now, I believe we pass 37 tests in OptiX mode (both optimized and not optimized). We will try to grow this week by week. |
||
|
|
366e979681 | More uniform path for python binary retrieval | ||
|
|
fc7b1a50b6 | testsuite overhaul -- all temp files end up in build, runtest.py called directly and the run.py files shrink down to the bare minimum. Similar to the recent changes in OIIO testsuite. | ||
|
|
18f5ab52da | Fix several testsuite reference outputs to be more likely to compare correctly across platforms where there may be LSB differences, -0 vs 0, etc. | ||
|
|
20546178d8 | testsuite: Eliminate all old SIMD-style output reference | ||
|
|
d1fb2e9b09 |
Merged revisions 638-668,672-678,680-687,690-726,728-730,733-744,746-747,749-753,755-784 via svnmerge from
https://openshadinglanguage.googlecode.com/svn/branches/TRY-llvm ........ r638 | solomon.boulos | 2010-06-01 15:50:50 -0700 (Tue, 01 Jun 2010) | 20 lines Initial checkin of my llvm backend I've been working on over the past couple weeks. The meat of the code is in src/liboslexec/llvm_instance.cpp. This implements a basic OSL opcode -> LLVM IR translation of the scalar shader programs. This conversion happens after the runtimeoptimization passes already performed on the OSL opcodes. llvmshade is a pared down version of testshade that was useful for debugging. Currently many OSL features are unsupported (structs, arrays, closures, initops, params, etc). The arithmetic test, however, runs through correctly when run with testshade. This checkin contains also currently contains some cruft from my first hope of just taking the current interpreter code, running it through llvm-gcc and loading the bitcode. This approach got up and running quickly (ran much of the testsuite correctly) but had excessive memory usage and startup overhead. ........ r639 | solomon.boulos | 2010-06-02 13:48:47 -0700 (Wed, 02 Jun 2010) | 4 lines This header is unused (and deprecated in llvm 2.7, it was just sitting around in my install) and broke the build for Larry. ........ r640 | larrygritz | 2010-06-02 15:13:19 -0700 (Wed, 02 Jun 2010) | 5 lines Switch from LLVM-trunk to their official LLVM 2.7 release. This entails passing the LLVMContext& around rather than relying on getting it with an API of theirs that apparently was in the trunk when Solomon wrote this code, but didn't make it into the 2.7 release. ........ r641 | larrygritz | 2010-06-02 15:16:53 -0700 (Wed, 02 Jun 2010) | 2 lines Add license to the new files. ........ r642 | larrygritz | 2010-06-02 15:43:47 -0700 (Wed, 02 Jun 2010) | 2 lines Reformat to match the style and formatting of the rest of the OSL code base. ........ r643 | larrygritz | 2010-06-02 16:20:12 -0700 (Wed, 02 Jun 2010) | 2 lines Fix typo introduced in the last checkin. ........ r644 | larrygritz | 2010-06-02 16:33:32 -0700 (Wed, 02 Jun 2010) | 5 lines Strip out Solomon's first experiments with LLVM (calling our OP_foo routines directly), since we know we won't use them. And in the process, back out some changes that were necessary only to support that. This reduces the differences versus the trunk to many fewer files. ........ r645 | larrygritz | 2010-06-02 16:39:21 -0700 (Wed, 02 Jun 2010) | 4 lines Move some LLVM-specific stuff from shadingsys.cpp into llvm_instance.cpp where the rest of its brother and sisters live. Also reformat to match the prevailing style. ........ r646 | larrygritz | 2010-06-02 17:10:39 -0700 (Wed, 02 Jun 2010) | 2 lines Some member renaming and more reformatting. ........ r647 | solomon.boulos | 2010-06-04 16:20:32 -0700 (Fri, 04 Jun 2010) | 19 lines src/liboslexec/exec.cpp Disabling some old debugging printfs (they'll prove handy when we try out multithreading). Removing the old code that ran the old version of the code that used the bitcode loaded ops (functions were void RunLayer(ShadingExecution*, const int* opargs)). src/liboslexec/llvm_instance.cpp Some cleanups. Removing the old printf mangling that wasn't needed anymore as well as some debugging printfs. Implement several more ops: abs, fabs, sin, cos, compref, vector/color constructor, length, luminance, dot, cross, normalize. BUGFIX: AssignInitialConstant only supported scalars, now it supports arbitrary length data (i.e. vectors and colors as well). ........ r648 | larrygritz | 2010-06-07 16:00:33 -0700 (Mon, 07 Jun 2010) | 5 lines Big LLVM refactor: move all the LLVM generation right into the RuntimeOptimizer. This simplifies a lot and makes much of the structure of the JIT'er to be symmetric to other workings of the RO. This work isn't done yet, but checkpoint now. ........ r649 | larrygritz | 2010-06-07 17:37:50 -0700 (Mon, 07 Jun 2010) | 5 lines More LLVM refactor: now ALL the LLVM IR-generating functions have the identical call signature: foo (RuntimeOptimizer &rop, int opnum) and all else can be pulled from the rop. Note the symmetry with the constant folding we do in runtimeoptimizer.cpp. See where this is going? ........ r650 | larrygritz | 2010-06-07 18:10:55 -0700 (Mon, 07 Jun 2010) | 2 lines More LLVM refactoring: Use dispatch table! Just like runtimeoptimize.cpp. ........ r651 | larrygritz | 2010-06-07 22:42:23 -0700 (Mon, 07 Jun 2010) | 3 lines LLVM refactoring: combine the basic block analysis of the previous RuntimeOptimizer and the new LLVM generation. ........ r652 | larrygritz | 2010-06-08 06:52:57 -0700 (Tue, 08 Jun 2010) | 3 lines LLVM: make helper functions to return commonly-used llvm types; add comments; fully-qualify the namespace for all llvm:: things. ........ r653 | larrygritz | 2010-06-08 11:32:35 -0700 (Tue, 08 Jun 2010) | 6 lines LLVM: fully implement LLVM generation for 'assign', including derivs and all type combinations that OSL supports (except closures). Also some renaming and utility functions for generating constants. Along the way, loadLLVMValue was modified to do float<->int typecasts automatically when requested. ........ r654 | larrygritz | 2010-06-08 12:36:27 -0700 (Tue, 08 Jun 2010) | 3 lines LLVM: type casting bug fix; execute LLVM code whenever we are able to generate it; type helper routines. ........ r655 | larrygritz | 2010-06-08 13:18:31 -0700 (Tue, 08 Jun 2010) | 2 lines LLVM: correct implementation of OSL division (x/0 = 0, not inf). ........ r656 | larrygritz | 2010-06-08 21:01:36 -0700 (Tue, 08 Jun 2010) | 5 lines LLVM checkpoint: broke out add, sub, mul, div, and mod separately (bye-bye generic binary_op, it gets too ugly with the subtle differences between these ops). These ops now fully implement all their variations involving int, float, and triples, including derivatives! To do: matrices, closures. ........ r657 | larrygritz | 2010-06-09 09:58:43 -0700 (Wed, 09 Jun 2010) | 2 lines LLVM: Handle closures for op assign. ........ r658 | larrygritz | 2010-06-09 16:54:56 -0700 (Wed, 09 Jun 2010) | 6 lines LLVM: Complete the implementations of assign, add, sub, mul, and div -- including closures and matrices. For these complex things, I use wrapper functions, I don't try to write the inline assembly language for them. Also add a bunch of infrastructure to make it simple to generate code to call these helper functions. ........ r659 | larrygritz | 2010-06-10 11:26:41 -0700 (Thu, 10 Jun 2010) | 4 lines LLVM: Get comparison working (correct handling of matrix cases) and remove unnecessary complexity for unneeded deriv & mixed float/int functionality. Also some work in progress toward supporting strings. ........ r660 | larrygritz | 2010-06-10 21:49:11 -0700 (Thu, 10 Jun 2010) | 2 lines LLVM: fix allocation of strings -- now strings work! ........ r661 | larrygritz | 2010-06-11 23:33:07 -0700 (Fri, 11 Jun 2010) | 11 lines LLVM: Fast way to get functionality -- write it in C++! I've done all the work in cmake, scripting, etc., to make it so that we can write arbitrary bits of C++ in llvm_ops.cpp, have it compile with llvm-g++, save the bitcode and convert it back to C++ as a big binary blob, and then at runtime start up with LLVM understanding all those functions. I've also confirmed that there is no penalty for this whatsoever given the right optimization settings (which I have done -- all these short functions are properly inlined and are as efficient as if they were hand-coded in LLVM asm). That's how I'll code up the LLVM translations of nearly everything from here on out, except for the most trivial things that can be done in just an instruction or two. ........ r662 | larrygritz | 2010-06-12 00:06:28 -0700 (Sat, 12 Jun 2010) | 2 lines LLVM: Get the bitwise operators working. ........ r663 | larrygritz | 2010-06-12 22:16:07 -0700 (Sat, 12 Jun 2010) | 3 lines LLVM WIP: work on string ops; simplify construction of triples; pass ShadingContext* as second parameter to main entry point. ........ r664 | larrygritz | 2010-06-14 12:18:19 -0700 (Mon, 14 Jun 2010) | 3 lines LLVM: Total overhaul of alloc/load/store/global pipeline. But now that we've got all that straightened out, arrays (and aref/aassign) work! ........ r665 | larrygritz | 2010-06-15 13:10:24 -0700 (Tue, 15 Jun 2010) | 5 lines LLVM: got matrix constructors working, including with space names! In the process, fix subtle bug with strings -- previous code had asked LLVM to CreateGlobalString, but this is not the same as our ustring values. Next up is the rest of the matrix ops, should be downhill from here. ........ r666 | larrygritz | 2010-06-15 15:06:56 -0700 (Tue, 15 Jun 2010) | 3 lines LLVM WIP: now have mxcompref, mxcompassign implemented. Also overhauled compref (previously it only handled constant indices). ........ r667 | larrygritz | 2010-06-15 15:47:02 -0700 (Tue, 15 Jun 2010) | 2 lines LLVM: ops and bug fixes to get all the remaining matrix-related ops working. ........ r668 | larrygritz | 2010-06-15 16:30:41 -0700 (Tue, 15 Jun 2010) | 3 lines LLVM: Overhaul and fix triple constructor -- now handles derivatives and optional transformation names (except for color space names). ........ r672 | larrygritz | 2010-06-15 16:42:11 -0700 (Tue, 15 Jun 2010) | 3 lines Several new testsuite reference outputs, for single-point execution order. (N.B. these tests now pass for LLVM-generated code!) ........ r673 | larrygritz | 2010-06-15 18:23:29 -0700 (Tue, 15 Jun 2010) | 3 lines LLVM: implement compassign, length (including derivs). Re-implement dot and cross (now including derivs). ........ r674 | larrygritz | 2010-06-15 22:48:20 -0700 (Tue, 15 Jun 2010) | 3 lines LLVM: Implement distance, normalize. Also refactor some duplicated dual arithmetic vector routines from llvm_ops and opvector into dual_vec.h. ........ r675 | larrygritz | 2010-06-15 23:41:51 -0700 (Tue, 15 Jun 2010) | 3 lines LLVM: With some new naming conventions in llvm_ops.cpp, we can make a great many shadeops be handled in a uniform generic way. ........ r676 | larrygritz | 2010-06-16 07:23:19 -0700 (Wed, 16 Jun 2010) | 4 lines LLVM: sin, cos, tan, asin, acos, atan, atan2, degrees, radians. Big macros in llvm_ops.cpp to make it trivial to add unary and binary per-component ops with full float/vector and derivative polymorphism. ........ r677 | larrygritz | 2010-06-16 07:34:47 -0700 (Wed, 16 Jun 2010) | 2 lines LLVM: sinh, cosh, tanh (now passes testsuite/hyperb) ........ r678 | larrygritz | 2010-06-16 11:38:32 -0700 (Wed, 16 Jun 2010) | 4 lines LLVM: implemented pow, exp*, erf*, log*. Rearranged the big llvm op table so it's alphabetical and is easy to see what's been done and what remains. ........ r680 | larrygritz | 2010-06-16 14:42:21 -0700 (Wed, 16 Jun 2010) | 3 lines LLVM: Fix printf to properly direct output throught the ShadingSystem. Implement concat, format, error, warning, strlen, startswith, endswith, substr. ........ r681 | larrygritz | 2010-06-16 15:26:43 -0700 (Wed, 16 Jun 2010) | 2 lines LLVM: arraylength, regex_match, regex_search ........ r682 | larrygritz | 2010-06-16 15:31:23 -0700 (Wed, 16 Jun 2010) | 2 lines Restore this test to its original state. ........ r683 | larrygritz | 2010-06-16 15:43:47 -0700 (Wed, 16 Jun 2010) | 2 lines LLVM: isnan, isinf, isfinite ........ r684 | larrygritz | 2010-06-16 15:47:03 -0700 (Wed, 16 Jun 2010) | 2 lines Update ref output for single-shade ........ r685 | larrygritz | 2010-06-17 06:57:16 -0700 (Thu, 17 Jun 2010) | 2 lines LLVM: sqrt, inversesqrt, neg, Dx, Dy ........ r686 | larrygritz | 2010-06-17 10:43:28 -0700 (Thu, 17 Jun 2010) | 2 lines LLVM: hypot mix step clamp min max ........ r687 | larrygritz | 2010-06-17 14:47:28 -0700 (Thu, 17 Jun 2010) | 2 lines Better comments explaining the calling conventions of llvm_ops.cpp. ........ r690 | larrygritz | 2010-06-17 22:30:23 -0700 (Thu, 17 Jun 2010) | 2 lines Add needed empty codegen to suppress oslc warning we don't want to see. ........ r691 | larrygritz | 2010-06-17 23:01:28 -0700 (Thu, 17 Jun 2010) | 2 lines LLVM: floor, ceil, round, trunc, step ........ r692 | larrygritz | 2010-06-18 12:18:40 -0700 (Fri, 18 Jun 2010) | 2 lines LLVM: luminance ........ r693 | larrygritz | 2010-06-18 17:56:10 -0700 (Fri, 18 Jun 2010) | 4 lines Detect LLVM -- handle gracefully if not found, or if not requested via 'make USE_LLVM=0'. Add ShadingSystem attribute "use_llvm" to allow turning it on and off at runtime. And add llvm timing stats. ........ r694 | larrygritz | 2010-06-19 00:18:11 -0700 (Sat, 19 Jun 2010) | 2 lines LLVM: Fix 'abs', it was implemented awkwardly and without correct derivs. ........ r695 | larrygritz | 2010-06-20 22:28:58 -0700 (Sun, 20 Jun 2010) | 2 lines Meant to check this in with the last commit -- allow 'make USE_LLVM=0|1' ........ r696 | clifford.stein | 2010-06-22 09:59:51 -0700 (Tue, 22 Jun 2010) | 5 lines Build system tweaks to allow compilation on machines with non-standard LLVM installations (and accompanying update to SPI's site configuration file). ........ r697 | larrygritz | 2010-06-23 09:54:09 -0700 (Wed, 23 Jun 2010) | 6 lines LLVM: WIP getting shader parameters working. Now input params whose values are constants or instance values work properly. Still to do: params needing init ops, interpolated params, connections, and making output params end up with their values someplace where the system can get to them after the shader has finished running. ........ r698 | larrygritz | 2010-06-23 12:09:11 -0700 (Wed, 23 Jun 2010) | 3 lines LLVM: The context needs to allocate and pass in the storage for params after all, or there's no good way to get the output params. ........ r699 | clifford.stein | 2010-06-23 13:54:11 -0700 (Wed, 23 Jun 2010) | 5 lines - adding LLVM-implementation of smoothstep() - consolidating multiple (but same) implementations of smoothstep() into one place ........ r700 | larrygritz | 2010-06-23 20:49:45 -0700 (Wed, 23 Jun 2010) | 3 lines LLVM: snapshot WIP refactoring to handle multiple shader layers within a shader group. Getting close now. ........ r701 | clifford.stein | 2010-06-24 11:42:38 -0700 (Thu, 24 Jun 2010) | 6 lines - adding LLVM implementations for transform() - removed support for matrix derivatives in llvm_gen_generic - moved dual2<Matrix44> multiplication routines to be more accessible ........ r702 | larrygritz | 2010-06-25 20:46:52 -0700 (Fri, 25 Jun 2010) | 3 lines LLVM: Multiple shader layers now executing (lazily!) most of the time. Still a bug I'm tracking down, there must be some edge case. ........ r703 | larrygritz | 2010-06-26 14:34:31 -0700 (Sat, 26 Jun 2010) | 3 lines Bug fix: insertion of new ops (like useparam) was adjusting maincodebegin when necessary, but not maincodeend. Led to odd errors with LLVM generation. ........ r704 | larrygritz | 2010-06-26 14:38:13 -0700 (Sat, 26 Jun 2010) | 5 lines LLVM: Shader layer fixes: was computing group-wide data offsets incorrectly (so param values were going into the wrong slots); now correctly execute early lazy layers only once by keeping track of which have already been run; don't bother making space for scalar float and int constants. ........ r705 | larrygritz | 2010-06-26 16:28:37 -0700 (Sat, 26 Jun 2010) | 4 lines LLVM: more work on layers -- now connections work! (small print: I think connecting arrays still doesn't work, but everything else does) ........ r706 | larrygritz | 2010-06-27 12:00:06 -0700 (Sun, 27 Jun 2010) | 2 lines LLVM: More fixes related to arrays and parameters. ........ r707 | larrygritz | 2010-06-27 12:00:53 -0700 (Sun, 27 Jun 2010) | 2 lines New reference output for some tests. ........ r708 | larrygritz | 2010-06-28 13:42:28 -0700 (Mon, 28 Jun 2010) | 5 lines LLVM: Fix the fundamental flaws in "if" and loops, as well as making parameter init ops work correctly! Got rid of bb_map in the process, and switch to generation of IR over ranges of ops, which is called recursively by the ops that jump around. ........ r709 | larrygritz | 2010-06-28 14:53:06 -0700 (Mon, 28 Jun 2010) | 4 lines LLVM: Fix corner case: if an earlier layer is run first (non-lazily, which could happen if a different earlier layer triggered it), don't overwrite its outputs with our layer's defaults. ........ r710 | larrygritz | 2010-06-28 16:55:33 -0700 (Mon, 28 Jun 2010) | 5 lines LLVM: Add ShadingContext::symbol_data to get pointer to specific symbol data for a gridpoint, correct whether the shader was executed by LLVM or the interpreter. This allows testshade to correctly dump output either way as well. ........ r711 | larrygritz | 2010-06-28 17:12:13 -0700 (Mon, 28 Jun 2010) | 4 lines LLVM bug fix: llvm_get_pointer mis-indexed when given an array index AND the variable has derivitives AND it was requested to return one of the derivs (not the main value). ........ r712 | larrygritz | 2010-06-28 17:13:06 -0700 (Mon, 28 Jun 2010) | 2 lines Single-point-shading reference output for array-derivs. ........ r713 | larrygritz | 2010-06-28 17:21:39 -0700 (Mon, 28 Jun 2010) | 2 lines Reverting the last change -- it was right before. ........ r714 | larrygritz | 2010-06-29 07:30:00 -0700 (Tue, 29 Jun 2010) | 3 lines LLVM: First stab at making texture() work -- and it does for the basic arguments! To do: optional args, should be easy to wrap up today. ........ r715 | clifford.stein | 2010-06-29 08:55:04 -0700 (Tue, 29 Jun 2010) | 3 lines adding sincos() opcode to LLVM subsystem ........ r716 | larrygritz | 2010-06-29 14:16:21 -0700 (Tue, 29 Jun 2010) | 2 lines LLVM: texture() working, all optional parameters except for "wrap." ........ r717 | larrygritz | 2010-06-29 14:40:10 -0700 (Tue, 29 Jun 2010) | 3 lines Fix buglet in ShadingContext::symbol for the LLVM case. In fact, it was this that prevented "wrap" from working, so now all texture-related tests pass. ........ r718 | clifford.stein | 2010-06-29 14:41:38 -0700 (Tue, 29 Jun 2010) | 3 lines adding getattribute() op to LLVM subsystem ........ r719 | larrygritz | 2010-06-29 15:10:52 -0700 (Tue, 29 Jun 2010) | 2 lines Clone opnoise.cpp -> noiseimpl.h to preserve history. Part 2 coming next. ........ r720 | larrygritz | 2010-06-29 15:12:35 -0700 (Tue, 29 Jun 2010) | 4 lines Split opnoise.cpp so that all the templates and inline functions that actually implement the noise functions are in noiseimpl.h, and only the interpreter opcodes are in opnoise.cpp. ........ r721 | larrygritz | 2010-06-29 15:38:15 -0700 (Tue, 29 Jun 2010) | 2 lines LLVM: cellnoise ........ r722 | larrygritz | 2010-06-29 17:22:22 -0700 (Tue, 29 Jun 2010) | 2 lines LLVM: noise, snoise ........ r723 | larrygritz | 2010-06-29 17:25:38 -0700 (Tue, 29 Jun 2010) | 5 lines Allow runtest to optionally take allow minor image difference errors. The default is still to fail if it's not an exact match, but this makes it easy to allow a small number of LSB errors, say, as we need to for noise with LLVM versus the interpreter. ........ r724 | larrygritz | 2010-06-29 23:45:09 -0700 (Tue, 29 Jun 2010) | 2 lines LLVM: pnoise, psnoise ........ r725 | clifford.stein | 2010-06-30 08:36:37 -0700 (Wed, 30 Jun 2010) | 3 lines adding LLVM implementation for gettextureinfo() ........ r726 | clifford.stein | 2010-06-30 14:05:53 -0700 (Wed, 30 Jun 2010) | 4 lines Adding surfacearea(), isshadowray() and iscameraray() to LLVM implementation. ........ r728 | clifford.stein | 2010-06-30 16:01:57 -0700 (Wed, 30 Jun 2010) | 3 lines More LLVM op-code implementations: 'area', 'calculatenormal', and 'filterwidth'. ........ r729 | clifford.stein | 2010-07-01 09:09:16 -0700 (Thu, 01 Jul 2010) | 4 lines adding logical and/or operations to LLVM ........ r730 | clifford.stein | 2010-07-01 09:16:21 -0700 (Thu, 01 Jul 2010) | 3 lines fixing assert for debug builds ........ r733 | larrygritz | 2010-07-01 10:11:18 -0700 (Thu, 01 Jul 2010) | 2 lines Update ref for single point shading results. ........ r734 | larrygritz | 2010-07-01 10:23:15 -0700 (Thu, 01 Jul 2010) | 2 lines Updated refs and other minor fixes to get more tests passing. ........ r735 | larrygritz | 2010-07-01 10:40:10 -0700 (Thu, 01 Jul 2010) | 2 lines LLVM: reflect, refract ........ r736 | larrygritz | 2010-07-01 10:42:25 -0700 (Thu, 01 Jul 2010) | 2 lines Fix ref output ........ r737 | larrygritz | 2010-07-01 11:07:54 -0700 (Thu, 01 Jul 2010) | 2 lines Fix fabs ........ r738 | larrygritz | 2010-07-01 11:13:26 -0700 (Thu, 01 Jul 2010) | 2 lines New ref output ........ r739 | larrygritz | 2010-07-01 11:17:14 -0700 (Thu, 01 Jul 2010) | 2 lines New ref outputs ........ r740 | larrygritz | 2010-07-01 11:22:30 -0700 (Thu, 01 Jul 2010) | 2 lines New ref ........ r741 | larrygritz | 2010-07-01 15:02:30 -0700 (Thu, 01 Jul 2010) | 2 lines New ref ........ r742 | larrygritz | 2010-07-01 15:33:55 -0700 (Thu, 01 Jul 2010) | 2 lines LLVM: bug fix for case when connected parameter is itself a struct. ........ r743 | larrygritz | 2010-07-01 16:26:32 -0700 (Thu, 01 Jul 2010) | 4 lines LLVM: Fix bug in printf arg pushing for arrays. Took me quite a while to see that the failure of struct-with-array was actually a printf bug and nothing wrong with the actual handling of arrays as struct members! ........ r744 | aconty | 2010-07-02 11:36:08 -0700 (Fri, 02 Jul 2010) | 1 line GEP fix in load_component_value ........ r746 | clifford.stein | 2010-07-06 11:19:30 -0700 (Tue, 06 Jul 2010) | 3 lines adding Spline op-code to LLVM subsystem ........ r747 | aconty | 2010-07-06 11:25:05 -0700 (Tue, 06 Jul 2010) | 1 line Allow for custom llvm build in the makefiles ........ r749 | larrygritz | 2010-07-06 14:28:12 -0700 (Tue, 06 Jul 2010) | 2 lines Left these out of the last merge. ........ r750 | larrygritz | 2010-07-06 14:40:38 -0700 (Tue, 06 Jul 2010) | 2 lines One more I forgot. Sorry. ........ r751 | larrygritz | 2010-07-06 16:15:52 -0700 (Tue, 06 Jul 2010) | 2 lines LLVM: setmessage/getmessage ........ r752 | clifford.stein | 2010-07-06 16:16:01 -0700 (Tue, 06 Jul 2010) | 3 lines adding fresnel op to stdosl.h ........ r753 | larrygritz | 2010-07-06 16:17:16 -0700 (Tue, 06 Jul 2010) | 2 lines Get rid of comments about closure functions that don't exist anymore. ........ r755 | aconty | 2010-07-09 17:39:05 -0700 (Fri, 09 Jul 2010) | 3 lines Added llvm codegen for closure creation Also several auxiliary things fix by Larry ........ r756 | larrygritz | 2010-07-09 23:17:01 -0700 (Fri, 09 Jul 2010) | 3 lines LLVM: fix printf for closures (was printing 3 times, since "color" has 3 components, oops). ........ r757 | larrygritz | 2010-07-10 13:15:51 -0700 (Sat, 10 Jul 2010) | 2 lines LLVM: Fixes to endswith and regex routines. ........ r758 | larrygritz | 2010-07-10 13:16:10 -0700 (Sat, 10 Jul 2010) | 2 lines Update testsuite/closure ref output ........ r759 | larrygritz | 2010-07-10 13:18:53 -0700 (Sat, 10 Jul 2010) | 2 lines Update ref output now that closures work. ........ r760 | larrygritz | 2010-07-10 13:22:31 -0700 (Sat, 10 Jul 2010) | 2 lines Update ref output ........ r761 | larrygritz | 2010-07-12 17:52:04 -0700 (Mon, 12 Jul 2010) | 4 lines LLVM: Rewrite min/max implementation to avoid crashes and asserts that I'm pretty sure are LLVM errors. Spooky, but this approach is just as good and avoids the dragons. ........ r762 | larrygritz | 2010-07-13 12:17:41 -0700 (Tue, 13 Jul 2010) | 2 lines Fix bugs in LLVM implementation of length, distance. ........ r763 | larrygritz | 2010-07-13 12:29:20 -0700 (Tue, 13 Jul 2010) | 2 lines New ref output ........ r764 | larrygritz | 2010-07-13 15:40:53 -0700 (Tue, 13 Jul 2010) | 2 lines LLVM: get color ctr with color space name working. ........ r765 | larrygritz | 2010-07-13 17:54:08 -0700 (Tue, 13 Jul 2010) | 3 lines LLVM: bug squashing -- we were leaving connected closures in an uninitialized state. ........ r766 | larrygritz | 2010-07-13 17:54:38 -0700 (Tue, 13 Jul 2010) | 2 lines New ref image and minor printf (shader bug!) fixes for struct-layers test. ........ r767 | larrygritz | 2010-07-14 14:06:01 -0700 (Wed, 14 Jul 2010) | 2 lines Bug fix: be robust to client not initializing time, dtime globals. ........ r768 | larrygritz | 2010-07-14 14:06:26 -0700 (Wed, 14 Jul 2010) | 3 lines Bug fix: Don't allocate new space for Ci -- it's already in the caller's globals! ........ r769 | larrygritz | 2010-07-14 14:48:03 -0700 (Wed, 14 Jul 2010) | 3 lines LLVM code generation bug fixes: problem with a context generating code for more than one group; problems with calculatenormal. ........ r770 | larrygritz | 2010-07-15 09:40:32 -0700 (Thu, 15 Jul 2010) | 6 lines LLVM bug fix: we were allowing the JIT to happen when the function was called, and that got us into race condition trouble with multiple threads. Rearranged now to force the JIT to occur right when we generate the LLVM IR (i.e. while we still have a lock), and this also simplifies by only having to store and return a real function pointer, rather than an llvm::Function*. ........ r771 | larrygritz | 2010-07-15 15:09:46 -0700 (Thu, 15 Jul 2010) | 2 lines Only some globals may have derivatives (not N, for example). ........ r772 | larrygritz | 2010-07-15 17:52:46 -0700 (Thu, 15 Jul 2010) | 2 lines Not all incoming shader globals are non-NULL; be careful about dereferencing. ........ r773 | larrygritz | 2010-07-15 17:53:43 -0700 (Thu, 15 Jul 2010) | 5 lines Define LLVM_SUPPORT in oslconfig.h so that the client app can have appropriate ifdefs to support new APIs for extracting output vars. This is temporary and will be removed after we merge the LLVM branc back into the trunk. ........ r774 | larrygritz | 2010-07-16 11:52:38 -0700 (Fri, 16 Jul 2010) | 2 lines Need to copy P, dPd[xy], and N out after displacement. ........ r775 | solomon.boulos | 2010-07-16 16:22:50 -0700 (Fri, 16 Jul 2010) | 8 lines src/liboslexec/shadingsys.cpp Properly initialize the llvm context to NULL. Also delete the ExecutionEngine on ShadingSystem shutdown which should also remove the module (EE owns Module apparently), while leaving a note about needing to call llvm_shutdown(). ........ r776 | larrygritz | 2010-07-16 17:12:04 -0700 (Fri, 16 Jul 2010) | 3 lines LLVM: handle interpolated user data. (Not all cases seem to work, there's some adjustment coming, I'm sure.) ........ r777 | ckulla@gmail.com | 2010-07-16 17:39:37 -0700 (Fri, 16 Jul 2010) | 1 line Implement missing get_attribute for colors ........ r778 | larrygritz | 2010-07-16 17:53:06 -0700 (Fri, 16 Jul 2010) | 2 lines More userdata fixes. (A bit wasteful, but we'll come back to it.) ........ r779 | ckulla@gmail.com | 2010-07-16 17:54:42 -0700 (Fri, 16 Jul 2010) | 1 line Fix order of tests to avoid calling is_float() on A if it might be a closure ........ r780 | ckulla@gmail.com | 2010-07-16 19:18:33 -0700 (Fri, 16 Jul 2010) | 1 line Setup the symbols in two passes: first constants/locals/temp, then shader params. The shader parameters may depend on values that appear later in the list of symbols because of init ops. ........ r781 | larrygritz | 2010-07-17 16:53:56 -0700 (Sat, 17 Jul 2010) | 3 lines LLVM: Bug fixes for subtle ordering problems of parameters, init ops, and layer connections. ........ r782 | larrygritz | 2010-07-19 15:01:29 -0700 (Mon, 19 Jul 2010) | 6 lines Bug fix in oslc -- was using the wrong criteria for whether to force a ___main___ code marker. The previous logic could fail if there was a param with init ops, but no ops in the main shader body. This would lead to NO ___main___ being emitted, which could lead to a (rare, subtle) cascade of errors that could include certain ops being doubly executed! ........ r783 | larrygritz | 2010-07-19 16:48:02 -0700 (Mon, 19 Jul 2010) | 3 lines LLVM bug fix -- was incorrectly pointing to the potentially wrong basic block when adding the main code. ........ r784 | larrygritz | 2010-07-21 00:11:18 -0700 (Wed, 21 Jul 2010) | 11 lines Several important LLVM fixes: * Need to allot slots for all layers' closure params up front (in the group entry point) to avoid lazy layer evaluation trying to write results into later layer's param that hasn't yet been initialized. * Closure labels and sidedness handling needed to be changed to accommodate production shaders whose label and sidedness values aren't easily-discerned constants. * Removed incorrect / obsolete assertions. * Removed some debugging printfs no longer needed. * Start toying with optimization pass management. ........ git-svn-id: https://openshadinglanguage.googlecode.com/svn/trunk@786 a3683778-fedd-11de-87c3-653bb6514e15 |
||
|
|
22b5b8baf8 |
In all the testsuite run.py scripts, change exit() to sys.exit(). Older
versions of Python crashed the old way. Also eliminate redundant (but surely harmless) imports of sys. git-svn-id: https://openshadinglanguage.googlecode.com/svn/trunk@275 a3683778-fedd-11de-87c3-653bb6514e15 |
||
|
|
8a60cd8511 |
Beef up test to prove that triple constructors with coord spaces work for
object space and for arbitrarily-named spaces, also that nonuniform scales work properly and show a difference between vector and normal transformation. git-svn-id: https://openshadinglanguage.googlecode.com/svn/trunk@165 a3683778-fedd-11de-87c3-653bb6514e15 |
||
|
|
b9292d482d |
Add renderer services -- retrieve matrices for named transformations.
This is used by the triple constructors that take space names, initial implementation of which is included in this change. git-svn-id: https://openshadinglanguage.googlecode.com/svn/trunk@163 a3683778-fedd-11de-87c3-653bb6514e15 |
||
|
|
864ad12677 |
Implement constructors for point, vector, normal. At least, the 3-float
versions. The ones with space names are still not finished. git-svn-id: https://openshadinglanguage.googlecode.com/svn/trunk@137 a3683778-fedd-11de-87c3-653bb6514e15 |