summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nouveau
Commit message (Collapse)AuthorAgeFilesLines
* nouveau: Fix serious compiler warningsJohannes Obermayr2011-03-181-0/+1
| | | | | | Fixes https://bugs.freedesktop.org/show_bug.cgi?id=35025 Signed-off-by: Brian Paul <[email protected]>
* nv50,nvc0: clean up flushesChristoph Bumiller2011-03-131-3/+6
|
* gallium: cleanup fence_signalled and fence_finishMarek Olšák2011-03-111-7/+5
| | | | So that they don't have the driver-specific param and return type.
* gallium: kill is_resource_referencedMarek Olšák2011-03-113-25/+0
| | | | Only st/xorg used it and even incorrectly with regards to pipelined transfers.
* gallium: add timeout parameter to fence_finishMarek Olšák2011-03-081-1/+2
| | | | | This is a follow-up to the ARB_sync patch for st/mesa and completes the ARB_sync implementation.
* nouveau: allow pipe driver to define which buffers should start in sysmemBen Skeggs2011-03-032-1/+2
| | | | | | | PIPE_BIND_CONSTANT_BUFFER alone was OK for nv50/nvc0, but nv30 will need to be able to set others on certain chipsets. Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: remove nouveau_stateobj.hBen Skeggs2011-03-011-316/+0
| | | | Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: ensure vbo_dirty is set when buffer write transfer completeBen Skeggs2011-03-014-35/+54
| | | | | | This introduces a shared nouveau_context struct to track such things. Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: fix leak of nouveau_mman structsBen Skeggs2011-03-011-0/+2
| | | | Signed-off-by: Ben Skeggs <[email protected]>
* nv50: sync textures with render targets ourselvesBen Skeggs2011-03-012-5/+6
| | | | | | Port of the nvc0 commit doing the same. Signed-off-by: Ben Skeggs <[email protected]>
* nv50: move onto common linear buffer managerBen Skeggs2011-03-011-2/+2
| | | | Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: common linear buffer manager, ported from nv50/nvc0 driversBen Skeggs2011-03-015-2/+637
| | | | | | | nv50_resource is being called nv04_resource now temporarily, to avoid a naming conflict with nouveau_resource from libdrm. Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: create linear gart/vram mman in common screen initBen Skeggs2011-03-012-0/+12
| | | | Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: fix fence_ref() where fence and *ref are the same fenceBen Skeggs2011-03-011-2/+3
| | | | Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: fix compiler complaintBen Skeggs2011-03-012-0/+9
| | | | Signed-off-by: Ben Skeggs <[email protected]>
* nv50: make mm available as common codeBen Skeggs2011-03-013-1/+311
| | | | Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: move nv50/nvc0 fencing to common location, and modify slightlyBen Skeggs2011-03-015-4/+296
| | | | | | | Modified from original to remove chipset-specific code, and to be decoupled from the mm present in said drivers. Signed-off-by: Ben Skeggs <[email protected]>
* nouveau: fix build against out of tree libdrmDave Airlie2011-01-171-0/+1
| | | | | | For doing builds against a separated libdrm these cflags are needed. Signed-off-by: Dave Airlie <[email protected]>
* Merge remote branch 'origin/master' into nvc0-newBen Skeggs2010-12-211-1/+1
|\ | | | | | | | | Conflicts: src/gallium/drivers/nouveau/nouveau_winsys.h
| * nouveau: fix includes for latest libdrmBen Skeggs2010-12-211-1/+1
| | | | | | | | Signed-off-by: Ben Skeggs <[email protected]>
* | nvc0: import nvc0 gallium driverChristoph Bumiller2010-11-123-11/+54
|/
* nouveau: Get larger push buffers.Francisco Jerez2010-10-121-1/+1
| | | | | Useful to amortize the command submission/reloc overhead (e.g. etracer goes from 72 to 109 FPS on nv4b).
* nv50: fix typo in fifo packet length limitChristoph Bumiller2010-09-181-0/+4
|
* nouveau: delete nouveau_class.h, move nv50 regs to nv50_reg.hLuca Barbieri2010-09-052-9050/+0
| | | | | | | nv50 should switch to rules-ng-ng too at some point. The classic Mesa Nouveau driver also includes a copy of nouveau_class.h, and should convert to rules-ng-ng too and remove it.
* nvfx: move nv04_2d to rules-ng-ngLuca Barbieri2010-09-051-0/+155
|
* nvfx: switch to rules-ng-ng register headersLuca Barbieri2010-09-051-0/+231
| | | | | | | | | | This is the new register generation toolkit in use by nouveau. As far as I know, this is the best register description toolkit in existence, and you should use it too for your hardware :) Thanks to Marcin Kościelnicki for inventing it and performing invaluable reverse engineering work of nVidia chips.
* nvfx: pause occlusion queries during blitter usageLuca Barbieri2010-09-051-1/+1
| | | | | Thanks for Dave Airlie and Jerome Glisse for their code which made me realize I need this too.
* nvfx: support rendering to more formatsLuca Barbieri2010-09-041-1/+3
|
* nvfx: support all coord conventions in hardwareLuca Barbieri2010-09-041-0/+10
|
* nvfx: set magic bit to round NPOT mipmap sizes down and not upLuca Barbieri2010-09-041-0/+3
| | | | Does any API even use rounding-up?
* nouveau: handle early initialization errorsMarcin Slusarz2010-08-261-1/+2
| | | | | | | handle very early errors in pipe_screen creation (failure of nouveau_screen_init in nv50_screen_create) Signed-off-by: Francisco Jerez <[email protected]>
* nvfx: support flatshade_firstLuca Barbieri2010-08-211-0/+1
|
* nvfx: rewrite draw code and buffer codeLuca Barbieri2010-08-212-95/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a full rewrite of the drawing and buffer management logic. It offers a lot of improvements: 1. A copy of buffers is now always kept in system memory. This is necessary to allow software processing of them, which is necessary or improves performance in many cases. 2. Support for pushing vertices on the FIFO, with index lookup if necessary. 3. "Smart" draw code that tries to intelligently choose the cheapest way to draw something: whether to use inline vertices or hardware vertex buffer, and whether to use hardware index buffers 4. Support for all vertex formats supported by the hardware 5. Usage of translate to push vertices, supporting all formats that are sensible to use as vertex formats 6. Support for base vertex 7. Usage of Ben Skeggs' primitive splitter originally for nv50, allowing correct splitting of line loops, triangle fans, etc. 8. Support for instancing 9. Precomputation using the vertex elements CSO Thanks to Ben Skeggs for his primitive splitter originally for nv50. Thanks to Christoph Bumiller for his nv50 push code, that was the basis of this work, even though I changed his code dramatically, in particular to replace his ad-hoc vertex data emitter with translate. The changes could also go into nv50 too, but there are substantial differences due to the additional nv50 hardware features.
* nvfx: refactor sampling code, add support for swizzles and depth texLuca Barbieri2010-08-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | This is a significant refactoring of the sampling code that: - Moves all generic functions in nvfx_fragtex.c - Adds a driver-specific sampler view structure and uses it to precompute texture setup as it should be done - Unifies a bit more of code between nv30 and nv40 - Adds support for sampler view swizzles - Support for specifying as sampler view format different from the resource one (only trivially) - Support for sampler view specification of first and last level - Support for depth textures on nv30, both for reading depth and for compare - Support for sRGB textures - Unifies the format table between nv30 and nv40 - Expands the format table to include essentially all supportable formats except mixed sign and "autonormal" formats - Fixes the "is format supported" logic, which was quite broken, and makes it use the format table Only tested on nv30 currently.
* auxiliary: move Ben Skeggs' primitive splitter to common codeLuca Barbieri2010-08-111-100/+0
| | | | | | | | | | | | | | | | | | | | | This is a simple framework that handles splitting primitives in an abstract way. The user has to specify the primitive start, start index and count. Then, it can ask the primitive splitter to "draw" a chunk of the primitive, staying under a given vertex/index budget. The primitive splitter will then call user-supplied functions to emit a range of vertices/indices, as well as switch the edgeflag on or off. This is particularly useful for hardware that either has limits on the vertex count field, or where vertices are pushed on a FIFO or temporary buffer of limited size. Note that unlike other splitters, it does not manipulate data in any way, and merely asks a callback to do so, in vertex intervals.
* nouveau: fix maps with PIPE_TRANSFER_UNSYNCHRONIZED | PIPE_TRANSFER_DONTBLOCKLuca Barbieri2010-08-091-3/+2
| | | | | | | | | In this case, we were incorrectly prioritizing PIPE_TRANSFER_DONTBLOCK over PIPE_TRANSFER_UNSYNCHRONIZED. This can lead to failure in the Mesa VBO draw paths that end up specifying both, but don't expect map to fail (in particular, the problem manifested as a leak of buffer objects in teapot with other changes).
* nouveau: fix potential NULL-ptr dereference in nouveau_stateobj.hMaarten Maathuis2010-08-061-6/+4
| | | | | | | | - This can only be triggered when DEBUG_NOUVEAU_STATEOBJ is active. - Also remove a redundant pointer assignment. Reported-by: Roy Spliet <[email protected]> Signed-off-by: Maarten Maathuis <[email protected]>
* nouveau: s/__func__/__FUNCTION__/Vinson Lee2010-07-161-1/+1
|
* nouveau: s/snprintf/util_snprintf/Vinson Lee2010-07-161-1/+2
|
* nouveau: s/inline/INLINE/Vinson Lee2010-07-163-5/+5
|
* nouveau: Remove reference to drm_apiJakob Bornecrantz2010-06-241-1/+1
|
* Merge branch 'gallium-msaa'Roland Scheidegger2010-05-211-2/+0
|\ | | | | | | | | | | Conflicts: src/mesa/state_tracker/st_gen_mipmap.c src/mesa/state_tracker/st_texture.c
| * nouveau: adapt to interface changesRoland Scheidegger2010-05-171-2/+0
| | | | | | | | | | this probably needs further cleanup (just getting a surface for the resource seems quite nonoptimal and potentially cause unnecessary copies I think)
* | nouveau: only advertise PIPE_FORMAT_DXT* if s3tc availableXavier Chantry2010-05-051-0/+3
|/
* nouveau: Add to SCons build.Vinson Lee2010-04-241-0/+11
|
* nouveau: Add missing header.Vinson Lee2010-04-181-0/+2
|
* nouveau: replace vtxbuf/idxbuf caps with BO_ flags in nouveau_screen and fix ↵Luca Barbieri2010-04-153-11/+9
| | | | | | | | | | | | uncached reads on nv3x Faster, simpler and more flexible. Also, we set those flags properly on nv3x so that we don't allocate buffers in GART. Since on AGP GART is uncached, OpenGL doesn't distinguish between vertex and index buffers, and we don't support hardware index buffers for now, this caused uncached reads. Also check bind and not usage for PIPE_BIND_* flags, got broken in the gallium-resources transition.
* nvfx: add support for ARB_half_float_vertexLuca Barbieri2010-04-121-0/+1
|
* nouveau: add state buffers, lightweight replacement for state objectsLuca Barbieri2010-04-121-0/+27
| | | | | | | Just a dumb buffer, allowed by the RING_3D/fixed subchannel binding and no support for relocations. This is *much* faster than state objects.
* nouveau: don't autobind in state objects relocationsLuca Barbieri2010-04-121-8/+4
| | | | | | | | | | Autobinding creates additional pushbuffer usage which may not be accounted in callers, and is also slow. The next relocations patch depends on this for correctness. Assert instead if the objects are not bound, which should happen at screen creation time.