summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* nv50: some mipmapping fixesBen Skeggs2009-05-284-22/+31
|
* nv50: negate sources directly where supportedChristoph Bumiller2009-05-281-42/+68
|
* nv50: introduce emit_cvt and use itChristoph Bumiller2009-05-281-40/+48
| | | | | This makes some code cleaner, and we can now easily do CEIL and TRUNC.
* nv50: fix TXPChristoph Bumiller2009-05-281-23/+112
| | | | | | | | 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.
* nv50: use multiple constant buffersChristoph Bumiller2009-05-284-48/+105
| | | | | | | 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.
* nv50: don't look for unfreed temps in free_nv50_pcChristoph Bumiller2009-05-281-8/+0
| | | | | Since we stopped using alloc_temp to get hw indices for FP attrs there shouldn't be any non-deallocated temps left.
* nv50: release hw TEMPs earlyChristoph Bumiller2009-05-281-0/+19
| | | | | Since we know when we don't use a TEMP or FP ATTR register anymore, we can release their hw resources early.
* nv50: allow immediates for MOV, ADD and MULChristoph Bumiller2009-05-281-5/+22
| | | | | | 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.
* nv50: enable half insns for MOV and MULChristoph Bumiller2009-05-281-7/+12
|
* nv50: make sure half-long insns are pairedChristoph Bumiller2009-05-281-0/+72
| | | | | | | 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 ...
* nv50: enable KIL in register 19a8Christoph Bumiller2009-05-281-0/+1
|
* nv50: don't overwrite sources before they're usedChristoph Bumiller2009-05-281-12/+83
| | | | | This would have happened in p.e. ADD TEMP[0], TEMP[0].xyxy, TEMP[1] or RCP/RSQ TEMP[i], TEMP[i].
* nv50: put FP outputs where they belongChristoph Bumiller2009-05-281-4/+37
| | | | | Depth output in fragment programs should end up in the first register after the color outputs.
* nv50: modified FP attribute loadingChristoph Bumiller2009-05-282-45/+147
| | | | | | | | 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]).
* nv50: inspect decl semantic and interpolation modeChristoph Bumiller2009-05-281-1/+74
| | | | | | 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.
* nv50: record last access to temp and attr regsChristoph Bumiller2009-05-281-0/+127
| | | | | | | 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.
* nv50: save some space in immediate bufferChristoph Bumiller2009-05-281-1/+7
| | | | | We could do even better (like just allocating 1 value in alloc_immd), but that's fine for now I guess.
* nv50: fix SIGN_SET case in tgsi_srcChristoph Bumiller2009-05-281-1/+1
|
* nv50: set dst.z,w to 0,1 in SCS and XPDChristoph Bumiller2009-05-281-0/+14
| | | | | 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.
* nv50: make LRP instruction nicerChristoph Bumiller2009-05-281-6/+3
|
* nv50: fix some memory leaks in shader assemblerChristoph Bumiller2009-05-281-25/+63
|
* nouveau: explicitly request mappable buffers for the momentBen Skeggs2009-05-281-0/+1
|
* draw: Fix assertion failure at fetch_emit_prepareMike Kaplinksiy2009-05-271-0/+6
|
* softpipe: commentsBrian Paul2009-05-271-0/+2
|
* softpipe: include sp_winsys.h to silence warning (unprototyped function)Brian Paul2009-05-271-0/+1
|
* softpipe: fix flat shading provoking vertex for PIPE_PRIM_POLYGONBrian Paul2009-05-273-1/+6
| | | | Use the first vertex, not the last.
* cell: perform triangle cull a little earlierJonathan Adamczewski2009-05-211-31/+74
| | | | | | | | | | In spu_tri.c:setup_sort_vertices() triangles are culled after the vertices are sorted. This patch moves the check a little earlier and performs the actual check a little faster through intrinsics and a little trickery. Reduced code size and less work is done before a triangle is deemed OK to skip.
* cell: unroll inner loop of spu_render.c:cmd_render()Jonathan Adamczewski2009-05-213-32/+89
| | | | | | | | | | | | | | | It was taking approximately 50 cycles to extract the vertex indices, calculate the vertex_header pointers and call tri_draw() for each three vertices - . Unrolled, it takes less than 100 cycles to extract, unpack, calculate pointers and call tri_draw() eight times. It does have a nasty jump-tabled switch. I'm sure that there's a better way... Code size of spu_render.o gets larger due to the extra constants and work in the inner loop, there are extra stack saves and loads because there are more registers in use, and an assert. spu_tri.o gets a little smaller.
* r300-gallium: r500-fs: POW.Corbin Simpson2009-05-201-1/+27
| | | | I feel so unclean.
* r300-gallium: r500-fs: LRP.Corbin Simpson2009-05-201-4/+32
| | | | Goddammit. This cannot be the "easy way." :C
* r300-gallium: r500-fs: Combine function.Corbin Simpson2009-05-201-15/+6
|
* r300-gallium: Prevent assert when fogcoords are present.Corbin Simpson2009-05-202-5/+14
| | | | Seems like this file is the source of all bad logic. (Pun intended.)
* r300-gallium: Another constantbuf shader recompile test.Corbin Simpson2009-05-204-2/+14
| | | | | | | Less briefly... Shaders need to be recompiled if their constantbuf offsets have changed. However, since we only change them from shaders if immediates need to be emitted, we shouldn't bother if the shader doesn't use immediates.
* r300-gallium: Raise constantbuf limits.Corbin Simpson2009-05-201-3/+3
| | | | Still not correct, but really I don't care.
* r300-gallium: fs: Remove cruft from way back when.Corbin Simpson2009-05-201-18/+0
|
* radeon-gallium: Add surface_buffer_create callback.Corbin Simpson2009-05-201-1/+25
|
* r300-gallium: Make surface_copy actually load the texture in shader.Corbin Simpson2009-05-203-3/+4
|
* r300-gallium: Add missing R481 PCI ID.Corbin Simpson2009-05-201-0/+1
| | | | Per 74cb2aba on xf86-video-ati.
* r300-gallium: Make surface_copy work, and refactor buffer validation.Corbin Simpson2009-05-202-16/+47
|
* radeon-gallium: Don't permit reading and writing a BO in one CS.Corbin Simpson2009-05-202-3/+20
| | | | | | This fixes some silent problems in current libdrm_radeon. surface_copy still locks up hard.
* trace: Improve shader wrappingJakob Bornecrantz2009-05-183-4/+29
|
* st/dri: Only create new textures if drawable has changedJakob Bornecrantz2009-05-182-0/+17
|
* r300-gallium: Fix (another) wrong value in MSPOS.Corbin Simpson2009-05-181-1/+1
| | | | Again, thanks to agd5f.
* radeon-gallium: Remove BO validation debug.Corbin Simpson2009-05-181-4/+0
| | | | | It appears that that area of code "just works" much like classic Mesa's version, so might as well not waste scrollback on it.
* r300-gallium: Cleanup viewport state setup.Corbin Simpson2009-05-181-36/+28
|
* r300-gallium: Always do VTE, never software viewport.Corbin Simpson2009-05-184-4/+27
| | | | This makes glxgears draw properly with SW TCL.
* Merge branch 'mesa_7_5_branch'Brian Paul2009-05-181-0/+5
|\ | | | | | | | | | | | | Conflicts: Makefile src/mesa/main/version.h
| * softpipe: add texture target sanity check assertionBrian Paul2009-05-181-0/+5
| |
* | r300-gallium: Enable GLSL for r500.Corbin Simpson2009-05-171-2/+5
| | | | | | | | | | | | Before you get all excited, this is *not* to be construed as actual support for GLSL shaders. The GL version is still 1.3, and stuff still sucks. Just flicking it on so that it can be tested and developed a bit easier.
* | r300-gallium: r500-fs: DDX and DDY support.Corbin Simpson2009-05-171-0/+10
| | | | | | | | Oh, look, GLSL instructions. I wonder what I'll do next.