summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50
AgeCommit message (Collapse)Author
2009-10-31nv50: make MRTs workChristoph Bumiller
We have to indicate to the hw whether the FP exports multiple colour results. Method 0x121c is used to specify the number of RTs. Also deactivate zeta explicitly if there's no zsbuf.
2009-10-28nv50: activate more lanes in a warpChristoph Bumiller
Some cards have crippling defaults set and use only 4 of 32 lanes. This should activate 16 on these. Those that allow 32 by default should still do so. Found out by Marcin Kościelnicki.
2009-10-23nv50: do SIGN_SET as one instructionChristoph Bumiller
2009-10-23nv50: fix saturation outside of tx_insn caseChristoph Bumiller
2009-10-23nv50: allow all 127 TEMP regsChristoph Bumiller
We should really learn to not waste so many though.
2009-10-23nv50: fix address reg codeChristoph Bumiller
Contained some rather obvious thinking errors before, and didn't consider offsets from TGSI ADDRESS regs.
2009-10-23nv50: add depth texture formats, and a few others, tooChristoph Bumiller
2009-10-23gallium: remove the swizzling parts of ExtSwizzleKeith Whitwell
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.
2009-10-22nv50: handle PIPE_TEX_FILTER_ANISO caseChristoph Bumiller
Set the same bits as for linear filtering (in addition to max anisotropy), and 2 unknown bits I've seen set.
2009-10-22nv50: support 3D class 0x8597, remove redundant unknown chipset detectionBen Skeggs
2009-10-19nv50: add support for address regsChristoph Bumiller
Allow indirect uniform access and increase the limit on parameters from 128 to 512.
2009-10-19nv50: cleanup emit_kilChristoph Bumiller
2009-10-19nv50: implement TGSI_OPCODE_CMPChristoph Bumiller
2009-10-19nv50: quick fix for insn src negationChristoph Bumiller
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.
2009-10-19nv50: add support for DDX and DDY opcodesChristoph Bumiller
2009-10-19nv50: submit user vbo data through the fifoChristoph Bumiller
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.
2009-10-19nv50: use SIFC for TIC, TSC uploadChristoph Bumiller
Add proper flushes for TIC and TSC and remove the costly 2D.0110 flush in nv50_flush. Correct TIC and TSC bo sizes.
2009-10-19nv50: nicer texture format switchChristoph Bumiller
Similar to nv40.
2009-10-19nouveau: implement is_{texture,buffer}_referenced properlyBen Skeggs
2009-10-19drm/nv50: write tic/tsc setup to correct slots when skipping unitsBen Skeggs
2009-10-06nv50: fix segfault when there's gaps in enabled texture unitsBen Skeggs
Tested with progs/demos/multiarb.
2009-10-05nv50: support PIPE_FORMAT_X8R8G8B8_UNORMBen Skeggs
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2009-10-02gallium: Preparations for adding more PIPE_TRANSFER_* usage flags.Michel Dänzer
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.
2009-09-25nv50: fix TEX for WriteMask not equal 0xfChristoph Bumiller
If you e.g. only need alpha, it ends up in the first reg, not the last, as it would when reading rgb too.
2009-09-25nv50: actually enable view volume clippingChristoph Bumiller
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.
2009-09-25nv50: RCP and RSQ cannot load from VP inputsChristoph Bumiller
2009-09-25nv50: fix CEIL and TRUNCChristoph Bumiller
Separated the integer rounding mode flag for cvt.
2009-09-25nv50: implement BGNLOOP, BRK, ENDLOOPChristoph Bumiller
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.
2009-09-25nv50: implement IF, ELSE, ENDIF opcodesChristoph Bumiller
2009-09-16gallium: Deprecate PIPE_CAP_S3TC.José Fonseca
No longer used. S3TC support is queried via pipe_screen::is_format_supported.
2009-09-15nv50: avoid excessive FIRE_RINGMaarten Maathuis
- And reduce RING_SPACE to 2, instead of 3.
2009-09-15nv50: use flush_notify to reduce number of relocsMaarten Maathuis
2009-09-15nv50: fix stupid thinko in emit_setChristoph Bumiller
When swapping sources 0 and 1, EQ of course does *not* become NE, etc. Introduced in 2b963f5c723401aa2646bd48eefe065cd335e280.
2009-09-15nv50: let programs use the whole param bufferChristoph Bumiller
Allocation is unnecessary since all uniforms are uploaded on every constant buffer change anyway.
2009-09-15nv50: add preliminary support for point spritesChristoph Bumiller
2009-09-15nv50: add support for point size per vertexChristoph Bumiller
2009-09-15nv50: add support for light-twosideChristoph Bumiller
2009-09-15nv50: proper linkage between VP and FPChristoph Bumiller
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.
2009-09-15nv50: move allocation of pc regsChristoph Bumiller
Make use of tgsi_shader_info to determine how many nv50_regs we need to allocate, whether program uses KIL, or writes DEPR.
2009-09-15nv50: nicer initialization of nv50_regsChristoph Bumiller
2009-09-15nv50: handle CEIL and TRUNC opcodesChristoph Bumiller
2009-09-15nv50: handle SEQ, SGT, SLE, SNE opcodesChristoph Bumiller
2009-09-15nv50: SIN and COS use src0.w for dst.wChristoph Bumiller
2009-09-15nv50: use broadcast TEMP reg in tx_insnChristoph Bumiller
Makes some opcode cases nicer and might reduce the total nr of TEMPs required, or save some MOVs.
2009-09-15nv50: add nv50_tgsi_insn to handle swizzles safelyChristoph Bumiller
2009-09-15nv50: add functions for swizzle resolutionChristoph Bumiller
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).
2009-09-15nv50: extend insn src mask functionChristoph Bumiller
Extend its usage to avoiding e.g. emission of negation instructions in tx_insn for sources we don't need.
2009-09-14nv50: Fix m2mf positions.Marcin Kościelnicki
2009-09-10nv50: Fix tiling mode for lower mipmap levels.Marcin Kościelnicki
2009-09-03nv50: move centroid, flat bits when making interp longChristoph Bumiller
Before this, just the perspective divide bit was moved in convert_to_long of the load interpolant instruction.