Age | Commit message (Collapse) | Author |
|
These haven't been used by the mesa state tracker since the
conversion to tgsi_ureg, and it seems that none of the
other state trackers are using it either.
This helps simplify one of the biggest suprises when starting off with
TGSI shaders.
|
|
Set the same bits as for linear filtering (in addition
to max anisotropy), and 2 unknown bits I've seen set.
|
|
|
|
Allow indirect uniform access and increase the
limit on parameters from 128 to 512.
|
|
|
|
|
|
We only have a per nv50_reg negation flag, if an
nv50_reg is used more than once in a TGSI op with
different sign modes, we'd generate wrong code.
We probably can't do much better without more
invasive changes.
|
|
|
|
Requesting a new real buffer from the kernel and
copying all the data is wasteful e.g. if only a
few (but widely spread) vertices are accessed.
|
|
Add proper flushes for TIC and TSC and remove
the costly 2D.0110 flush in nv50_flush.
Correct TIC and TSC bo sizes.
|
|
Similar to nv40.
|
|
|
|
|
|
Tested with progs/demos/multiarb.
|
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
Always test for PIPE_TRANSFER_READ/WRITE using the bit-wise and operator, and
add a pipe_transfer_buffer_flags() helper for getting the buffer usage flags
corresponding to them.
|
|
If you e.g. only need alpha, it ends up in the first reg,
not the last, as it would when reading rgb too.
|
|
Until now, only primitives wholly outside the view volume
were not drawn.
This was only visibile when using a viewport smaller than
the window size, naturally.
|
|
|
|
Separated the integer rounding mode flag for cvt.
|
|
There's a good chance a loop won't execute correctly
though since our TEMP allocation assumes programs to
be executed linearly. Will fix later.
|
|
|
|
No longer used. S3TC support is queried via
pipe_screen::is_format_supported.
|
|
- And reduce RING_SPACE to 2, instead of 3.
|
|
|
|
When swapping sources 0 and 1, EQ of course does *not*
become NE, etc.
Introduced in 2b963f5c723401aa2646bd48eefe065cd335e280.
|
|
Allocation is unnecessary since all uniforms are
uploaded on every constant buffer change anyway.
|
|
|
|
|
|
|
|
This moves construction of the mapping between VP outputs
and FP inputs into validation.
The map also contains slots for special outputs like clip
distance and point size, so we need to at least merge the
VP related and FP related parts on validation if we want
to support those.
Now we match every single FP input component with results
from the VP and leave those not read out of the map, or
replace those not written by 0 (xyz) or 1 (w).
The bitmap indicating linear interpolants is also filled,
and flat FP inputs are mapped in only after non-flat ones,
as is required.
Furthermore, we can save some space by only fetching VP
attrs we actually use, and avoid wasting any output regs
because of TGSI using less than 4 components.
|
|
Make use of tgsi_shader_info to determine how many nv50_regs we
need to allocate, whether program uses KIL, or writes DEPR.
|
|
|
|
|
|
|
|
|
|
Makes some opcode cases nicer and might reduce the total
nr of TEMPs required, or save some MOVs.
|
|
|
|
We're going to try to reorder the scalar ops of a vector instr
to accomodate swizzles that would otherwise require us to emit
to an additional TEMP first (like MOV R0.xy, R0.zx).
|
|
Extend its usage to avoiding e.g. emission of negation
instructions in tx_insn for sources we don't need.
|
|
|
|
|
|
Before this, just the perspective divide bit was moved in
convert_to_long of the load interpolant instruction.
|
|
The VTX_ATTR_3/2/1F methods also had size 4 ...
a stupid copy/paste error.
|
|
We've been emitting the same two indices over and over
without incrementing map.
|
|
|
|
The winsys once again has to know about textures it seems, so we need a
common representation between all our pipe drivers to store some
information the winsys will need.
Only the nv50 driver has been fixed so far.
|
|
|
|
|
|
|