Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
- This fixes neverball corruption.
- I'm unsure about what we're actually flushing here.
|
|
|
|
It's the front stencil methods that have contiguous offsets,
not the back ones.
Unfortunately the names in the header still have FRONT/BACK
reversed, so I'm using hex values until it gets updated.
|
|
- We cannot assume all state objects are present when the pipe context changes.
|
|
The TEX instruction is passed the first index of a contiguous
range of 4 TEMP registers that contain coordinates / LOD and,
after execution, the texel values.
It seems the first index is required to be a multiple of 4 on
some (older ?) cards.
|
|
The hardware expects a texture's tile mode to change with
the mipmap level.
Also, only multiply by block size once to obtain size.
|
|
Since we don't turn off scissors, we need to update the
stateobj when the framebuffer size changes.
|
|
Now that we know how to make the hardware have y-coordinate origin
top, we can get rid of all the inversion introduced earlier.
|
|
|
|
|
|
What was Z24S8 before is actually S8Z24, and what we had for Z16
is actually X8Z24. Now, we also have the REAL Z24S8 and I added
Z32_FLOAT as well; most of the formats need different tile_flags.
|
|
|
|
NOTE: we must not try to emit buffer relocations when
vtxbuf_nr is 0 but vtxelt_nr is not
|
|
|
|
Red and blue were interchanged in TIC.
Add border color and some formats.
|
|
|
|
The translation also needs to be inverted, and in bypass mode
the state tracker incorrectly assumes that Y = 0 = TOP, so we
need inversion there to; NDC clipping has to be deactivated
explicitly.
|
|
|
|
Remove the need to have a pointer in this struct by just including
the immediate data inline. Having a pointer in the struct introduces
complications like needing to alloc/free the data pointed to, uncertainty
about who owns the data, etc. There doesn't seem to be a need for it,
and it is unlikely to make much difference plus or minus to performance.
Added some asserts as we now will trip up on immediates with more
than four elements. There were actually already quite a few such asserts,
but the >4 case could be used in the future to specify indexable immediate
ranges, such as lookup tables.
|
|
default extension list
|
|
|
|
|
|
|
|
|