Christoph Bumiller
1ce9205f79
targets/xvmc-nouveau: fix accidental hardcoded include path
...
5b0cd37324 wasn't meant to be pushed.
2012-04-15 16:40:53 +02:00
Christoph Bumiller
e55c276255
nv50: use correct semantic map value for undefined PointSize output
2012-04-15 16:30:13 +02:00
Christoph Bumiller
5b0cd37324
targets/xvmc-nouveau: add libdrm include path
2012-04-15 16:26:21 +02:00
Ben Skeggs
d37f90f131
nv30: init sample_mask to some default value at context creation time
...
Fixes demos/lodbias.
2012-04-15 22:18:02 +10:00
Ben Skeggs
29128e5ee2
nv30: fix some sifm transfer issues
2012-04-15 21:56:20 +10:00
José Fonseca
abfe759172
scons: Fix egl-static build due to conflicting symbols.
...
radeonsi and r600 have duplicate symbols, so it's not possible to
statically link both. Remove the newcomer, radeonsi, until duplicate
symbols are fixed.
2012-04-15 11:32:21 +01:00
Christoph Bumiller
e44089b2f7
nvc0: add initial support for nve4+ (Kepler) chipsets
...
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).
2012-04-15 00:08:51 +02:00
Tom Stellard
69a921892d
radeonsi: s/DUAL_SOURCE_BLEND/MAX_DUAL_SOURCE_RENDER_TARGETS/
...
Fixes build broken by commit 0d29fb017b
2012-04-14 17:40:35 -04:00
Christoph Bumiller
a6fcf14c23
nv50/ir/opt: extend handleCVT for nv50's SET u32 to f32 chain
2012-04-14 21:54:04 +02:00
Christoph Bumiller
a9f22b91e5
nv50/ir: print interpolation mode
2012-04-14 21:54:04 +02:00
Christoph Bumiller
dcc91fc5d3
nv50: update FP linkage state on one/two-sided lighting switch
2012-04-14 21:54:04 +02:00
Christoph Bumiller
df982399cc
nv50: delete old shader compiler files
2012-04-14 21:54:04 +02:00
Christoph Bumiller
0bbf1659df
nv50: hook up to new shader code generator
2012-04-14 21:54:04 +02:00
Christoph Bumiller
322bc7ed68
nv50/ir: import nv50 target
2012-04-14 21:54:04 +02:00
Christoph Bumiller
15ce0f76e2
nv50/ir: fix off-by-ones in CSE and nvc0 insnCanLoad
2012-04-14 21:54:04 +02:00
Christoph Bumiller
ce04221081
nv50/ir/tgsi: generate UCPs with actual outputs instead of SVs
...
gl_ClipDistance is treated the same way, this is just nicer and
easier assign slots for them on nv50.
2012-04-14 21:54:04 +02:00
Francisco Jerez
d07e4421ab
nv50/ir: Fix type of the instruction created by mkCmp() for dst in FILE_FLAGS.
2012-04-14 21:54:04 +02:00
Christoph Bumiller
f8c3212cbb
nv50/ir: fix Instruction::isCommutationLegal for WAW
2012-04-14 21:54:03 +02:00
Francisco Jerez
93508b5b0d
nv50/ir/opt: Add isOptSupported() check in logical arith optimization.
2012-04-14 21:54:03 +02:00
Francisco Jerez
f4dbdcbfcf
nv50/ir/ra: Fix live set propagation in the secondary passes of buildLiveSets().
2012-04-14 21:54:03 +02:00
Christoph Bumiller
2fc014f8c0
nv50/ir/opt: don't regard OP_WRSV as dead code
2012-04-14 21:54:03 +02:00
Christoph Bumiller
a765d7880f
nv50/ir: add isUniform query to Values
2012-04-14 21:54:03 +02:00
Christoph Bumiller
e43a3a66a9
nv50/ir: rewrite the register allocator as GCRA, with spilling
...
This is more flexible than the linear scan, and we don't need the
separate allocation pass for constrained values anymore.
2012-04-14 21:54:03 +02:00
Christoph Bumiller
99319328d4
nv50/ir/tgsi: only export x-component of PSIZE
2012-04-14 21:54:03 +02:00
Christoph Bumiller
12a2f5121d
nvc0: fix emission of 3rd src in SET_AND,OR,XOR
2012-04-14 21:54:03 +02:00
Francisco Jerez
f01efba60a
nv50/ir: Fix BuildUtil::mkSelect and mkClobber
2012-04-14 21:54:03 +02:00
Christoph Bumiller
054fab5b48
nv50/ir: fix reg file conflicts with undefined-value placeholders
2012-04-14 21:54:03 +02:00
Christoph Bumiller
51327a2df2
nv50/ir/opt: silence warning (int < Elements() signedness)
2012-04-14 21:54:03 +02:00
Christoph Bumiller
ef7f9f68cf
nv50/ir/opt: fix combineSt access to wrong instruction
2012-04-14 21:54:03 +02:00
Christoph Bumiller
bb9c15bac4
nv50/ir/opt: another insn NULL check in phi elimination
2012-04-14 21:54:03 +02:00
Francisco Jerez
4ece0dbd2f
nv50/ir/ssa: Take into account function inputs and outputs.
2012-04-14 21:54:02 +02:00
Francisco Jerez
4a44f94caf
nv50/ir: Clean up before calculating instruction ordering for a new function.
2012-04-14 21:54:02 +02:00
Francisco Jerez
a539785187
nv50/ir/ra: Allocate registers for function arguments.
2012-04-14 21:54:02 +02:00
Francisco Jerez
530ff61ba7
nv50/ir: Take into account function args in the live range calculation code.
2012-04-14 21:54:02 +02:00
Francisco Jerez
ed255dbae2
nv50/ir/ra: Use matching physical regs for function args in caller and callee.
2012-04-14 21:54:02 +02:00
Francisco Jerez
a3dd45e1c2
nv50/ir/tgsi: Infer function inputs/outputs.
...
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.
2012-04-14 21:54:02 +02:00
Francisco Jerez
9bb36d54a2
nv50/ir/tgsi: Replace the inlining logic with proper function calls.
2012-04-14 21:54:02 +02:00
Francisco Jerez
56d40aa51b
nv50/ir: Decouple DataArray from the dictionary that maps locations to values.
...
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.
2012-04-14 21:54:02 +02:00
Christoph Bumiller
d41f293bf0
nv50/ir/opt: don't delete instruction in removeFlow before its last use
2012-04-14 21:54:02 +02:00
Christoph Bumiller
be161e66d6
nv50/ir/opt: check BB equality before instruction ordering in CSE
2012-04-14 21:54:02 +02:00
Christoph Bumiller
44e84d6f16
nv50/ir/opt: don't copy-propagate cond MOVs or MOVs to other reg files
...
We've never encountered the latter on nvc0, but on nv50 we have moves
between GPRs and address regs.
2012-04-14 21:54:02 +02:00
Christoph Bumiller
ca1fc2b864
nv50/ir/opt: don't replace conditional definitions in CSE
2012-04-14 21:54:02 +02:00
Francisco Jerez
90f0fac655
nv50/ir/opt: Update the symbol size when combining loads and stores.
2012-04-14 21:54:02 +02:00
Christoph Bumiller
5df92c81c3
nv50/ir: initialize FlowInstruction::builtin
2012-04-14 21:54:01 +02:00
Francisco Jerez
1e95794173
nv50/ir/opt: Fix for function calls.
2012-04-14 21:54:01 +02:00
Francisco Jerez
98116cc3dc
nv50/ir: Build a "symbol" table with the binary offsets of each function.
2012-04-14 21:54:01 +02:00
Francisco Jerez
5e4b2a1a47
nv50/ir: Add support for removing functions from a program.
2012-04-14 21:54:01 +02:00
Francisco Jerez
d32ebb8c30
nv50/ir: Scan program functions in DFS-postorder.
...
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.
2012-04-14 21:54:01 +02:00
Francisco Jerez
78de8c8ab5
nv50/ir: Deal with graph iterators using RAII.
2012-04-14 21:54:01 +02:00
Francisco Jerez
898b0981b6
nv50/ir: Add convenience method for calculating the live sets of a function.
2012-04-14 21:54:01 +02:00