Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | nv50: enable shader watchdog timer | Christoph Bumiller | 2012-04-24 | 1 | -0/+5 |
| | |||||
* | gallium drivers: report that user vertex buffers are supported | Marek Olšák | 2012-04-24 | 1 | -0/+2 |
| | |||||
* | nv50,nvc0: prevent multiple flushes when user spins on get_query_result | Christoph Bumiller | 2012-04-19 | 1 | -1/+6 |
| | |||||
* | nv50/ir/opt: swap VP inputs to first source where possible | Christoph Bumiller | 2012-04-19 | 1 | -0/+17 |
| | |||||
* | nv50: specify location of UCPs to code generator | Christoph Bumiller | 2012-04-17 | 1 | -0/+2 |
| | | | | | Was made configurable in e44089b2f79aa2dcaacf348911433d1e21235c0c for Kepler but forgot to update nv50. | ||||
* | nv50: use correct semantic map value for undefined PointSize output | Christoph Bumiller | 2012-04-15 | 1 | -7/+8 |
| | |||||
* | nvc0: add initial support for nve4+ (Kepler) chipsets | Christoph Bumiller | 2012-04-15 | 9 | -9/+26 |
| | | | | | | | | | Most things that work on Fermi should work on Kepler too. There are a few performance optimizations left to do, like better placement of texture barriers and adding scheduling data to the shader instructions (without them, a thread group will be masked for 32 cycles after each single instruction issue). | ||||
* | nv50/ir/opt: extend handleCVT for nv50's SET u32 to f32 chain | Christoph Bumiller | 2012-04-14 | 1 | -1/+17 |
| | |||||
* | nv50/ir: print interpolation mode | Christoph Bumiller | 2012-04-14 | 1 | -0/+22 |
| | |||||
* | nv50: update FP linkage state on one/two-sided lighting switch | Christoph Bumiller | 2012-04-14 | 2 | -1/+12 |
| | |||||
* | nv50: delete old shader compiler files | Christoph Bumiller | 2012-04-14 | 7 | -7252/+0 |
| | |||||
* | nv50: hook up to new shader code generator | Christoph Bumiller | 2012-04-14 | 10 | -664/+262 |
| | |||||
* | nv50/ir: import nv50 target | Christoph Bumiller | 2012-04-14 | 12 | -219/+2475 |
| | |||||
* | nv50/ir: fix off-by-ones in CSE and nvc0 insnCanLoad | Christoph Bumiller | 2012-04-14 | 1 | -1/+1 |
| | |||||
* | nv50/ir/tgsi: generate UCPs with actual outputs instead of SVs | Christoph Bumiller | 2012-04-14 | 1 | -4/+20 |
| | | | | | gl_ClipDistance is treated the same way, this is just nicer and easier assign slots for them on nv50. | ||||
* | nv50/ir: Fix type of the instruction created by mkCmp() for dst in FILE_FLAGS. | Francisco Jerez | 2012-04-14 | 1 | -1/+2 |
| | |||||
* | nv50/ir: fix Instruction::isCommutationLegal for WAW | Christoph Bumiller | 2012-04-14 | 1 | -4/+14 |
| | |||||
* | nv50/ir/opt: Add isOptSupported() check in logical arith optimization. | Francisco Jerez | 2012-04-14 | 1 | -8/+5 |
| | |||||
* | nv50/ir/ra: Fix live set propagation in the secondary passes of buildLiveSets(). | Francisco Jerez | 2012-04-14 | 1 | -3/+3 |
| | |||||
* | nv50/ir/opt: don't regard OP_WRSV as dead code | Christoph Bumiller | 2012-04-14 | 1 | -1/+2 |
| | |||||
* | nv50/ir: add isUniform query to Values | Christoph Bumiller | 2012-04-14 | 2 | -0/+24 |
| | |||||
* | nv50/ir: rewrite the register allocator as GCRA, with spilling | Christoph Bumiller | 2012-04-14 | 10 | -414/+1473 |
| | | | | | This is more flexible than the linear scan, and we don't need the separate allocation pass for constrained values anymore. | ||||
* | nv50/ir/tgsi: only export x-component of PSIZE | Christoph Bumiller | 2012-04-14 | 1 | -1/+5 |
| | |||||
* | nv50/ir: Fix BuildUtil::mkSelect and mkClobber | Francisco Jerez | 2012-04-14 | 1 | -6/+2 |
| | |||||
* | nv50/ir: fix reg file conflicts with undefined-value placeholders | Christoph Bumiller | 2012-04-14 | 1 | -10/+19 |
| | |||||
* | nv50/ir/opt: silence warning (int < Elements() signedness) | Christoph Bumiller | 2012-04-14 | 1 | -1/+1 |
| | |||||
* | nv50/ir/opt: fix combineSt access to wrong instruction | Christoph Bumiller | 2012-04-14 | 1 | -1/+1 |
| | |||||
* | nv50/ir/opt: another insn NULL check in phi elimination | Christoph Bumiller | 2012-04-14 | 1 | -0/+2 |
| | |||||
* | nv50/ir/ssa: Take into account function inputs and outputs. | Francisco Jerez | 2012-04-14 | 1 | -2/+30 |
| | |||||
* | nv50/ir: Clean up before calculating instruction ordering for a new function. | Francisco Jerez | 2012-04-14 | 2 | -0/+16 |
| | |||||
* | nv50/ir/ra: Allocate registers for function arguments. | Francisco Jerez | 2012-04-14 | 1 | -0/+6 |
| | |||||
* | nv50/ir: Take into account function args in the live range calculation code. | Francisco Jerez | 2012-04-14 | 2 | -3/+28 |
| | |||||
* | nv50/ir/ra: Use matching physical regs for function args in caller and callee. | Francisco Jerez | 2012-04-14 | 1 | -6/+83 |
| | |||||
* | nv50/ir/tgsi: Infer function inputs/outputs. | Francisco Jerez | 2012-04-14 | 2 | -0/+87 |
| | | | | | | | Edit: Don't do it for the main function of (graphics) shaders, its inputs and outputs always go through TGSI_FILE_INPUT/OUTPUT. This prevents all TEMPs from counting as live out and reduces register pressure. | ||||
* | nv50/ir/tgsi: Replace the inlining logic with proper function calls. | Francisco Jerez | 2012-04-14 | 5 | -68/+82 |
| | |||||
* | nv50/ir: Decouple DataArray from the dictionary that maps locations to values. | Francisco Jerez | 2012-04-14 | 4 | -223/+236 |
| | | | | | | | | | | | The point is to keep an independent dictionary for each function. The array that was being used as dictionary has been converted into a "bimap" for two different reasons: first, because having an almost empty instance of an array with as many entries as registers there are in the program, once for every function, would be wasteful, and second, because we want to be able to map Value pointers back to locations at some point. | ||||
* | nv50/ir/opt: don't delete instruction in removeFlow before its last use | Christoph Bumiller | 2012-04-14 | 1 | -2/+2 |
| | |||||
* | nv50/ir/opt: check BB equality before instruction ordering in CSE | Christoph Bumiller | 2012-04-14 | 1 | -1/+1 |
| | |||||
* | nv50/ir/opt: don't copy-propagate cond MOVs or MOVs to other reg files | Christoph Bumiller | 2012-04-14 | 1 | -0/+4 |
| | | | | | We've never encountered the latter on nvc0, but on nv50 we have moves between GPRs and address regs. | ||||
* | nv50/ir/opt: don't replace conditional definitions in CSE | Christoph Bumiller | 2012-04-14 | 2 | -0/+10 |
| | |||||
* | nv50/ir/opt: Update the symbol size when combining loads and stores. | Francisco Jerez | 2012-04-14 | 1 | -0/+2 |
| | |||||
* | nv50/ir: initialize FlowInstruction::builtin | Christoph Bumiller | 2012-04-14 | 1 | -1/+1 |
| | |||||
* | nv50/ir/opt: Fix for function calls. | Francisco Jerez | 2012-04-14 | 1 | -2/+3 |
| | |||||
* | nv50/ir: Build a "symbol" table with the binary offsets of each function. | Francisco Jerez | 2012-04-14 | 6 | -5/+43 |
| | |||||
* | nv50/ir: Add support for removing functions from a program. | Francisco Jerez | 2012-04-14 | 2 | -0/+3 |
| | |||||
* | nv50/ir: Scan program functions in DFS-postorder. | Francisco Jerez | 2012-04-14 | 5 | -7/+16 |
| | | | | | | The reason is that several passes (regalloc, function argument binding, inlining) are going to require the callees of a function to be processed before the caller. | ||||
* | nv50/ir: Deal with graph iterators using RAII. | Francisco Jerez | 2012-04-14 | 6 | -70/+43 |
| | |||||
* | nv50/ir: Add convenience method for calculating the live sets of a function. | Francisco Jerez | 2012-04-14 | 3 | -7/+12 |
| | |||||
* | nv50/ir: Add support code for calculating the clobber set of a BB or function. | Francisco Jerez | 2012-04-14 | 3 | -0/+34 |
| | |||||
* | nv50/ir/opt: Don't lose modifiers during constant folding. | Francisco Jerez | 2012-04-14 | 3 | -72/+92 |
| |