summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50
AgeCommit message (Collapse)Author
2009-08-14nv50: make use of the y-origin switchChristoph Bumiller
Now that we know how to make the hardware have y-coordinate origin top, we can get rid of all the inversion introduced earlier.
2009-08-14nv50: fix typo in REALLOC's 2nd argument in ctor_immdChristoph Bumiller
2009-07-29nv50: support non-blocking query_result()Ben Skeggs
2009-07-29nv50: correct zeta formatsChristoph Bumiller
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.
2009-07-29nv50: use new 2D surface format namesChristoph Bumiller
2009-07-29nv50: support more vtxelt formatsChristoph Bumiller
NOTE: we must not try to emit buffer relocations when vtxbuf_nr is 0 but vtxelt_nr is not
2009-07-29nv50: should use uint32_t ptr in draw_elements_inline_u32Christoph Bumiller
2009-07-29nv50: TIC/TSC fixes and additionsChristoph Bumiller
Red and blue were interchanged in TIC. Add border color and some formats.
2009-07-29nv50: fix sx/dx typo in transfer_rect_m2mfChristoph Bumiller
2009-07-29nv50: fix viewport transformChristoph Bumiller
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.
2009-07-29nv50: use correct scissor regChristoph Bumiller
2009-07-22gallium: simplify tgsi_full_immediate structKeith Whitwell
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.
2009-07-14gallium: Define PIPE_CAP_BLEND_EQUATION_SEPARATE, remove extension from ↵Patrice Mandin
default extension list
2009-07-01nouveau: return some supported zeta formatsBen Skeggs
2009-07-01nouveau: deal with PIPE_CAP_TGSI_CONT_SUPPORTEDBen Skeggs
2009-06-06nv50: fix multi-texturingBen Skeggs
2009-06-06nv50: support non-normalized texture coordsBen Skeggs
2009-06-05nv50: use larger tile sizesBen Skeggs
2009-06-05nv50: use nouveau_bo for query buffersBen Skeggs
2009-06-05nv50: create textures with nouveau_bo, for flexibility with tiling laterBen Skeggs
2009-06-05nouveau: fix build with libdrm_nouveau 0.6Ben Skeggs
2009-06-05nouveau: remove unneeded code from ws, use pipe_buffer_ instead of ws->Ben Skeggs
2009-06-05nouveau: move channel creation into pipe driversBen Skeggs
2009-06-05nouveau: call notifier/grobj etc funcs directlyBen Skeggs
libdrm_nouveau is linked with the winsys, there's no good reason to do all this through yet another layer.
2009-06-05nouveau: add pipe_buffer/fence code to pipe drivers, move nv50 overBen Skeggs
2009-06-05nouveau: pass nouveau_bo instead of pipe_buffer to so_ callsBen Skeggs
2009-06-05nouveau: call nouveau_pushbuf directly rather than going through nvwsBen Skeggs
2009-05-28nv50: some mipmapping fixesBen Skeggs
2009-05-28nv50: negate sources directly where supportedChristoph Bumiller
2009-05-28nv50: introduce emit_cvt and use itChristoph Bumiller
This makes some code cleaner, and we can now easily do CEIL and TRUNC.
2009-05-28nv50: fix TXPChristoph Bumiller
For TXP we need to divide texture coords by their w component, or use the coords' 1/w in the perspective interpolation instruction. This also tries to support 1D, 3D and CUBE textures, and lets the instruction only load the components that are used.
2009-05-28nv50: use multiple constant buffersChristoph Bumiller
Use different buffers for immds, FP params, and VP params. One has to map constant buffer indices in shader code to buffers defined via CB_DEF. In principle, we could use more buffers so we'd have to change the shader code less frequently.
2009-05-28nv50: don't look for unfreed temps in free_nv50_pcChristoph Bumiller
Since we stopped using alloc_temp to get hw indices for FP attrs there shouldn't be any non-deallocated temps left.
2009-05-28nv50: release hw TEMPs earlyChristoph Bumiller
Since we know when we don't use a TEMP or FP ATTR register anymore, we can release their hw resources early.
2009-05-28nv50: allow immediates for MOV, ADD and MULChristoph Bumiller
Immediates are inlined now where possible, so we need to set pc->allow32 to FALSE in LIT where we have the conditional MOV, since immediates swallow the predicate bits.
2009-05-28nv50: enable half insns for MOV and MULChristoph Bumiller
2009-05-28nv50: make sure half-long insns are pairedChristoph Bumiller
I chose to just convert unpaired 32 bit length instructions after parsing all instructions, although it might be possible to determine beforehand whether there would be any lone ones, and then even do some swapping to bring them together ...
2009-05-28nv50: enable KIL in register 19a8Christoph Bumiller
2009-05-28nv50: don't overwrite sources before they're usedChristoph Bumiller
This would have happened in p.e. ADD TEMP[0], TEMP[0].xyxy, TEMP[1] or RCP/RSQ TEMP[i], TEMP[i].
2009-05-28nv50: put FP outputs where they belongChristoph Bumiller
Depth output in fragment programs should end up in the first register after the color outputs.
2009-05-28nv50: modified FP attribute loadingChristoph Bumiller
VP outputs that should be loadable in the FP are mapped to interpolant indices by HPOS, COL0 etc.; of course HPOS is always written, so the highest byte of 1988 is a bitmask that selects which components of HPOS are used for interpolants, i.e. the FP inputs in COL0 start at index POPCNT(1988[24:28]).
2009-05-28nv50: inspect decl semantic and interpolation modeChristoph Bumiller
Record interpolation mode for attributes while parsing declarations, and also remember the indices of FP color inputs and FP depth output, which has to end up in the highest output register.
2009-05-28nv50: record last access to temp and attr regsChristoph Bumiller
We now inspect the TGSI instructions in tx_prep to determine where temps and FP attrs are last accessed. This will enable us to reclaim some temporaries early and we also use it to omit pre-loading FP attributes that aren't used.
2009-05-28nv50: save some space in immediate bufferChristoph Bumiller
We could do even better (like just allocating 1 value in alloc_immd), but that's fine for now I guess.
2009-05-28nv50: fix SIGN_SET case in tgsi_srcChristoph Bumiller
2009-05-28nv50: set dst.z,w to 0,1 in SCS and XPDChristoph Bumiller
According to tgsi-instruction-set.txt, if they are written, z and w should be set to 0 and 1 respectively in SCS, and w to 1.0 in XPD.
2009-05-28nv50: make LRP instruction nicerChristoph Bumiller
2009-05-28nv50: fix some memory leaks in shader assemblerChristoph Bumiller
2009-04-15gallium: Make sure we flush before some texture / buffer operations.Thomas Hellstrom
Also implement context member functions to optimize away those flushes whenever possible. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-13nv50: fix mrt clearBen Skeggs