Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | nir: Validate all lists in the validator | Jason Ekstrand | 2015-01-15 | 1 | -0/+14 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | glsl/list: Fix the exec_list_validate function | Jason Ekstrand | 2015-01-15 | 1 | -3/+1 | |
| | | | | | | | | | | Some time while refactoring things to make it look nicer before pushing to master, I completely broke the function. This fixes it to be correct. Just goes to show you why you souldn't push code that has no users yet... Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Connor Abbott <cwabbott0@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com> | |||||
* | i965/fs_nir: Do retyping for ALU srouces in get_nir_alu_src | Jason Ekstrand | 2015-01-15 | 1 | -15/+8 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a better out-of-SSA pass | Jason Ekstrand | 2015-01-15 | 1 | -73/+716 | |
| | | | | | | | | | This commit rewrites the out-of-SSA pass to not be nearly as naieve. It's based on "Revisiting Out-of-SSA Translation for Correctness, Code Quality, and Efficiency" by Boissinot et. al. It should be fairly close to state-of-the art. Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a function for comparing two sources | Jason Ekstrand | 2015-01-15 | 2 | -0/+29 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a parallel copy instruction type | Jason Ekstrand | 2015-01-15 | 3 | -1/+88 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a function for rewriting all the uses of a SSA def | Jason Ekstrand | 2015-01-15 | 2 | -0/+55 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Automatically handle SSA uses when an instruction is inserted | Jason Ekstrand | 2015-01-15 | 2 | -26/+6 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add an initialization function for SSA definitions | Jason Ekstrand | 2015-01-15 | 3 | -21/+25 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add an SSA-based liveness analysis pass. | Jason Ekstrand | 2015-01-15 | 5 | -0/+297 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: set reg_alloc and ssa_alloc when indexing registers and SSA values | Jason Ekstrand | 2015-01-15 | 2 | -2/+5 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a function to detect if a block is immediately followed by an if | Jason Ekstrand | 2015-01-15 | 4 | -13/+30 | |
| | | | | | | | | Since we don't actually have an "if" instruction, this is a very common pattern when iterating over instructions. This adds a helper function for it to make things a little less painful. Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a foreach_block_reverse function | Jason Ekstrand | 2015-01-15 | 2 | -25/+56 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir/foreach_block: Return false if the callback on the last block fails | Jason Ekstrand | 2015-01-15 | 1 | -3/+1 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a basic metadata management system | Jason Ekstrand | 2015-01-15 | 5 | -17/+82 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir/lower_variables_scalar: Silence a compiler warning | Jason Ekstrand | 2015-01-15 | 1 | -0/+2 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs_nir: Convert the shader to/from SSA | Jason Ekstrand | 2015-01-15 | 1 | -0/+9 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a lower_vec_to_movs pass | Jason Ekstrand | 2015-01-15 | 3 | -0/+99 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add a naieve from-SSA pass | Jason Ekstrand | 2015-01-15 | 3 | -0/+195 | |
| | | | | | | | This pass is kind of stupidly implemented but it should be enough to get us up and going. We probably want something better that doesn't generate all of the redundant moves eventually. However, the i965 backend should be able to handle the movs, so I'm not too worried about it in the short term. | |||||
* | i965/fs_nir: Don't duplicate emit_general_interpolation | Jason Ekstrand | 2015-01-15 | 2 | -110/+4 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs: Don't take an ir_variable for emit_general_interpolation | Jason Ekstrand | 2015-01-15 | 4 | -35/+41 | |
| | | | | | | | | | | Previously, emit_general_interpolation took an ir_variable and pulled the information it needed from that. This meant that in fs_fp, we were constructing a dummy ir_variable just to pass into it. This commit makes emit_general_interpolation take only the information it needs and gets rid of the fs_fp cruft. Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add intrinsics to do alternate interpolation on inputs | Jason Ekstrand | 2015-01-15 | 1 | -17/+35 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add NIR_TRUE and NIR_FALSE constants and use them for boolean immediates | Jason Ekstrand | 2015-01-15 | 2 | -4/+19 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs_nir: Add atomic counters support | Jason Ekstrand | 2015-01-15 | 1 | -3/+22 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir/lower_atomics: Multiply array offsets by ATOMIC_COUNTER_SIZE | Jason Ekstrand | 2015-01-15 | 1 | -1/+17 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs_nir: Handle coarse/fine derivatives | Jason Ekstrand | 2015-01-15 | 1 | -0/+18 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir/glsl: Add support for coarse and fine derivatives | Jason Ekstrand | 2015-01-15 | 1 | -2/+6 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir: Add fine and coarse derivative opcodes | Jason Ekstrand | 2015-01-15 | 1 | -0/+4 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | nir/glsl: Add support for saturate | Jason Ekstrand | 2015-01-15 | 1 | -0/+5 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs_nir: Add support for sample_pos and sample_id | Jason Ekstrand | 2015-01-15 | 1 | -3/+14 | |
| | ||||||
* | Fix up varying pull constants | Jason Ekstrand | 2015-01-15 | 1 | -1/+1 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | Fix what I think are a few NIR typos | Jason Ekstrand | 2015-01-15 | 1 | -3/+3 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs_nir: Use the correct texture offset immediate | Jason Ekstrand | 2015-01-15 | 1 | -4/+3 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs_nir: Use the correct types for texture inputs | Jason Ekstrand | 2015-01-15 | 1 | -7/+25 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs_nir: Make the sampler register always unsigned | Jason Ekstrand | 2015-01-15 | 1 | -2/+2 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs: Only use nir for 8-wide non-fast-clear shaders. | Jason Ekstrand | 2015-01-15 | 1 | -1/+2 | |
| | | | | Reviewed-by: Connor Abbott <cwabbott0@gmail.com> | |||||
* | i965/fs: add a NIR frontend | Connor Abbott | 2015-01-15 | 5 | -4/+1756 | |
| | | | | | | | | | | This is similar to the GLSL IR frontend, except consuming NIR. This lets us test NIR as part of an actual compiler. v2: Jason Ekstrand <jason.ekstrand@intel.com>: Make brw_fs_nir build again Only use NIR of INTEL_USE_NIR is set whitespace fixes | |||||
* | i965/fs: Don't pass through the coordinate type | Connor Abbott | 2015-01-15 | 3 | -22/+21 | |
| | | | | All we really need is the number of components. | |||||
* | i965/fs: make emit_fragcoord_interpolation() not take an ir_variable | Connor Abbott | 2015-01-15 | 4 | -9/+14 | |
| | ||||||
* | nir: add an SSA-based dead code elimination pass | Connor Abbott | 2015-01-15 | 3 | -0/+191 | |
| | | | | | v2: Jason Ekstrand <jason.ekstrand@intel.com>: whitespace fixes | |||||
* | nir: add an SSA-based copy propagation pass | Connor Abbott | 2015-01-15 | 3 | -0/+317 | |
| | ||||||
* | nir: add a pass to convert to SSA | Connor Abbott | 2015-01-15 | 3 | -0/+686 | |
| | | | | | v2: Jason Ekstrand <jason.ekstrand@intel.com>: whitespace fixes | |||||
* | nir: calculate dominance information | Connor Abbott | 2015-01-15 | 4 | -1/+337 | |
| | ||||||
* | nir: add an optimization to turn global registers into local registers | Connor Abbott | 2015-01-15 | 3 | -0/+106 | |
| | | | | | After linking and inlining, this allows us to convert these registers into SSA values and optimise more code. | |||||
* | nir: add a pass to lower atomics | Connor Abbott | 2015-01-15 | 3 | -0/+130 | |
| | | | | | v2: Jason Ekstrand <jason.ekstrand@intel.com> whitespace fixes | |||||
* | nir: add a pass to lower system value reads | Connor Abbott | 2015-01-15 | 3 | -0/+109 | |
| | | | | | v2: Jason Ekstrand <jason.ekstrand@intel.com>: whitespace fixes | |||||
* | nir: add a pass to lower sampler instructions | Connor Abbott | 2015-01-15 | 3 | -0/+176 | |
| | ||||||
* | nir: add a pass to remove unused variables | Connor Abbott | 2015-01-15 | 3 | -0/+141 | |
| | | | | | | | | After we lower variables, we want to delete them in order to free up some memory. v2: Jason Ekstrand <jason.ekstrand@intel.com>: whitespace fixes | |||||
* | nir: keep track of the number of input, output, and uniform slots | Connor Abbott | 2015-01-15 | 3 | -4/+16 | |
| | ||||||
* | nir: add a pass to lower variables for scalar backends | Connor Abbott | 2015-01-15 | 3 | -0/+1237 | |
| |